[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