Types of model output
This page describes how to control and change options for the model output. The model is capable of producing many fields on different vertical coordinates and surface layers.
OpenIFS produces 3 basic types of output:
Prognostic variables: these are output at controllable write times. There is no provision in the model to accumulate averages.
Diagnostics variables: these are also output at specified write times, though there are some exceptions like wind gust or maximum and minimum 2m temperature which represent a max/min value over a period of time.
Cumulative variables or fluxes: these are typically fields such as precipitation which are accumulated from the start of the model run.
The sections below describe how to change and control the model output in more detail. Please contact firstname.lastname@example.org in case of difficulty or any questions.
Diagnostics & postprocessing software: Full-Pos
Full-Pos is the name of the code inside OpenIFS that produces the model output and 'in-model' diagnostics. We gratefully acknowledge permission from MeteoFrance to include it in OpenIFS.
More documentation about Full-Pos is available through the links below, though note that not all of the options discussed apply to OpenIFS which does not support any stretched grids or Arpege format output.
ECMWF use additional namelist variables to control output as described in the sections below.
- Full-Pos Home Page
- Full-Pos User Guide (PDF) - somewhat old but still useful reference of the namelists and variables
- Full-Pos Technical Guide (PDF) - detailed technical description of the Full-Pos code and includes more up to date description of some namelists & variables for cycle 38.
GRIB output files
OpenIFS only produces GRIB format files as output and they are named similarly to the input files. e.g.
The output files all begin with 'ICM' and end in '+'00xxxx'. The number on the end refers to the timestep.
ICMGG files contain gridpoint fields, ICMSH files contain spectral fields.
The model can output at regular or irregular intervals according to the namelist settings.
OpenIFS appends to existing files
The model I/O will append to existing files and not overwrite existing files of the same name. If the model is run twice without moving the output files, the same data would be written to the previous output. The script that runs the model should take this into account and delete or move the files. See the run script provided.
How to control output frequency
The namelist variables that control the output from the model as it runs are:
LFPOS - (38r1 only) this should be set TRUE in order to turn on model output and diagnostics.
NFPOS - (40r1+). Set
NFPOS=2 to turn on model output and diagnostics.
NFRHIS - this is the output frequency of the 'history' files, that is, the model's variables on the model levels.
NFRHIS and NFRPOS are usually set to the same value. If they are positive, the units are in model timesteps, if negative the units are in hours.
NHISTS - these are integer arrays that control the write times of the history files. They can be used for non-regular output intervals. If they are positive, the units are in model timesteps, if negative the units are in hours.
Regular output at fixed timesteps
This simple example will cause the model to produce history file output every 4 timesteps.
Make sure that
NPOSTS and NHISTS is set to zero for regular output because irregular output (
NPOSTS /= 0) takes precedence.
History output may not work correctly if
NFRHIS * timestep does not equal an integer number of hours.
In this example, the model will write 3 separate output files at the first timestep (0hrs), 3hrs and 9hrs and then no more regardless of how long the model runs for.
The minus sign indicates the units are in hours rather than timesteps. The 0th element of
NPOSTS determines how many outputs are produced in total by the model, the first to nth elements determine the actual output times (hours in this case because of the negative values used).
NFRPOS act as a multiplier to the values in the
NPOSTS arrays. For example, if
NFRPOS is set to two, this has the effect in the above example of producing output at 0, 6 and 18hrs rather than 0, 3 and 9 hrs.
Controlling output on different level types
Output levels: Model output can be produced on different vertical coordinates: model levels, pressure, height, potential temperature and PV levels. Output on each vertical coordinate is controlled by 3 namelist variables for each type: the number of fields, the grib codes of the fields and the levels to output on.
GRIB codes: for a complete list of available GRIB output, please see the tables below.
Namelist NAMFPC: Th
is is the main namelist for the post-processing. Variables in this list can be sensitive to changes as many combinations are possible but not all work.
If you find the model output does not provide what you need, please contact email@example.com who can advise on the namelist settings to use.
The *FP3D and *FP2D namelist variables are reserved for the prognostic (or derived) variables from the dynamics/numerics.
The "PHY" group of variables is for variables from the physics routines.
NAMCT0: LFPOS. To enable post-processing make sure
LFPOS=true in the
To output on pressure, PV or theta level output you must also enable output of the 2D spectral orography, surface pressure & log surface pressure.
i.e. also set:
Model level output
To control model level output the following namelist variables (in NAMFPC) are used:
NRFP3S - list of the model levels on which post-processed output is required.
e.g. for a 60 level model run where output on all levels was required set:
For a 91 level model, this would give output on the first 60 levels (top level first).
Note: if output on all model levels is desired then this can be specified by setting NRFP3S=-99 (instead of writing out the full comma-separated sequence of model levels)
NFP3DFS - number of 3D fields to be output on model levels. Must equal number of entries in MFP3DFS.
MFP3DFS - list of grib codes of 3D variables to be output on model levels. See table for valid codes.
NFP3DFS = 4,
MFP3DFS = 130, 135, 138, 155,
would output the temperature (130), vertical velocity (135), relative vorticity (138), divergence (155) on model levels.
Pressure level output
RFP3P - list of pressure levels (units Pascals) on which post-processed output is required.
NFP3DFP - number of 3D fields to be output on pressure levels. Must equal number of entries in MFP3DFP.
MFP3DFP - list of grib codes of 3D variables to be output on pressure levels. See table for valid codes.
Theta level output
RFP3TH - real array in units of Kelvin, of the theta levels on which post-processed output is required.
would produce output on 330K, 375K, 400K and 450K levels.
NFP3DFT - number of 3D fields to output to theta levels. Must equal number of GRIB codes listed in MFP3DFT.
MFP3DFT - list of GRIB codes of 3D variables to be output on theta levels. See table for valid codes.
PV level output
RFP3PV - real array in PV units of the potential vorticity levels on which post-processed output is required.
would give output on the +/- 2 and +/- 3 PVU surfaces.
NFP3DFV - number of 3D fields to output to PV levels. Must equal number of GRIB codes listed in MFP3DFV.
MFP3DFV - list of GRIB codes of 3D variables to be output on PV levels. See table for valid codes.
Height level output
RFP3H - real array in units of metres of height levels above orography for which post-processed output is required.
would give output on 200m, 1km and 5km height surfaces
NFP3DFH - number of 3D fields to output to height levels. Must equal number of GRIB codes listed in MFP3DFH.
MFP3DFH - list of GRIB codes of 3D variables to be output on height levels. See table for valid codes.
The height level output is not encoded correctly to GRIB and may appear as model 'hybrid' levels.
Example annotated namelist
An annotated example NAMFPC namelist can be downloaded.
Model output variables are specified in the namelists by using GRIB field codes. GRIB is a WMO standard concise data format.
There are two versions of the GRIB format, known as GRIB edition 1 (released in 1994) and GRIB edition 2 (released in 2003).
The multilevel fields in OpenIFS (sometimes called 'upper air' fields) are written as GRIB edition 2 messages, whilst other fields are written as GRIB edition 1. GRIB parameter IDs are the same in GRIB1 and GRIB2 (this is why the environment variable GRIB_SAMPLES_PATH in the example job script points to a file '.../ifs_samples/grib1_mlgrib2; the 'mlgrib2' means multilevel fields are GRIB2).
OpenIFS mostly uses grib codes from table 128 and will be 3 digits. If you see 6 digit codes specified in a model namelist, the first 3 digits refer to the GRIB table and the last 3 digits are the field code.
A complete list of GRIB parameter IDs is available at: http://apps.ecmwf.int/codes/grib/param-db. NOTE! Not all grib codes listed here can be output by the model. Please see tables below.
A list of the GRIB fields in the operational datasets from ECMWF can be found here in the description of the HRES forecast output.
Controlling output with namelist NAMFPC
is is the namelist for controlling the post-processing. The model will not output any fields unless requested in the appropriate namelist variable.
If you find the model output does not provide what you need, please contact firstname.lastname@example.org who can advise on the namelist settings to use.
Model variables may be output as 3D or 2D, either gridpoint or spherical harmonic forms and on model, pressure, theta, PV or height levels.
Gridpoints fields are output to the ICMGG files, spectral fields are output to the ICMSH files.
The following tables shows what variables are output on which levels and in what form:
3D output fields available
Three-dimensional output fields can be in both spectral and gridpoint form. This is indicated in the table below. Spectral and gridpoint fields are written to separate output fields.
These grib codes can be used in the namelist NAMFPC for the following variables (see below for more details of these variables):
MFP3DFS - fields on model levels, MFP3DFP - fields on pressure levels,
MFP3DFT - fields on theta levels, MFP3DFV - fields on PV levels,
MPF3DFH - fields on height levels
For more information, the reader is referred to the IFS Documentation manuals.
All tables are sortable by column, click in the header column.
|Long name||Short name||Units||Format||GRIB code||Description|
|Montgomery geopotential||mont||m2s-2||Spectral||53||Takes the role of geopotential in an isentropic vertical coordinate|
|Precipitation rain water specific content||crwc||kg.kg-1||Gridpoint||75||Grid-box mean specific precipitating rain water content from stratiform cloud (mass of condensate / mass of moist air).|
|Precipitation snow water specific content||cswc||kg.kg-1||Gridpoint||76||Grid-box mean specific snow water content(representing aggregated ice particles) from stratiform cloud (mass of condensate / mass of moist air).|
|Eta-coordinate vertical velocity||etadot||s-1||Spectral||77|
Total time derivative of the hybrid vertical coordinate η. This is the vertical velocity used in the vertical advection in the ECMWF model, because eta is used as vertical coordinate.
|Geopotential||z||m2s-2||Spectral||129||At the surface, equivalent to orography|
|U component of wind||u||m.s-1||Spectral||131||-|
|V component of wind||v||m.s-1||Spectral||132||-|
|Specific humidity||q||kg.kg-1||Gridpoint||133||Grid box mean (mass of water vapour / mass of moist air)|
|Vertical velocity||w||Pa.s-1||Spectral||135||Pressure vertical velocity dp/dt. In the model equations it is usually denoted by the Greek letter omega.|
|Relative humidity||r||%||Spectral||157||Relative humidity is defined with respect to saturation of the mixed phase, i.e. with respect to saturation over ice below -23C and with respect to saturation over water above 0C. In the regime in between a quadratic interpolation is applied.|
|Ozone mass mixing ratio||o3||kg.kg-1||Gridpoint||203||-|
|Specific cloud liquid water content||clwc||kg.kg-1||Gridpoint||246||Grid-box mean specific cloud liquid water content (mass of condensate / mass of moist air)|
|Specific cloud ice water content||ciwc||kg.kg-1||Gridpoint||247||Grid-box mean specific cloud ice water content (mass of condensate / mass of moist air)|
Horizontal fraction of the grid box covered by cloud
2D dynamical output fields available
These fields are computed by the model's dynamical core. It is strongly recommended these fields are always enabled in the output in order for the post-processing to work correctly. Note these fields can also be output as gridpoint fields in MFPPHYS.
These GRIB codes are for use with the NAMFPC variable: MFP2DF. Remember to set the number of gribcodes used with NFP2DF.
|Long name||Short name||Units||Format||GRIB code||Description|
|Logarithm of surface pressure||lnsp||dimensionless||Spectral||152||-|
2D physical output fields available
These variables are for the MFPPHY variable in namelist NAMFPC and are largely computed by the model's physical parametrizations.
Fields marked as accumulated fields are accumulated from the beginning of the forecast. See below for how to reset these during the model forecast.
Some fields are marked as climatological fields and are invariant in the forecast.
3 digit GRIB codes are from table 128. 6 digit GRIB codes use the first 3 digits to indicate the table number.
|Long name||Short name||Units||Format||GRIB code||Description|
|Surface runoff||sro||m||Gridpoint||8||Accumulated field|
|Sub-surface runoff||ssro||m||Gridpoint||9||Accumulated field. Deep soil drainage.|
|Sea-ice cover||ci||(0-1)||Gridpoint||31||Fraction of grid box that is covered with sea ice (kept constant during forecast)|
|Snow albedo||asn||(0-1)||Gridpoint||32||Albedo of the snow covered part of the grid box|
|Snow density||rsn||kg.m-3||Gridpoint||33||Snow mass per unit of volume|
|Sea surface temperature||sstk||K||Gridpoint||34||Temperature of the sea water (bulk SST), as specified by external analysis (skin temperature is equal to bulk SST before 01/10/2008)|
|Ice temperature layer 1||istl1||K||Gridpoint||35||Sea ice top layer, 0-7 cm|
|Ice temperature layer 2||istl2||K||Gridpoint||36||Sea ice layer 2: 7-28 cm|
|Ice temperature layer 3||istl3||K||Gridpoint||37||Sea ice layer 3: 28-100 cm|
|Ice temperature layer 4||istl4||K||Gridpoint||38||Sea ice layer 4: 100-150 cm|
|Volumetric soil water layer 1||swvl1||m3m-3||Gridpoint||39||Top soil layer: 0-7 cm|
|Volumetric soil water layer 2||swvl2||m3m-3||Gridpoint||40|
Soil layer 2: 7-28 cm
|Volumetric soil water layer 3||swvl3||m3m-3||Gridpoint||41||Soil layer 3: 28-100 cm|
|Volumetric soil water layer 4||swvl4||m3m-3||Gridpoint||42||Soil layer 4: 100-289 cm|
|Snow evaporation||es||m of water|
|Gridpoint||44||Accumulated field. Evaporation from snow averaged over the grid box (to find flux over snow, divide by snow fraction).|
|Snow melt||smlt||m of water|
|Gridpoint||45||Accumulated field. Melting of snow averaged over the grid box (to find melt over snow, divide by snow fraction).|
|10 metre wind gust since previous post-processing||10fg||m.s-1||Gridpoint||49||Maximum 3 second wind at 10 m height as defined by WMO. Parametrization represents turbulence only before 01/10/2008; thereafter effects of convection are included. The 3 s gust is computed every time step and the maximum is kept since the last postprocessing.|
|Large-scale precipitation fraction||lspf||s||Gridpoint||50||Accumulated field. Fraction of the grid box that is covered by large-scale precipitation.|
|Downward UV radiation at the surface||uvb||J.m-2||Gridpoint||57||Accumulated field. Ultra-violet band 0.20-0.44 um.|
|Photosynthetically active radiation |
at the surface
|par||J.m-2||Gridpoint||58||Accumulated field. 0.44-0.70 um.|
Convective available potential energy
|cape||J.kg-1||Gridpoint||59||For computational efficiency CAPE is computed as the vertical integral of excess of equivalent potential temperature of an undilute updraught compared to the saturated equivalent potential temperature of the environment. The results tends to be about 20% higher than the CAPE based on virtual temperature.|
Total column liquid water
|tclw||kg.m-2||Gridpoint||78||Vertical integral of cloud liquid water content|
|Total column ice water||tciw||kg.m-2||Gridpoint||79||Vertical integral of cloud ice water content|
|Maximum temperature at 2 metre in the last 6 hours||mx2t6||K||Gridpoint||121|
|Minimum temperature at 2 metre in the last 6 hours||mn2t6||K||Gridpoint||122|
|10 metre wind gust in the 6 hours||10fg6||m.s-1||Gridpoint||123|
|Vertically integrated total energy||vite||J.m-2||Gridpoint||125|
|Total column water||tcw||kg.m-2||Gridpoint||136||Vertically integrated total water (vapour + cloud water + cloud ice)|
|Total column water vapour||tcwv||kg.m-2||Gridpoint||137||Vertically integrated water vapour|
|Soil temperature level 1||stl1||K||Gridpoint||139|
Top soil layer: 1-7 cm.
|Snow depth||sd||m of water|
|Large-scale (stratiform) precipitation (rain+snow)||lsp||m||Gridpoint||142||Accumulated field. Precipitation from the cloud scheme (which also takes detrained water/ice from the convection scheme as input).|
|Convective precipitation (rain+snow)||cp||m||Gridpoint||143||Accumulated field. Precipitation from updraughts in the convection scheme.|
|Snowfall||sf||m of water equivalent||Gridpoint||144||Accumulated field. Convective + stratiform snowfall.|
|Boundary layer dissipation||bld||J.m-2||Gridpoint||145||Accumulated field. Conversion of kinetic energy of the mean flow into heat by turbulent diffusion (vertically integrated).|
|Surface sensible heat flux||sshf||J.m-2||Gridpoint||146||Accumulated field. Exchange of heat with the surface through turbulent diffusion (by model convention, downward fluxes are positive).|
|Surface latent heat flux||slhf||J.m-2||Gridpoint||147||Accumulated field. Exchange of latent heat with the surface through turbulent diffusion (by model convention, downward fluxes are positive)|
|Charnock parameter||chnk||dimensionless||Gridpoint||148||Charnock parameter as returned by the wave model. Note wave model must be active.|
|Mean sea-level pressure||msl||Pa||Gridpoint||151|
|Boundary layer height||blh||m||Gridpoint||159||Boundary layer defined through Troen and Mahrt parcel lifting method|
|Total cloud cover||tcc||(0-1)||Gridpoint||164||Total cloud cover derived from model levels using the model's overlap assumption|
|10 metre U wind component||10u||m.s-1||Gridpoint||165|
|10 metre V wind component||10v||m.s-1||Gridpoint||166|
|2 metre temperature||2t||K||Gridpoint||167|
|2 metre dewpoint temperature||2d||K||Gridpoint||168|
|Surface solar radiation downwards||ssrd||J.m-2||Gridpoint||169||Accumulated field|
|Soil temperature level 2||stl2||K||Gridpoint||170||Soil layer 2: 7-28 cm|
|Land-sea mask||lsm||(0 - 1)||Gridpoint||172||Fractional land cover (model uses 0.5 as threshold for mask)|
|Surface roughness||sr||m||Gridpoint||173||Aerodynamic roughness length (over land). Climatological field.|
|Albedo||al||(0 - 1)||Gridpoint||174||Background albedo. Climatological field.|
|Surface thermal radiation downwards||strd||J.m-2||Gridpoint||175||Accumulated field|
|Surface net solar radiation||ssr||J.m-2||Gridpoint||176||Accumulated field. Net solar radiation at the surface.|
|Surface net thermal radiation||str||J.m-2||Gridpoint||177||Accumulated field. Net thermal radiation at the surface (by model convention downward fluxes are positive).|
|Top net solar radiation||tsr||J.m-2||Gridpoint||178||Accumulated field. Net solar radiation at the top of the atmosphere.|
|Top net thermal radiation||ttr||J.m-2||Gridpoint||179||Accumulated field. Net thermal radiation at the top of the atmosphere (by model convention downward fluxes are positive).|
|Eastward turbulent surface stress||ewss||N.m-2.s||Gridpoint||180||Accumulated field. Eastward surface stress due to turbulent processes.|
|Northward turbulent surface stress||nsss||N.m-2.s||Gridpoint||181||Accumulated field. Northward surface stress due to turbulent processes.|
|Evaporation||e||m of water equivalent||Gridpoint||182||Accumulated field. Moisture flux from the surface into the atmosphere (by model convention downward fluxes are positive).|
|Soil temperature level 3||stl3||K||Gridpoint||183||Soil layer 3: 28-100 cm.|
|Low cloud cover||lcc||(0 - 1)||Gridpoint||186||Cloud cover derived from model levels between the surface and 0.8 of the surface pressure using the model's overlap assumption|
|Medium cloud cover||mcc||(0 - 1)||Gridpoint||187||Cloud cover derived from model levels between 0.8 and 0.45 of the surface pressure using the model's overlap assumption|
|High cloud cover||hcc||(0 - 1)||Gridpoint||188||Cloud cover derived from model levels between 0.45 of the surface pressure and the model top using the model's overlap assumption|
|Sunshine duration||sund||s||Gridpoint||189||Accumulated field. Time that radiation in the direction of the sun is above 120 W/m2.|
|Eastward gravity wave surface stress||lgws||N.m-2.s||Gridpoint||195||Accumulated field. Eastward component of surface stress due to gravity waves and orographic blocking.|
|Northward gravity wave surface stress||mgws||N.m-2.s||Gridpoint||196||Accumulated field. Northward component of surface stress due to gravity waves and orographic blocking.|
|Gravity wave dissipation||gwd||J.m-2||Gridpoint||197||Accumulated field. Conversion of kinetic energy of the mean flow into heat due gravity waves and orographic blocking (vertically integrated).|
|Skin reservoir content||src||m of water equivalent||Gridpoint||198||Amount of water in interception reservoir|
|Maximum temperature at 2 metres||mx2t||K||Gridpoint||201||Maximum temperature at 2 metres since previous post-processing|
|Minimum temperature at 2 metres||mn2t||K||Gridpoint||202||Minimum temperature at 2 metres since previous post-processing|
|Runoff||ro||m||Gridpoint||205||Accumulated field. Amount of water that is lost from the soil through surface runoff and deep soil drainage.|
|Total column ozone||tco3||kg m-2||Gridpoint||206||Vertically integrated ozone. Before 20010612 was in Dobson units. 1 Dobson = 2.1415E-5 kg m-2.|
|Top net solar radiation, clear sky||tsrc||J m-2||Gridpoint||208||Accumulated field. Clear sky net solar radiation at the top of the atmosphere (assuming transparent clouds).|
|Top net thermal radiation, clear sky||ttrc||J m-2||Gridpoint||209||Accumulated field. Clear sky net thermal radiation at the top of the atmosphere (clear-sky OLR; assuming transparent clouds) (by model convention, downward fluxes are positive).|
|Surface net solar radiation, clear sky||ssrc||J m-2||Gridpoint||210||Accumulated field. Clear sky net solar radiation at the surface (assuming transparent clouds).|
|Surface net thermal radiation, clear sky||strc||J m-2||Gridpoint||211||Accumulated field. Clear sky net thermal radiation at the surface (assuming transparent clouds) (by model convention, downward fluxes are positive).|
|TOA incident solar radiation||tisr||J m-2||Gridpoint||212||Accumulated field|
|Vertically integrated moisture divergence||vimd||kg m-2||Gridpoint||213|
|Total precipitation (rain+snow)||tp||m||Gridpoint||228||Accumulated field. Convective precipitation + stratiform precipitation (CP +LSP).|
|Instantaneous eastward turbulent surface stress||iews||N.m-2||Gridpoint||229|
|Instantaneous northward turbulent surface stress||inss||N.m-2||Gridpoint||230|
|Instantaneous surface sensible heat flux||ishf||W.m-2||Gridpoint||231||By model convention, downward fluxes are positive|
|Instantaneous moisture flux||ie||kg m-2 s-1||Gridpoint||232||Evaporation (by model convention, downward fluxes are positive)|
Logarithm of surface roughness length for heat
|lsrh||dimensionless||Gridpoint||234||Climatological field. Represents surface roughness length for heat and moisture over land.|
|Skin temperature||skt||K||Gridpoint||235||Temperature of the surface skin (radiative surface temperature). Before 01/10/2008, the skin temperature was equal to the bulk SST over the ocean.|
|Soil temperature level 4||stl4||K||Gridpoint||236||Layer 100-289 cm|
|Temperature of snow layer||tsn||K||Gridpoint||238|
|Forecast albedo||fal||(0 - 1)||Gridpoint||243||Albedo as used by the IFS, consisting of a background albedo, modified over the ocean dependent on solar elevation and modified over land areas with snow.|
|Forecast surface roughness||fsr||m||Gridpoint||244||Surface aerodynamic roughness as used by the IFS. Over the ocean it depends on ocean wave parameters. Over land it is copied from the climatological field SR before 12/09/2006. After 12/09/2006 the land roughness is derived from the vegetation type through a correspondence table. Snow areas are set to a model defined value.|
|Forecast logarithm of surface roughness for heat||flsr||dimensionless||Gridpoint||245||Logarithm of roughness length for heat and moisture as used by the IFS. Over the ocean it depends on surface friction. Over land it is copied from the climatological field LSRH before 12/09/2006.After 12/09/2006 the land roughness length for heat is derived from the vegetation type through a correspondence table. Snow areas are set to a model defined value|
|Convective inhibition||cin||J kg-1||Gridpoint||228001|
|Lake mix-layer temperature||lmlt||K||Gridpoint||228008||Requires lake model enabled|
|Lake mix-layer depth||lmld||m||Gridpoint||228009||Requires lake model enabled|
|Lake bottom temperature||lblt||K||Gridpoint||228010||Requires lake model enabled|
|Lake total layer temperature||ltlt||K||Gridpoint||228011||Requires lake model enabled|
|Lake shape factor||lshf||dimensionless||Gridpoint||228012||Requires lake model enabled|
|Lake ice temperature||lict||K||Gridpoint||228013||Requires lake model enabled|
|Lake ice depth||licd||K||Gridpoint||228014||Requires lake model enabled|
|Zero degree level||deg0l||m||Gridpoint||228024|
Height of level (counted from 'surface' - 2nd lowest model level) where the temperature passes from positive to negative values, corresponding to the top level of a warm inversion layer. If a second warm inversion layer is encountered then the zero degree level correspond to the top of the 2nd inversion layer.
Note 'deg0l' is 'deg-zero-ell'.
|Total column rain water||tcrw||kg m-2||Gridpoint||228089||Vertically integrated precipitating rain water content|
|Total column snow water||tcsw||kg m-2||Gridpoint||228090||Vertically integrated precipitating snow water content|
|100 metre U wind component||100u||m s-1||Gridpoint||228246|
|100 metre V wind component||100v||m s-1||Gridpoint||228247|
|Total totals index||totalx||K||Gridpoint||260123|
Reset of accumulated fields
The default behaviour is for accumulated fields (in the tables above), to be accumulated from the start of the model forecast. It is possible to have these fields reset whenever they are output. To do this:
So if output frequency (controlled by NFRPOS) is set to 6hrs, the accumulated variables are reset to zero every 6hr; if output frequency is 12hrs, the reset to zero happens 12rly and so on.
Note all accumulated variables are reset apart from the physical tendencies and fluxes in the PEXTRA output described below.
Physical tendencies and fluxes (budget) output (PEXTRA)
The physics code in IFS supports the output of 3D tendencies and fluxes for budget calculations. This works differently to the standard diagnostics above as additional namelist variables need to be set. It's typically known as the PEXTRA or LBUD23 model output.
This output is primarily a research tool and is not archived by ECMWF operational forecasts. For that reason, some details of output fields may change between model releases. If in doubt, please check the appropriate code or contact email@example.com for assistance.
To enable this output, follow these steps.
src/ifs/phys_ec/callpar.F90 for more details on how the PEXTRA diagnostics are computed and stored.
Enable tendency fields output
The computation and storage of the tendencies in the physics model code first needs to be enabled by setting:
The tendency output is often referred to as 'lbud23' output.
Enable array sizes
All of the diagnostics fields need to be explicitly allocated array storage in the model code, unlike the standard diagnostics above where storage is already allocated in the model.
Do this by setting these namelist variables:
NVEXTR should have a value that matches the number of requested GRIB codes in the MFP3DF* variables in NAMFPC (see below)
NCEXTR is set to 0 by default. It must be set to the number of full model levels.
Failure to correctly set NVEXTR, NCEXTR & NVEXTRAGB will cause the model to randomly crash as memory will be overwritten.
Define GRIB codes for tendency fields
The tendency fields are not standard model output. They therefore need to explicitly have GRIB codes defined for them.
ECMWF use the GRIB codes 91 to 115 inclusive (see table below) for the code provided in OpenIFS. These GRIB codes are empty in GRIB table 128. Other GRIB codes can be used but only if they are not already assigned. The list of GRIB parameters can be found here.
To set GRIB codes for these tendency fields:
If the tendency code (in
ifs/phys_ec/callpar.F90) is modified to introduce extra fields, they must also have GRIB codes defined.
As these codes are not WMO standard, they do not have shortName or longName attributes and can only be referenced by their GRIB code (as set in NVEXTRAGB) in the model output GRIB file.
Note that defining the GRIB codes does not enable their output from the model. This must be done using the NAMFPC namelist (see below).
Available tendency and flux fields
The following table provides the list of configured fields in OpenIFS. Note that these are subject to possible change between model versions.
Field (3D on model levels)
|u-tendency (dU/dt) from explicit dynamics||m/s2 * s||91||1|
|v-tendency (dV/dt) from explicit dynamics||m/s2 * s||92||2|
|T-tendency (dT/dt) from explicit dynamics||K/s * s||93||3|
|q-tendency (dq/dt) from explicit dynamics||kg/kg/s * s||94||4|
|T-tendency (dT/dt) from radiation||K/s * s||95||5|
u-tendency (dU/dt) from vertical diffusion + gravity wave drag + surf processes
|m/s2 * s||96||6|
v-tendency (dV/dt) from vertical diffusion + gravity wave drag + surf processes
|m/s2 * s||97||7|
T-tendency (dT/dt) from vertical diffusion + gravity wave drag + surf processes
|K/s * s||98||8|
q-tendency (dq/dt) from vertical diffusion + gravity wave drag + surf processes
|kg/kg/s * s||99||9|
u-tendency (dU/dt) of gravity wave drag
|m/s2 * s||100||10|
v-tendency (dV/dt) of gravity wave drag
|m/s2 * s||101||11|
T-tendency (dT/dt) of gravity wave drag
|K/s * s||102||12|
|u-tendency (dU/dt) from convection||m/s2 * s||103||13|
|v-tendency (dV/dt) from convection||m/s2 * s||104||14|
|T-tendency (dT/dt) from convection||K/s * s||105||15|
|q-tendency (dq/dt) from convection||kg/kg/s * s||106||16|
|Precip. flux from convection (liquid)||kg/(m2 s) * s||107||17|
|Precip. flux from convection (ice)||kg/(m2 s) * s||108||18|
|T-tendency (dT/dt) from cloud and semi-Lagrangian (SL) physics.||K/s * s||109||19|
q-tendency (dq/dt) from cloud and SL phys. and negative humidity correction
|kg/kg/s * s||110||20|
Cloud water tendency (dql/dt) from cloud & vert. diff (with GWD and surf)
|kg/kg/s * s||111||21|
Cloud ice tendency (dqi/dt) from cloud & vert. diff (with GWD and surf)
|kg/kg/s * s||112||22|
|Precip. flux from cloud scheme (liquid)||kg/(m2 s) * s||113||23|
|Precip. flux from cloud scheme (ice)||kg/(m2 s) * s||114||24|
|2D fields contained in a single 3D model field (see table below)||115||25|
|2D fields contained in single 3D model field||Unit||Grib code 115|
|Convective cloud top||Model level number||Output model level 1|
|Convective cloud base||Model level number||level 2|
|Convection type||1=deep; 2=shallow; 3=mid-level||level 3|
|Occurrence of deep convection||Counts (maximum count = number of timesteps)||level 4|
|Occurrence of shallow convection||Counts (max count = no. of timesteps)||level 5|
|Occurrence of mid-level convection||Counts (max count = no. of timesteps)||level 6|
|PBL top height||metres||level 7|
|PBL type||0, 1, 2, 3||level 8|
|Occurrence PBL type 0||Counts||level 9|
|Occurrence PBL type 1||Counts||level 10|
|Occurrence PBL type 2||Counts||level 11|
|Occurrence PBL type 3||Counts||level 12|
Request tendency output using NAMFPC
Finally request the output of these fields, via their GRIB codes, in the normal way by using the variables in the NAMFPC namelist. You do not need to output all of the variables, but you must define all the grib codes as the model code will write to all the internal arrays.
For example, to output the u, v & T tendency from convection on model levels, add their GRIB codes to:
- It is advisable to output the tendency & flux fields on model levels only. If other output on other levels are selected, interpolations will be performed which may incorrectly represent the information.
- All parameters are accumulated from the beginning of the forecast.
- The precipitation fluxes are appropriate to the half level below the actual output full level. It is therefore advisable not to request these fields on any other type of level other than model level as the FULLPOS post-processing software is not aware they are shifted.
- The tendencies from dynamics are composed of the explicit right-hand-side (RHS) of the equations and advection terms. The RHS is further stabilized by off-centred non-linear residual in order to comply with the time step discretization scheme used in the IFS (SETTLS). To a first approximation however, this can be neglected. Therefore, unfortunately, there is no tendency for the advection only.
- The q-tendency (position 9) (similarly to fields in position 6-8) contains the tendency obtained by joint vertical diffusion orographic GWD processes and surface scheme solver.
- The fields 10 and 11 for momentum variables contains exclusively the part of GWD scheme from the previously mentioned joint solver (so there is some duplication here with the tendencies 6 and 7) plus the contribution from non-orographic GWD scheme.
Spectral fitting of dynamic fields
By default the model will post-process surface or upper-air dynamically fields on pressure, theta or PV levels to perform a spectral fit between the vertical interpolation and the horizontal interpolation. Although this adds to the cost of the model, the spectral fit will remove numerical noise generated by the vertical interpolation beyond the model truncation and is normally recommended.
Although spectral fitting is the model default, the namelist variables do not normally need changing. The
NAMFPC namelist variables are:
|NFITP||LFITP||enables/disables spectral fitting of post-processed fields on pressure levels.|
|NFITT||LFITT||enables/disables spectral fitting of post-processed fields on theta levels.|
|NFITV||LFITV||enables/disables spectral fitting of post-processed fields on PV levels.|
|NFITI||LFITI||enables/disables spectral fitting of post-processed fields on temperature levels.|
|NFITH||N/A||enables/disables spectral fitting of post-processed fields on height levels.|
|NFITS||N/A||enables/disables spectral fitting of post-processed fields on eta levels.|
If NFIT* = 0 (LFIT*=false for CY38), then no spectral fitting is done. See the code in ifs/fullpos/sufpc.F90 and ifs/module/yomfpc.F90 to check defaults for each model release.
It is not possible to spectral fit upper air dynamic fields on height levels or hybrid model levels because the horizontal interpolations are performed before the vertical interpolation in order to respect the displacement of the planetary boundary layer.
Dynamic fields not represented by spectral coefficients in the model will not be spectrally fitted even if the corresponding namelist variable above is set.
Several fields can be smoothed via tunable spectral filters. For further information on this advanced usage, please see section 3.1.2 in the Full-Pos Users Guide.
How to change output at every output instance
(to be done: use of postins/dirlist)
Other NAMFPC namelist variables
CFPFMT - this character string controls the format of the output files. For OpenIFS this should always be set to 'MODEL'.
LFPSPEC - (cycle 38 only) if TRUE post-processed dynamical fields are written out as spectral coefficients. If FALSE, they are written as grid-point fields.
NFPCLI - this integer variable is used to control the use of climatology data in improving the accuracy of the upper air fields and several surface fields when interpolated on surface-dependent levels.
For OpenIFS, the default is 0 (i.e. off). For more information on this option and the use of climatology data, see section 3.1.3 in the Full-Pos Users Guide.
You may see other
NAMFPC variables like:
LFPMOIS which are related to the use of climatology data. Again, for more details see the Users Guide.
LFPQ - this logical variable controls the interpolation of relative or specific humidity on height or model levels. The recommended value is .FALSE.
Relative humidity has better conservative properties than mixing ratio when interpolating even if it's not a conservative quantity.
If set FALSE (recommended) the relative humidity is interpolated then specific humidity is subtracted. If TRUE, specific humidity is first interpolated.
Single column model
Note, the single column model doesn't use Full-Pos for output.