[Dart-dev] DART/branches Revision: 11920

dart at ucar.edu dart at ucar.edu
Tue Aug 29 16:20:46 MDT 2017


hendric at ucar.edu
2017-08-29 16:20:46 -0600 (Tue, 29 Aug 2017)
682
merging the rma_fix_clm_restart branch into the trunk.

clm_restart files are now bitwise with the trunk, with
the exception of H2OSNO, which has some slight
differences which has to do with the order which 
clamping is applied.

adding clm_to_dart and dart_to_clm, which marks missing_r8
values to the state.  There is one additional namelist for
filter_nml 'allow_missing_clm' which is only to be used for 
CLM assimilation. this was previously in assim_tools_nml

there is an additional module options_mod.f90 which gets and 
sets whether or not you can have missing values in your state
vector.  this avoids circular dependencies and can be accessed
directly by the model_mod.




Index: DART/branches/rma_trunk
===================================================================
--- DART/branches/rma_trunk	2017-08-29 20:36:59 UTC (rev 11919)
+++ DART/branches/rma_trunk	2017-08-29 22:20:46 UTC (rev 11920)

Property changes on: DART/branches/rma_trunk
___________________________________________________________________
Modified: svn:mergeinfo
## -12,6 +12,7 ##
 /DART/branches/rma_cice:10649-10852
 /DART/branches/rma_clm:8905-9126
 /DART/branches/rma_diag:9623-9737
+/DART/branches/rma_fix_clm_restarts:9634-11919
 /DART/branches/rma_fixed_filenames:10702-10895
 /DART/branches/rma_kinds_to_state_structure:8952-9431
 /DART/branches/rma_kinds_to_state_strucutre:8903-8951
Modified: DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90	2017-08-29 20:36:59 UTC (rev 11919)
+++ DART/branches/rma_trunk/assimilation_code/modules/assimilation/assim_tools_mod.f90	2017-08-29 22:20:46 UTC (rev 11920)
@@ -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
 
@@ -74,7 +79,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.
 
@@ -151,15 +155,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 should have allow_missing_in_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_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.
@@ -208,7 +203,7 @@
    print_every_nth_obs, rectangular_quadrature, gaussian_likelihood_tails, &
    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,        &
    convert_all_state_verticals_first, convert_all_obs_verticals_first,     &
    lanai_bitwise ! don't document this one -- only used for regression tests
@@ -389,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
@@ -412,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)
@@ -597,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))
 
@@ -976,7 +972,7 @@
    STATE_UPDATE: do j = 1, num_close_states
       state_index = close_state_ind(j)
 
-      if ( allow_missing_in_clm ) then


More information about the Dart-dev mailing list