[Dart-dev] DART/branches Revision: 12460

dart at ucar.edu dart at ucar.edu
Thu Mar 22 11:03:54 MDT 2018


hendric at ucar.edu
2018-03-22 11:03:54 -0600 (Thu, 22 Mar 2018)
242

removing num_vars, and num_copies from get_max_num_{copies,vars}
as they can be retrieved from the ensemble handle.  creating short
definitions for both ensemble handles.  everything compiles but
still needs to distribute mean into groups.




Modified: DART/branches/rma_distrib/assimilation_code/modules/utilities/ensemble_manager_mod.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/utilities/ensemble_manager_mod.f90	2018-03-22 02:47:17 UTC (rev 12459)
+++ DART/branches/rma_distrib/assimilation_code/modules/utilities/ensemble_manager_mod.f90	2018-03-22 17:03:54 UTC (rev 12460)
@@ -1201,10 +1201,10 @@
 my_pe         = ens_handle%my_pe
 
 ! What is maximum number of vars stored on a copy complete pe?
-max_num_vars = get_max_num_vars(ens_handle,num_vars)
+max_num_vars = get_max_num_vars(ens_handle)
 
 ! What is maximum number of copies stored on a var complete pe?
-max_num_copies = get_max_num_copies(ens_handle,num_copies)
+max_num_copies = get_max_num_copies(ens_handle)
 
 allocate(var_list(max_num_vars), transfer_temp(max_num_vars), &
    copy_list(max_num_copies))
@@ -1358,10 +1358,10 @@
 my_pe         = ens_handle%my_pe
 
 ! What is maximum number of vars stored on a copy complete pe?
-max_num_vars = get_max_num_vars(ens_handle,num_vars)
+max_num_vars = get_max_num_vars(ens_handle)
 
 ! What is maximum number of copies stored on a var complete pe?
-max_num_copies = get_max_num_copies(ens_handle,num_copies)
+max_num_copies = get_max_num_copies(ens_handle)
 
 allocate(var_list(max_num_vars), transfer_temp(max_num_vars), &
    copy_list(max_num_copies))
@@ -1511,9 +1511,11 @@
 integer,      allocatable :: var_list1(:), var_list2(:)
 real(r8),     allocatable :: transfer_temp(:)  ! might need 2?
 
-integer(i8) :: num_vars
-integer     :: num_copies, my_num_vars, my_num_copies, my_pe
-integer     :: max_num_vars, max_num_copies, num_vars_to_receive
+integer(i8) :: num_vars1, num_vars2        
+integer     :: num_copies1, my_num_vars1, my_num_copies1, my_pe1
+integer     :: num_copies2, my_num_vars2, my_num_copies2, my_pe2
+integer     :: max_num_vars1, max_num_copies1, max_num_vars2, max_num_copies2 
+integer     :: num_vars_to_receive
 integer     :: sending_pe, recv_pe, k, sv, num_copies_to_send
 integer     :: global_ens_index, copy
 integer     :: group_pe, group_size
@@ -1524,8 +1526,8 @@
 endif
 
 ! Accelerated version for single process
-if(handle1%num_pes == 1 .and. handle2%num_pes == 1) then
-   ens_handle2%copies(copy2,:) = ens_handle1%copies(copy1, :)
+if(ens_handle1%num_pes == 1 .and. ens_handle2%num_pes == 1) then
+   ens_handle2%copies(copy2,:) =  ens_handle1%copies(copy1, :)
    return
 end if
 
@@ -1551,29 +1553,36 @@
 ! 
 !mean_ens_handle%copies(1,:) = state_ens_handle%copies(mean_copy, :)
 
-! Short var definitions
-num_copies    = ens_handle%num_copies
-num_vars      = ens_handle%num_vars
-my_num_vars   = ens_handle%my_num_vars
-my_num_copies = ens_handle%my_num_copies
-my_pe         = ens_handle%my_pe
+! Short var definitions ens 1
+num_copies1    = ens_handle1%num_copies
+num_vars1      = ens_handle1%num_vars
+my_num_vars1   = ens_handle1%my_num_vars
+my_num_copies1 = ens_handle1%my_num_copies
+my_pe1         = ens_handle1%my_pe
 
+! Short var definitions ens 2
+num_copies2    = ens_handle2%num_copies
+num_vars2      = ens_handle2%num_vars
+my_num_vars2   = ens_handle2%my_num_vars
+my_num_copies2 = ens_handle2%my_num_copies
+my_pe2         = ens_handle2%my_pe
+
 group_pe      = get_group_id()
 group_size    = get_group_size()
 
-num_copies    = num_copies*group_size
-num_vars      = num_copies*group_size
-my_num_vars   = num_copies*group_size
-my_num_copies = num_copies*group_size
+num_copies1    = num_copies1*group_size
+num_vars1      = num_copies1*group_size
+my_num_vars1   = num_copies1*group_size
+my_num_copies1 = num_copies1*group_size
 
 ! What is maximum number of copies stored for ens_handle1
-max_num_copies = get_max_num_copies(ens_handle,num_copies1)
+max_num_copies1 = get_max_num_copies(ens_handle1)
 
 ! What is maximum number of copies stored for ens_handle2
-max_num_copies = get_max_num_copies(ens_handle,num_copies)
+max_num_copies2 = get_max_num_copies(ens_handle2)
 
-allocate(var_list(max_num_vars), transfer_temp(max_num_vars), &


More information about the Dart-dev mailing list