[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