[Dart-dev] DART/branches Revision: 11820
dart at ucar.edu
dart at ucar.edu
Tue Jul 18 09:37:42 MDT 2017
hendric at ucar.edu
2017-07-18 09:37:40 -0600 (Tue, 18 Jul 2017)
248
using set_multiple_filename_lists to set filenames from either
a list of text files input_state_file_list or an array of files
input_state_files.
initializing restarts as a 2 dimensional array (nens x ndoms)
in the io_filenames_init routine.
Modified: DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-07-17 23:20:10 UTC (rev 11819)
+++ DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-07-18 15:37:40 UTC (rev 11820)
@@ -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, &
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, &
@@ -310,7 +314,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(:)
@@ -506,10 +510,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.
More information about the Dart-dev
mailing list