[Dart-dev] DART/branches Revision: 12169
dart at ucar.edu
dart at ucar.edu
Sat Dec 2 14:40:16 MST 2017
nancy at ucar.edu
2017-12-02 14:40:16 -0700 (Sat, 02 Dec 2017)
401
a bunch of small changes: build multiple pressure columns
in a single routine; routines to build pressure columns
at midpoints and interface layers. more structure to
support building height columns. routine to return surface
elevation at a grid point needs to know whether that grid point
is staggered or not. untested so i didn't just replace the
existing model_mod - needs a code review first.
Added: DART/branches/recam/models/cam-fv/model_mod.proposed.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.proposed.f90 (rev 0)
+++ DART/branches/recam/models/cam-fv/model_mod.proposed.f90 2017-12-02 21:40:16 UTC (rev 12169)
@@ -0,0 +1,2814 @@
+! 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, only : MISSING_R8, MISSING_I, i8, r8, vtablenamelength, &
+ gravity
+use time_manager_mod, only : set_time, time_type, set_date, &
+ set_calendar_type, get_date
+use location_mod, only : location_type, set_vertical, set_location, &
+ get_location,get_close_obs, get_close_state, &
+ VERTISUNDEF, VERTISSURFACE, VERTISLEVEL, &
+ VERTISPRESSURE, VERTISHEIGHT, &
+ VERTISSCALEHEIGHT, query_location
+use utilities_mod, only : find_namelist_in_file, check_namelist_read, &
+ string_to_logical, string_to_real,&
+ logfileunit, do_nml_file, do_nml_term, &
+ register_module, error_handler, &
+ file_exist, to_upper, E_ERR, E_MSG
+use obs_kind_mod, only : QTY_SURFACE_ELEVATION, QTY_PRESSURE, &
+ QTY_GEOMETRIC_HEIGHT, QTY_VERTLEVEL, &
+ QTY_SURFACE_PRESSURE, &
+ QTY_TEMPERATURE, QTY_SPECIFIC_HUMIDITY, &
+ get_index_for_quantity, get_num_quantities
+!#! use mpi_utilities_mod
+!#! use random_seq_mod
+use ensemble_manager_mod, only : ensemble_type
+use distributed_state_mod, only : get_state
+use state_structure_mod, only : add_domain, get_dart_vector_index, get_domain_size, &
+ get_dim_name, get_kind_index, get_num_dims, &
+ get_num_variables, get_varid_from_kind, &
+ get_model_variable_indices, state_structure_info
+use netcdf_utilities_mod, only : nc_get_variable, nc_get_variable_size, &
+ nc_add_attribute_to_variable, &
+ nc_define_integer_variable, &
+ nc_define_real_variable, &
+ nc_add_global_creation_time, &
+ nc_add_global_attribute, &
+ nc_define_dimension, nc_put_variable, &
+ nc_sync, nc_enddef, nc_redef, nc_open_readonly, &
+ nc_close, nc_variable_exists
+!#!use location_io_mod
+use quad_utils_mod, only : quad_interp_handle, init_quad_interp, &
+ set_quad_coords, &! finalize_quad_interp, &
+ !>@todo FIXME need to call finalize_quad_interp
+ quad_lon_lat_locate, quad_lon_lat_evaluate, &
+ GRID_QUAD_IRREG_SPACED_REGULAR, &
+ QUAD_LOCATED_CELL_CENTERS
+use default_model_mod, only : adv_1step, init_time, init_conditions, &
+ nc_write_model_vars, pert_model_copies
+
+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 :: static_init_model, &
+ get_model_size, &
+ get_state_meta_data, &
+ model_interpolate, & ! big todo
+ shortest_time_between_assimilations, &
+ nc_write_model_atts, &
+ write_model_time, & ! todo
+ read_model_time, &
+ end_model
+
+! code for these routines are in other modules
+public :: nc_write_model_vars, &
+ pert_model_copies, & ! todo
+ adv_1step, &
+ init_time, &
+ init_conditions, &
+ convert_vertical_obs, & ! todo
+ convert_vertical_state, & ! doing
+ get_close_obs, & ! todo
+ get_close_state ! todo
+
+! 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$"
More information about the Dart-dev
mailing list