[Dart-dev] DART/branches Revision: 10786

dart at ucar.edu dart at ucar.edu
Tue Dec 13 16:12:49 MST 2016


hendric at ucar.edu
2016-12-13 16:12:46 -0700 (Tue, 13 Dec 2016)
488
adding option to write out all stages at the end of the assimilation.
this requires storing all of the extra copies.  removed 'spare' copies
from the copies_on_off_mod.f90.  copies should be associated with the 
program using the ensemble manager and not directly linked to the io
modules.  This gives us more flexibility to add new copies to the
state_ensemble_handle with corresponding filenames. everything compiles
and runs but still need to add meta-data for which copies to write.




Modified: DART/branches/rma_fixed_filenames/assim_tools/assim_tools_mod.f90
===================================================================
--- DART/branches/rma_fixed_filenames/assim_tools/assim_tools_mod.f90	2016-12-08 23:34:20 UTC (rev 10785)
+++ DART/branches/rma_fixed_filenames/assim_tools/assim_tools_mod.f90	2016-12-13 23:12:46 UTC (rev 10786)
@@ -382,7 +382,7 @@
 integer :: vstatus !< for vertical conversion status. Can we just smash the dart qc instead?
 
 !HK debug
-lanai_bitwise = .false.
+lanai_bitwise = .true.
 
 ! we are going to read/write the copies array
 call prepare_to_update_copies(ens_handle)

Modified: DART/branches/rma_fixed_filenames/filter/filter_mod.f90
===================================================================
--- DART/branches/rma_fixed_filenames/filter/filter_mod.f90	2016-12-08 23:34:20 UTC (rev 10785)
+++ DART/branches/rma_fixed_filenames/filter/filter_mod.f90	2016-12-13 23:12:46 UTC (rev 10786)
@@ -65,7 +65,8 @@
                                   set_stage_to_write, get_stage_to_write
 
 use io_filenames_mod,      only : io_filenames_init, file_info_type, file_info_dump, &
-                                  set_file_metadata
+                                  combine_file_info, set_file_metadata, set_member_file_metadata, &
+                                  READ_COPY, WRITE_COPY, READ_WRITE_COPY
 
 use forward_operator_mod,  only : get_obs_ens_distrib_state
 use quality_control_mod,   only : initialize_qc
@@ -73,12 +74,7 @@
 use state_space_diag_mod,  only : init_state_space_diag, netcdf_file_type
 
 ! state copy meta data
-use copies_on_off_mod, only : ENS_MEAN_COPY, ENS_SD_COPY, PRIOR_INF_COPY, &
-                              PRIOR_INF_SD_COPY,POST_INF_COPY, POST_INF_SD_COPY, &
-                              SPARE_PRIOR_MEAN, SPARE_PRIOR_SPREAD, SPARE_PRIOR_INF_MEAN, &
-                              SPARE_PRIOR_INF_SPREAD, SPARE_POST_INF_MEAN, &
-                              SPARE_POST_INF_SPREAD, query_copy_present, &
-                              set_has_units
+use copies_on_off_mod, only : query_copy_present, print_copy_info, COPY_NOT_PRESENT
 
 !------------------------------------------------------------------------------
 
@@ -103,7 +99,36 @@
 
 ! Defining whether diagnostics are for prior or posterior
 integer, parameter :: PRIOR_DIAG = 0, POSTERIOR_DIAG = 2
+logical :: output_inflation = .false.
 
+! Ensemble copy numbers
+integer :: ENS_MEM_START            = COPY_NOT_PRESENT
+integer :: ENS_MEM_END              = COPY_NOT_PRESENT
+integer :: ENS_MEAN_COPY            = COPY_NOT_PRESENT
+integer :: ENS_SD_COPY              = COPY_NOT_PRESENT
+integer :: PRIOR_INF_COPY           = COPY_NOT_PRESENT
+integer :: PRIOR_INF_SD_COPY        = COPY_NOT_PRESENT
+integer :: POST_INF_COPY            = COPY_NOT_PRESENT
+integer :: POST_INF_SD_COPY         = COPY_NOT_PRESENT
+integer :: INPUT_MEAN               = COPY_NOT_PRESENT
+integer :: INPUT_SD                 = COPY_NOT_PRESENT
+integer :: PREASSIM_MEM_START       = COPY_NOT_PRESENT
+integer :: PREASSIM_MEM_END         = COPY_NOT_PRESENT
+integer :: PREASSIM_PRIOR_MEAN      = COPY_NOT_PRESENT
+integer :: PREASSIM_PRIOR_SD        = COPY_NOT_PRESENT
+integer :: PREASSIM_PRIORINF_MEAN   = COPY_NOT_PRESENT
+integer :: PREASSIM_PRIORINF_SD     = COPY_NOT_PRESENT
+integer :: PREASSIM_POSTINF_MEAN    = COPY_NOT_PRESENT
+integer :: PREASSIM_POSTINF_SD      = COPY_NOT_PRESENT
+integer :: POSTASSIM_MEM_START      = COPY_NOT_PRESENT
+integer :: POSTASSIM_MEM_END        = COPY_NOT_PRESENT
+integer :: POSTASSIM_POST_MEAN      = COPY_NOT_PRESENT
+integer :: POSTASSIM_POST_SD        = COPY_NOT_PRESENT
+integer :: POSTASSIM_PRIORINF_MEAN  = COPY_NOT_PRESENT
+integer :: POSTASSIM_PRIORINF_SD    = COPY_NOT_PRESENT
+integer :: POSTASSIM_POSTINF_MEAN   = COPY_NOT_PRESENT
+integer :: POSTASSIM_POSTINF_SD     = COPY_NOT_PRESENT
+
 !----------------------------------------------------------------
 ! Namelist input with default values
 !
@@ -148,6 +173,7 @@
 logical :: output_restarts  = .true. 
 logical :: output_mean      = .true.
 logical :: output_sd        = .true.
+logical :: write_all_stages_at_end = .false.
 
 character(len=256) :: obs_sequence_in_name  = "obs_seq.out",    &
                       obs_sequence_out_name = "obs_seq.final",  &
@@ -191,7 +217,7 @@
    single_file_in, single_file_out, &
    perturb_from_single_instance, perturbation_amplitude, &
    stages_to_write, num_output_state_members, &
-   output_restarts, output_mean, output_sd
+   output_restarts, output_mean, output_sd, write_all_stages_at_end 
 
 
 
@@ -228,6 +254,7 @@
 integer                 :: OBS_MEAN_START, OBS_MEAN_END
 integer                 :: OBS_VAR_START, OBS_VAR_END, TOTAL_OBS_COPIES
 integer                 :: input_qc_index, DART_qc_index
+integer                 :: num_state_ens_copies


More information about the Dart-dev mailing list