[Dart-dev] DART/branches Revision: 12201

dart at ucar.edu dart at ucar.edu
Thu Dec 14 13:44:18 MST 2017


nancy at ucar.edu
2017-12-14 13:44:14 -0700 (Thu, 14 Dec 2017)
183
make the second 2 ensemble handles optional in free_state_window().
filter uses them but PMO and model_mod_check do not.

fix allocation issues in test_interpolate routines and mmc.




Modified: DART/branches/recam/assimilation_code/modules/utilities/cray_win_mod.f90
===================================================================
--- DART/branches/recam/assimilation_code/modules/utilities/cray_win_mod.f90	2017-12-14 20:42:46 UTC (rev 12200)
+++ DART/branches/recam/assimilation_code/modules/utilities/cray_win_mod.f90	2017-12-14 20:44:14 UTC (rev 12201)
@@ -173,15 +173,17 @@
 subroutine free_state_window(state_ens_handle, fwd_op_ens_handle, qc_ens_handle)
 
 type(ensemble_type), intent(inout) :: state_ens_handle
-type(ensemble_type), intent(inout) :: fwd_op_ens_handle
-type(ensemble_type), intent(inout) :: qc_ens_handle
+type(ensemble_type), intent(inout), optional :: fwd_op_ens_handle
+type(ensemble_type), intent(inout), optional :: qc_ens_handle
 
 integer :: ierr
 
 if(get_allow_transpose(state_ens_handle)) then ! the forward operators were done var complete
-   !transpose back
-   call all_vars_to_all_copies(fwd_op_ens_handle)
-   call all_vars_to_all_copies(qc_ens_handle)
+   !transpose back if allowing transposes
+   if (present(fwd_op_ens_handle)) &
+      call all_vars_to_all_copies(fwd_op_ens_handle)
+   if (present(qc_ens_handle)) &
+      call all_vars_to_all_copies(qc_ens_handle)
 else
    ! close mpi window
    call mpi_win_free(state_win, ierr)
@@ -194,7 +196,8 @@
 
 !---------------------------------------------------------
 !> Free the mpi window
-subroutine free_mean_window
+subroutine free_mean_window()
+
 integer :: ierr
 
 if(get_allow_transpose(mean_ens_handle)) then

Modified: DART/branches/recam/assimilation_code/modules/utilities/no_cray_win_mod.f90
===================================================================
--- DART/branches/recam/assimilation_code/modules/utilities/no_cray_win_mod.f90	2017-12-14 20:42:46 UTC (rev 12200)
+++ DART/branches/recam/assimilation_code/modules/utilities/no_cray_win_mod.f90	2017-12-14 20:44:14 UTC (rev 12201)
@@ -149,15 +149,17 @@
 subroutine free_state_window(state_ens_handle, fwd_op_ens_handle, qc_ens_handle)
 
 type(ensemble_type), intent(inout) :: state_ens_handle
-type(ensemble_type), intent(inout) :: fwd_op_ens_handle
-type(ensemble_type), intent(inout) :: qc_ens_handle
+type(ensemble_type), intent(inout), optional :: fwd_op_ens_handle
+type(ensemble_type), intent(inout), optional :: qc_ens_handle
 
 integer :: ierr
 
 if(get_allow_transpose(state_ens_handle)) then ! the forward operators were done var complete
    !transpose back
-   call all_vars_to_all_copies(fwd_op_ens_handle)
-   call all_vars_to_all_copies(qc_ens_handle)
+   if (present(fwd_op_ens_handle)) &
+      call all_vars_to_all_copies(fwd_op_ens_handle)
+   if (present(qc_ens_handle)) &
+      call all_vars_to_all_copies(qc_ens_handle)
 else
    ! close mpi window
    call mpi_win_free(state_win, ierr)
@@ -170,7 +172,8 @@
 
 !---------------------------------------------------------
 !> Free the mpi window
-subroutine free_mean_window
+subroutine free_mean_window()
+
 integer :: ierr
 
 if(get_allow_transpose(mean_ens_handle)) then

Modified: DART/branches/recam/assimilation_code/modules/utilities/null_win_mod.f90
===================================================================
--- DART/branches/recam/assimilation_code/modules/utilities/null_win_mod.f90	2017-12-14 20:42:46 UTC (rev 12200)
+++ DART/branches/recam/assimilation_code/modules/utilities/null_win_mod.f90	2017-12-14 20:44:14 UTC (rev 12201)
@@ -85,8 +85,8 @@
 subroutine free_state_window(state_ens_handle, fwd_op_ens_handle, qc_ens_handle)
 
 type(ensemble_type), intent(inout) :: state_ens_handle
-type(ensemble_type), intent(inout) :: fwd_op_ens_handle
-type(ensemble_type), intent(inout) :: qc_ens_handle
+type(ensemble_type), intent(inout), optional :: fwd_op_ens_handle
+type(ensemble_type), intent(inout), optional :: qc_ens_handle
 
 current_win = NO_WINDOW
 
@@ -94,7 +94,7 @@
 
 !---------------------------------------------------------
 !> Free the mpi window
-subroutine free_mean_window
+subroutine free_mean_window()
 
 call end_ensemble_manager(mean_ens_handle)
 

Modified: DART/branches/recam/assimilation_code/programs/model_mod_check/model_mod_check.f90


More information about the Dart-dev mailing list