The Single Column Model: Unified Model Documentation Paper C09
The Single Column Model: Unified Model Documentation Paper C09
UM Version : 10.1
Last Updated : 2015-03-06 (for vn10.1)
Owner : Michael Whitall
Contributors:
R. Wong, M. Whitall, L. Jones, A. Kerr-Munslow and M. Hughes
Met Office
FitzRoy Road
Exeter
Devon EX1 3PB
United Kingdom
This document has not been published; Permission to quote from it must be obtained from the Unified Model
system manager at the above address
UMDP: C09
The Single Column Model
Contents
1 Introduction 1
1.1 Single Column Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Surface forcing 6
A SCM namelists 28
B Example file(s) 35
B.1 DebugScm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
C Diagnostics listings 38
References 52
1 Introduction
The Single Column Model (SCM) is a research tool which is used mainly used to test/develop the UM physics
code. For UM9.0 onwards the SCM can be compiled and run as a Rose Suite.
A SCM represents a single atmospheric column at a grid-point in a General Circulation Model (GCM). The
treatment of any physical processes occurring within the Met Office SCM are identical to those present in the
Met Office Unified Model (UM). However, unlike the UM, the effects of large-scale horizontal and vertical motion
are treated either statistically or taken from observations, allowing the surface to be forced with time varying
atmospheric conditions.
The aim of this documentation is to provide information about the SCM, along with details on how to compile
and run, together with some information about the diagnostic system.
The following section gives a brief description of the treatment of large-scale horizontal and vertical advection.
Some detailed observational data sets for specific locations exist (e.g. GATE1 , BOMEX2 , ASTEX3 , TOGA–
COARE4 , ARM5 , GCSS6 ) from which large-scale forcing profiles may be calculated. These datasets contain
periods ranging over relatively short timescales of a few days or weeks to several months. They provide
opportunity for detailed study and validation of parametrization schemes, in particular those representing
diabatic processes.
Tendencies of temperature (T ), specific humidity (q) and vertical (w) and horizontal winds (u, v) due to
large-scale forcing which are derived directly from observed data are supplied directly to the model variables via
fortran namelists contained in a user-specified scm forcing file, the default filename of this file is namelist.scm
[§9]. The initial atmospheric state is also specified within namelist.scm.
The large-scale forcing tendencies (and surface forcings) vary in time, with profiles7 specified at regular
time intervals for each variable. This time interval, [obs_pd] is not necessarily the same as the SCM model
timestep. The instantaneous forcing applied at a given SCM timestep is calculated from the large-scaling
forcing tendencies using linear interpolation in time.
The SCM provides a number of techniques to determine the amount of forcing to apply at each timestep. The
SCM allows relaxation options of {T, q, u, v, w} to be set independently of each other. The forcing methods
available are given here briefly, a more detailed explanation can be found in Randall and Cripe [1999].
Most observational data which allows for SCM model runs will provide data in a format which can be suitably
processed for the following forcing methods.
In equations 1-3, φ is an arbitrary scalar variable and P is the “physics” in the scm that affects φ.
Simplest of the forcing methods is to prescribe the large-scale advective forcing directly from the analysed
observations [Redelsperger et al., 2000; Bechtold et al., 2000] or any other source, e.g. idealised forcing
experiments.
∂φ ∂φ
= − V· ∇φ + ω + [P ]scm (1)
∂t scm ∂p obs
Similar to revealed forcing where the large-scale horizontal advective forcing (−V· ∇φ) is prescribed. However,
the large-scale vertical advection term is calculated from the prescribed ω and the model state profile of φ.
∂φ ∂φ
= − [V· ∇φ]obs − [ω]obs + [P ]scm (2)
∂t scm ∂p scm
A detailed description of the treatment of large-scale statistical forcing is given in Warrilow et al. [1986]. Here,
only the salient features will be discussed.
If we assume that for some circular area of radius n, the gradient of a conservative atmospheric variable, φ is
constant then it can be shown that the time evolution of φ, can be approximated by equation 4:
Dφ φr − φ Dφ
= |Vn | −w . (4)
Dt Dn Dp
where φr = Reference value of φ on the edge of the area in the upwind direction along n.
Vn = Component of horizontal velocity in the direction of positive gradient.
w = Vertical velocity.
p = Pressure.
1 GARP Atlantic Tropical Experiment, http://kiwi.atmos.colostate.edu/scm/gate.html
2 Barbados Oceanographic and Meteorological Experiment, http://kiwi.atmos.colostate.edu/scm/bomex.html
3 Atlantic Stratocumulus Transition Experiment, http://kiwi.atmos.colostate.edu/scm/astex.html
4 Tropical Ocean Global Atmosphere - Coupled Ocean Atmosphere Response Experiment,
http://kiwi.atmos.colostate.edu/scm/toga-coare.html
5 GEWEX Cloud Systems Study, http://www.gewex.org
6 Atmospheric Radiation Measurement Program, http://kiwi.atmos.colostate.edu/scm/arm.html
7 Number of observation profiles is currently limited to 1500.
To solve equation 4, it is necessary to specify Vn , w and φr because these variables are not calculated within
a vertical column, but are a result of large-scale motions. It is possible to treat them as random variables
drawn from populations which are appropriate to the climatic situation being simulated. To take account of the
transient components of these variables random samples are taken at convenient intervals.
Equation 4 represents the general equation for changes due to dynamical processes. To represent heat
and moisture convergence, φ is replaced with potential temperature, θ, and specific humidity, q, respectively.
Dynamical convergence of moisture is given by:
Dqi |ni | Wi (qi+1 − qi ) (qi − qi−1 ) (qi+1 − qi−1 )
= (qri − qi ) − + − (5)
DtD Dn pi ln(pi+1 /pi ) ln(pi /pi−1 ) ln(pi+1 /pi−1 )
and substituting for potential temperature by temperature, T , dynamical convergence of heat is given by:
DTi |ni |
= (Tri − Ti )
DtD Dn
(6)
Wi (Ti+1 − Ti ) (Ti − Ti−1 ) (Ti+1 − Ti−1 ) Rg
− + − − Ti
pi ln(pi+1 /pi ) ln(pi /pi−1 ) ln(pi+1 /pi−1 ) Cp
The unknown variables in equations 5 and 6 are treated as random variables drawn from a suitable population
with known mean and standard deviation. Gaussian distributions are assumed for all variables except q,
which has a statistical distribution which is highly skewed. The random variables are Tr , Vn , w and dew-point
depression D, which is used to predict qr . The means and standard deviations of these variables are available
from published atmospheric statistical data (described in §2.2.2), with the exception of the standard deviation
of D.
sD = msT (7)
Each variable is treated as being independent. However, it is recognised that there is likely to be vertical
correlation between variables at different levels.
It is necessary to take account of the vertical correlation between random variables. Temperature and
dew-point correlation coefficients ri,j+1 by default are set to 0.9 everywhere and the horizontal and vertical
velocity coefficients to 0.5. These can be changed using the &RUNDATA namelist.
If xi is a random variable at level i, drawn from a population with mean x, and standard deviation sxi , then for
each subsequent level,
xi+1 = ai,i+1 xi + ci+1 (8)
where ai,i+1 = Measure of inter level correlation.
ci+1 = Random variable variable drawn from a population.
The random variable is drawn from a population with mean ci+1 and standard deviation sci+1 , defined as:
ri,i+1 sxi+1 xi
ci+1 = xi+1 − (9)
sx i
Forcing datasets are required for January and July, the two extremes in the annual cycle. They exist for several
locations. The data are derived from climatological statistics [Oort, 1983]. Table 1 shows the contents of these
datasets.
The variables T , sT , w and sw are taken directly from the data, whilst the dew-point depression, D, is defined
from equation 7. The tuning factor in this equation is derived experimentally for each location by making sure
that the rainfall in January and July compares favourably with observations.
Variable
Type Definition Units
Name
lat Real Latitude ◦
alfa1 Real Used to calculate amplitude and mean of annual sinusoidal distribution
tbar Real Mean temperature for levels K
tsd Real Standard deviation of temperature for levels K/km
p0 Real Pressure on levels N/m2
dbar Real Mean dew point depression on levels K
tgrad Real Variation of temperature gradient K/km
dgrad Real Gradient dew point depressions K/km
vnbar Real Mean horizontal velocities on levels m/s
vpbar Real Mean horizontal velocities on levels m/s
vnsd Real Standard deviation of horizontal velocity m/s
wbar Real Mean vertical velocity m/s
wsd Real Standard deviation of vertical velocity m/s
daysol Real Number of days since winter solstice
Table 1: Statistical forcing dataset (July)
Means and standard deviations of the random variables generally pertain to the centre of the location under
study. However, the reference values of T and D should strictly be those found on the edge of the area in the
upwind direction of the mean advection velocity. A small correction is therefore made to T and D, derived from
the gradient of the temperature and moisture field for each location.
The horizontal velocity, Vn , and the horizontal component of wind velocity normal to Vn , Vp , are derived from the
means and standard deviations of the meridional and zonal velocity components u and v which are given. The
mean of Vn is defined as:
Vn = u cos(F ) + n sin(F ) (11)
Let x1 and x7 be the mean or standard deviations of the reference variables for the minimum and maximum of
the annual cycle respectively. Let d1 and d7 be the associated time in days relative to the winter solstice. The
amplitude, Ax , and mean, Bx , of the seasonal variation of x are given by:
Ax = (x7 − x1 ) / 2 (13)
Bx = (x7 + x1 ) / 2 (14)
Given this, then the appropriate mean or standard deviation at d days from the winter solstice is calculated as:
2 p (d − d7 ) p
xd = Ax sin + + Bx (15)
da 2
where da = Number of days in a model year
xd is fixed for a constant solstice integration or varies seasonally for annual cycle integrations.
Climate forcing datasets are available for the following locations (table 2) at 20 levels. A vegetation type is
suggested for each location.
Location
Location Vegetation Type
name
Amazon (Manaos) 3S 60W Equatorial rain-forest(1)
England (Southern) 52N 0W Pasture (5)
Spain 40N 2W Pasture (5)
Table 2: Suggested vegetation types for datasets
2.2.3 Horizontal resolution of the SCM in statistical forcing mode
From equations 5 and 6 it might be noted that the rate of heat and moisture convergence is strongly dependent
upon the area chosen. The model at present is set up to represent an area of 100,000 km2 . Warrilow, [Personal
communication with J-C Thelan, 1991] suggested that the most significant impact of either increasing or
decreasing the area is on the rate of change of moisture convergence and hence rainfall and other components
of the hydrological cycle. Dependence of the model on area size is fairly complex and suggests that it is not
appropriate, without careful assessment, to use the model in integrations involving changes in area.
The SCM can be forced by geostrophic winds which are input via namelists in the scm forcing file (see sec-
tion §9). The initial temperature and specific humidity profiles are input and at each timestep the winds are
forced at every level by the equations:
u ➜ u − f t (vg − v) (16)
v ➜ v + f t (ug − u) (17)
f = 2w sin(F ) (18)
where w = Earths angular velocity
F = Latitude of SCM grid-point in radians
For geostrophic wind forcing, initial wind profiles are normally set using ug and vg values if the geoinit logical
is set, if not, & INPROF variables ui and vi are used for initialisation.
3 Surface forcing
A hybrid height vertical coordinate system is adopted which in a global model is terrain following at lower
levels and flattens out nearer the top of the atmosphere. The Charney-Philips grid is used so that u, v, exner
pressure and density are held on the rho levels (full-levels) and theta, moisture and w are held on the theta
levels (half-levels), See UMDP-015 for further details on the UM grid co-ordinate system.
The following variables are predicted by the model (so-called primary variables):
The routine SCM _ SHELL is the top level routine, it reads in various parameters from the UM namelist files before
calling SCM _ MAIN, which is the SCM equivalent of ATM _ STEP. A brief description of the routines called from
within this program is given in tables 3, 4 and 5. A flowchart showing the main calling structure is shown in
figures 1 and 2.
The routines for initialisation of the model variables are described in table 4. These routines are called after all
name the required input namelist files have been read by the SCM.
The SCM forcing routines are described in table 5. These routines are called once every timestep to return
forcing increments for the SCM.
CALC _ PRESS Calculates exner or p, on θ-levels and ρ-levels10 . If required, p_star and rho are also
calculated.
CALC _ RHO Calculates rho.
CALC _ LEVELS Calculates r_theta_levels and r_rho_levels.
PRE _ PHYSICS This initialises a number of variables which are required before the call to the physics routines.
PRINT _ INITDATA Prints information about the run. Information is taken from the input namelists.
INITPHYS UM routine to initialise radiations SW/LW spectral band tables.
Table 4: Initialisation routines
Read vertical
Get run dir
resolution
Start path from
file path and
$JOBDIR
& SCM _ CNTL
scm_set
Read & CNTLSCM
/ & NC _ OBS from
<scm_nml> SCM forcing file
SCM Control Files
shared
Read namelists
used across
UM code
sizes cntlatm
End
Figure 1: Flow chart for top level routine SCM _ SHELL. The scm forcing file, <scm_nml> will default to namelist.scm if the user
has not specified a scm forcing filename in scm_set.
In general, those variables which you may wish to change during the setup of a run are contained in namelists.
These are either generated by Rose or are specific to the SCM and contained in a scm forcing file. A listing of
the namelists and the variables contained within can be found in section §9.
The following points assume that you have performed the necessary preliminarys in order to work with Rose, if
not please refer to the UM Rose Training Guide.
1. Start the Rosie client from a terminal with “rosie go”.
2. From Rosie, search for “SCUM Template” this should provide a list of base SCM jobs. All SCM template
jobs will have “SCUM Template [vn]” in the project field.
3. Right-click on your chosen suite template and make a copy for yourself.
4. Change the project title, i.e. “SCUM Template [vn]” → <YourProjectName>.
5. If you wish to change the input/output for the SCM, the UM namelist “scm_cntl” allows to to specify the
locations of scm forcing file and output file(s).
6. Run copy of the SCM suite to check it’s working, Rose should handle all the appropriate user ids and run
the SCM.
Once you have a working scm suite you can now modify it as per your requirements. It should be noted that
not all items which can be set in Rose will be used in the SCM and some logicals set by Rose may also be
set elsewhere such as in the scm forcing file. As a rule, any variable set in the scm forcing file will override the
value set in the Rose suite (if duplicated in scm forcing file).
Start
Interpolate
Check for
profiles to INITTIME _ SCM CALC _ PRESS RUN _ INIT
missing data
SCM grid12
Y
CALC _ PRESS TIMECALC 8
Y
5 PRE _ PHYSICS 4
Y
Y
MIX _ TO _ Q 6 PC 2_ HOMOG _ PLUS _ TURB
Loop over
timesteps
CALC _ Q _ STAR FORCING PC 2_ INITIATION _ CTL
Y
ATMOS _ PHYSICS 2 4 DUMP _ STREAMS
Y
7
Figure 2: Flow chart for top level flow routine SCM _ MAIN. 12) Unsupported feature
It should also be noted that aerosol/chemistry schemes are not currently implemented in the SCM. The
SCM should provide a warning and override any attempts to use such schemes. These are areas for future
improvement.
One significant advantage in using the SCM is a quick turnaround for debugging development code, even if the
SCM framework is unsuitable for your actual research.
There are numerous debuggers available, so as a guide, the following will detail a specific example for
debugging the SCM at the Met Office. This example uses the Intel compiler/debugger ifort/idb vn12.0 is run
under emacs 23.1.1.
Users at the Met Office site can a script to automatically set-up a SCM app for debugging, [∼scm/bin/DebugScm],
which is is listed in appendix B.1.
• The SCM executable should be compiled with suitable debugging options, this will be at least the -g for
most debuggers. If your suite is a copy of a SCUM template suite then debug options are preset as default.
• Attempt to run your scm suite via Rose at least once, this will setup the control files even if your scm
executable initially failed.
• Create a symobolic link from your SCM app run directory to your compiled SCM executable. In most cases
these may look like:
SCM app run dir = $HOME/cycl-run/<YourSuiteName>/work/scm.<number>
SCM executable dir = $HOME/cycl-run/<YourSuiteName>/share/fcm_make/build-scm/bin
SCM executable = um-scm.exe
i.e. From the SCM app run dir type:
ln -s <SCM executable dir>/<SCM executable> <SCM executable>
• The idb debugger may require some settings before running. Create a debugger initialization file
$HOME/.gdbinit containing:
#IDB Initialisation settings for SCM Debugging
#=============================================
set environment VN <UM version>
set environment IOSCNTL <SCM executable dir>/IOSCNTL
set environment JOBDIR <SCM executable dir>
set environment PRINT_STATUS 2
set environment UNIT57 <Sw Spectral file dir>/
set environment UNIT80 <Lw Spectral file dir>/
shell ulimit -a
Note: The spectral file directory paths will require the ’/’ on the end.
• Start emacs from the SCM app run dir.
• Select GUD from the tools menu and edit the command line prompt to:
Run gdb (like this): idb <SCM executable>
IDB should now load the SCM executable with all the appropriate environment variables from within emacs.
Using these versions of Emacs/IDB, SCM screen output will go to the emacs display while debugger control,
source code and messages will appear in the IDB gui. The SCM should now be able to be run interactively from
the IDB gui.
Changing the model levels can be done in the same manner as for the full UM. A vertical level resolution file is
specified in the SCM app of your Rose suite. This file contains the namelist & VERTLEVS with the variables listed
in table 6. The SCM reads the path to the vertical resolution file from the control namelist file SCM_SET.
The choice of surface is specified via in the scm forcing file. Settings for given gridpoint types are given in
table 7.
For all gridpoint types except sea-points, further details relating to the land surface fraction of the gridbox are
required. In the full UM, the model would obtain these details from ancillary files. The SCM is currently unable
to read ancillary files, so the equivalent data is specified in the scm forcing file. Table 8 details variables which
must be user specified in such cases.
Variable Description
frac_type Fraction of gridbox land occupied by each of:
If statistical forcing is chosen then the variables in table 9 below must be set. The initial profiles of temperature,
specific humidity and winds will be calculated automatically by the routine INITSTAT15 . Users can specify their
12 land_ice_mask and soil_mask are mutually exclusive and cannot both be true.
13 Soiltypes are defined on the basis of the WHS texture classes. A full description of the dataset and the derivation of the parameter
values used in the UM is given in Buckley and Warrilow [1988].
14 The 9 land surface types are split into two subsets: Vegetated types (Trees, Grasses & shrubs) and Non-vegetated types (Urban, Inland
water, Bare soil & Ice), see Essery et al. [2001]for further details.
own initial profiles via the scm forcing file if they wish.
theta qi p_in ui vi wi
These initial profiles are the same as those required when using ob-
servational forcing (table 10).
Table 9: Settings for statistical forcing
If observational forcing is chosen then the variables detailed in table 10 should be set in the scm forcing file.
Initial profiles
p_in Initial pressure on ρ-levels + 1
theta Initial potential temperature on θ-levels
qi Initial specific humidity on θ-levels
&INPROF
ui Initial zonal wind on ρ-levels
vi Initial meridional wind on ρ-levels
wi Initial vertical wind on θ-levels
Surface forcings
tstar_forcing Surface temperature
&INOBSFOR flux_h Surface sensible heat flux
flux_e Surface latent heat flux
This is controlled by the l_vertadv logical in the scm forcing file. The functionality applies to both T and q or
neither. At present, forcings for {T, q} are each given as a single variable which is considered to be sum of
15 This is not supported at present, users should provide their own initial profiles in the scm forcing file.
So with revealed forcing (l_vertadv=.false.) the scm forcing tendencies would be due to at least the
horizontal and vertical advection.
With horizontal advective forcing (l_vertadv=.true.) the forcing tendency due vertical advection should be
excluded from the tendencies in your scm forcing namelist to avoid double-counting the forcing from vertical
advection.
Relaxation forcing options in the scm are controlled by rlx_|T,q,u,v,w| specified in the & INOBSFOR namelist.
These will control whether a scalar variable is relaxed back to the initial model conditions or observed
atmospheric profiles. Additional namelist inputs will control the relaxation timescale of a given scalar.
Note: If forcing relaxation is applied, suitable background observations to relax to will need to be included in the
scm forcing file.
It is possible to run with more than one type of forcing at once. One example where this might be desired is to
run with a combination of observational and geostrophic forcing for boundary layer experiments. The SCM will
warn you if you are running with multiple forcings although some combinations may not give sensible results.
The scm forcing file contains various namelists used as input for the scm. The forcing filename is specified in
Rose, though if unspecified, the scm will look for the file namelist.scm. Table 12 lists the namelists stored in
the scm forcing file.
Namelist Description
& CNTLSCM (table 20) SCM/namelist information
& INDATA (table 21)
Contain various items needed for setting up the model run.
& RUNDATA (table 22)
& NC _ OBS (table 23) Details specific to external NetCDF forcing file (unsupported feature)
& DIAGS (table 14) Options for the SCM diagnostics system (see section 10)
& LOGIC (table 24) Contains various switches which determine what other information might also
be needed, to do with location, forcing, physics and output options.
& INJULES (table 26) Information for the JULES land surface scheme.
& INGWD (table 25) Ancillary data to initialize the Gravity Wave Drag scheme.
& INPROF (table 27) Contains data for initial conditions.
& INOBSFOR (table 31) Contains data for observational forcing
& INGEOFOR (table 28) Contains data for geostrophic wind forcing
& RADCLOUD (table 30) Used for various cloud and radiation options (disabled)
& PHYSWITCH (table 29) Currently contains convection settings only
Where a variable is an array, the size is generally specied by another variable. These are listed in table 13.
Note: Array variables in in the scm forcing file which are atmospheric profiles are dimensioned with model_-
levels_nml. This is checked for consistency with model_levels as specified in SIZES to ensure the forcing
data is appropriate for the SCM run.
In addition, although some arrays are dimensioned as (row_length,rows) implying that multiple SCM columns
can be run, these dimensions are hardwired to 1. While it may be possible with future work to run with multiple
columns, it is not currently supported.
The namelist & CNTLSCM is also read in by the routine SCM _ SHELL so that some details are known prior to calling
SCM _ MAIN. Details of & CNTLSCM are given in table 20.
This section describes the use of a set of fortran and TIDL16 routines which facilitate the output and viewing of
diagnostic information from the SCM.
The output data files are available in a variety of ASCII formats. Although binary PP-format is not supported,
conversion to PP-format within TIDL is possible with a single command.
It should be understood that essentially all the code does is to write arrays out to file, optionally with some
simple processing such as meaning. It is not intended as a replacement for STASH, merely as a quick and
convenient diagnostic tool.
Each output stream has an associated dumping period, which is the period in timesteps with which diagnostics
are written to the output file. If a given diagnostic is a time-mean, then the dumping period is the number of
timesteps over which that mean is taken. If the dumping period is one timestep, then these diagnostics are
effectively instantaneous.
New diagnostics can be defined and output by calling the routine SCMOUTPUT from within the SCM. SCMOUTPUT
takes arguments that dictate:
• The array which forms the basis of the diagnostic.
• The name of the diagnostic, sname.
• The time profile of the diagnostic, e.g. instantaneous value, time-average, maximum value, etc.
• The domain profile of the diagnostic (defines the number of rows, columns and levels it exists on).
• The nominal list of streams to which the diagnostic is to be sent.
The full list of arguments is described and discussed in section 10.3.1. Section 10.1 details how to get up and
running with the diagnostic system with minimal information.
The SCM diagnostic system is controlled by the & DIAGS namelist in the scm forcing file. If running the SCM
without this namelist, or with no entries set within it, the system will operate on defaults and you should find
an output file called stream01.dat is produced. This will contain many diagnostics averaged over one timestep
(effectively instantaneous). Output files are in the SCMs native format (ASCII files with .dat extension) and can
be browsed/plotted using the following TIDL routines:
SCMOUTPUT - Read/Browse/Plot data via interactive menus.
SCMREAD 2 - Read data into TIDL in PP-format.
The SCM is also capable of outputting data in NetCDF format, which is set in the & DIAGS namelist in the scm
forcing file. At present, for non-Met Office users, output in NetCDF format is the recommended output method
as the IDL/TIDL code to read the SCM native ascii format is not centrally supported.
Further references to the reading in of native SCM output are only valid for users at the Met Office, UK.
which were written in PV-WAVE, were ported to TIDL rather than a full rewrite in IDL. The Met Office library of TIDL routine is available
under license
interested in. The domain profile of a diagnostic dictates the number of levels it is defined on. The number of
levels corresponding to each domain profile, and the number of diagnostics that have this profile, should be
listed to the right of each profile name.
If you just want all the diagnostics delivered back to you in PP-format then simply type:
TIDL> data=scmread2(’stream01.dat’)
The returned variable, data, will be a structure containing arrays of diagnostics as PP fields grouped by domain
profile. The data array of the PP fields will be two dimensional, the size of the first dimension is the number of
dumps in the file and the second dimension is the number of elements per dump (equal to the number of levels
the diagnostic is defined on if only dealing with a single column).
For more information on using these TIDL routines, see section 10.2.
This section describes in detail the namelist variables which can be used to control the diagnostic system.
The diagnostic system is controlled by the & DIAGS namelist, which is read from the end of the scm forcing file.
The first variable in & DIAGS, main_diag_switch, is an integer which, if zero, means that the diagnostic system
is ‘off’ - diagnostics are neither processed nor output. By default it is non-zero and the diagnostic system is ‘on’.
There are 13 logicals for turning on ‘packages’ of diagnostics, allowing selected subsets of the complete set
of diagnostics to be output. These packages typically represent sets of diagnostics from different physics
sections of the model or ones which are useful to be available together, such as increments from each section.
Only l_scmdiag_gen is default ‘true’, switching on 50 of the available diagnostics. The remainder are default
‘false’; when all are set ‘true’, all possible diagnostics are output. Some diagnostics are only available when
certain model switches are on, for example land diagnostics are only available when running over a land point.
These logicals will be reset to false and a warning message displayed if they are switched on in the namelist
but the model setup makes those diagnostics unavailable. The packages are not unique, and many diagnostics
are available from more than one package, for example increments from the convection scheme are available
both from the increments package and the convection package. For a list of diagnostics and which packages
they are available from, please see appendix C to this documentation paper.
All other & DIAGS variables are arrays of length, maxnstreams18 whose first element pertains to stream one,
whose second to stream two, and so on. The variables will now be described individually.
The array strm_switch is the ‘on/off’ switch for each individual stream. If strm_switch(n) is zero, then
stream n is ‘off’ and will not accept any diagnostics or produce an output file. By default strm_switch(1) is
non-zero, but all others are zero; i.e. all streams are off apart from stream one.
The integer and character (len=100) arrays strm_unit and strm_filename dictate the unit to which an out-
put file is to be written and the name of that output file respectively for each stream. By default strm_unit(n)
is set to n+36, and so stream one writes to unit 37, stream two to unit 38, and so on. The stream filenames are
by default set to streamXX.dat, where XX is the stream number.
The integer array strm_format dictates the formats of the output files associated with each stream, options
for strm_format are given in table 15.
The integer array strm_dumpstep dictates the dumping period for each stream. This dictates the process-
ing period for the diagnostics being sent to that stream (e.g. if the diagnostic is an average it is the number of
timesteps the average is taken over; is the number of timesteps between dumps for a given stream, if it is a
maximum then the maximum is over; etc.). Valid options for strm_dumpstep are given in table 16.
17 Moved to UM namelist file, SCM_SET.
18 The maximum number of output streams, set to 30 in scmoptype_defn.F90
Option Description
0 Formats output similar to that produced by vn4.5 routine DUMP _ GRAF.
This format can be read into TIDL using SCMREAD 2, though will require
streamXX.dat, domain.dat and scumlist.dat in the same directory.
1 Produces the same output as option 0, but the information is formatted
so that it is more easily read by the user.
2 Produces output similar to produced by vn4.5 SSFM routine VERDIAGS .
This format can then be read in by the FSSI database.
3 Produces the same format as option 0 and is self-descriptive, it doesn’t
need additional files. It is intended to replace the option 0 format and is
the default setting for SCM output.
4 Output data is in NetCDF format.
Table 15: Format options for SCM output, specified for each output stream via strm_format
Option Description
strm_dumpstep > 0 Dumping period is equal to strm_dumpstep in timesteps
strm_dumpstep = 0 Dumping period set to number of timesteps in run i.e. pro-
cesses are applied to whole SCM run.
strm_dumpstep < 0 Dumping period is set to the number of timesteps which
produces dumps as close as possible to strm_dumstep
in seconds.
Table 16: Dumping period options for SCM output, specified for each output stream via strm_dumpstep
The integer array strm_heed_hardwired dictates whether the respective streams wish to be excluded from
any list provided in a call to SCMOUTPUT. That is, a nominal list of streams to which a diagnostic is to be sent is
provided in the respective call to SCMOUTPUT. You can request that a stream be excluded from any such list by
setting the respective element of strm_heed_hardwired to zero. For example: if in a call to SCMOUTPUT it is
requested that a diagnostic be sent to streams 1, 2 and 3, but strm_heed_hardwired(1:2) is non-zero and
strm_heed_hardwired(3) is zero, then the diagnostic would end up only going to streams 1 and 2. Setting
every element of strm_heed_hardwired to zero would cause all stream lists provided in calls to SCMOUTPUT
to be ignored. By default every element is set non-zero.
For each stream there is a strm_acceptlist and strm_rejectlist value. These are comma-separated
character lists of diagnostic short-names (sname) which are accepted/rejected from that output stream. Each
stream can be instructed to apply its acceptlist/rejectlist depending on whether strm_heed_acceptlist or
strm_heed_rejectlist are zero (ignore list) or non-zero (apply list).
The character (len=500) array strm_acceptlist defines, for each stream, which additional diagnostics are to
be put into it despite whatever the nominal streamlists provided in the calls to SCMOUTPUT say. Each element is a
case sensitive comma separated list of diagnostic names. These should be the short names as specified in the
respective calls to SCMOUTPUT. e.g. if the calls to SCMOUTPUT that are responsible for outputting temperature and
pressure specify that these diagnostics are only to go to stream 1, but strm_acceptlist(2) is set to ’T,p’ and
strm_heed_acceptlist(2) is non-zero and ’T’ and ’p’ are indeed the short names that have been specified
for these diagnostics in the call to SCMOUTPUT, then temperature and pressure will also be sent to stream
2. If the short name of the diagnostic contains a special character (a comma, backslash, or leading/trailing
space) then the character should be prepended with a backslash to indicate it is to be treated literally. Where a
diagnostic is substepped, only the short name given in the call to SCMOUTPUT is needed to be included in strm_-
acceptlist, not the appended substep number, and all substeps for this diagnostic will be treated as required.
The character (len=500) array strm_rejectlist is the same as strm_acceptlist, except that it defines
which diagnostics are not to be sent to each given stream. The corresponding elements in strm_heed_-
rejectlist have to be nonzero for this to have any effect. Where there is a clash between an acceptlist and
a rejectlist, the diagnostic is not sent to the respective stream.
The diagnostic system also produces two additional files, both of which are required by the TIDL procedure
SCMREAD 2 to read format-0 data files. These are scumlist.dat and domain.dat. The first contains information
about the exact formatting of the data in the format-0 data files (including a complete list of all diagnostics with
their names). The second contains information on the size of the model domain (e.g. row_length,rows), the
vertical levels and the orography - needed to calculate physical positions from model points. Note: These files
are not needed for the default, format-3.
10.1.3 Substepping
If physics substepping is switched on, the diagnostic system will append the substep number to the sname,
giving diagnostics with snames of the form sname_#X where X is the substep number. For more details, see
section 10.3.5.
This section describes how to read data files with format-0 or format-3 into TIDL (Met Office site). In order to
access maintained scm TIDL routines, make the following file changes:
• Create/Add to file $HOME/.idl/idlstart
.run ~scm/.idl/start_routine.pro
.run ~/bin/scmread2_lnk.pro
.run ~/bin/scmoutput_lnk.pro
.run ~/bin/scm2idl_lnk.pro
• Add to file $HOME/.profile
export IDL_STARTUP=$HOME/.idl/idlstart
export IDL_PATH=IDL_PATH:/opt/ukmo/idl/nwp/meso:$HOME/bin
PATH=$PATH:~scm/bin
Output data files with format-0 or format-3 can easily be read into TIDL and converted to PP format. To do this
simply use the function procedure scmread2.pro which will return a structure containing arrays of diagnostics
as PP fields grouped by domain profile. The syntax is of the form:
TIDL> data=scmread2(’path/filename’)
Note that in order to determine the correct formatting of format-0 data files the additional output files
scumlist.dat and domain.dat need to also be read. They will be assumed to be in the same directory as the
data file. Format-3 data files (the default) are entirely self-descriptive and do not require any other file to be read.
The returned variable data will be a structure containing a data member for each defined domain profile
(labelled with the name that was used to define the profile in the respective call to DEFINE _ DOMPROF). Each of
these data members is an array of all the PP fields that have that domain profile. There is also an additional
data member called other_data containing other data, such as the heights of the model levels.
The data array of the PP fields will be two dimensional, the size of whose first dimension is the number of
dumps in the file and whose second dimension is the number of elements per dump (equal to the number of
levels the diagnostic is defined on if only dealing with a single column).
If the run that produced the data file crashed after completing at least one full timestep, then scmread2 will issue
a warning that there is less data in the file than expected, but will carry on regardless, and so will still return that
information that was written out before the crash.
The routine, SCMOUTPUT, provides a minimum-fuss way to interactively examine and plot the contents of a format-
0 data file. It should not be confused with the SCM fortran routine of the same name. It calls SCMREAD 2 internally
to read the file. All you have to type is:
TIDL> scmoutput,’path/filename’
Noting that, in the case of a format-0 file, the scumlist.dat file and the domain.dat file must be in the same
directory as the data file. You will then be in an interactive, text-menu driven environment.
First you will be presented with a list of domain profiles from which to choose. The number of levels correspond-
ing to each domain profile and the number of diagnostics that have this profile will be listed to the right of each
profile name. On choosing a profile you will be presented with a list of diagnostics that have that profile and
asked to choose again. You will then be presented with a list of viewing options19 which include:
• Plotting a profile for a given time (dump).
• Plotting a time-series for a given level
• Plotting level/time 2D contour plot (shaded or line)
• Writing the data to a file in an easy-to-read format and opened in a text editor20 .
To go back at any time choose option zero. Going back from the top menu quits.
You can change the colour table used for any colour plots with the ct keyword. i.e. specifying ct=0 on the
command line will mean colour table zero is used.
If the keyword parameter old is present and non-zero (i.e. if you put /old on the command line) then SCMREAD21
is used to read in the data file. Thus scmoutput can work with data from the vn4.5 SCM.
The TIDL routine SCMOUTPUT can compare and display differences between two SCM output files. This is done
by specifying a second file in the call to SCMOUTPUT:
TIDL> scmoutput,’path1/filename1’,’path2/filename2’
The procedure SCMREAD 2 will be used to read each in turn, and SCMOUTPUT will then attempt to pair up the
common diagnostics in the different files. Two diagnostics will form a pair if they share the same short name
(sname) and domain profile22 . Diagnostics which do not pair up are discarded. The remaining diagnostics are
subtracted from one another (filename1−filename2) to create a third set of parallel diagnostics. The interactive
text-menu session continues as normal, but now with the following alterations:
• In the list of diagnostics for a given domain profile, the first dump for which the difference between the two
data fields is non-zero is listed to the right of the diagnostic name. This is useful as a quick bit-comparability
check. A dash indicates no difference for all dumps23 .
19 Some viewing options will not be available if there is only one dump in the file or the diagnostic is only defined on one level
20 Specified by environment variable $EDITOR
21 SCMREAD is the UM4.5 compliant version of SCMREAD 2
22 Domain profiles are judged the same if they share the same name and correspond to the same total number of elements:
rows×columns
23 The precision that TIDL is working in is not necessarily the same as that for the UM
• When any diagnostic is plotted, three plots will actually be made. From left to right these will be the
requested diagnostic from filename1, filename2 and their difference (filename1−filename2).
• The keyword input maxdiff can be used to cap the difference between the diagnostics, e.g. if
maxdiff=100 is specified on the command line, then the difference for all diagnostics will be limited
to the range −100 to +100. This can be useful for examining regions of small difference near regions of
large difference.
• If the keyword pc is present and non-zero (i.e. if /pc is in the command) then the difference used is the
percentage rather than the absolute difference. This is defined as:
diagfile1 − diagfile2
100 ×
diagfile1
If the value of the first diagnostic is zero at any point then the percentage difference is set to maxdiff to
avoid a divide by zero.
Generally speaking, an array can be output as a diagnostic from any routine - you just need to do two things.
Firstly you need to make sure that the module s_scmop_mod is included in the routine, i.e. that the routine
contains the USE statement with parameters referenced in diagnostic output calls, e.g.
USE s_scmop_mod, ONLY: t_inst, d_all, default_streams
Secondly, you need to insert a call to the routine SCMOUTPUT at a point in the routine where the array is valid.
This call should be executed every timestep (or no time-steps at all - in which case you don’t get the diagnostic).
If this is not the case informative error messages will be generated. One exception is made - in the case of
constant diagnostics (see discussion of time profiles below). Variables which are only calculated on radiation
time-steps can be accommodated (also see below), but the routine must still be called on non-radiation time-
steps. SCMOUTPUT takes nine inputs, all of which are intent-IN.
#if defined(SCMA)
CALL scmoutput(x, sname &
, lname, units &
, <TimeProfile>, <DomainProfile>, <OutputStreams> &
, sname2, routine_name)
#endif
Where <TimeProfile>, <DomainProfile> and <OutputStream> are parameters typically referenced from the
module s_scmop_mod.
The use ’#if defined’ directives is being phase out in the UM and should avoided where possible. An alterna-
tive is to add a conditional test on whether the model is a SCM or not. For this, the additional variables should
be referenced:
USE model_domain_mod, ONLY: model_type, mt_single_column
So the previous example would be:
IF (model_type == mt_single_column) THEN
CALL scmoutput(x, sname &
, lname, units &
, <TimeProfile>, <DomainProfile>, <OutputStreams> &
, sname2, routine_name)
ForEND IF diagnostic, SCMOUTPUT should be called on every timestep or not at all. The short name, sname
a given
will be truncated or padded with whitespace to ensure the correct length. If the sname is not unique, warning
messages will be generated.
To specify just one stream this should be equal to Stream(i) where i is an integer specifying the stream number
and Stream() is a statement function defined in module s_scmop_mod.
To specify multiple streams, simply add the outputs of multiple calls to the Stream() function, e.g. to specify
streams 2 and 3, the streams argument should be set equal to Stream(2)+Stream(3).
#if defined(SCMA)
CALL scmoutput(x, sname &
, lname, units &
, <TimeProfile>, <DomainProfile>, Stream(2)+Stream(3) &
, sname2, routine_name)
#endif
If you want the diagnostic to be defined, but want to use it in subsequent diagnostic calls (i.e. used as sname2
in a later diagnostic call) instead of being output, then you can feed your stream list into the statement function
DoNotWrite() and use that as the input instead. e.g. to have a diagnostic calculated in streams 2 and 3, but not
written to any output file use DoNotWrite(Stream(2)+Stream(3)) as the input for this parameter:
#if defined(SCMA)
CALL scmoutput(x, sname &
, lname, units &
, <TimeProfile>, <DomainProfile>, DoNotWrite(Stream(2)+Stream(3)) &
, sname2, routine_name)
#endif
Diagnostics which use the DoNotWrite() statement function will also not have an entry in the scumlist.dat file.
Diagnostic (sname) can be combined with another diagnostic (sname2) that has already been output on the
current timestep, see table 18. However, the range of dumping periods to which this diagnostic (sname) is being
sent (determined by the streams input) should be a subset of those to which the other diagnostic (sname2) is
being sent. The other diagnostic (sname2) does not have to have the same size and shape (i.e. domain profile)
though. If it has fewer elements than this diagnostic its values are simply cycled round to the beginning upon
reaching the end.
When outputting a diagnostic from the SCM some basic processing is available in the call to SCMOUTPUT via the
timprof argument. The options available are given in table 18. Whichever time profile is chosen, if the input
array for your diagnostic is only valid on radiation timesteps, the parameter only_radsteps should be added
to the <TimeProfile> option in the SCMOUTPUT argument list:
#if defined(SCMA)
CALL scmoutput(x, sname &
, lname, units &
, <TimeProfile>+only_radsteps, <DomainProfile>, <OutputStreams> &
, sname2, routine_name)
#endif
Non-radiation timesteps will then be ignored, but it is important that SCMOUTPUT is still called for the diagnostic
on these timesteps.
It may seem strange to output constant data, though it is useful to define constants24 which are subsequently
used to multiply or divide other diagnostics in order to scale them. For instance, to convert from Pa to hPa (i.e.
divide by 100) you can call SCMOUTPUT to define a diagnostic which is simply a single real number always equal
to 100, then use the t_div profile with the pressure diagnostic to do the conversion.
If the time profile you want does not exist, by modifying module s_scmop_mod and ADD 2 DUMP (see the sections in
code relating to the other profiles for examples). Nothing else should be necessary.
Table 19 lists the options for domain profile (<DomainProfile>) currently available for calls to SCMOUTPUT. It
should be noted that if an array to be output in a SCMOUTPUT call is smaller than the specified domain profile, the
extra space may contain rubbish data. Users should ensure that the array to be output either matches the
domain profile or is appropriately initialised.
Additional domain profiles can be created by modifying module s_scmop_mod, and having an associated call to
DEFINE _ DOMPROF from routine SETUP _ DIAGS.
24 SCMOUTPUT does not need to be called every timestep for constant diagnostics. You may also omit this diagnostic from the output streams
Option Description
t_inst Use instantaneous value - i.e. output the value that the array has at the end of the dumping period.
t_max Gives maximum value over the dumping period
di = max{x(i−1)N+1 , x(i−1)N+2 , ....., x(i−1)N+N }
t_div Gives the average value divided by the value of a different diagnostic:
PN
di = N1 j=1 x(i−1)N+j /d2i
Table 18: Time profile output choices available to SCMOUTPUT declared in the module s_scmop_mod. di = diagnostic values
at the ith dump, xn = diagnostic values of input array at timestep n, N = dumping period.
Option Description Dimensions
d_point A single point (1,1,1)
d_sl All points, a single level (row_length,rows,1)
d_all All points, all levels (row_length, rows, model_levels)
d_allxtra All points, all levels plus one (row_length, rows, model_levels+1)
d_wet All points, wet levels (row_length, rows, wet_levels)
d_cloud All points, cloud levels (row_length, rows, cloud_levels)
d_bl All points, bl levels (row_length, rows, bl_levels)
d_soilt All points, soil temperature levels (row_length, rows, st_levels)
d_soilm All points, soil moisture levels (row_length, rows, sm_levels)
d_tile All points, different tile types treated as levels (row_length, rows, ntiles)
d_vis All points, visibility thresholds treated as levels (row_length, rows, n_vis_thresh)
d_land Land points only, a single level (land_points,1,1)
For permanent diagnostic additions, the diagnostic should be included in one or more diagnostic packages. In
this case, the integer nscmdpkgs (number of SCM diagnostic packages) and logical array l_scmdiags of size
nscmdpkgs should be passed down to the routine from which the diagnostic is to be output. These variables
are declared as dummy variables in the full model so should not need to be protected by compiler directives.
The logical array l_scmdiags contains a logical for each diagnostic package, to represent which packages are
switched on and off as read in from the DIAGS namelist. The module s_scmop_mod contains integer variables
which make it easier to identify which logical in the array represents which package. The call to SCMOUTPUT
should then be enclosed in an IF test for that package, for example:
IF ( l_scmdiags(scmdiag_forc) .OR. l_scmdiags(scmdiag_incs) ) THEN
END IF
There are currently 13 diagnostic packages to choose from:
The diagnostic output system requires that there be only one call to SCMOUTPUT for a given sname. It will also
object to any change in the order of calls to SCMOUTPUT in a given timestep. Typically this would occur if the
diagnostic is output in a section of code which is subject to an IF test which is not true every timestep or if it is
output in a section of code which is substepped or repeated more than once in a timestep.
In the model there is the option to run with substepping for convection or for physics2 (convection and boundary
layer). Any diagnostic within a substepping loop would then cause problems for the diagnostics system.
In the case where a diagnostic occurs under physics2 substepping the substep number is appended to the
diagnostic name for output, with the format sname_#X where X is the substep number. Any time averaging is
then the time average of the variable within that substep for all timesteps in that dumping period. Where the
time domain allows for multiplication or division by a different diagnostic, if that diagnostic is also substepped
then the same substep is used for the operation.
Note: The solution has only been applied to the physics2 substepping, and care is needed if outputting
diagnostics within any other substepped code.
The substepping affects approximately 40% of the diagnostics. Affected diagnostics occur in the convection,
boundary layer, large-scale cloud, increments, land, sea and surface packages and are listed in appendix C.
The use of strm_rejectlist can reduce the number of diagnostics output if a user is concerned about this,
but each individual substepped sname needs to be included in the character array.
[unsupported]
Physics2 substepping occurs in routine ATMOS _P HYSICS 2 around the calls to the boundary layer and convection
schemes. The SCM routines
SCM _ SUBSTEP _ START
SCM _ SUBSTEPPING _ END
ADD _ SUBSTEP _ TO _ SNAME (function)
are called to indicate the beginning and end of the substepping. First the beginning of the substepping is
indicated by:
DO substep_number=1, num_substeps
#if defined(SCMA)
! The SCM output diagnostic system needs to know what sub-step
! it’s currently on, if at all.
CALL scm_substep_start(substep_number)
#endif
then follows the substepped code, and at the end of the substepping:
END DO ! terminate substepping loop
#if defined(SCMA)
! The SCM output diagnostic system needs to know that
! sub-stepping has ended
CALL scm_substepping_end
#endif
There is the potential to generalise the substepping fix to the diagnostic code for multiple occurrences of
different substepping, whether nested or in series, but this is unsupported at the present time.
Array
Variable Description Type Default
Dims
nfor No. of observation forcing time-levels for each forcing variable con- Int n/a
tained in namelist &INOBSFOR in scm forcing file.
model_levels_nml No. of model levels in variable profiles in scm forcing file. This Int n/a
must match model_levels in the UM namelist file SIZES.
l_ts_log Turns on timestep message, reports an log of run progress. Log n/a false
land_points Number of land points in run. This must be consistent with the num- Int n/a 0
ber of land points specified by land_sea_mask
l_netcdf_obs Switch for including an external NetCDF forcing file in the run [un- Log n/a false
supported].
26 Radiation has separate timestep intervals Table 22: & RUNDATA namelists variables
27 If unset, value is initialised to tstari value from & INPROF
28 If set to 0, the model calculates a min/max tropopause model level based on climatologies
Variable Array
Description Default
(& LOGIC) Dims
ancyc Use annual cycle for varying radiation input n/a true
local_time Use local time rather than GMT for diagnostics. n/a true
altdat Use specified initial profiles of theta, q, u and v from & INPROF n/a true
land_sea_mask Mask for land points. (rl,rw) true
land_ice_mask Mask for land-ice points. (rl,rw) false
soil_mask Mask for land-soil points. (rl,rw) true
cumulus BL convection flag. (rl,rw) false
radcloud_fixed Use fixed cloud for radiation (disabled). n/a false
dev_test General logical for development tests. n/a false
Forcing/Relaxation
obs Use large-scale observational forcing. n/a false
obs_surf Use observational surface forcing. n/a false
stats Use large-scale statistical forcing. n/a false
noforce Do not apply any large-scale forcing. n/a false
geoforce Apply geostrophic wind forcing. n/a false
geoinit Initialise dump to geostrophic. n/a false
l_geo_centred Use centred-difference to calculate geostrophic forcing increments. n/a false
l_qpos_for Ensure q >= qlimit after large-scale forcing. n/a false
l_spec_z0 Use prescribed roughness lengths. n/a false
l_flux_bc Use prescribed surface flux forcings instead of surface temperature forcings n/a false
(sea-point)
Input/Output
test Output detailed sub-timestep diagnostics. n/a false
tapein Use initial data from previous run stored on tape. n/a false
tapeout Restart information plus diagnostic output to be stored on tape. n/a false
grafdump_step Graphical dump of mean values required each dump_step. n/a false
grafdump_day Output graphical dump of mean daily values. n/a false
grafdump_days Output graphical dump of mean values over dump_days. n/a false
prindump_step Printout of mean dump required each dump_step. n/a false
prindump_day Printout of mean daily dump required. n/a false
prindump_days Printout of mean dump over dump_days required. n/a false
prinstat Printout stats forcing every timestep. n/a false
prindump_obs Printout of observational diagnostics required every obs_timesteps n/a false
Table 24: & LOGIC namelists variables. All variables are of type Logical, descriptions are for status = true.
Variable Array Default
Description Type
(& INGWD) Dims (Units)
sd_orog_land Sub-grid orography standard deviation Real n/a 1000.0m
orog_grad_xx_land Squared gridbox-mean gradient in x-direction32 Real n/a 0.001
orog_grad_xy_land Squared gridbox-mean gradient in xy-direction32 Real n/a 0.001
orog_grad_yy_land Squared gridbox-mean gradient in yy-direction32 Real n/a 0.001
32 Ancillary Table
inputs to Gravity 25:Drag
Wave & INGWD namelists
Scheme, can bevariables to initialize
obtained from UM Stash Gravity Wave6,203:206.
diagnostics Drag scheme.
Table 28: & INGEOFOR namelists variables. Description for logicals are for status = true
33 The extra level is at the top of the column
34 Only valid if l_spec_z0 = true.
Table 29: & PHYSWITCH namelists variables. Description for logicals are for status = true
Variable Array Default
Description Type
(& RADCLOUD) Dims (Units)
cca_rad Convection cloud amount (fraction) Real (rl,rw)
iccb_rad Convective cloud base Int (rl,rw)
icct_rad Convective cloud top Int (rl,rw)
layer_cloud_rad Layer cloud amount (fraction) Real (rl,rw,wl)
qcl_rad Total cloud water and ice content over cloud Real (rl,rw,wl) kg/kg
qcf_rad Set to zero as user will usually input combined cloud water and ice Real (rl,rw,wl) kg/kg
content over cloud in qcl_rad
ccwpin_rad ccwpin_rad & convetive water path over cloud only Real (rl,rw) kg/m2
Table 30: & RADCLOUD namelists variables. Description for logicals are for status = true. Note: This feature is currently
disabled in the SCM
Atmospheric forcings
obs_pd Time period between forcing profiles Real n/a s
obs_bot Lower boundary of height range to apply forcings Real n/a m
obs_top Upper boundary of height range to apply forcings Real n/a m
t_inc Forcing tendency: Temperature Real (rw,rl,nfor,ml) K/day
q_star Forcing tendency: Specific humidity Real (rw,rl,nfor,wl) (kg/kg)/day
u_inc Forcing tendency: Zonal wind Real (rw,rl,nfor,ml) (m/s)/day
v_inc Forcing tendency: Meridional wind Real (rw,rl,nfor,ml) (m/s)/day
w_inc Forcing tendency; Vertical wind Real (rw,rl,nfor,0:ml) (m/s)/day
Surface forcings
flux_h Surface flux: Sensible heat Real (rw,rl,nfor) W/m2
flux_e Surface flux: Latent heat Real (rw,rl,nfor) W/m2
tstar_forcing Surface temperature forcing Real (rw,rl,nfor) K
Table 31: & INOBSFOR namelists variables. Description for logicals are for status = true
B Example file(s)
B.1 DebugScm
The following example script sets up a scm app for interactive debugging under idb/emacs at the Met Office,
UK. It may need to be modified for users at other locations. This script should be run after the SCM has been
compiled and run (or attempted to run) at least once by Rose.
#!/bin/ksh
#================================================================================
# Script to setup a SCM app for manual debugging from the users Linux machine |
# |
# NOTE: |
# This script written ASSUMING |
# * The user is based at the Met Office, UK |
# * All rose suites are kept in the users ~/roses directory |
# * The scm app has been compiled on the Linux system with debug information |
# * The scm build app is called fcm_make |
# * The scm app has been run at least once. |
# |
# 06/05/14 : Developed by R Y T Wong |
#================================================================================
#
# Usage: DebugScm <SuiteName> <AppName> <AppRunNumber>
#
#------------------------------------------------------------------------
# Get command line arguments |
#------------------------------------------------------------------------
SuiteName=$1 # 1st argument is suite name
AppName=$2 # 2nd argument is AppName i.e. scm
AppRunNumber=$3 # 3nd argument is App run number
clear
#------------------------------------------------------------------------
# 1.0 Check if job id exists |
#------------------------------------------------------------------------
if test ! -d ${HOME}/roses/${SuiteName} ; then
echo "Rose suite ${SuiteName} does not exist in ${HOME}/roses"
exit
fi
#------------------------------------------------------------------------
# 2.0 Get information on job from rose app config in cylc run directory |
#------------------------------------------------------------------------
TargetRoseAppFile=$HOME/cylc-run/${SuiteName}/app/${AppName}/rose-app.conf
DefaultScmPrintStatus=2
#------------------------------------------------------------------------
# 3.0 Set-up path/file variables |
#------------------------------------------------------------------------
ManScmDir=$HOME/DebugScm
ManAppDir=${ManScmDir}/${SuiteName}/${AppName}.${AppRunNumber}
RoseAppRunDir=$HOME/cylc-run/${SuiteName}/work/${AppName}.${AppRunNumber}
RoseAppExecDir=$HOME/cylc-run/${SuiteName}/share/fcm_make/build-scm/bin
#------------------------------------------------------------------------
# 4.0 Set up scm debugging job |
#------------------------------------------------------------------------
echo ’’
echo " Setting up SCM debug directory for ${AppName}.${AppRunNumber} in Rose suite ${SuiteName}"
#------------------------------------------------------------------------
# 4.1 Create manual run directory |
#------------------------------------------------------------------------
cd $HOME
if test -d ${ManAppDir} ; then
echo " Run directory ${ManAppDir} already exists"
else
echo " Creating linux run directory ${ManAppDir}"
mkdir -p ${ManAppDir}
fi
#------------------------------------------------------------------------
# 4.2 Copy UMUI namelists to run directory |
#------------------------------------------------------------------------
cd ${ManAppDir}
cp ${RoseAppRunDir}/SHARED ./ 2>/dev/null
cp ${RoseAppRunDir}/CNTLATM ./ 2>/dev/null
cp ${RoseAppRunDir}/CNTLALL ./ 2>/dev/null
cp ${RoseAppRunDir}/SCM_SET ./ 2>/dev/null
cp ${RoseAppRunDir}/SIZES ./ 2>/dev/null
cp ${RoseAppRunDir}/IOSCNTL ./ 2>/dev/null
#------------------------------------------------------------------------
# 4.3 Set symbolic link to executable from SCM run directory |
#------------------------------------------------------------------------
if test -h ${ManAppDir}/um-scm.exe ; then
rm ${ManAppDir}/um-scm.exe
fi
ln -s ${RoseAppExecDir}/um-scm.exe um-scm.exe
#------------------------------------------------------------------------
# 4.4 Set up idb initialisation file (.gdbinit) for GDB-mode |
#------------------------------------------------------------------------
if test -e $HOME/.gdbinit ; then
echo
echo " Modifying $HOME/.gdbinit for SCM debugging"
grep ’#IDB Initialisation settings for SCM Debugging (GDB mode)’ $HOME/.gdbinit 1>/dev/null 2>&1
if [ $? -eq 0 ] ; then
printf "
#IDB Initialisation settings for SCM Debugging (GDB mode)
#========================================================
set env VN ${VN}
set env JOBDIR ${ManAppDir}
set env IOSCNTL ${ManAppDir}/IOSCNTL
set env PRINT_STATUS ${PRINT_STATUS}
set env UNIT57 ${SPECTRAL_FILE_DIR}/
set env UNIT80 ${SPECTRAL_FILE_DIR}/
shell ulimit -a
alias src \"source\"\n" >> $HOME/.gdbinit
fi
chmod 755 $HOME/.gdbinit
echo ’’
echo " ${AppName}.${AppRunNumber} in ${SuiteName} setup for debugging"
echo " Run debugger within emacs (via Tools) using command:"
echo ’’
echo " idb ${ManAppDir}/um-scm.exe"
echo ’’
exit
C Diagnostics listings
This appendix lists the diagnostics currently available from the single column model. It lists which time and
domain profiles they are output with, what the array has been multiplied or divided by and the diagnostics
packages they are available from. It also lists the equivalent STASH code where available.
sname STASH
lname Units Profiles
(General) equiv.
u Zonal wind m/s t_avg, d_all 0,002
v Meridional wind m/s t_avg, d_all 0,003
theta Potential temperature K t_avg, d_all 0,004
q Specific humidity kg/kg t_avg, d_wet 0,010
w Vertical velocity m/s t_avg, d_all 0,150
rho_r2 Density*r*r after timestep kg/m t_avg, d_all 0,253
rho_only Density after timestep kg/m3 t_avg, d_all
p_rho Pressure on rho levels Pa t_avg, d_all 0,407
p_theta Pressure on theta levels Pa t_avg, d_all 0,408
h_theta Height of model theta levels m t_avg, d_all 15,101
h_rho Height of model rho levels m t_avg, d_all 15,102
T Temperature K t_avg, d_all 30,111
rh Relative humidity % t_avg, d_wet 30,113
rh2 Relative humidity over liquid water % t_avg, d_wet
sum_p_col Sum of theta-level pressures Pa t_acc, d_sl
tatmos Mean column temperature K t_acc_div, d_sl,
sum_p_col
qatmos Mean column specific humidity kg/kg t_acc_div, d_sl,
sum_p_col
aerosol Murk aerosol concentration µg/kg t_avg, d_wet
tracerXX Concentration of tracer kg/kg t_avg, d_all
sname STASH
lname Units Profiles
(Land) equiv.
tsoildeep Deep soil temperatures K t_avg, d_soilt 0,020
canopy_gb Canopy water content kg/m2 t_avg, d_sl 0,022
snowdepth Snow depth kg/m2 t_avg, d_sl 0,023
soilmoistunfroz Unfrozen soil moisture content kg/m2 t_avg, d_soilm 0,214
soilmoistfroz Frozen soil moisture content kg/m2 t_avg, d_soilm 0,215
snomlt_surf_htf Snowmelt heatflux (boundary layer scheme) † W/m2 t_avg, d_sl 3,258
gpp Gross primary productivity kgC /m2 /s t_mult, d_land, 3,261
oneKsecday
npp Net primary productivity kgC /m2 /s t_mult, d_land, 3,262
oneKsecday
resp_p Plant respiration kg/m2 /s t_mult, d_land, 3,263
oneKsecday
soil_evap Soil evapotranspiration kg/m2 /day t_mult, d_sl, 3,296
sec_day
can_evap Canopy evaporation kg/m2 /day t_mult, d_sl, 3,297
sec_day
tstartl Tile surface temp K t_avg, d_tile 3,316
snomlt_sub_htf Snow melt heat flux into sub-surface W/m2 t_avg, d_land n/a
soilmoist Soil moisture content kg/m2 t_avg, d_sl 8,208
soilmoistlay Layer soil moisture content kg/m2 t_avg, d_soilm 8,223
snomlt_hyd Snow melt (hydrology scheme) kg/m2 /day t_mult, d_land, 8,231
sec_day
snomlt_bl Snow melt (boundary layer scheme) kg/m2 /day t_mult, d_land, n/a
sec_day
thro_fall Throughfall kg/m2 /day t_mult, d_land, 8,233
sec_day
surf_roff Surface runoff kg/m2 /day t_mult, d_land, 8,234
sec_day
Sub_roff Sub-surface runoff kg/m2 /day t_mult, d_land, 8,235
sec_day
surf_ht_flux_ld Net downward heat flux into land fraction W/m2 t_avg, d_sl n/a
stoma_cond Stomatal conductance m/s t_avg, d_sl n/a
shf_tile Tile sensible heat flux W/m2 t_avg, d_tile 3,290
t1p5m_tile Tile 1.5m temperature K t_avg, d_tile 3,328
lhf_tile Tile latent heat flux W/m2 t_avg, d_tile 3,330
sname STASH
lname Units Profiles
(Sea) equiv.
sea_ice_htf Heat flux through sea ice † W/m2 t_avg, d_sl 3,256
sice_mlt_htf Heat flux due to melting sea ice † W/m2 t_avg, d_sl 3,257
surf_ht_flux_si Net downward heat flux into sea frctn † W/m2 t_avg, d_sl 3,338
sea_roughness Sea surface roughness length m t_avg, d_sl n/a
sname STASH
lname Units Profiles
(Surface) equiv.
surf_ht_flux Net downward heat flux at surface † W/m2 t_avg, d_sl 3,202
u10m Zonal 10m wind † m/s t_avg, d_sl 3,209
v10m Meridional 10m wind † m/s t_avg, d_sl 3,210
wspd10m 10m wind speed † m/s t_avg, d_sl 3,227
wdrn10m 10m wind direction † degs t_avg, d_sl n/a
gust10m 10m Gust † m/s t_avg, d_sl 3,463
lat_ht Surface latent heat flux † W/m2 t_avg, d_sl 3,234
t1p5m 1.5m temperature † K t_avg, d_sl 3,236
t1p5m_min Min 1.5m temperature † K t_min, d_sl n/a
t1p5m_max Max 1.5m temperature † K t_max, d_sl n/a
q1p5m 1.5m specific humidity † kg/kg t_avg, d_sl 3,237
rh1p5m Relative humidity at 1.5m † % t_avg, d_sl 3,245
rhw1p5m Relative humidity wrt H2 O at 1.5m † W/m2 t_avg, d_sl n/a
td1p5m 1.5m dewpoint temperature † W/m2 t_avg, d_sl 3,250
tl1p5m 1.5m liquid temperature † K t_avg, d_sl 3,254
qt1p5m 1.5m total water kg water/kg air † kgH2 0 /kgAIR t_avg, d_sl 3,255
vis1p5m 1.5m visibility † m t_avg, d_sl 3,281
pfog1p5m Probability of fog at 1.5m † - t_avg, d_sl 3,282
pmist1p5m Probability of mist at 1.5m † - t_avg, d_sl 3,283
pvisthresh Probability of vis LT threshold † - t_avg, d_vis n/a
visnop1p5m 1.5m visibility outside precip † m t_avg, d_sl 3,247
vislsp1p5m 1.5m visibility in LS precip † m t_avg, d_sl 3,284
viscp1p5m 1.5m visibility in conv precip † m t_avg, d_sl 3,285
sublim Sublimation from lying snow or sea ice kg/m2 /day t_mult, d_sl, 3,298
sec_day
z0m Roughness length for momentum m t_avg, d_sl 0,026
z0h Effective roughness length for heat m t_avg, d_sl 3,027
z0m_eff Effective roughness length for momentum m t_avg, d_sl
sname STASH
lname Units Profiles
(LS Cloud) equiv.
lowcld Low cloud fraction † fraction t_avg, d_sl 9,203
medcld Medium cloud fraction † fraction t_avg, d_sl 9,204
highcld High cloud fraction † fraction t_avg, d_sl 9,205
tcarndm Total cloud amount (random overlap) † fraction t_avg, d_sl 9,216
tcamxrn Total cloud amount (max. random) † fraction t_avg, d_sl 9,217
lyrcldfreq Layer cloud frequency indicator † - t_avg, d_wet 9,226
rhcpt Critical relative humidity † % t_avg, d_wet 9,228
rhaftcld Relative humidity after main cloud † % t_avg, d_wet 9,229
combca_ls Combined cloud amount in each layer † fraction t_avg, d_wet 9,231
sname STASH
lname Units Profiles
(PC2) equiv.
dt_swpc2 SW heating rate incl PC2 K/tstep t_acc, d_all 1,181
dt_lwpc2 LW heating rate incl PC2 K/tstep t_acc, d_all 2,181
sw2pc2 SW heating rate incl PC2 K/day t_mult, d_all, 1,181
ntspday
lw2pc2 LW heating rate incl PC2 K/day t_mult, d_all, 2,181
ntspday
dt_pc2ck Temperature increment pc2 checks ✛ K/tstep t_avg, d_all 4,141
dq_pc2ck Specific humidity increment PC2 checks ✛ (kg/kg)/tstep t_avg, d_wet 4,142
dqcl_pc2ck QCL increment PC2 checks ✛ (kg/kg)/tstep t_avg, d_wet 4,143
dqcf_pc2ck QCF increment PC2 checks ✛ (kg/kg)/tstep t_avg, d_wet 4,144
dbcf_pc2ck Bulk cloud fraction increment PC2 checks ✛ fraction/tstep t_avg, d_wet 4,152
dcfl_pc2ck Liquid cloud fraction increment PC2 checks ✛ fraction/tstep t_avg, d_wet 4,153
dcff_pc2ck Ice cloud fraction increment PC2 checks ✛ fraction/tstep t_avg, d_wet 4,154
dt_pc2turb Temperature increment PC2 turbulence ✛➃ K/tstep t_avg, d_all 4,161
dq_pc2turb Specific humidity increment PC2 turbulence ✛➃ (kg/kg)/tstep t_avg, d_wet 4,162
dqcl_pc2turb QCL increment PC2 turbulence ✛➃ (kg/kg)/tstep t_avg, d_wet 4,163
dbcf_pc2turb Bluk cloud fraction increment PC2 turbulence ✛➃ fraction/tstep t_avg, d_wet 4,172
dcfl_pc2turb Liquid cloud fraction increment PC2 turbulence ✛➃ fraction/tstep t_avg, d_wet 4,173
dt_pc2init Temperature increment PC2 init ✛ K/tstep t_inst, d_all 16,161
dq_pc2init Specific humidity increment PC2 init ✛ (kg/kg)/tstep t_inst, d_wet 16,162
dqcl_pc2init QCL increment PC2 init ✛ (kg/kg)/tstep t_inst, d_wet 16,163
dqcf_pc2init QCF increment PC2 init ✛ (kg/kg)/tstep t_inst, d_wet 16,164
dbcf_pc2init Bulk cloud frac increment PC2 init ✛ fraction/tstep t_inst, d_wet 16,172
dcfl_pc2init Liquid cloud frac increment PC2 init ✛ fraction/tstep t_inst, d_wet 16,173
dcff_pc2init Frozen cloud frac increment PC2 init ✛ fraction/tstep t_inst, d_wet 16,174
t_timen Temperature at start of timestep K t_inst, d_all
q_timen Vapour at start of timestep kg/kg t_inst, d_wet
qcl_timen Liquid at start of timestep kg/kg t_inst, d_wet
th_timen Potential temperature at start of timestep K t_inst, d_all
dt_earliest Q_star vapour incs from atmos_phys1 ✛ K/tstep t_inst, d_all
dq_earliest Q_star vapour incs from atmos_phys1 ✛ (kg/kg)/tstep t_inst, d_wet
dqcl_earliest QCL_inc liq water incs atmos_phys1 ✛ (kg/kg)/tstep t_inst, d_wet
th_n1_afterpc2 Theta at end of timestep after pc2 K t_inst, d_all
q_n1_afterpc2 Q at end of timestep after pc2 kg/kg t_inst, d_wet
qcl_n1_afterpc2 QCL at end of timestep after pc2 kg/kg t_inst, d_wet
dt_pc2forc PC2 T increment response to forcing ✛ K/tstep t_inst, d_all
dq_pc2forc PC2 q increment response to forcing ✛ (kg/kg)/tstep t_inst, d_wet
dqcl_pc2forc PC2 qcl increment response to forcing ✛ (kg/kg)/tstep t_inst, d_wet
dbcf_pc2forc PC2 bulk cf increment response to forcing ✛ fraction/tstep t_inst, d_wet
dcfl_pc2forc PC2 cfl increment response to forcing ✛ fraction/tstep t_inst, d_wet
dcff_pc2forc PC2 cff increment response to forcing ✛ fraction/tstep t_inst, d_wet
dt_pc2initchk Temperature increment PC2 init+chks ✛ K/tstep t_inst, d_all
dq_pc2initchk Specific humidity increment PC2 init+chks ✛ (kg/kg)/tstep t_inst, d_wet
dqcl_pc2initchk QCL increment PC2 init+chks ✛ (kg/kg)/tstep t_inst, d_wet
dqcf_pc2initchk QCF increment PC2 init+chks ✛ (kg/kg)/tstep t_inst, d_wet
dbcf_pc2initchk Bulk cloud fraction increment PC2 init+chks ✛ fraction/tstep t_inst, d_wet
dcfl_pc2initchk Liquid cloud fraction increment PC2 init+chks ✛ fraction/tstep t_inst, d_wet
dcff_pc2initchk Frozen cloud fraction increment PC2 init+chks ✛ fraction/tstep t_inst, d_wet
sname STASH
lname Units Profiles
(LS Precip) equiv.
ls_rain3d Rainfall rate out of model levels kg/m2 /s t_mult, d_wet, 4,222
sec_day
ls_snow3d Snowfall rate out of model levels kg/m2 /s t_mult, d_wet, 4,223
sec_day
ls_water_scool Supercooled liquid water content kg/kg t_avg, d_sl 4,224
ls_rain_scool Supercooled rain out of model levels kg/m2 /s t_avg, d_wet 4,225
rainfrac3d Rain fraction out of model levels fraction t_avg, d_wet 4,227
sname STASH
lname Units Profiles
(Convection) equiv.
ccb_z Convective cloud base height (weighted average) m t_div, d_sl, cca
ccb_pa Convective cloud base pressure (weighted average) Pa t_div, d_sl, cca 5,207
cct_z Convective cloud top height (weighted average) m t_div, d_sl, cca
cct_pa Convective cloud top pressure (weighted average) Pa t_div, d_sl, cca 5,208
cct Convective cloud top level of highest convective layer Model level t_avg, d_sl
ccb Convective cloud base level of highest convective layer Model level t_avg, d_sl
lcbase Convective cloud base level of lowest convective layer Model level t_avg, d_sl
lctop Convective cloud top level of lowest convective layer Model level t_avg, d_sl
t_afterconv Temperature after convection K t_avg, d_all 5,209
up_massflux Updraught mass flux Pa/s t_avg, d_all 5,250
down_massflux Downdraught mass flux Pa/s t_avg, d_all 5,251
entrain_up Updraught entrainment rate /s t_avg, d_all 5,252
detrain_up Updraught detrainment rate /s t_avg, d_all 5,253
entrain_dwn Downdraught entrainment rate /s t_avg, d_all 5,254
detrain_dwn Downdraught detrainment rate /s t_avg, d_all 5,255
uw_dp X_comp of stress from deep convection kg/m/s2 t_avg, d_all 5,258
vw_dp Y_comp of stress from deep convection kg/m/s2 t_avg, d_all 5,259
uw_shall X_comp of stress from shallow convection kg/m/s2 t_avg, d_all 5,260
vw_shall Y_comp of stress from shallow convection kg/m/s2 t_avg, d_all 5,261
ind_shallow Indicator for shallow convection Indicator t_inst, d_point 5,270
ind_deep Indicator for deep convection Indicator t_inst, d_point 5,269
ind_cumulus Indicator for cumulus convection Indicator t_inst, d_point 5,270
ind_midconv Indicator for mid-level convection Indicator t_inst, d_point 5,272
ntml Top level of surface mixed layer Model level t_inst, d_point 5,273
ntpar Top level of initial parcel ascent Model level t_inst, d_point 5,274
freeze_lev Freezing level Model level t_inst, d_point 5,275
kterm_deep Deep convection termination level Model level t_inst, d_point 5,276
precip_deep Deep convective precipitation kg/m2 /s t_inst, d_sl 5,277
precip_shall Shallow convective precipitation kg/m2 /s t_inst, d_sl 5,278
precip_mid Mid level convective precipitation kg/m2 /s t_inst, d_sl 5,279
precip_cong Congestus convective precipitation kg/m2 /s t_inst, d_sl 5,280
cca Convective cloud amount Fraction t_avg, d_all 5,212
ccw Convective cloud water kg/kg t_avg, d_wet 5,213
lcca Convective cloud amount at base of lowest convective Fraction t_avg, d_sl
cloud layer (no anvil)
wstar Sub-cloud convective velocity scale m/s t_avg, d_sl
sname STASH
lname Units Profiles
(Convection) equiv.
ind_congest Indicator for congestus convection Indicator t_inst, d_point 5,310
wthvs wthetav flux at surface Km/s t_avg, d_sl
cclwp Convective cloud water path ‡ kg/m2 t_avg, d_sl 0,016
cca_2d 2D convective cloud amount Fraction t_avg, d_sl
deep_flag History of deep convection t_avg, d_sl
past_precip History of convective precip kg/m2 t_avg, d_sl
past_conv_ht History of convective depth m t_avg, d_sl
t_cdiag Temperature cond_diag K t_inst, d_wet
q_cdiag q cond_diag kg/kg t_inst, d_wet
buoy_undil Parcel buoyancy -undilute K t_inst, d_wet
t_parc_undil Undilute parcel temperature K t_inst, d_wet
ql_parc Parcel water kg/kg t_inst, d_wet
k_plume Model level for parcel start Model level t_inst, d_point
qw_plume Initial parcel water kg/kg t_inst, d_point
sl_plume Initial parcel energy J t_inst, d_point
delthvu CAPE from conv_diag J t_inst, d_point
z_lcl LCL height m t_inst, d_point
cin Undilute parcel CIN m2 /s2 t_inst, d_point
cape Undilute parcel CAPE m2 /s2 t_inst, d_point
conv_rain_3d Convective rainfall flux kg/m2 /s t_avg, d_wet 5,227
conv_snow_3d Convective snowfall flux kg/m2 /s t_avg, d_wet 5,228
up_halfmassflux Updraught mass flux on half levs ➅ Pa/s t_avg, d_all 5,249
buoy_dil Parcel buoyancy - dilute ➂ K t_inst, d_wet
t_parc_dil Dilute parcel temperature ➂ K t_inst, d_wet
ql_parc_dil Parcel water dilute plume ➂ kg/kg t_inst, d_wet
sl_parc Parcel energy ➂ K t_inst, d_wet
qw_parc Total parcel water ➂ kg/kg t_inst, d_wet
entrain_frac Entrainment fraction ➂ Fraction t_inst, d_wet
column_rh Column integrated RH ❖ t_inst, d_point
column_rh_bl Column integrated RH in BL ❖ t_inst, d_point
column_q Column integrated q ❖ t_inst, d_point
column_q_bl Column integrated q in BL ❖ t_inst, d_point
qsat_c qsaturation on convective points ❖ t_inst, d_wet
clf_limited_deep Indicator for CFL limited deep Indicator t_inst, d_point
clf_limited_mid Indicator for CFL limited mid Indicator t_inst, d_point
ent_coef entrainment coefficient t_inst, d_point
z_lcl_nlcl LCL height at nlcl m t_inst, d_point
dt_conv_dd dT/dt from conv DD K/s t_avg, d_all 5,198
dq_conv_dd dq/dt from conv DD (kg/kg)/s t_avg, d_all 5,199
dqsat_dt dqsat_dt ➆ K(m/s) t_inst, d_wet
wthetal wthetal ➆ K(m/s) t_inst, d_wet
wqt wqt ➆ kg/kg (m/s) t_inst, d_wet
wqr wqr on uv levels ➆ kg/kg (m/s) t_inst, d_wet
precip_prod precip production on theta levels ➆ /s t_inst, d_wet
zcld Depth of cloud layer ➆ m t_inst, d_point
wh wh on model levels ➆ K (m/s) t_inst, d_wet
wql wql flux in convective cloud ➆ t_inst, d_wet
mb_cb cloud base mass flux ➆ m/s t_inst, d_point
mb_new_cb revised cloud base mass flux ➆ m/s t_inst, d_point
wstar_up wstar_up ➆ m/s t_inst, d_point
wthetal_cb wthetal at cloud base ➆ K m/s t_inst, d_point
sname STASH
lname Units Profiles
(Convection) equiv.
wqt_cb wqt at cloud base ➆ kg/kg (m/s) t_inst, d_point
wql_cb wql at cloud base ➆ kg/kg (m/s) t_inst, d_point
wqr_inv wqr at inversion ➆ kg/kg (m/s) t_inst, d_point
dthetav_cb dthetav across cloud base ➆ K t_inst, d_point
dtheta_cb dtheta across cloud base ➆ K t_inst, d_point
drv_cb drv across cloud base ➆ kg/kg t_inst, d_point
wthetavl_m_cb wthetavl on lower side of cloud base ➆ km/s t_inst, d_point
wqt_inv wqt at inversion ➆ kg/kg m/s t_inst, d_point
wthetal_inv wthetal at inversion ➆ kg/kg m/s t_inst, d_point
dwqldz dql/dz on model levels ➆ kg/kg s t_inst, d_wet
qlup qlup on model levels ➆ kg/kg t_inst, d_wet
wup wup on model levels ➆ m/s t_inst, d_wet
wthetavl wthetavl on model levels ➆ K m/s t_inst, d_wet
wthetav wthetav on model levels ➆ K m/s t_inst, d_wet
fw_func updraught velocity similarity function, fw ➆ t_inst, d_wet
g_func mass flux similarity function, g ➆ t_inst, d_wet
k_func flux eddy diffusivity, k ➆ t_inst, d_wet
f0_func f0_func ➆ t_inst, d_wet
f1_func f1_func ➆ t_inst, d_wet
ftheta_func ftheta_func ➆ t_inst, d_wet
k_hfunc k_hfunc ➆ t_inst, d_wet
fng_hfunc fng_hfunc ➆ t_inst, d_wet
b_hfunc b_hfunc ➆ t_inst, d_wet
fw_hfunc fw_hfunc ➆ t_inst, d_wet
g_hfunc g_hfunc ➆ t_inst, d_wet
fql_func fql_func ➆ t_inst, d_wet
gql_func gql_func ➆ t_inst, d_wet
sname STASH
lname Units Profiles
(B.Layer) equiv.
bl_type_1 Boundary layer type: stable † indicator t_avg, d_sl 3,305
bl_type_2 Boundary layer type: Sc over stable † indicator t_avg, d_sl 3,306
bl_type_3 Boundary layer type: well mixed † indicator t_avg, d_sl 3,307
bl_type_4 Boundary layer type: decoup Sc not over Cu † indicator t_avg, d_sl 3,308
bl_type_5 Boundary layer type: decoup Sc over Cu † indicator t_avg, d_sl 3,309
bl_type_6 Boundary layer type: cumulus capped † indicator t_avg, d_sl 3,310
bl_type_7 Boundary layer type: shear driven † indicator t_avg, d_sl 3,340
bl_alltypes Boundary layer types † - t_inst, d_sl 3,476
bl_depth Boundary layer depth (zh) † m t_avg, d_sl 0,025
rib Richardson number (lowest layer) - t_avg, d_sl 3,208
ftl Turbulent sensible heat flux W/m2 t_avg, d_bl 3,216
taux Wind stress x N/m2 t_avg, d_bl 3,219
tauy Wind stress y N/m2 t_avg, d_bl 3,220
fqt_bl Sensible moisture flux † kg/m2 /s t_avg, d_bl 3,222
fqt Turbulent moisture flux kg/m2 /s t_avg, d_bl 3,222
thv_env Environment virtual temperature + gz/cp † K t_avg, d_wet n/a
thv_par Parcel virtual temperature + gz/cp † K t_avg, d_wet n/a
Ri_bl Richardson Number † - t_avg, d_bl 3,468
sname STASH
lname Units Profiles
(B.Layer) equiv.
ustar Surface friction velocity † m/s t_avg, d_bl 3,465
sl Liquid/frozen water static energy (IN) † K t_avg, d_bl n/a
qw Total water content (IN) † kg/kg t_avg, d_bl n/a
taux_grad Gradient part of u stress † kg/m/s2 t_avg, d_bl n/a
taux_nongrad Non-gradient part of u stress † kg/m/s2 t_avg, d_bl n/a
tauy_grad Gradient part of v stress † kg/m/s2 t_avg, d_bl n/a
tauy_nongrad Non-gradient part of v stress † kg/m/s2 t_avg, d_bl n/a
grad_ftl Down gradient flux of TL † W/m2 t_avg, d_bl n/a
surf_ng_ftl Surface driven non-gradient flux of TL † W/m2 t_avg, d_bl n/a
grad_fqw Down gradient flux of QW † kg/m2 /s t_avg, d_bl n/a
surf_ng_fqw Surface driven non-gradient flux of QW † kg/m2 /s t_avg, d_bl n/a
f2_ftl FTL: f2 term † W/m2 t_avg, d_bl n/a
f2_fqw FQW: f2 term † kg/m2 /s t_avg, d_bl n/a
fSc_ftl FTL: fSc term † W/m2 t_avg, d_bl n/a
fSc_fqw FQW: fSc term † kg/m2 /s t_avg, d_bl n/a
momdif Diffusivity of momentum † m2 /s t_avg, d_bl 3,471
htdiff Diffusivity of heat † m2 /s t_avg, d_bl 3,472
km_local Diffusivity of momentum (local) † m2 /s t_avg, d_bl 3,503
kh_local Diffusivity of heat (local) † m2 /s t_avg, d_bl 3,504
km_surf Diffusivity of momentum (surface) † m2 /s t_avg, d_bl 3,505
kh_surf Diffusivity of heat (surface) † m2 /s t_avg, d_bl 3,506
km_top Diffusivity of momentum (top) † m2 /s t_avg, d_bl 3,507
kh_top Diffusivity of heat (top) † m2 /s t_avg, d_bl 3,508
dscbase Base of decoupled layer m t_avg, d_sl 3,360
sccldbase Stratocumulus cloud base m t_avg, d_sl 3,361
entr_sml SML-top entrainment rate m/s t_avg, d_sl 3,362
entr_bl BL-top entrainment rate m/s t_avg, d_sl 3,363
dsiems_sml SML-top d_ctei t_avg, d_sl
dsiems BL top d_ctei t_avg, d_sl
k_ctei_sml SML top ctei parameter t_avg, d_sl
k_ctei BL-top ctei parameter t_avg, d_sl
chi_s_sml SML top chi_s parameter t_avg, d_sl
chi_s BL-top chi_s parameter t_avg, d_sl
db_top SML inversion strength m2 /s3 t_avg, d_sl
db_bl BL-top inversion strength t_avg, d_sl
qcl_ic_top BL-top in-cloud water content t_avg, d_sl
zh Boundary layer depth after B.layer m t_avg, d_sl 3,025
ftl_surf Surface sensible heat flux from B.layer W/m2 t_avg, d_sl 3,217
fqt_surf Surface sensible moisture flux from B.layer kg/m2 /s t_avg, d_sl 3,223
zht Turbulent mixing height after B.layer † m t_avg, d_sl 3,304
wb_mix Buoyancy flux if a mixed layer m2 /s3 t_avg, d_bl
wb_end Final estimate of buoyancy flux m2 /s3 t_avg, d_bl
TKE BL diagnostic of turbulent kinetic energy m2 /s t_avg, d_bl 3,473
dt_fric T increment from turbulence dissipation K t_avg, d_bl 3,188
sl_ga Gradient-adjusted SL K t_avg, d_bl
zh_loc_dd ZH found from Ri under DynDiag m t_avg, d_sl
dbdz Buoyancy gradient in Ri t_avg, d_bl 3,469
dvdz Shear in Ri t_avg, d_bl 3,470
elm Mixing length for momentum m t_avg, d_bl 3,501
zhpar Height of top of parcel ascent m t_avg, d_sl 3,359
sml_disc_inv Indicator for subgrid SML inversion Indicator t_inst, d_point
dsc_disc_inv Indicator for subgrid DSC inversion Indicator t_inst, d_point
sname STASH
lname Units Profiles
(B.Layer) equiv.
wb_ng Non-gradinet buoyancy flux t_avg, d_bl 3,140
cf_nl non-local cloud fraction t_avg, d_bl
cape_scu CAPE t_avg, d_sl
zlcl_scu Z_LCL t_avg, d_sl
zhpar_scu ZHPAR t_avg, d_sl
sm non-dim diffusion coefficient for momentum m2 /s t_avg, d_bl 3,138
sh non-dim diffusion coefficient for heat m2 /s t_avg, d_bl 3,139
tke_shr_prod shear production of TKE m2 /s3 t_avg, d_bl 3,135
tke_boy_prod buoyancy production of TKE m2 /s3 t_avg, d_bl 3,136
tke_dissp dissipation of TKE m2 /s3 t_avg, d_bl 3,137
gamt_factor stability factor for gamt t_avg, d_bl
gamq_factor stability factor for gamt t_avg, d_bl
pdc_factor stability factor for pdc t_avg, d_bl
vt buoyancy parameter for heat t_avg, d_bl
vg buoyancy parameter for moisture t_avg, d_bl
grad_ri gradient Richardson number t_avg, d_bl 3,468
cf_trb cloud fraction by TKE scheme t_avg, d_bl 3,141
qi_trb condensed water by TKE scheme kg/kg t_avg, d_bl 3,142
sgm_trb PDF width by TKE scheme t_avg, d_bl 3,143
q1 normalized excessive moisture t_avg, d_bl
zh_loc ZH found from Ri m t_avg, d_sl 3,358
coupled Weakly coupled DSC Indicator t_avg, d_sl
svl_diff_frac Decoupling SVL fraction t_avg, d_sl
df_top radiative flux difference across BL top K m/s t_avg, d_sl
frad_lw Net LW radiative flux in BL K m/s t_avg, d_bl
h_pbl BL height by vertical profile of SL m t_avg, d_sl
dust_fluxXX BL flux of dust category XX m/s t_avg, d_bl
murk_flux BL flux of MURK m/s t_avg, d_bl
tracer_fluxXX BL flux of tracer XX m/s t_avg, d_bl
cg_fqw Counter gradient part of flux of QW kg/m2 /s t_avg, d_bl 3,133
cg_ftl Counter gradient part of flux of TL W/m2 t_avg, d_bl 3,132
cov_trb Correlation of thetal and qw (K kg/kg)2 t_avg, d_bl 0,073
qsq_trb Self covariance of qw (K kg/kg)2 t_avg, d_bl 0,072
tsq_trb Self covariance of thetal K2 t_avg, d_bl 0,071
e_trb Turbulent Kinetic Energy J/kg t_avg, d_bl 0,070
fb_surf buoyancy flux at the surface m2 /s3 t_avg, d_bl 3,467
dbdz Vertical gradient of buoyancy 1/(ms2 )m2 /s t_avg, d_bl
dqwdz Vertical gradient of QW 1/m t_avg, d_bl
dtldz Vertical gradient of TL K/m t_avg, d_bl
dzh_bl Inversion thickness after BL m t_avg, d_sl 3,364
sname STASH
lname Units Profiles
(Radiation) equiv.
dt_sw SW heating rate K/tstep t_acc, d_all 1,161
dt_lw LW heating rate minus PC2 K/tstep t_acc, d_all 2,161
sw2 SW heating rate K/day t_mult, d_all, 1,161
ntspday
lw2 LW heating rate minus PC2 K/day t_mult, d_all, 2,161
ntspday
surfsw Net surface SW flux W/m2 t_avg+̃, d_sl 1,201
surf_sw_b1 Net SW surface flux in band 1 W/m2 t_avg+̃, d_sl 1,204
is_toa Incoming solar radn (TOA) W/m2 t_avg+̃, d_sl 1,207
os_toa Outgoing solar radn (TOA) W/m2 t_avg+̃, d_sl 1,208
cs_os Clear-sky outgoing SW W/m2 t_avg+̃, d_sl 1,209
cs_surf_dnsw Clear-sky down SW flux W/m2 t_avg+̃, d_sl 1,210
cs_surf_upsw Clear-sky up SW flux W/m2 t_avg+̃, d_sl 1,211
re_strat Layer cld liq effective radius × layer cld weight - t_avg+̃, d_cloud 1,221
wgt_strat Layer cloud weight for microphysics - t_avg+̃, d_cloud 1,223
lwp_strat Layer cld liquid water path * weight kg/m2 t_avg+̃, d_cloud 1,224
re_conv Conv cloud liq re * conv cld weight - t_avg+̃, d_cloud 1,225
wgt_conv Conv cloud weight for microphysics - t_avg+̃, d_cloud 1,226
sw1rate SW heating rate all timestep K/tstep2 t_avg, d_all 1,232
dt_cssw Clear-sky SW heating rates K/s t_avg+̃, d_sl 1,233
surfsw_dn Total down SW flux W/m2 t_avg+̃, d_sl 1,235
surf_lw Net surface LW flux W/m2 t_avg+̃, d_sl 2,201
tca_lw Total cloud amount in LW rad fraction t_avg+̃, d_sl 2,204
olr_toa Outgoing LW W/m2 t_avg+̃, d_sl 2,205
cs_olr Clear-sky outgoing LW W/m2 t_avg+̃, d_sl 2,206
surf_dnlw Downward LW surface flux W/m2 t_avg+̃, d_sl 2,207
cs_surf_dnlw Clear-sky down LW flux W/m2 t_avg+̃, d_sl 2,208
dt_cslw Clear-sky LW heating rates K/s t_avg+̃, d_sl 2,233
surfsw_cor Corrected net surface SW flux W/m2 t_avg, d_sl 1,202
toasw_cor Corrected outgoing SW flux (TOA) W/m2 t_avg, d_sl 1,205
surfdir_cor Corrected direct surface SW flux W/m2 t_avg, d_sl 1,215
surfdif_cor Corrected diffuse surface SW flux W/m2 t_avg, d_sl 1,216
ls_qcl_rad Stratiform cloud liquid water kg/kg t_avg+̃, d_all 2,308
ls_qcf_rad Stratiform cloud ice water kg/kg t_avg+̃, d_all 2,309
cc_qcl_rad Convective cloud liquid water kg/kg t_avg+̃, d_all 2,310
cc_qcf_rad Convective cloud ice water kg/kg t_avg+̃, d_all 2,311
ls_cl_rad Stratiform liquid cloud fraction fraction t_avg+̃, d_all 2,312
ls_cf_rad Stratiform ice cloud fraction fraction t_avg+̃, d_all 2,313
ccal_rad Convective liquid cloud fraction fraction t_avg+̃, d_all 2,314
ccaf_rad Convective ice cloud fraction fraction t_avg+̃, d_all 2,315
dq_sw Specific humidity increment swrad ✛ (kg/kg)/tstep t_avg+̃, d_wet 1,182
dqcl_sw QCL increment swrad ✛ (kg/kg)/tstep t_avg+̃, d_wet 1,183
dbcf_sw Bulk cloud fraction increment swrad ✛ fraction/tstep t_avg+̃, d_wet 1,192
dcfl_sw Liquid cloud fraction increment swrad ✛ fraction/tstep t_avg+̃, d_wet 1,193
dq_lw Specific humidity increment lwrad ✛ (kg/kg)/tstep t_avg+̃, d_wet 2,182
dqcl_lw QCL increment lwrad ✛ (kg/kg)/tstep t_avg+̃, d_wet 2,183
dbcf_lw Bulk cloud fraction increment lwrad ✛ fraction/tstep t_avg+̃, d_wet 2,192
dcfl_lw Liquid cloud fraction increment lwrad ✛ fraction/tstep t_avg+̃, d_wet 2,193
Table 42: Radiation diagnostics package. +̃ indicates the only_radsteps keyword.
sname STASH
lname Units Profiles
(Grav. Wave Drag) equiv.
qw_stress_u Mtn Drag: full u stress N/m2 t_inst, d_all 6,201
qw_stress_v Mtn Drag: full v stress N/m2 t_inst, d_all 6,202
qw_satn_stress_u Mtn Drag: gw u stress N/m2 t_inst, d_all 6,223
qw_satn_stress_v Mtn Drag: gw v stress N/m2 t_inst, d_all 6,224
qw_wake_- Mtn Drag: wake u stress N/m2 t_inst, d_all 6,227
stress_u
qw_wake_- Mtn Drag: wake v stress N/m2 t_inst, d_all 6,228
stress_v
qw_satn_acc_u Mtn Drag: gw u acc m/s2 t_inst, d_all 6,207
qw_satn_acc_v Mtn Drag: gw v acc m/s2 t_inst, d_all 6,208
qw_wake_acc_u Mtn Drag: wake u acc m/s2 t_inst, d_all 6,231
qw_wake_acc_v Mtn Drag: wake v acc m/s2 t_inst, d_all 6,232
qw_u_in Mtn Drag: low-level u m/s t_inst, d_sl 6,214
qw_v_in Mtn Drag: low-level v m/s t_inst, d_sl 6,215
qw_nsq_in Mtn Drag: low-level nsq /m2 t_inst, d_sl 6,216
qw_fr Mtn Drag: low-level froude num t_inst, d_sl 6,217
qw_bl_depth Mtn Drag: blocked layer depth m t_inst, d_sl 6,218
sname STASH
lname Packages Units Profiles
(Multiples) equiv.
dqcl_cinh QCL inc: conv inhom ✛ Incs, Conv (kg/kg)/tstep t_avg, d_wet 5,163
dqcf_cinh QCF inc: conv inhom ✛ Incs, Conv (kg/kg)/tstep t_avg, d_wet 5,164
dbcf_cinh Bulk cloud frac inc: conv inhom ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,172
dcfl_cinh Liq cloud frac inc: conv inhom ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,173
dcff_cinh Froz cloud frac inc: conv inhom ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,174
dt_conv T_incr_diagnostic ✛ Incs, Conv K/tstep t_avg, d_all 5,181
dth_conv Convective increment - theta ✛ Incs, Conv K/tstep t_mult, d_all, n/a
sec_day
dq_conv Q increment convection ✛ Incs, Conv (kg/kg)/tstep t_avg, d_wet 5,182
du_conv U increment convection ✛ Incs, Conv (m/s)/tstep t_avg, d_all 5,185
dv_conv V increment convection ✛ Incs, Conv (m/s)/tstep t_avg, d_all 5,186
dqcl_conv QCL increment convection ✛ Incs, Conv (kg/kg)/tstep t_avg, d_wet 5,183
dqcf_conv QCF increment convection ✛ Incs, Conv (kg/kg)/tstep t_avg, d_wet 5,184
dbcf_conv Bulk cloud frac increment convection ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,192
dcfl_conv Liquid cloud frac increment convection ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,193
dcff_conv Frozen cloud frac increment convection ✛ Incs, Conv fraction/tstep t_avg, d_wet 5,194
dt_lsr Temperature increment, large-scale rain ✛ Incs, LSP K/tstep t_avg, d_all 4,181
dq_lsr Specific humidity increment, large-scale rain ✛ Incs, LSP (kg/kg)/tstep t_avg, d_all 4,182
dqcl_lsr QCL increment, large-scale rain ✛ Incs, LSP (kg/kg)/tstep t_avg, d_all 4,183
dqcf_lsr QCF increment, large-scale rain ✛ Incs, LSP (kg/kg)/tstep t_avg, d_all 4,184
dbcf_lsr Bulk cloud frac increment, large-scale rain ✛ Incs, LSP fraction/tstep t_avg, d_all 4,192
dcfl_lsr Liq cloud frac increment, large-scale rain ✛ Incs, LSP fraction/tstep t_avg, d_all 4,193
dcff_lsr Froz cloud frac increment, large-scale rain ✛ Incs, LSP fraction/tstep t_avg, d_all 4,194
dt_pc2blls Temperature inc PC2+bdy layer+ls cld †✛❀ Incs, BL K/tstep t_avg, d_all 3/9,181
Table 43: Diagnostics accessed from multiple packages.
sname STASH
lname Packages Units Profiles
(Multiples) equiv.
dq_pc2blls Specific humidity inc PC2+bdy layer+ls cld †✛❀ Incs, BL (kg/kg)/tstep t_avg, d_wet 3/9,182
dqcl_pc2blls QCL increment PC2+bdy layer+ls cld †✛❀ Incs, BL (kg/kg)/tstep t_avg, d_wet 3/9,183
dqcf_pc2blls QCF increment PC2+bdy layer+ls cld †✛❀ Incs, BL (kg/kg)/tstep t_avg, d_wet 3/9,184
du_bl U wind increment bdy layer †✛ Incs, BL (m/s)/tstep t_avg, d_all 3,185
dv_bl V wind increment bdy layer †✛ Incs, BL (m/s)/tstep t_avg, d_all 3,186
dlwt_bl Liquid water temp increment bdy layer †✛ Incs, BL K/tstep t_avg, d_all 3,189
tqinc_bl Total (liquid) water increment bdy layer †✛ Incs, BL kg/kg t_avg, d_all 3,190
dbcf_bl Bulk cloud fraction increment bdy layer †✛ Incs, BL fraction/tstep t_avg, d_wet 3,192
dcfl_bl Liquid cloud fraction increment bdy layer †✛ Incs, BL fraction/tstep t_avg, d_wet 3,193
dcff_bl Frozen cloud fraction increment bdy layer †✛ Incs, BL fraction/tstep t_avg, d_wet 3,194
dt_vertadv Temperature increment from vertical advec- ➀✛ Incs, Forc K/tstep t_avg, d_all n/a
tion
dq_vertadv Humidity increment from vertical advection ➀✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcl_vertadv QCL increment from vertical advection ➀✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcf_vertadv QCF increment from vertical advection ➀✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dt_obsforc Temperature increment from observational ➁✛ Incs, Forc K/tstep t_avg, d_all n/a
forcing
du_obsforc U increment from observational forcing ➁✛ Incs, Forc (m/s)/tstep t_avg, d_all n/a
dv_obsforc V increment from observational forcing ➁✛ Incs, Forc (m/s)/tstep t_avg, d_all n/a
dw_obsforc W increment from observational forcing Incs, Forc kg/kg t_avg, d_all n/a
dq_obsforc Humidity increment from observational forc- ➁✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
ing
dt_totforc Total Temperature increment from s_forcng ♦✛ Incs, Forc K/tstep t_avg, d_all n/a
du_totforc Total u increment from s_forcng ♦✛ Incs, Forc (m/s)/tstep t_avg, d_all n/a
dv_totforc Total v increment from s_forcng ♦✛ Incs, Forc (m/s)/tstep t_avg, d_all n/a
dq_totforc Total Humidity increment from s_forcng ♦✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcl_totforc Total QCL increment from s_forcng ♦✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcf_totforc Total QCF increment from s_forcng ♦✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
sens_ht Surface sensible heat flux Gen, Surf W/m2 t_avg, d_sl 3,217
qcf Cloud ice content Gen, LSC kg/kg t_avg, d_wet 0,012
qcl Cloud water content Gen, LSC kg/kg t_avg, d_wet 0,254
acf Area cloud fraction Gen, LSC fraction t_avg, d_wet 0,265
bcf Bulk cloud fraction Gen, LSC fraction t_avg, d_wet 0,266
layer_cloud Layer cloud amount Gen, LSC fraction t_avg, d_wet n/a
cfl Liquid cloud fraction Gen, LSC fraction t_avg, d_wet 0,267
cff Frozen cloud fraction Gen, LSC fraction t_avg, d_wet 0,268
ls_rain_inst Large-scale rainfall rate Gen, LSP kg/m2 /s t_inst, d_sl 4,203
ls_rain Large-scale rainfall rate Gen, LSP kg/m2 /day t_mult,d_sl, 4,203
sec_day
ls_snow_inst Large-scale snowfall rate Gen, LSP kg/m2 /s t_inst, d_sl 4,204
ls_snow Large-scale snowfall rate Gen, LSP kg/m2 /day t_mult,d_sl, 4,204
sec_day
sname STASH
lname Packages Units Profiles
(Multiples) equiv.
conv_rain_inst Convective rainfall Gen, Conv kg/m2 /s t_inst, d_sl 5,205
conv_rain Convective rainfall Gen, Conv kg/m2 /day t_mult, d_sl 5,205
sec_day
conv_snow_inst Convective snowfall Gen, Conv kg/m2 /s t_inst, d_sl 5,206
conv_snow Convective snowfall Gen, Conv kg/m2 /day t_mult, d_sl 5,206
sec_day
cclwp2rad CCLWP passed to radiation Gen, Conv kg/m2 t_avg, d_sl 0,016
cca2rad CCA passed to radiation Gen, Conv fraction t_avg, d_all 0,211
ccw2rad CCW passed to radiation ➄ Gen, Conv kg/kg t_avg, d_wet
w_adv Advective vertical velocity Gen, Conv m/s t_avg, d_all 0,258
tstar Surface temperature Gen, Surf K t_avg, d_sl 0,024
pstar Surface pressure Gen, Surf Pa t_avg, d_sl 0,409
tot_rain_inst Total rainfall rate Gen, Conv kg/m2 /s t_inst, d_sl 5,214
LSP
tot_rain Total rainfall rate Gen, Conv kg/m2 /day t_mult, d_sl 5,214
LSP sec_day
tot_snow_inst Total snowfall rate Gen, Conv kg/m2 /s t_inst, d_sl 5,215
LSP
tot_snow Total snowfall rate Gen, Conv kg/m2 /day t_mult, d_sl 5,215
LSP sec_day
tot_precip_inst Total precipitation rate Gen, Conv kg/m2 /s t_inst, d_sl 5,216
LSP
tot_precip Total precipitation rate Gen, Conv kg/m2 /day t_mult, d_sl 5,216
LSP sec_day
tot_precip_avg Precipitation rate Gen, Conv kg/m2 /s t_avg, d_sl 5,216
LSP
tot_precip_acc Accumulated Precipitation Gen, Conv kg/m2 /s t_avg, d_sl n/a
LSP
lwrate_day LW heating rate Gen, Rad K/day t_mult, d_allxtra 2,232
ntspday
lwrate_step LW heating rate Gen, Rad K/tstep t_avg, d_allxtra 2,232
ntspday
lwrate_acc Accumulated LW heating rate across Gen, Rad K/tstep t_acc, d_allxtra 2,232
Dumping period ×dumps
down_surf_sw_b1 Downward SW radn in band 1 Rad, Surf W/m2 t_avg, d_sl n/a
lwp Liquid water path † LSC, BL kg/m2 t_avg, d_sl n/a
iwp Ice water path † LSC, BL kg/m2 t_avg, d_sl n/a
lca1p5m 1.5m layer cloud amount † LSC, Surf fraction t_avg, d_sl n/a
qcl1p5m 1.5m cloud water † LSC, Surf kg/kg t_avg, d_sl n/a
dq_qpos_for Specific humidity adjustment to LS forcing ✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
to maintain qlimit
dq_qpos Q inc to prevent q < qlimit ✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcl_qpos Qcl inc to prevent -ve qcl ✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
dqcf_qpos Qcf inc to prevent -ve qcf ✛ Incs, Forc (kg/kg)/tstep t_avg, d_wet n/a
w2p w2 Simpson&Wiggert Incs, Conv (m/s)2 t_avg, d_all 5,196
wp w Simpson&Wiggert Incs, Conv m/s t_avg, d_all 5,197
ls_u_inc Large-scale u-wind forcing tendency Incs, Forc (m/s)/day t_inst, d_all n/a
ls_v_inc Large-scale v-wind forcing tendency Incs, Forc (m/s)/day t_inst, d_all n/a
ls_w_inc Large-scale w-wind forcing tendency Incs, Forc (m/s)/day t_inst, d_all n/a
bg_t Background temperature Incs, Forc K t_inst, d_all n/a
bg_q Background specific humidity Incs, Forc kg/kg t_inst, d_all n/a
bg_u Background u-wind Incs, Forc m/s t_inst, d_all n/a
bg_v Background v-wind Incs, Forc m/s t_inst, d_all n/a
bg_w Background w-wind Incs, Forc m/s t_inst, d_all n/a
References
Bechtold, P. , Redelsperger, J.-L. , Beau, I. , Blackburn, M. , Brinkop, J.-Y. , S.and Grandpeix, Grant, A. ,
Gregory, D. , Guichard, F. , Hoff, C. , and Ioannidou, E. , 2000. A GCSS model intercomparison for a
tropical squall line observed during TOGA-COARE. II: Intercomparison of single-column models and a cloud-
resolving model. Q.J.R Meteorol. Soc., 126:865–888.
(Referenced on page 2.)
Buckley, E. and Warrilow, D.A. , 1988. Derivation of land surface parameter datasets for use in Met. O. 20
GCM. Met O 20 Internal Note 81, UK Met Office.
(Referenced on page 12.)
Essery, R. , Best, M. , and Cox, P. , 2001. MOSES 2.2 technical documentation. Hadley Centre Technical
Note, HCTN 30, Met Office, Exeter, UK.
(Referenced on page 12.)
Oort, A.H. , 1983. Global atmospheric circulation statistics, 1958-1973. NOAA Professional Paper 14, National
Oceanic and Atmospheric Administration, Washington.
(Referenced on page 4.)
Randall, D.A. and Cripe, D.G. , 1999. Alternative methods for specification of observed forcing in single-column
models and cloud system models. Journal of Geophysical Research, 104(D20):24,527–24,545.
(Referenced on page 1.)
Warrilow, D.A. , Sangster, A.B. , and Slingo, A. , 1986. Modelling of land surface processes and their influence
on European Climate. Dynamical Climatology Technical Note 38, UK Met Office.
(Referenced on page 2.)