[Dart-dev] DART/branches Revision: 11884
dart at ucar.edu
dart at ucar.edu
Mon Aug 7 11:15:14 MDT 2017
hendric at ucar.edu
2017-08-07 11:15:13 -0600 (Mon, 07 Aug 2017)
180
moving allow_missing_clm namelist to filter and renaming
it to be allow_missing_r8. Added an extra model for
getting and setting if you can have missing values in your
state.
Index: DART/branches/rma_fix_clm_restarts
===================================================================
--- DART/branches/rma_fix_clm_restarts 2017-08-04 22:26:10 UTC (rev 11883)
+++ DART/branches/rma_fix_clm_restarts 2017-08-07 17:15:13 UTC (rev 11884)
Property changes on: DART/branches/rma_fix_clm_restarts
___________________________________________________________________
Modified: svn:mergeinfo
## -33,7 +33,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:9634-11882
+/DART/branches/rma_trunk:9634-11883
/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/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-04 22:26:10 UTC (rev 11883)
+++ DART/branches/rma_fix_clm_restarts/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-08-07 17:15:13 UTC (rev 11884)
@@ -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
@@ -976,7 +971,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)
@@ -2678,21 +2673,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
-
!--------------------------------------------------------------------
More information about the Dart-dev
mailing list