[Dart-dev] DART/branches Revision: 12451

dart at ucar.edu dart at ucar.edu
Fri Mar 16 10:14:43 MDT 2018


hendric at ucar.edu
2018-03-16 10:14:43 -0600 (Fri, 16 Mar 2018)
477

adding ensemble handle to :

subroutine get_copy_owner_index()
subroutine get_var_owner_index()
subroutine get_max_num_vars()
subroutine get_max_num_copies()
subroutine get_var_list()
subroutine get_copy_list()
function get_max_num_vars()
function get_max_num_copies()

so that they have acess to the distribution type
and the number of pes.

and adding group size and group rank to ensemble manager.

everything compiles, but need to add code to distribute 
mean to groups.




Modified: DART/branches/rma_distrib/assimilation_code/modules/assimilation/adaptive_inflate_mod.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/assimilation/adaptive_inflate_mod.f90	2018-03-15 14:36:39 UTC (rev 12450)
+++ DART/branches/rma_distrib/assimilation_code/modules/assimilation/adaptive_inflate_mod.f90	2018-03-16 16:14:43 UTC (rev 12451)
@@ -16,12 +16,9 @@
 use utilities_mod,        only : register_module, open_file, close_file, &
                                  error_handler, E_ERR, E_MSG
 use random_seq_mod,       only : random_seq_type, random_gaussian, init_random_seq
-use ensemble_manager_mod, only : ensemble_type,   &
-                                 get_copy_owner_index, prepare_to_write_to_vars,                &
-                                 prepare_to_read_from_vars, prepare_to_update_vars, &
-                                 map_pe_to_task
+use ensemble_manager_mod, only : ensemble_type,  map_pe_to_task
 
-use mpi_utilities_mod,    only : my_task_id, send_to, receive_from, send_minmax_to
+use mpi_utilities_mod,    only : my_task_id, send_minmax_to
 
 implicit none
 private

Modified: DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.f90	2018-03-15 14:36:39 UTC (rev 12450)
+++ DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.f90	2018-03-16 16:14:43 UTC (rev 12451)
@@ -635,7 +635,7 @@
    call get_obs_values(observation, obs, obs_val_index)
 
    ! Find out who has this observation and where it is
-   call get_var_owner_index(int(i,i8), owner, owners_index)
+   call get_var_owner_index(ens_handle, int(i,i8), owner, owners_index)
 
    ! Following block is done only by the owner of this observation
    !-----------------------------------------------------------------------

Modified: DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90	2018-03-15 14:36:39 UTC (rev 12450)
+++ DART/branches/rma_distrib/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90	2018-03-16 16:14:43 UTC (rev 12451)
@@ -658,7 +658,7 @@
       call get_obs_values(observation, obs, obs_val_index)
    
       ! Find out who has this observation and where it is
-      call get_var_owner_index(int(i,i8), owner, owners_index)
+      call get_var_owner_index(ens_handle, int(i,i8), owner, owners_index)
 
       ! Owner calculates first-guess inflation for current ob
       if(ens_handle%my_pe == owner) then
@@ -785,7 +785,7 @@
    call get_obs_values(observation, obs, obs_val_index)
 
    ! Find out who has this observation and where it is
-   call get_var_owner_index(int(i,i8), owner, owners_index)
+   call get_var_owner_index(ens_handle, int(i,i8), owner, owners_index)
 
    ! Following block is done only by the owner of this observation
    !-----------------------------------------------------------------------

Modified: DART/branches/rma_distrib/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90	2018-03-15 14:36:39 UTC (rev 12450)
+++ DART/branches/rma_distrib/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90	2018-03-16 16:14:43 UTC (rev 12451)
@@ -48,14 +48,9 @@
                                   compute_copy_mean, compute_copy_mean_sd,                    &
                                   compute_copy_mean_var, duplicate_ens, get_copy_owner_index, &
                                   get_ensemble_time, set_ensemble_time, broadcast_copy,       &
-                                  prepare_to_read_from_vars, prepare_to_write_to_vars,        &
-                                  prepare_to_read_from_copies,  get_my_num_vars,              &
-                                  prepare_to_write_to_copies, get_ensemble_time,              &
                                   map_task_to_pe,  map_pe_to_task, prepare_to_update_copies,  &
-                                  copies_in_window, set_num_extra_copies, get_allow_transpose, &
-                                  all_copies_to_all_vars, allocate_single_copy, allocate_vars, &
-                                  get_single_copy, put_single_copy, deallocate_single_copy,   &
-                                  print_ens_handle
+                                  set_num_extra_copies, allocate_single_copy, allocate_vars, &
+                                  deallocate_single_copy
 
 use adaptive_inflate_mod,  only : do_varying_ss_inflate, mean_from_restart, sd_from_restart,  &
                                   do_single_ss_inflate, inflate_ens, adaptive_inflate_init,   &
@@ -1708,7 +1703,7 @@
 integer  :: days, secs
 integer  :: copy1_owner, owner_index
 
-call get_copy_owner_index(1, copy1_owner, owner_index)
+call get_copy_owner_index(ens_handle, 1, copy1_owner, owner_index)
 
 if( ens_handle%my_pe == copy1_owner) then
    rkey_bounds = key_bounds
@@ -1753,7 +1748,7 @@
 integer  :: copy1_owner, owner_index
 type(time_type) :: time_from_copy1
 
-call get_copy_owner_index(1, copy1_owner, owner_index)
+call get_copy_owner_index(ens_handle, 1, copy1_owner, owner_index)
 
 if( ens_handle%my_pe == copy1_owner) then
    call get_time(ens_time, secs, days)
@@ -2033,7 +2028,7 @@
 
 do copy_num = ens_size + 1, ens_handle%num_copies
    ! Set time for a given copy of an ensemble
-   call get_copy_owner_index(copy_num, owner, owners_index)


More information about the Dart-dev mailing list