[Dart-dev] DART/branches Revision: 12029

dart at ucar.edu dart at ucar.edu
Thu Nov 2 10:22:27 MDT 2017


nancy at ucar.edu
2017-11-02 10:22:21 -0600 (Thu, 02 Nov 2017)
98
cribbed form ROMS, very minimal skeleton into which
the existing cam functions will be inserted.




Added: DART/branches/recam/models/cam-fv/new_model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/new_model_mod.f90	                        (rev 0)
+++ DART/branches/recam/models/cam-fv/new_model_mod.f90	2017-11-02 16:22:21 UTC (rev 12029)
@@ -0,0 +1,956 @@
+! 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$
+!----------------------------------------------------------------
+!>
+!> This is the interface between the CAM-FV atmosphere model and DART.
+!> The required public interfaces and arguments CANNOT be changed.
+!>
+!----------------------------------------------------------------
+
+module model_mod
+
+!>@todo FIXME fill in the actual names we use after we've gotten
+!>further into writing the coded
+
+use             types_mod
+use      time_manager_mod
+use          location_mod
+use         utilities_mod
+use          obs_kind_mod
+use     mpi_utilities_mod
+use        random_seq_mod
+use  ensemble_manager_mod
+use distributed_state_mod
+use   state_structure_mod
+use  netcdf_utilities_mod
+use       location_io_mod
+use     default_model_mod
+
+use netcdf
+
+implicit none
+private
+
+! these routines must be public and you cannot change
+! the arguments - they will be called *from* the DART code.
+
+! routines in this list have code in this module
+public :: get_model_size,                &
+          get_state_meta_data,           &
+          static_init_model,             &
+          model_interpolate,             &
+          shortest_time_between_assimilations, &
+          convert_vertical_obs,          &
+          convert_vertical_state,        &
+          end_model,                     &
+          nc_write_model_atts,           &
+          write_model_time,              &
+          read_model_time
+
+! code for these routines are in other modules
+public :: nc_write_model_vars,           &
+          pert_model_copies,             &
+          adv_1step,                     &
+          init_time,                     &
+          init_conditions,               &
+          get_close_obs,                 &
+          get_close_state
+
+! version controlled file description for error handling, do not edit
+character(len=256), parameter :: source   = &
+   "$URL$"
+character(len=32 ), parameter :: revision = "$Revision$"
+character(len=128), parameter :: revdate  = "$Date$"
+
+character(len=512) :: string1, string2, string3
+logical, save :: module_initialized = .false.
+
+! things which can/should be in the model_nml
+integer  :: assimilation_period_days     = 0
+integer  :: assimilation_period_seconds  = 21600
+integer  :: vert_localization_coord      = VERTISPRESSURE
+integer  :: debug = 0   ! turn up for more and more debug messages
+logical  :: minimal_output = .false.
+character(len=256) :: cam_grid_filename = 'caminput.nc'
+character(len=256) :: cam_phis_filename = 'camphis.nc'
+
+namelist /model_nml/  &
+   assimilation_period_days,    &
+   assimilation_period_seconds, &
+   cam_grid_filename,           &
+   cam_phis_filename,           &
+   vert_localization_coord,     &
+   minimal_output,              &
+   debug,                       &
+   variables
+
+! DART contents are specified in the input.nml:&model_nml namelist.
+!>@todo  NF90_MAX_NAME is 256 ... this makes the namelist output unreadable
+integer, parameter :: MAX_STATE_VARIABLES = 8
+integer, parameter :: num_state_table_columns = 5
+character(len=vtablenamelength) :: variables(MAX_STATE_VARIABLES * num_state_table_columns ) = ' '
+character(len=vtablenamelength) :: var_names(MAX_STATE_VARIABLES) = ' '
+logical  ::                   update_list(MAX_STATE_VARIABLES) = .FALSE.


More information about the Dart-dev mailing list