Hi all
I'm wondering about the mass fixers in OpenIFS. From reading Table 6 in https://www.ecmwf.int/sites/default/files/elibrary/2013/9055-global-mass-fixer-algorithms-conservative-tracer-transport-ecmwf-model.pdf it seems mass fixers are turned off by default in OpenIFS (LTRCMFIX=false in the source code). The report says:
For “standard” advection options of moist quantities in IFS (quasi-cubic, quasi-monotone interpolation for specific humidity, linear for cloud fields), the cheapest fixer JMG is sufficient. It is the only one that can be applied for advection with linear interpolation.
I've got a "water leak" in my coupled OpenIFS+NEMO model so I'd like to see if a mass fixer might solve the problem. Has anyone used them before in OpenIFS and could perhaps recommend some settings? Should I stick with the JMG scheme? How often should it be applied, and how do I control this? Do I need to set "LMASSFIX=true" for each variable I wish to conserve, i.e. "YQ_NL%LMASSFIX=true", and which variables are the most important?
Any help here is much appreciated!
Many thanks.
/Joakim
I realise that I had missed the page https://confluence.ecmwf.int/display/OIFS/How+to+control+mass+conservation+in+OpenIFS which explains what to do quite well. Should really make sure to trawl the support pages before posting here...
Cheers
Joakim
We obviously need one of the fancy systems that displays suggested links when you start typing, though personally I tend to ignore them! :)
Hello, I would like to know what are the supported mass fixers in openifsr43r3 ? This page mentions those available in Cycle 38r1 How to control mass conservation in OpenIFS
Hi Etienne Tourigny, I have now spoken to Michail Diamantakis who has expertise on the mass fixers in IFS.
You can find more information on this Confluence page: Options for mass fixers in IFS which describes total air mass fixers and tracer mass fixers. If you are interested in mass fixers for tracers you can also read EMCWF Tech Memo 819. This was however written for CY45R1 and there is a difference to 43r3. There is also a GMD paper which describes the Priestley algorithm used in qmfixer.F90 in OpenIFS 43r3 https://gmd.copernicus.org/articles/7/965/2014/
I hope this helps.
Best regards, Marcus
Hi Marcus, Etienne,
a small correction, I miss-typed the subroutine name earlier in my message to Marcus : qmfixer.F90 contains:
a variant of the Bermejo & Conde mass fixer which is described in TM819 and (ii) the simple proportional mass fixer. It also allows to use one or the other for different tracers. We use Bermejo Conde type fixer for greenhouse gases and this is highly optimized for these but contains tunable parameters for other tracers (details of tuning parameters in the TM). Priestley algorithm is contained in qmfixer2.F90 but haven't tested it for some time.
The mass fixer described in TM819 (qmfixer.F90) has some improvements (described in the TM) with respect to its 43r3 predecessor:
- uses improved vertical scaling factor for the stratospheric correction computed by the limiter
- embeds limiter to the fixer to stay always positive definite and quasi-monotone
Best regards,
Michail
Thanks Michail! So our best bet is the BC fixer, but taking into consideration it might not be ideal for high resolution as described in TM819. But for GHG like CO2 this might not be a problem.
Michail, thanks. I will update the confluence page for OpenIFS with this information.
Thanks again Markus, this is really useful! Unfortunately I do not have access to the first link you posted (Options for mass fixers in IFS cy41r2 and beyond) - it probably requires a dev account?
Etienne, I will email you separately.
I can add that Michail has given me some updates to the mass fixers for OpenIFS 43r3. I did not have time to add them to the first release, but they will be added to the second version.
Just to note that the first 2 pages of TM819 give a description of the 43r3 code. Later pages describe improvements that entered in CY45R1.
The changes coming in 43r3v2 are: Add embedded limiter to be always positive definite and quasi-monotone. Use alternative vertical scaling factor proportional to gribox mass.
Thanks Glenn. Then with these changes you will have the version available in latest IFS cycle which is described by TM819
Hello everyone, following the discussion above and TM 819 I try to apply standard qm BC MF. I set:
For the pressure mass fixer
&NAMDYN
LMASCOR=true,
LMASDRY=true,
&NAMCT0
NFRMASSCON=1,
For the tracer mass fixer:
&NAMGFL
YS_NL%LMASSFIX = TRUE,
YR_NL%LMASSFIX = TRUE,
YI_NL%LMASSFIX = TRUE,
YL_NL%LMASSFIX = TRUE,
YQ_NL%LMASSFIX = TRUE,
LTRCMFBC = TRUE,
I get the message:
148: SUGFL3: QM FIXER CANNOT BE APPLIED ON FIELD: LIQUID WATER
148: ABORT! 5 SUGFL3: HIGH ORDER INTERPOLATION MUST BE USED FOR ADVECTION
Using Mac Gregor's scheme (LTRCMFGM = TRUE,) on the other hand works. Is Bermejo and Conde is specifically for gaseous tracers? I think I'm ok with just JMG for now, but I would still like to know.
Cheers, Jan
No worries Jan, it is fine - it is a question of set up details. BCMF can be used for any tracer provided that it is advected with cubic Lagrange or higher order method. By default in IFS only q and cloud fraction are advected with cubic SL. Linear interpolation is used for the cloud fields (liquid, ice, rain, snow). With linear interpolation it is not possible to estimate the local error and BCMF can't work -it is suited for high order schemes. MGregor can work with linear interpolation as well. If you want to make BCMF to work you may use the flag
YS_NL%LINTLIN = FALSE,
YR_NL%LINTLIN = FALSE,
YI_NL%LINTLIN = FALSE,
YL_NL%LINTLIN = FALSE,
but be aware that this will switch to cubic SL advection these species. This will have another impact (note that it is planned to switch to cubic from cy47r3 that is coming soon). So if you want to keep consistency with current default (operational) set up please use McGregor. For GHG (CO2, CH4) I would strongly recommend BCMF.
Good luck!
Michail
oh and another thing: I would prefer LMASDRY=F
Although in nature dry air rather than moist mass is conserved the IFS continuity is formulated to conserve the latter (total mass). So when you force dry mass conservation you get an anti-correlated fluctuation of total mass with moisture mass. The impact is very small and don't worry much about it but for consistency I would rather use the above. If you want to dive further into these details please have a look here:
https://www.ecmwf.int/en/elibrary/19114-dry-mass-versus-total-mass-conservation-ifs
Thank you for the swift feedback, Michail!
For our AOGCM we will then use:
&NAMDYN
LMASCOR = TRUE,
LMASDRY = FALSE,
&NAMCT0
NFRMASSCON = 1,
&NAMGFL
YS_NL%LMASSFIX = TRUE,
YR_NL%LMASSFIX = TRUE,
YI_NL%LMASSFIX = TRUE,
YL_NL%LMASSFIX = TRUE,
YQ_NL%LMASSFIX = TRUE,
LTRCMFMG = TRUE,
Chemistry coupling is some time still some time away, but it's good to have the information already available.
Cheers, Jan
Hi Michail Diamantakis and Marcus Koehler are there any changes in cycle 48R1 (compared to OpenIFS 43R3) regarding mass fixers ?
Hi Etienne,
The main change is that in CY48R1 we activate by default the Bermejo and Conde type of mass fixer LTRCMFBC=true for all moist tracers (specific humidity and cloud fields). The pressure advection mass fixer is also activated LTRCMFIX_PS=true. Looking at your setup above, the biggest impact for you is that you use the 'McGregor' fixer. If you are only interested in moist species mass conservation you can remove the above mass fixer options from the namelist because the mass fixer is activated by default in CY48R1 and so the appropriate options will be applied.
We have done plenty of evaluation in nextGEMS project, DestinE forecasts and the options I mention above solve the water leakage problem and reduce energy leakage by a factor of ~ 10 (at 4.4km resolution). If you have a special interest maintaining your old options then you can do so by setting
LTRCMFBC=false,
LTRCMFMG = TRUE,
PLUS the remaining options which are now true by default.
The mass fixer option we use also works well for GHG tracers but if you are interested in preserving inter-hemispheric gradients you will get better results adding flag (for GFH tracers only):
YGHG_NL(1)%BETAMFBC=1.5,
YGHG_NL(2)%BETAMFBC=1.5,
It puts more weight than normal in mass correction in areas where tracer gradients are stronger (this happens by default but with this flag the effect stronger, you can use up to 2).
Hope this helps,
Michail