[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