- Created by Glenn Carver, last modified by Marcus Koehler on Feb 05, 2024
Mass conservation
OpenIFS (IFS) does not formally conserve mass. The change in mass is small but needs correcting if using OpenIFS for long integrations, or with chemistry/aerosol modelling.
The version of OpenIFS based on Cycle 38r1 has a limited set of "mass-fixers" available. More recent versions of IFS have improved options for mass conservation.
Types of mass fixers
In OpenIFS 38r1 there are only global mass fixers available. The first ensures conservation of the global model mass by using the spectral characteristics of the model. The second method (enabled by some code changes detailed below) is also global and works in gridpoint space only on tracer quantities.
Global mass fixer
For global mass conservation of air the following settings should be added or enabled in the namelist file (fort.4):
&NAMDYN LMASCOR=true, LMASDRY=true, &NAMCT0 NFRMASSCON=1,
LMASCOR enables the global mass conservation by ensuring the global mass before and after a timestep remains the same.
LMASDRY ensures the mass conservation applies only to the dry air mass. This is done to ensure that the annual water cycle signal is unaffected by the mass correction. If this option is set false
the mass correction is done to the total air mass (dry+water vapour). Note that the ERA-Interim reanalyses used LMASDRY=true.
NFRMASSCON is the frequency at which the mass fix is applied. The above example enables it at every timestep. It must be set as the default is set to a very large number (i.e. it's default is to effectively disable it).!
Mass correction for moisture and tracer variables
A further global mass fixer can also be applied to correct the moisture variables and any tracers (if used). Note that this fixer can be used together with the spectral mass fixer above or independently.
To enable it, ensure the following namelist variables are set:
&NAMGFL YS_NL%LMASSFIX=true, YR_NL%LMASSFIX=true, YI_NL%LMASSFIX=true, YL_NL%LMASSFIX=true, YQ_NL%LMASSFIX=true, LTRCMFIX=true,
The model applies the fix to the specific humidity, cloud water, cloud ice, cloud rain, cloud snow: YQ_NL, YL_NL, YI_NL, YR_NL, YS_NL IFS variables respectively.
An additional small code modification is needed in : ifs/control/tracmf.F90
Uncomment lines 112, 113, 114, 115,
112 !LTRCMFP=.TRUE. ! proportional 113 !LTRCMFA_LAP=.FALSE. ! additive based on hor. Laplace 114 !LTRCMFA_VER=.FALSE. ! additive based on vert. Lapace 115 !LTRCMFA_DIF=.FALSE. ! additiva based on abs gradient
Mass diagnostics
OpenIFS 38r1 does not include any code to output the changes to the global model mass. A small set of code changes is available which add a diagnostic output. If you would like these code changes, please contact: openifs-support@ecmwf.int. This code is available in later OpenIFS versions.
Global mass fixer algorithms for conservative tracer transport in the ECMWF model,
M. Diamantakis and J. Flemming,
GeoSci. Model Dev., 7, 2014
Dr Michail Diamantakis, research department, ECMWF, provided much of the information on this page.
3 Comments
Joakim Kjellsson
OpenIFS 43r3 also includes the variable LTRCMFIX_PS, and the lines above are not commented in the code.
LTRCMFP
=False in the code.Will using the above namelist settings and LTRCMFIX_PS=true be enough to use mass fixers, or are any code changes needed too?
Cheers
Joakim
Etienne Tourigny
Joakim Kjellsson please see this forum entry (created by you some years ago) with up-to-date information for 43r3: Recommendations for mass fixers in OpenIFS?
I think it is is the OpenIFS team's plans to update this documentation for 43r3.
Joakim Kjellsson
Hi Etienne
Thanks for the tip. I had not seen that the post got updated with some more stuff.
I noticed that my 40-year AMIP run lost 60 hPa of global-mean surface pressure over time, so I need to dig into the dry mass fixers at least...
Cheers
Joakim