[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