[Dart-dev] DART/branches Revision: 11903

dart at ucar.edu dart at ucar.edu
Thu Aug 17 16:05:31 MDT 2017


hendric at ucar.edu
2017-08-17 16:05:30 -0600 (Thu, 17 Aug 2017)
484
updates from the code review.  changed 
  sv_to_restart             and clm_to_dart_state_vector to 
  fill_missing_r8_with_orit and mark_missingr8_values 
renamed some local variables, using track_status to for
interpolating QTY_SOIL_MOISTURE.

to avoid circular dependencies added a new module 
obs_def_utilities.f90.

everything seems to be working as expected.  there is still
a little more work left in fixing up the path_names for 
all of the models to include the new module.




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 03:33:25 UTC (rev 11902)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.pf.f90	2017-08-17 22:05:30 UTC (rev 11903)
@@ -11,11 +11,16 @@
 !> 
 !> @{
 use      types_mod,       only : r8, i8, digits12, PI, missing_r8
+
+use    options_mod,       only : get_missing_ok_status
+
 use  utilities_mod,       only : file_exist, get_unit, check_namelist_read, do_output,    &
                                  find_namelist_in_file, register_module, error_handler,   &
                                  E_ERR, E_MSG, nmlfileunit, do_nml_file, do_nml_term,     &
                                  open_file, close_file, timestamp
+
 use       sort_mod,       only : index_sort 
+
 use random_seq_mod,       only : random_seq_type, random_gaussian, init_random_seq,       &
                                  random_uniform
 
@@ -76,7 +81,6 @@
 
 public :: filter_assim, &
           set_assim_tools_trace, &
-          get_missing_ok_status, &
           test_state_copies, &
           update_ens_from_weights  ! Jeff thinks this routine is in the wild.
 
@@ -155,12 +159,6 @@
 logical  :: rectangular_quadrature          = .true.
 logical  :: gaussian_likelihood_tails       = .false.
 
-! Some models are allowed to have MISSING_R8 values in the DART state vector.
-! 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 and POP (more?) should have allow_missing_in_clm = .true.
-logical  :: allow_missing_in_clm = .false.
-
 ! False by default; if true, expect to read in an ascii table
 ! to adjust the impact of obs on other state vector and obs values.
 logical            :: adjust_obs_impact  = .false.
@@ -193,7 +191,7 @@
    pf_kddm, frac_neff, pf_alpha,                                           &
    output_localization_diagnostics, localization_diagnostics_file,         &
    special_localization_obs_types, special_localization_cutoffs,           &
-   allow_missing_in_clm, distribute_mean, close_obs_caching,               &
+   distribute_mean, close_obs_caching,               &
    adjust_obs_impact, obs_impact_filename,                                 &  
    allow_any_impact_values, lanai_bitwise ! don't document these last two for now
 
@@ -1234,7 +1232,7 @@
    STATE_UPDATE: do j = 1, num_close_states
       state_index = close_state_ind(j)
 
-      if ( allow_missing_in_clm ) then
+      if ( get_missing_ok_status() ) 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)
@@ -3624,21 +3622,6 @@
 
 end subroutine set_assim_tools_trace
 
-!------------------------------------------------------------------------
-
-function get_missing_ok_status()
- logical :: get_missing_ok_status
-
-! see if the namelist variable allows missing values in the
-! model state or not.
-
-! Initialize assim_tools_module if needed
-if (.not. module_initialized) call assim_tools_init()
-
-get_missing_ok_status = allow_missing_in_clm
-
-end function get_missing_ok_status
-
 !--------------------------------------------------------------------
 
 function revised_distance(orig_dist, newcount, oldcount, base, cutfloor)

Modified: DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.f90	2017-08-17 03:33:25 UTC (rev 11902)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/filter_mod.f90	2017-08-17 22:05:30 UTC (rev 11903)
@@ -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


More information about the Dart-dev mailing list