[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