[Dart-dev] DART/branches Revision: 11773
dart at ucar.edu
dart at ucar.edu
Tue Jun 27 11:13:25 MDT 2017
hendric at ucar.edu
2017-06-27 11:13:23 -0600 (Tue, 27 Jun 2017)
241
moving all of the single_file_io_mod.f90 routines to direct_netcdf_io.
this avoids having to make many of the helper functions public, this
way we have fewer entry points into the moduel, and keeps the related
function inside and private.
Modified: DART/branches/rma_par_single_file/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90
===================================================================
--- DART/branches/rma_par_single_file/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-06-27 16:47:40 UTC (rev 11772)
+++ DART/branches/rma_par_single_file/assimilation_code/modules/assimilation/filter_mod.dopplerfold.f90 2017-06-27 17:13:23 UTC (rev 11773)
@@ -21,18 +21,26 @@
use obs_def_mod, only : obs_def_type, get_obs_def_error_variance, get_obs_def_time, &
get_obs_def_type_of_obs
+
use obs_def_utilities_mod, only : set_debug_fwd_op
+
use time_manager_mod, only : time_type, get_time, set_time, operator(/=), operator(>), &
operator(-), print_time
+
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
+
+use netcdf_utilities_mod, only : nc_get_num_times
+
use assim_model_mod, only : static_init_assim_model, get_model_size, &
end_assim_model, pert_model_copies
+
use assim_tools_mod, only : filter_assim, set_assim_tools_trace, get_missing_ok_status, &
test_state_copies
use obs_model_mod, only : move_ahead, advance_state, set_obs_model_trace
+
use ensemble_manager_mod, only : init_ensemble_manager, end_ensemble_manager, &
ensemble_type, get_copy, get_my_num_copies, put_copy, &
all_vars_to_all_copies, all_copies_to_all_vars, &
@@ -47,13 +55,16 @@
all_copies_to_all_vars, allocate_single_copy, allocate_vars, &
get_single_copy, put_single_copy, deallocate_single_copy, &
print_ens_handle
+
use adaptive_inflate_mod, only : do_varying_ss_inflate, mean_from_restart, sd_from_restart, &
do_single_ss_inflate, inflate_ens, adaptive_inflate_init, &
adaptive_inflate_type, set_inflation_mean_copy , &
log_inflation_info, set_inflation_sd_copy, &
get_minmax_task_zero, do_rtps_inflate
+
use mpi_utilities_mod, only : my_task_id, task_sync, broadcast_send, broadcast_recv, &
task_count
+
use smoother_mod, only : smoother_read_restart, advance_smoother, &
smoother_gen_copy_meta_data, smoother_write_restart, &
init_smoother, do_smoothing, smoother_mean_spread, &
@@ -72,12 +83,12 @@
query_copy_present, COPY_NOT_PRESENT, &
READ_COPY, WRITE_COPY, READ_WRITE_COPY
+use direct_netcdf_mod, only : finalize_single_file_io, write_augmented_state
+
use forward_operator_mod, only : get_obs_ens_distrib_state
use quality_control_mod, only : initialize_qc
-use single_file_io_mod, only : get_num_times_netcdf, write_augmented_state, finalize_singlefile_output
-
!------------------------------------------------------------------------------
implicit none
@@ -597,7 +608,7 @@
call store_input(state_ens_handle, prior_inflate, post_inflate)
else
! if there is only one timestep in your input file insert the mean and sd if requested
- ntimes = get_num_times_netcdf(file_info_input%stage_metadata%filenames(1,1))
+ ntimes = nc_get_num_times(file_info_input%stage_metadata%filenames(1,1))
if (single_file_out) then
if ( ntimes == 1 ) then
call write_augmented_state(state_ens_handle, file_info_input)
@@ -675,14 +686,6 @@
call trace_message('After advancing smoother')
endif
- ! we are going to advance the model - make sure we're doing single file output
- if (.not. has_cycling) then
- call error_handler(E_ERR,'filter:', &
- 'advancing the model inside filter and multiple file output not currently supported', &
- source, revision, revdate, text2='support will be added in subsequent releases', &
- text3='set "single_file_out=.true" for filter to advance the model, or advance the model outside filter')
- endif
-
call trace_message('Ready to run model to advance data ahead in time', 'filter:', -1)
call print_ens_time(state_ens_handle, 'Ensemble data time before advance')
call trace_message('Before running model')
@@ -1095,19 +1098,19 @@
if (single_file_out) then
if (get_stage_to_write('forecast')) &
- call finalize_singlefile_output(file_info_forecast)
+ call finalize_single_file_io(file_info_forecast)
if (get_stage_to_write('preassim')) &
- call finalize_singlefile_output(file_info_preassim)
+ call finalize_single_file_io(file_info_preassim)
if (get_stage_to_write('postassim')) &
- call finalize_singlefile_output(file_info_postassim)
+ call finalize_single_file_io(file_info_postassim)
More information about the Dart-dev
mailing list