The B-grid dynamical core can be run as a shallow water model by
setting the number of model levels to ONE. Since the same computer
code is used for the shallow water version, some prognostic variables
represent different fields. The surface pressure (ps) now represents
the free surface geopotential height and temperature becomes another
tracer. The zonal and meridional wind components (u,v) are the same.
Not all terms can be applied in the shallow water version.
Namelist values should be set to turn off these terms.
Here is a list of terms that should not be used:
* vertical advection (set to NONE)
* slope correction in bgrid_horiz_diff (set to zero)
* energy conservation (set to FALSE)
* pgf scheme should be set to default
* sponge should probably not be used
Diagnostic fields have not been modified for the shallow water version.
Some fields have no meaning in the one level model.
(For example: zsurf, omega, pres_full, pres_half.)
PUBLIC INTERFACE
use atmosphere_mod [,only: atmosphere_init, atmosphere_end,
atmosphere,
atmosphere_resolution, atmosphere_boundary,
get_atmosphere_axes ]
NOTES
1) Optional namelist interface &atmosphere_nml may be
read from file input.nml.
PUBLIC ROUTINES
call atmosphere_init ( Time_init, Time, Time_step )
DESCRIPTION
Initialization routine for running the bgrid dynamical core.
INPUT
Time_init The base (or initial) time for the experiment.
The base time is usually subtracted from the current time
when outputting time in diagnostic routines.
[time_type]
Time The current time. [time_type]
Time_step The atmospheric model/physics time step. [time_type]
call atmosphere_end
DESCRIPTION
This routine terminates the module.
There are no arguments to this routine.
call atmosphere ( Time )
DESCRIPTION
Advances the B-grid prognostic variables one time step forward.
The dynamical core, forcing for shallow water model, diagnostics,
and time differencing are all called. This routine should only
be called once per time step.
INPUT
Time The current time. [time_type]
NOTE
The prognostic variables are stored in a private data structure
(i.e., derived-type variable) defined in the specification section
of this module.
---------------------------------------------------------------------
call get_atmosphere_axes ( axes )
OUTPUT
axes Axis identifiers for the atmospheric grids as returned by the
diagnostics manager. The size of axes must be: 1 <= size(axes) <= 4.
The axes returned are ordered: (/ x, y, p_full, p_half /).
[integer, dimension(:)]
call atmosphere_resolution ( nlon, nlat [, global] )
DESCRIPTION
Returns the resolution of compute domain for either the
current processor or the global domain.
OUTPUT
nlon The number of longitude points in the compute domain.
[integer]
nlat The number of latitude points in the compute domain.
[integer]
OPTIONAL INPUT
global Flag that specifies whether the returned compute domain size is
for the global grid (TRUE) or for the current processor (FALSE).
[logical, default: FALSE]
call atmosphere_boundary ( blon, blat [, global] )
DESCRIPTION
Returns the grid box edges of compute domain for either the
current processor or the global domain.
OUTPUT
blon The west-to-east longitude edges of grid boxes (in radians).
[real, dimension(nlon+1)]
blat The south-to-north latitude edges of grid boxes (in radians).
[real, dimension(nlat+1)]
OPTIONAL INPUT
global Flag that specifies whether the returned grid box edges are
for the global grid (TRUE) or for the current processor (FALSE).
[logical, default: FALSE]
NOTE
The size of the output arguments, blon and blat, must be +1 more than the
output arguments for call atmosphere_resolution, nlon+1 and nlat+1, respectively.