[Dart-dev] DART/branches Revision: 11159
dart at ucar.edu
dart at ucar.edu
Mon Feb 27 15:25:39 MST 2017
nancy at ucar.edu
2017-02-27 15:25:32 -0700 (Mon, 27 Feb 2017)
300
add accessor routines for the single 'current time' associated
with an ensemble. not used yet - preparation for future code.
remove the filter.dopplerfold.f90 main program. to compile the
dopplerfold version of filter, include filter.f90 and filter_mod.dopplerfold.f90
instead of filter_mod.f90.
Modified: DART/branches/rma_trunk/ensemble_manager/ensemble_manager_mod.f90
===================================================================
--- DART/branches/rma_trunk/ensemble_manager/ensemble_manager_mod.f90 2017-02-27 22:12:17 UTC (rev 11158)
+++ DART/branches/rma_trunk/ensemble_manager/ensemble_manager_mod.f90 2017-02-27 22:25:32 UTC (rev 11159)
@@ -41,8 +41,8 @@
compute_copy_mean_var, get_copy_owner_index, set_ensemble_time, &
broadcast_copy, prepare_to_write_to_vars, prepare_to_write_to_copies, &
prepare_to_read_from_vars, prepare_to_read_from_copies, prepare_to_update_vars, &
- prepare_to_update_copies, print_ens_handle, &
- map_task_to_pe, map_pe_to_task, &
+ prepare_to_update_copies, print_ens_handle, set_current_time, &
+ map_task_to_pe, map_pe_to_task, get_current_time, &
allocate_single_copy, put_single_copy, get_single_copy, &
deallocate_single_copy
@@ -54,9 +54,12 @@
type ensemble_type
-!> @todo Extra argument to init_ensemble_manager so you could set up an ensemble handle
-!> that allowed transposes (e.g. state, fwd_op) or not allow tranposes( e.g. static data)
+!>@todo Extra argument to init_ensemble_manager so you could set up an ensemble handle
+!>that allowed transposes (e.g. state, fwd_op) or not allow tranposes( e.g. static data)
+!>@todo FIXME the rule here should be that we only access %copies and %vars for efficiency
+!>but every other part of this structure should go through accessor routines.
+
!DIRECT ACCESS INTO STORAGE IS USED TO REDUCE COPYING: BE CAREFUL
!!!private
integer(i8) :: num_vars
@@ -1888,6 +1891,30 @@
end subroutine deallocate_single_copy
+!--------------------------------------------------------------------------------
+!> accessor routines for the single 'current_time'. all mpi tasks must call this
+!> so there's a consistent view of the current time, even if they didn't advance
+!> a model.
+subroutine set_current_time(ens_handle, t)
+
+type(ensemble_type), intent(inout) :: ens_handle
+type(time_type), intent(in) :: t
+
+ens_handle%current_time = t
+
+end subroutine set_current_time
+
+!--------------------------------------------------------------------------------
+
+subroutine get_current_time(ens_handle, t)
+
+type(ensemble_type), intent(in) :: ens_handle
+type(time_type), intent(out) :: t
+
+t = ens_handle%current_time
+
+end subroutine get_current_time
+
!---------------------------------------------------------------------------------
end module ensemble_manager_mod
Deleted: DART/branches/rma_trunk/filter/filter.dopplerfold.f90
===================================================================
--- DART/branches/rma_trunk/filter/filter.dopplerfold.f90 2017-02-27 22:12:17 UTC (rev 11158)
+++ DART/branches/rma_trunk/filter/filter.dopplerfold.f90 2017-02-27 22:25:32 UTC (rev 11159)
@@ -1,2115 +0,0 @@
-! DART software - Copyright UCAR. This open source software is provided
-! by UCAR, "as is", without charge, subject to all terms of use at
-! http://www.image.ucar.edu/DAReS/DART/DART_download
-!
-! $Id$
-
-program filter
-
-!------------------------------------------------------------------------------
-use types_mod, only : r8, missing_r8, metadatalength
-use obs_sequence_mod, only : read_obs_seq, obs_type, obs_sequence_type, &
- get_obs_from_key, set_copy_meta_data, get_copy_meta_data, &
- get_obs_def, get_time_range_keys, set_obs_values, set_obs, &
- write_obs_seq, get_num_obs, get_obs_values, init_obs, &
- assignment(=), get_num_copies, get_qc, get_num_qc, set_qc, &
- static_init_obs_sequence, destroy_obs, read_obs_seq_header, &
- set_qc_meta_data, get_expected_obs, get_first_obs, &
- get_obs_time_range, delete_obs_from_seq, delete_seq_head, &
- delete_seq_tail, replace_obs_values, replace_qc, &
- destroy_obs_sequence, get_qc_meta_data, add_qc
-use obs_def_mod, only : obs_def_type, get_obs_def_error_variance, get_obs_def_time, &
- get_obs_kind
-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, &
- initialize_utilities, logfileunit, nmlfileunit, timestamp, &
- do_output, find_namelist_in_file, check_namelist_read, &
- open_file, close_file, do_nml_file, do_nml_term
-use assim_model_mod, only : static_init_assim_model, get_model_size, &
- netcdf_file_type, init_diag_output, finalize_diag_output, &
- ens_mean_for_model, end_assim_model
-use assim_tools_mod, only : filter_assim, set_assim_tools_trace, get_missing_ok_status
-use obs_model_mod, only : move_ahead, advance_state, set_obs_model_trace
-use ensemble_manager_mod, only : init_ensemble_manager, end_ensemble_manager, &
More information about the Dart-dev
mailing list