MODULE model_mod
Contact: | Kevin Raeder |
Reviewers: | |
Revision: | $Revision: 1.1 $ |
Change Date: | $Date: 2006/06/30 23:43:05 $ |
Change history: | see CVS log |
OVERVIEW
The description of the CAM finite volume (cam-fv) interface is the same as that of
Eulerian, except for the following.
- The FV model_mod.f90 has an internal parameter dycore_name,
which is used in tests to accomodate the staggered grid used for
the US and VS fields.
- Interpolation of surface pressure has been added to this code,
but not the Eulerian code, because surface pressure interpolation to the
staggered US and VS grid is required for ensuing vertical interpolations in pressure
of those fields. Public subroutine model_interpolate2 handles this.
- The state vector has been reorganized, so that US and VS are at the end,
instead of mixed in with the other variables. This would affect the choice
of indices when creating an obs_seq file containing identity obs.
- This model_mod is tailored for assimilating CO observations from MOPITT
and has code to handle rain water and snow mixing ratios, as well as the
standard field types; T, US, VS, Q, CLDLIQ, CLDICE, and PS. Similar modifications
will be necessary for any other fields to be added to the state vector for
different assimilations. See the Eulerian CAM documentation (link above)
for details on this procedure.
- There is code for handling initial files in the format used prior to 3.0.3,
but it has not been tested in the cam-fv model_mod. It has been tested for
Eulerian initial files in the cam model_mod.
PUBLIC INTERFACE
PUBLIC COMPONENTS
The list of interfaces above is the complete public list for this module.
call model_interpolate2(x, location, obs_type, interp_val, istatus)
real(r8), dimension(:), intent(in) :: x
type(location_type), intent(in) :: location
integer, intent(in) :: obs_type
real(r8), intent(out) :: interp_val
integer, intent(out) :: istatus
Description
Given model state, returns the value of observation type interpolated to a given
location by a method of the model's choosing.
Currently only observation type KIND_SURFACE_PRESSURE is used.
If the interpolation is valid, istatus = 0.
In the case where the observational operator is not
defined at the given location (e.g. the observation is below the lowest model level
or above the top level), interp_val is returned as 0.0 and istatus = 1.
x |
Model state vector. |
location |
Location to which to interpolate. |
obs_type |
Integer indexing which type of observation is to be interpolated. |
interp_val |
Value interpolated to location. |
istatus |
Integer flag indicating the success of the interpolation. |
Notes