[Dart-dev] DART/branches Revision: 11750

dart at ucar.edu dart at ucar.edu
Tue Jun 20 17:20:32 MDT 2017


hendric at ucar.edu
2017-06-20 17:20:31 -0600 (Tue, 20 Jun 2017)
125

using set_filename_list to make a single array of files from
either a text files or specified as an array in the namelist.




Modified: DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90	2017-06-15 23:39:19 UTC (rev 11749)
+++ DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90	2017-06-20 23:20:31 UTC (rev 11750)
@@ -27,7 +27,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_filename_list
 use assim_model_mod,       only : static_init_assim_model, get_model_size,                    &
                                   end_assim_model,  pert_model_copies
 use assim_tools_mod,       only : filter_assim, set_assim_tools_trace, get_missing_ok_status, &
@@ -180,17 +181,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
@@ -219,16 +220,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, &
@@ -297,7 +298,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(:)
@@ -493,10 +494,10 @@
 
 ! 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.
-call initialize_file_information(num_state_ens_copies, &
-                                 file_info_input, file_info_mean_sd, &
-                                 file_info_forecast, file_info_preassim, &
-                                 file_info_postassim, file_info_analysis, &
+call initialize_file_information(num_state_ens_copies ,                     &
+                                 file_info_input      , file_info_mean_sd,  &
+                                 file_info_forecast   , file_info_preassim, &
+                                 file_info_postassim  , file_info_analysis, &
                                  file_info_output)
 
 call check_file_info_variable_shape(file_info_output, state_ens_handle)
@@ -506,8 +507,8 @@
 call set_inflation_mean_copy( post_inflate,  POST_INF_COPY )
 call set_inflation_sd_copy(   post_inflate,  POST_INF_SD_COPY )
 
-call read_state(state_ens_handle, file_info_input, read_time_from_file, time1, prior_inflate, post_inflate, &
-                perturb_from_single_instance)
+call read_state(state_ens_handle, file_info_input, read_time_from_file, time1, &
+                prior_inflate, post_inflate, perturb_from_single_instance)
 
 ! This must be after read_state


More information about the Dart-dev mailing list