[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