[Dart-dev] DART/branches Revision: 10755
dart at ucar.edu
dart at ucar.edu
Wed Nov 16 12:12:56 MST 2016
thoar at ucar.edu
2016-11-16 12:12:55 -0700 (Wed, 16 Nov 2016)
372
Be forewarned ... there are guts everywhere!
Incomplete attempt to streamline multiple file_info variables and consolidate
file support. Testing with io/test/work/quickbuild.csh ... compiling fails.
Still lots of work to do to support ... everything. preassim, postinflate should
be considered to be unsupported at this time, 'single_file' support is also
nonexistent.
Modified: DART/branches/rma_fixed_filenames/README
===================================================================
--- DART/branches/rma_fixed_filenames/README 2016-11-15 20:18:51 UTC (rev 10754)
+++ DART/branches/rma_fixed_filenames/README 2016-11-16 19:12:55 UTC (rev 10755)
@@ -4,6 +4,15 @@
#
# DART $Id$
+
+U io/state_space_diag_mod.f90
+U io/state_vector_io_mod.f90
+U io/io_filenames_mod.f90
+U smoother/smoother_mod.f90
+U filter/filter_mod.f90
+U adaptive_inflate/adaptive_inflate_mod.f90
+
+
Welcome to DART, the Data Assimilation Research Testbed.
See the bottom of this file for quick-start instructions.
Modified: DART/branches/rma_fixed_filenames/filter/filter_mod.f90
===================================================================
--- DART/branches/rma_fixed_filenames/filter/filter_mod.f90 2016-11-15 20:18:51 UTC (rev 10754)
+++ DART/branches/rma_fixed_filenames/filter/filter_mod.f90 2016-11-16 19:12:55 UTC (rev 10755)
@@ -226,7 +226,10 @@
integer :: num_extras ! the extra ensemble copies
-type(file_info_type) :: file_info
+type(file_info_type) :: file_info_input
+type(file_info_type) :: file_info_preassim
+type(file_info_type) :: file_info_postassim
+type(file_info_type) :: file_info_output
logical :: ds, all_gone, allow_missing, output_inflation
@@ -374,11 +377,19 @@
call trace_message('Before reading in ensemble restart files')
call timestamp_message('Before reading in ensemble restart files')
! Load up the file_info structure with all the namelist options from filter.
-file_info = io_filenames_init(state_ens_handle, single_file_in, single_file_out, &
- input_restart_list = input_restart_file_list, &
- output_restart_list = output_restart_file_list)
+file_info_input = io_filenames_init(state_ens_handle, single_file_in, &
+ restart_list = input_restart_file_list, root_name='input')
+file_info_output = io_filenames_init(state_ens_handle, single_file_out, &
+ restart_list = output_restart_file_list, root_name='output', &
+ check_output_compatibility = .true.)
-call read_state(state_ens_handle, file_info, read_time_from_file, time1, &
+!>@todo FIXME make these conditional
+file_info_preassim = io_filenames_init(state_ens_handle, single_file_out, &
+ root_name='preassim')
+file_info_postassim = io_filenames_init(state_ens_handle, single_file_out, &
+ root_name='postassim')
+
+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
@@ -518,7 +529,7 @@
call all_copies_to_all_vars(state_ens_handle)
call advance_state(state_ens_handle, ens_size, next_ens_time, async, &
- adv_ens_command, tasks_per_model_advance, file_info)
+ adv_ens_command, tasks_per_model_advance, file_info_output, file_info_input)
call all_vars_to_all_copies(state_ens_handle)
! deallocate whole state storage
@@ -620,7 +631,7 @@
!> this will be more memory intensive but faster as we can take advantage
!> of parallel IO.
if (get_output_preassim()) then
- call write_assim_files(state_ens_handle, file_info, &
+ call write_assim_files(state_ens_handle, file_info_preassim, &
ENS_MEAN_COPY, ENS_SD_COPY, PRIOR_INF_COPY, PRIOR_INF_SD_COPY, &
output_inflation)
endif
@@ -754,7 +765,7 @@
if ((output_interval > 0) .and. &
(time_step_number / output_interval * output_interval == time_step_number)) then
if (get_output_postassim()) then
- call write_assim_files(state_ens_handle, file_info, &
+ call write_assim_files(state_ens_handle, file_info_postassim, &
ENS_MEAN_COPY, ENS_SD_COPY, POST_INF_COPY, POST_INF_SD_COPY, &
output_inflation)
endif
@@ -840,7 +851,7 @@
call trace_message('Before writing state restart files if requested')
call timestamp_message('Before writing state restart files if requested')
-call write_state(state_ens_handle, file_info, prior_inflate, post_inflate)
+call write_state(state_ens_handle, file_info_output, prior_inflate, post_inflate)
if(ds) call smoother_write_restart(1, ens_size)
call trace_message('After writing state restart files if requested')
@@ -1806,6 +1817,9 @@
!>todo FIXME JPH : This logic needs to be tested. Previously was using
!> skip_diag() which is depricated.
More information about the Dart-dev
mailing list