Contact: Bruce Wyman or Steve Klein
Reviewers:
Tags/Status
Controls the selection of most moisture processes, predicted cloud schemes, and output of related diagnostic fields. Note that the selection of prescribed clouds is not performed by this module.
The following moisture processes (and predicted cloud schemes)
are controlled by this module:
1) dry adiabatic adjustment
2) moist convective adjustment
3) relaxed Arakawa-Schubert
4) large-scale condensation
5) prognostic stratiform clouds
6) basic relative humidity clouds
7) (Gordon's) diagnostic clouds
moist_conv_mod
lscale_cond_mod
ras_mod
strat_cloud_mod
diag_cloud_mod
rh_clouds_mod
clouds_mod
dry_adj_mod
sat_vapor_pres_mod
physics_diag_mod
fms_mod
constants_mod
field_manager_mod
tracer_manager_mod
use moist_processes_mod [,only: moist_processes_init,
moist_processes, moist_processes_end]
moist_processes_init - Must be called once before moist_processes to
initialize the module (reads namelist input and
restart file) and other modules used.
moist_processes - Called every time step to compute convective
and large-scale precipitation and adjustments
to the temperature and specific humidity fields.
moist_processes_end - Called at the end of the model run to terminate
the moist_processes module and other modules
used, also writes restart data.
Notes:
1) A namelist interface controls runtime options and selects fields
for diagnostics output.
2) A restart file is generated by this module, although this file does
not contain global data.
3) No other data files are needed.
call moist_processes_init (id, jd, kd, axes, Time)
input
id, jd number of horizontal grid points in the global
fields along the x and y axis, repectively.
[integer]
kd number of vertical points in a column of the atmosphere
axes The axis indices that are returned by previous calls to
diag_axis_init. The values of this array correspond to the
x, y, full (p-)level, and half (p-)level axes. These are the
axes that diagnostic fields are output on.
[integer, dimension(4)]
Time The current time, used to initialize diagnostic fields.
[time_type]
---------------------------------------------------------------------
call moist_processes (is, ie, js, je, Time, dt, land,
phalf, pfull, omega,
t, q, r, u, v, tm, qm, rm, um, vm,
tdt, qdt, rdt, udt, vdt,
lprec, fprec, mask, kbot)
input
is,ie starting and ending i indices for window [integer]
js,je starting and ending j indices for window [integer]
Time The time used for saving diagnostic fields. [time_type]
dt time step in seconds (from t(n-1) to t(n+1) if leapfrog)
[real]
land fraction of surface covered by land
[real, dimension(:,:)]
phalf pressure at half levels in pascals
[real, dimension(:,:,nlev+1)]
pfull pressure at full levels in pascals
[real, dimension(:,:,nlev)]
omega omega (vertical velocity) at full levels
in pascals per second
[real, dimension(:,:,nlev)]
t, q temperature (t) [deg k] and specific humidity
of water vapor (q) [kg/kg] at full model levels,
at the current time step if leapfrog scheme
[real, dimension(:,:,nlev)]
r tracer fields at full model levels, at the current
time step if leapfrog; contains the fields needed by the
stratiform cloud scheme if used
[real, dimension(:,:,nlev,ntrace)]
u, v zonal and meridional wind components [m/s] at full model
levels, at the current time step if leapfrog scheme
[real, dimension(:,:,nlev)]
tm, qm temperature (t) [deg k] and specific humidity
of water vapor (q) [kg/kg] at full model levels,
at the previous time step if leapfrog scheme
[real, dimension(:,:,nlev)]
rm tracer fields at full model levels,
at the previous time step if leapfrog
[real, dimension(:,:,nlev,ntrace)]
um, vm zonal and meridional wind components [m/s] at full model
levels, at the previous time step if leapfrog scheme
[real, dimension(:,:,nlev)]
input/output
tdt, qdt temperature (tdt) [deg k/sec] and specific
humidity of water vapor (qdt) tendency [1/sec]
[real, dimension(:,:,nlev)]
rdt tracer tendencies
[real, dimension(:,:,nlev,ntrace)]
udt, vdt zonal and meridional wind component tendencies [m/s2]
at full model levels. [real, dimension(:,:,nlev)]
output
lprec liquid precipitiaton rate (rain) in kg/m2/s
[real, dimension(:,:)]
fprec frozen precipitation rate (snow) in kg/m2/s
[real, dimension(:,:)]
input (optional)
mask mask (1. or 0.) for grid boxes above or below
the ground, usually only necessary for the step-mountain
(eta) vertical coordinate [real, dimension(:,:,nlev)]
kbot index of the lowest model level, usually only necessary
for the step-mountain (eta) vertical coordinate
[integer, dimension(:,:)]
---------------------------------------------------------------------
call moist_processes_end ( )
There are no arguments to this routine.
&moist_processes_nml
do_mca Switch to turn on/off the moist convective adjustment
scheme. [logical, default: do_mca=true ]
do_lsc Switch to turn on/off the large scale condensation
scheme. [logical, default: do_lsc=true ]
do_ras Switch to turn on/off the relaxed Arakawa Shubert
convection scheme. Selecting this option may significantly
increase your program's cpu time.
[logical, default: do_ras=false ]
do_strat Switch to turn on/off the stratiform cloud scheme.
Selecting this option may significantly increase your
program's cpu time. [logical, default: do_Strat=false ]
do_dryadj Switch to turn on/off the dry adiabatic adjustment scheme.
The dry adiabatic adjustment should not be used if the
Mellor-Yamada turbulence scheme has also been selected.
[logical, default: do_dryadj=false ]
pdepth Boundary layer depth (in pascals) for determining mean boundary
layer temperature used for snow versus rain determination in
MCA, LSC, and RAS. [real, default: pdepth=150.e2]
tfreeze Mean temperature (in deg K) used for snow versus rain
determination in MCA, LSC, and RAS. If the mean boundary layer
temperature is less than or equal to Tfreeze then snow occurs.
[real, default: tfreeze=273.16]
use_tau Switch to determine whether data (temp, sphum, and tracers)
at the current time level (tau) or next time level (tau+1)
will used in the convective and large-scale schemes.
if use_tau = true then data at tau is used
if use_tau = false then data at tau+1 is used by explicitly
adding the tendency to the data at tau-1
[logical, default: use_tau=false ]
do_rh_clouds Switch to turn on/off simple relative humidity predicted
clouds. This option may only be selected when using the
large-scale condensation scheme (do_lsc=true) without the
diagnostic clouds (do_diag_clouds=false).
[logical, default: do_rh_clouds=false ]
do_diag_clouds Switch to turn on/off (Gordon's) diagnostic cloud scheme.
This option may only be selected when using the large-scale
condensation scheme (do_lsc=true) without the simple relative
humidity clouds (do_rh_clouds=false).
[logical, default: do_diag_clouds=false ]
Notes:
* do_mca and do_ras cannot both be true
* do_lsc and do_strat cannot both be true
* do_rh_clouds and do_diag_clouds cannot both be true
* do_rh_clouds can only be used with the large-scale condensation scheme,
it will not operate when do_strat=true
* pdepth and tfreeze are used to determine liquid vs. solid precipitation
for MCA, LSC, and RAS schemes, the stratiform scheme determines it's
own precipitation type.
Diagnostic fields may be output to a netcdf file by specifying the module name moist and the desired field names (given below) in file diag_table. See the documentation for diag_manager.
Diagnostic fields for module name: moist
field name field description
---------- -----------------
tdt_conv temperature tendency from moist convective adjustment (MCA) or
relaxed Arakawa-Schubert (RAS) [deg_K/s]
qdt_conv specific humidity tendency from MCA or RAS [kg/kg/s]
prec_conv total precipitation rate from MCA or RAS [kg/m2/s]
snow_conv frozen precipitation rate from MCA or RAS [kg/m2/s]
t_conv_col column integrated dry static energy tendency from
convection [W/m2]
q_conv_col column integrated water vapor tendency from convection [kg/m2/s]
tdt_ls temperature tendency from large-scale condensation (LSC) or
the stratiform cloud scheme (Strat) [deg_K/s]
qdt_ls specific humidity tendency from LSC or Strat [kg/kg/s]
t_ls_col column integrated dry static energy tendency from
large-scale condensation or strat_cloud [W/m2]
q_ls_col column integrated water vapor tendency from large-scale
condensation or strat_cloud [kg/m2/s]
prec_ls total precipitation rate from LSC or Strat [kg/m2/s]
snow_ls frozen precipitation rate from LSC or Strat [kg/m2/s]
precip total precipitation rate (convective and large-scale) [kg/m2/s]
WVP column integrated water vapor [kg/m2]
tdt_dadj temperature tendency from dry convective adjustment [deg_K/s]
rh relative humidity after all adjustments [percent]
mc cumulus mass flux from RAS [kg/m2/s]
Note that the cumulus mass flux can only be output if the convection scheme
selected is RAS (or donner deep?).
The following variables can be output only if the stratiform cloud scheme
is used:
LWP stratiform liquid water path [kg/m2]
IWP stratiform ice water path [kg/m2]
AWP stratiform saturated mass path [kg air/m2]; when AWP is
divided by the total column integrated mass (i.e. the
surface pressure divided by gravity), you have calculated
the fraction of air mass in the column which is saturated
and part of a stratiform cloud.
qldt_conv stratiform cloud liquid specific humidity tendency from RAS
or donner deep [kg condensate/kg air/sec]
qidt_conv stratiform ice water specific humidity tendency from RAS or
donner deep [kg condensate/kg air/sec]
qadt_conv cloud fraction tendency from RAS or donner deep [1/sec]
ql_conv_col LWP tendency from RAS or donner deep [kg condensate/m2/sec]
qi_conv_col IWP tendency from RAS or donner deep [kg condensate/m2/sec]
qa_conv_col AWP tendency from RAS or donner deep [kg air/m2/sec]
qldt_ls stratiform cloud liquid specific humidity tendency from
strat_cloud [kg condensate/kg air/sec]
qidt_ls stratiform ice water specific humidity tendency from
strat_cloud [kg condensate/kg air/sec]
qadt_ls cloud fraction tendency from strat_cloud [1/sec]
ql_ls_col LWP tendency from strat_cloud [kg condensate/m2/sec]
qi_ls_col IWP tendency from strat_cloud [kg condensate/m2/sec]
qa_ls_col AWP tendency from strat_cloud [kg air/m2/sec]
Revision history
Changes prior to CVS version control
1/24/2000
* Fixed minor diagnostics bug that occurred if
no convective (or large-scale) scheme was selected.
10/4/1999
* MPP version created. Minor changes for open_file, error_mesg,
and Fortran write statements. Answers should reproduce the
previous version.
* Implementation of the new MPP diagnostics package. This required major
changes to the diagnostic interface and the manner in which diagnostics
quantities are selected.
8/23/1999
* diagnostic output created for the cumulus mass flux from RAS scheme.
5/26/1999
* interface changed (added momentum and momentum tendency) to allow
cumulus friction momentum transport by RAS scheme
* relative humidity diagnostics added
* the diagnostic variable names that are actually written to
the netcdf file have been shortened for compatibility with
various analysis packages
* mask array multipications were removed, they are now done
in specific moist processes routines
Fatal errors in moist_processes:
moist_processes_init has not been called
You have not called moist_processes_init before calling
moist_processes.
number of tracers less than nql or nqi or nqa.
The number of input tracers arguments is less than the
tracer number indices for the stratiform cloud scheme.
You may not have declared enough tracers in your main program
or you may have inadvertently selected the stratiform
cloud scheme.
stratiform cloud tracer(s) not found
This code expects the field_table to define tracers
called: liq_wat, ice_wat, and cld_amt.
tracers indices cannot be the same (i.e., nql=nqi=nqa).
The tracers numbers must all be unique (and non-zero).
This error should not occur using the tracer manager.
temperatures not within range of es loopup table
A check of temperatures within moist_processes found
temperatures outside the range of the saturation vapor
lookup table. This usually means that the model has gone
unstable and may be about the blow-up. Additional output
was printed by moist processes that should indicated at
what levels this problem occurred.
Fatal errors in moist_processes_init:
both do_mca and do_ras cannot be specified
Check namelist options do_mca and do_ras.
both do_lsc and do_strat cannot be specified
Check namelist options do_lsc and do_strat.
Non-fatal notes in moist_processes_init:
do_rh_clouds or do_diag_clouds + do_strat should not be specified
do_rh_clouds and do_diag_clouds should not be specified
both do_rh_clouds and do_strat should not be specified
This is not a FATAL error, only a NOTE.
The relative humidity cloud scheme will not be used and
the stratiform cloud scheme will override.
Check namelist options do_rh_clouds and do_strat.
There are no known bugs.
None.