[Dart-dev] DART/branches Revision: 11905

dart at ucar.edu dart at ucar.edu
Fri Aug 18 11:35:40 MDT 2017


hendric at ucar.edu
2017-08-18 11:35:36 -0600 (Fri, 18 Aug 2017)
41
making finish touches from code review.




Modified: DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.f90	2017-08-17 22:26:12 UTC (rev 11904)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.f90	2017-08-18 17:35:36 UTC (rev 11905)
@@ -384,7 +384,7 @@
 type(time_type)      :: obs_time, this_obs_time
 
 logical :: do_adapt_inf_update
-logical :: missing_in_state
+logical :: missing_in_state, allow_missing_in_state
 ! for performance, local copies 
 logical :: local_single_ss_inflate
 logical :: local_varying_ss_inflate
@@ -407,7 +407,6 @@
 integer :: istatus 
 integer :: vstatus(obs_ens_handle%my_num_vars) !< for vertical conversion status.
 
-
 ! we are going to read/write the copies array
 call prepare_to_update_copies(ens_handle)
 call prepare_to_update_copies(obs_ens_handle)
@@ -592,6 +591,8 @@
    num_close_states_calls_made = 0
 endif
 
+allow_missing_in_state = get_missing_ok_status()
+
 ! timing
 if (my_task_id() == 0 .and. timing) allocate(elapse_array(obs_ens_handle%num_vars))
 
@@ -971,7 +972,7 @@
    STATE_UPDATE: do j = 1, num_close_states
       state_index = close_state_ind(j)
 
-      if ( get_missing_ok_status() ) then
+      if ( allow_missing_in_state ) then
          ! Some models can take evasive action if one or more of the ensembles have
          ! a missing value. Generally means 'do nothing' (as opposed to DIE)
          missing_in_state = any(ens_handle%copies(1:ens_size, state_index) == MISSING_R8)

Modified: DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90
===================================================================
--- DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90	2017-08-17 22:26:12 UTC (rev 11904)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90	2017-08-18 17:35:36 UTC (rev 11905)
@@ -465,7 +465,7 @@
 type(time_type)      :: obs_time, this_obs_time
 
 logical :: do_adapt_inf_update
-logical :: missing_in_state
+logical :: missing_in_state, allow_missing_in_state
 ! for performance, local copies 
 logical :: local_single_ss_inflate
 logical :: local_varying_ss_inflate
@@ -666,6 +666,8 @@
    num_close_states_calls_made = 0
 endif
 
+allow_missing_in_state = get_missing_ok_status()
+
 ! JPOTERJOY: observation error inflation for PF
 obs_err_infl = 1.0_r8
 if (filter_kind == 9) then
@@ -1232,7 +1234,7 @@
    STATE_UPDATE: do j = 1, num_close_states
       state_index = close_state_ind(j)
 
-      if ( get_missing_ok_status() ) then
+      if ( allow_missing_in_state ) then
          ! Some models can take evasive action if one or more of the ensembles have
          ! a missing value. Generally means 'do nothing' (as opposed to DIE)
          missing_in_state = any(ens_handle%copies(1:ens_size, state_index) == MISSING_R8)

Modified: DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90	2017-08-17 22:26:12 UTC (rev 11904)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90	2017-08-18 17:35:36 UTC (rev 11905)
@@ -9,7 +9,7 @@
 !------------------------------------------------------------------------------
 use types_mod,             only : r8, i8, missing_r8, metadatalength, MAX_NUM_DOMS, MAX_FILES
 
-use options_mod,           only : get_missing_ok_status, set_allow_missing_r8
+use options_mod,           only : get_missing_ok_status, set_missing_ok_status
 
 use obs_sequence_mod,      only : read_obs_seq, obs_type, obs_sequence_type,                  &
                                   get_obs_from_key, set_copy_meta_data, get_copy_meta_data,   &
@@ -247,9 +247,6 @@
 ! If they are encountered, it is not necessarily a FATAL error.
 ! Most of the time, if a MISSING_R8 is encountered, DART should die.
 ! CLM should have allow_missing_clm = .true.
-! maybe POP - but in POP the missing values are land and all ensemble members
-! have the same missing values.  CLM is different in that only some ensemble members may
-! have missing values and so we have a deficient ensemble size at those state locations.
 logical  :: allow_missing_clm = .false.
 
 
@@ -434,7 +431,7 @@
    inf_damping(2) = 1.0_r8  ! no damping
 endif
 
-call set_allow_missing_r8(allow_missing_clm)
+call set_missing_ok_status(allow_missing_clm)


More information about the Dart-dev mailing list