[Dart-dev] DART/branches Revision: 11816

dart at ucar.edu dart at ucar.edu
Mon Jul 17 13:22:01 MDT 2017


hendric at ucar.edu
2017-07-17 13:22:00 -0600 (Mon, 17 Jul 2017)
125

moving over files from rma_file_list_nml to new branch.
also including a new subroutine to parse multiple file
name lists.




Modified: DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90	2017-07-17 17:39:49 UTC (rev 11815)
+++ DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90	2017-07-17 19:22:00 UTC (rev 11816)
@@ -30,7 +30,8 @@
 use utilities_mod,         only : register_module,  error_handler, E_ERR, E_MSG, E_DBG,       &
                                   logfileunit, nmlfileunit, timestamp,  &
                                   do_output, find_namelist_in_file, check_namelist_read,      &
-                                  open_file, close_file, do_nml_file, do_nml_term, to_upper
+                                  open_file, close_file, do_nml_file, do_nml_term, to_upper,  &
+                                  set_multiple_filename_lists, set_filename_list, find_textfile_dims
 
 use assim_model_mod,       only : static_init_assim_model, get_model_size,                    &
                                   end_assim_model,  pert_model_copies
@@ -76,14 +77,17 @@
 
 use io_filenames_mod,      only : io_filenames_init, file_info_type, &
                                   combine_file_info, set_file_metadata,  &
-                                  set_member_file_metadata, &
-                                  set_io_copy_flag, check_file_info_variable_shape, &
+                                  set_member_file_metadata,  set_io_copy_flag, &
+                                  check_file_info_variable_shape, check_num_restarts, &
                                   query_copy_present, COPY_NOT_PRESENT, &
-                                  READ_COPY, WRITE_COPY, READ_WRITE_COPY
+                                  READ_COPY, WRITE_COPY, READ_WRITE_COPY, &
+                                  file_info_dump
 
 use direct_netcdf_mod,     only : finalize_single_file_io, write_augmented_state, &
                                   nc_get_num_times
 
+use state_structure_mod,   only : get_num_domains
+
 use forward_operator_mod,  only : get_obs_ens_distrib_state
 
 use quality_control_mod,   only : initialize_qc
@@ -190,17 +194,17 @@
 integer, parameter :: MAXFILES = 200
 !>@todo FIXME - how does this work for multiple domains?  ens1d1, ens2d1, ... ens1d2 or
 !> ens1d1 ens1d2, ens1d1 ens2d2, etc   i like the latter better.
-character(len=256) ::  input_state_files(MAXFILES) = 'null' 
-character(len=256) :: output_state_files(MAXFILES) = 'null' 
+character(len=256) ::  input_state_files(MAXFILES) = '' 
+character(len=256) :: output_state_files(MAXFILES) = '' 
 ! Name of files containing a list of {input,output} restart files, 1 file per domain
-character(len=256) ::  input_state_file_list(MAX_NUM_DOMS) = 'null' 
-character(len=256) :: output_state_file_list(MAX_NUM_DOMS) = 'null'
+character(len=256) ::  input_state_file_list(MAX_NUM_DOMS) = '' 
+character(len=256) :: output_state_file_list(MAX_NUM_DOMS) = ''
 ! Read in a single file and perturb this to create an ensemble
-logical            :: perturb_from_single_instance = .false.
-real(r8)           :: perturbation_amplitude       = 0.2_r8
+logical  :: perturb_from_single_instance = .false.
+real(r8) :: perturbation_amplitude       = 0.2_r8
 ! File options.  Single vs. Multiple.
-logical            :: single_file_in               = .false. ! all copies read  from 1 file
-logical            :: single_file_out              = .false. ! all copies written to 1 file
+logical  :: single_file_in               = .false. ! all copies read  from 1 file
+logical  :: single_file_out              = .false. ! all copies written to 1 file
 
 ! Stages to write.  Valid values are:
 ! multi-file:    input, forecast, preassim, postassim, analysis, output
@@ -229,16 +233,16 @@
 ! Inflation namelist entries follow, first entry for prior, second for posterior
 ! inf_flavor is 0:none, 1:obs space, 2: varying state space, 3: fixed state_space,
 ! 4 is rtps (relax to prior spread)
-integer              :: inf_flavor(2)                  = 0
-logical              :: inf_initial_from_restart(2)    = .false.
-logical              :: inf_sd_initial_from_restart(2) = .false.
-logical              :: inf_deterministic(2)           = .true.
-real(r8)             :: inf_initial(2)                 = 1.0_r8
-real(r8)             :: inf_sd_initial(2)              = 0.0_r8
-real(r8)             :: inf_damping(2)                 = 1.0_r8
-real(r8)             :: inf_lower_bound(2)             = 1.0_r8
-real(r8)             :: inf_upper_bound(2)             = 1000000.0_r8
-real(r8)             :: inf_sd_lower_bound(2)          = 0.0_r8
+integer  :: inf_flavor(2)                  = 0
+logical  :: inf_initial_from_restart(2)    = .false.
+logical  :: inf_sd_initial_from_restart(2) = .false.
+logical  :: inf_deterministic(2)           = .true.
+real(r8) :: inf_initial(2)                 = 1.0_r8
+real(r8) :: inf_sd_initial(2)              = 0.0_r8
+real(r8) :: inf_damping(2)                 = 1.0_r8
+real(r8) :: inf_lower_bound(2)             = 1.0_r8
+real(r8) :: inf_upper_bound(2)             = 1000000.0_r8
+real(r8) :: inf_sd_lower_bound(2)          = 0.0_r8
 
 namelist /filter_nml/ async, adv_ens_command, ens_size, tasks_per_model_advance, &
    output_members, obs_sequence_in_name, obs_sequence_out_name, &
@@ -307,7 +311,7 @@
 type(file_info_type) :: file_info_output
 type(file_info_type) :: file_info_all
 
-logical                 :: ds, all_gone, allow_missing
+logical :: ds, all_gone, allow_missing
 
 ! real(r8), allocatable   :: temp_ens(:) ! for smoother
 real(r8), allocatable   :: prior_qc_copy(:)
@@ -503,21 +507,27 @@
 
 ! for now, assume that we only allow cycling if single_file_out is true.
 ! code in this call needs to know how to initialize the output files.


More information about the Dart-dev mailing list