[Dart-dev] DART/branches Revision: 12764

dart at ucar.edu dart at ucar.edu
Wed Aug 8 13:23:22 MDT 2018


hendric at ucar.edu
2018-08-08 13:23:21 -0600 (Wed, 08 Aug 2018)
30

updating merge information.




Index: DART/branches/pertirb_tool
===================================================================
--- DART/branches/pertirb_tool	2018-08-07 20:09:20 UTC (rev 12763)
+++ DART/branches/pertirb_tool	2018-08-08 19:23:21 UTC (rev 12764)

Property changes on: DART/branches/pertirb_tool
___________________________________________________________________
Modified: svn:mergeinfo
## -40,7 +40,7 ##
 /DART/branches/rma_sprint:8095-8166
 /DART/branches/rma_state_structure_test_dir:9472-9676
 /DART/branches/rma_state_structure_unit_test:9691-10268
-/DART/branches/rma_trunk:12695-12742
+/DART/branches/rma_trunk:12695-12763
 /DART/branches/rma_trunk_clamping:8786-8801
 /DART/branches/rma_trunk_filename:8011-8157
 /DART/branches/rma_trunk_get_state_fun:8568-8596
Modified: DART/branches/pertirb_tool/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/pertirb_tool/assimilation_code/modules/assimilation/assim_tools_mod.f90	2018-08-07 20:09:20 UTC (rev 12763)
+++ DART/branches/pertirb_tool/assimilation_code/modules/assimilation/assim_tools_mod.f90	2018-08-08 19:23:21 UTC (rev 12764)
@@ -54,7 +54,7 @@
 
 use mpi_utilities_mod,    only : my_task_id, broadcast_send, broadcast_recv,              & 
                                  sum_across_tasks, task_count, start_mpi_timer,           &
-                                 read_mpi_timer
+                                 read_mpi_timer, task_sync
 
 use adaptive_inflate_mod, only : do_obs_inflate,  do_single_ss_inflate, do_ss_inflate,    &
                                  do_varying_ss_inflate,                                   &
@@ -323,11 +323,7 @@
 integer,                     intent(in)    :: OBS_PRIOR_VAR_START, OBS_PRIOR_VAR_END
 logical,                     intent(in)    :: inflate_only
 
-!>@todo FIXME this routine has a huge amount of local/stack storage.
-!>at some point does it need to be allocated instead?  this routine isn't
-!>called frequently so doing allocate/deallocate isn't a timing issue.  
-!>putting arrays on the stack is fast, but risks running out of stack space 
-!>and dying with strange errors.
+! changed the ensemble sized things here to allocatable
 
 real(r8) :: obs_prior(ens_size), obs_inc(ens_size), increment(ens_size)
 real(r8) :: reg_factor, impact_factor
@@ -339,37 +335,44 @@
 real(r8) :: r_mean, r_var
 real(r8) :: orig_obs_prior_mean(num_groups), orig_obs_prior_var(num_groups)
 real(r8) :: obs_prior_mean(num_groups), obs_prior_var(num_groups)
-real(r8) :: close_obs_dist(obs_ens_handle%my_num_vars)
-real(r8) :: close_state_dist(ens_handle%my_num_vars)
-real(r8) :: last_close_obs_dist(obs_ens_handle%my_num_vars)
-real(r8) :: last_close_state_dist(ens_handle%my_num_vars)
 real(r8) :: diff_sd, outlier_ratio
+real(r8) :: vertvalue_obs_in_localization_coord, whichvert_real
+real(r8), allocatable :: close_obs_dist(:)
+real(r8), allocatable :: close_state_dist(:)
+real(r8), allocatable :: last_close_obs_dist(:)
+real(r8), allocatable :: last_close_state_dist(:)
 
 integer(i8) :: state_index
-integer(i8) :: my_state_indx(ens_handle%my_num_vars)
-integer(i8) :: my_obs_indx(obs_ens_handle%my_num_vars)
+integer(i8), allocatable :: my_state_indx(:)
+integer(i8), allocatable :: my_obs_indx(:)
 
 integer  :: my_num_obs, i, j, owner, owners_index, my_num_state
-integer  :: this_obs_key, obs_mean_index, obs_var_index
+integer :: obs_mean_index, obs_var_index
 integer  :: grp_beg(num_groups), grp_end(num_groups), grp_size, grp_bot, grp_top, group
-integer  :: close_obs_ind(obs_ens_handle%my_num_vars)
-integer  :: close_state_ind(ens_handle%my_num_vars)
-integer  :: last_close_obs_ind(obs_ens_handle%my_num_vars)
-integer  :: last_close_state_ind(ens_handle%my_num_vars)
 integer  :: num_close_obs, obs_index, num_close_states
 integer  :: total_num_close_obs, last_num_close_obs, last_num_close_states
-integer  :: base_obs_kind, base_obs_type, my_obs_kind(obs_ens_handle%my_num_vars)
-integer  :: my_obs_type(obs_ens_handle%my_num_vars)
-integer  :: my_state_kind(ens_handle%my_num_vars), nth_obs
+integer :: base_obs_kind, base_obs_type, nth_obs
 integer  :: num_close_obs_cached, num_close_states_cached
 integer  :: num_close_obs_calls_made, num_close_states_calls_made
-! GSR add new count for only the 'assimilate' type close obs in the tile
 integer  :: localization_unit, secs, days, rev_num_close_obs
+integer :: whichvert_obs_in_localization_coord
+integer :: istatus
+integer, allocatable :: close_obs_ind(:)
+integer, allocatable :: close_state_ind(:)
+integer, allocatable :: last_close_obs_ind(:)
+integer, allocatable :: last_close_state_ind(:)
+integer, allocatable :: my_obs_kind(:)
+integer, allocatable :: my_obs_type(:)
+integer, allocatable :: my_state_kind(:)
+integer, allocatable :: vstatus(:)
+
 character(len = 200)  :: base_loc_text   ! longer than longest location formatting possible
 
-type(location_type)  :: my_obs_loc(obs_ens_handle%my_num_vars)
 type(location_type)  :: base_obs_loc, last_base_obs_loc, last_base_states_loc
-type(location_type)  :: my_state_loc(ens_handle%my_num_vars), dummyloc
+type(location_type) :: dummyloc
+type(location_type), allocatable :: my_obs_loc(:)
+type(location_type), allocatable :: my_state_loc(:)


More information about the Dart-dev mailing list