[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