Contact: Joe Sirutis
Reviewers:
Tags/Status
Dry Adiabatic Adjustment Module
An adjustment to neutral stability is done wherever the model
lapse rate is unstable with respect to the dry adiabatic lapse rate.
Given a temperature profile at the model's pressure levels, this
module checks for instability with respect to the dry adiabatic
lapse rate. Where instability exists the temperature is adjusted
to neutral stability such that the vertical integral of potential
temperature is conserved. The output from this module is a
temperature tendency.
This parameterization is a substitute for the vertical diffusion of
temperature and should NOT be used if the vertical diffusion scheme
being used already does this.
constants_mod
utilities_mod
use dry_adj_mod [,only: dry_adj_init, dry_adj, dry_adj_bdgt]
dry_adj_init - Called once to initialize dry_adj. Also reads namelist.
Must be called before dry_adj.
dry_adj - Does dry adiabatic adjustment
dry_adj_bdgt - Optional debugging tool. Can be called to do budget checks
for tendencies computed in dry_adj.
Notes:
* A namelist interface ( &dry_adj_nml ) controls runtime options.
call dry_adj_init ()
There are no arguments to this routine
---------------------------------------------------------------------
call dry_adj ( temp0, pres, pres_in, dtemp, mask )
input
temp0 Temperature [deg k] at full model levels,
[real, dimension(:,:,nlev)]
pres Pressure at full levels in pascals
[real, dimension(:,:,nlev)]
pres_int Pressure at half levels in pascals
[real, dimension(:,:,nlev+1)]
output
dtemp Temperature tendency [deg k/time step]
[real, dimension(:,:,nlev)]
input (optional) - for use with the step-mountain (eta) vertical coordinate
mask Mask (1. or 0.) for grid boxes above or below the ground.
[real, dimension(:,:,nlev)]
---------------------------------------------------------------------
call dry_adj_bdgt ( dtemp, pres_int )
input
dtemp Temperature tendency [deg k/time step]
[real, dimension(:,:,nlev)]
pres_int Pressure at half levels in pascals
[real, dimension(:,:,nlev)]
&dry_adj_nml
itermax Max number of iterations over column.
[integer, default: itermax = 5 ]
small Critical potential temperature difference.
A Manabe Climate Model option.
[real, default: small = .001 ]
do_mcm_dry_adj When true, executes the dry adjustment
scheme of the Manabe Climate Model.
[logical, default: do_mcm_dry_adj = .false.]
Revision history
Prior Changes
MPP version created. Minor changes in open_file, error_mesg,
and Fortran write statements. Answers should reproduce the
previous version.
Fatal errors in dry_adj:
dry_adj_init has not been called
You have not called dry_adj_init before calling dry_adj.
Non-fatal errors in dry_adj:
Non-convergence in dry_adj
The max number of iterations over the column has been reached,
and there still is instability within the column. Use a larger
value for the namelist parameter "itermax".
Manabe, S., J. Smagorinsky and R.F. Strickler, 1965: Simulated
climatology of a general circulation model with a hydrological
cycle. Mon. Wea. Rev., 93, 769-798.
Smagorinsky, J., S. Manabe and J.L. Holloway, 1965: Numerical
results from a nine-level general circulation model of the
atmosphere. Mon. Wea. Rev., 93, 727-768.
Routine DRY_ADJ_BDGT is not set up for MPP machines.
This routine will print data on all PEs.
None.
None.