[Dart-dev] DART/branches Revision: 11519
dart at ucar.edu
dart at ucar.edu
Tue Apr 25 15:48:58 MDT 2017
nancy at ucar.edu
2017-04-25 15:48:54 -0600 (Tue, 25 Apr 2017)
72
convert model_mod to new interfaces; update path_names
files to match.
Modified: DART/branches/model_mod_changes/models/cm1/model_mod.f90
===================================================================
--- DART/branches/model_mod_changes/models/cm1/model_mod.f90 2017-04-25 20:22:19 UTC (rev 11518)
+++ DART/branches/model_mod_changes/models/cm1/model_mod.f90 2017-04-25 21:48:54 UTC (rev 11519)
@@ -18,10 +18,10 @@
operator(/=), operator(<=)
use location_mod, only : location_type, get_dist, query_location, &
- get_close_maxdist_init, get_close_type, &
- set_location, get_location, &
- get_close_obs_init, write_location, &
- loc_get_close_obs => get_close_obs, set_periodic
+ get_close_type, set_location, get_location, &
+ write_location, get_close_obs, get_close_state, &
+ convert_vertical_obs, convert_vertical_state, &
+ set_periodic
use utilities_mod, only : register_module, error_handler, &
E_ERR, E_WARN, E_MSG, logfileunit, get_unit, &
@@ -34,6 +34,9 @@
use obs_kind_mod, only : get_index_for_quantity, &
get_name_for_quantity
+use netcdf_utilities_mod, only : nc_add_global_attribute, nc_sync, &
+ nc_add_global_creation_time, nc_redef, nc_enddef
+
use mpi_utilities_mod, only : my_task_id
use random_seq_mod, only : random_seq_type, init_random_seq, random_gaussian
@@ -49,6 +52,9 @@
get_num_variables, &
get_num_dims
+use default_model_mod, only : pert_model_copies, nc_write_model_vars, &
+ adv_1step, init_time, init_conditions
+
use ensemble_manager_mod, only : ensemble_type, copies_in_window
use typesizes
@@ -59,23 +65,26 @@
! these routines must be public and you cannot change
! the arguments - they will be called *from* the DART code.
+
+!> required routines with code in this module
public :: static_init_model, &
get_model_size, &
- adv_1step, &
get_state_meta_data, &
model_interpolate, &
- get_model_time_step, &
+ shortest_time_between_assimilations, &
end_model, &
+ nc_write_model_atts
+
+!> required routines where code is in other modules
+public:: nc_write_model_vars, &
+ pert_model_copies, &
+ get_close_obs, &
+ get_close_state, &
+ convert_vertical_obs, &
+ convert_vertical_state, &
init_time, &
init_conditions, &
- nc_write_model_atts, &
- nc_write_model_vars, &
- pert_model_copies, &
- get_close_maxdist_init, &
- get_close_obs_init, &
- get_close_obs, &
- query_vert_localization_coord, &
- vert_convert, &
+ adv_1step, &
read_model_time, &
write_model_time
@@ -372,40 +381,14 @@
end function get_model_size
-
!------------------------------------------------------------------
-! i'm assuming that we can't call CM1 as a subroutine. if that's not
-! correct we can fill this in. otherwise it's an error to try it.
-
-subroutine adv_1step(x, time)
-
-real(r8), intent(inout) :: x(:)
-type(time_type), intent(in) :: time
-
-if ( .not. module_initialized ) call static_init_model()
-
-if (do_output()) then
- call print_time(time,'adv_1step called with DART time of')
- call print_time(time,'adv_1step called with DART time of', logfileunit)
-endif
-
-call error_handler(E_ERR, 'adv_1step', &
- 'Cannot advance CM1 with a subroutine call; async cannot equal 0', &
- source,revision,revdate)
More information about the Dart-dev
mailing list