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
21 Comments
Unknown User (de3j)
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
Unknown User (nagc)
We obviously need one of the fancy systems that displays suggested links when you start typing, though personally I tend to ignore them! :)
Etienne Tourigny
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
Marcus Koehler
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
Michail Diamantakis
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:
Best regards,
Michail
Etienne Tourigny
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.
Unknown User (nagc)
Michail, thanks. I will update the confluence page for OpenIFS with this information.
Etienne Tourigny
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?
Marcus Koehler
Etienne, I will email you separately.
Unknown User (nagc)
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.
Marcus Koehler
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.
Unknown User (nagc)
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.
Michail Diamantakis
Thanks Glenn. Then with these changes you will have the version available in latest IFS cycle which is described by TM819
Jan Streffing
Hello everyone, following the discussion above and TM 819 I try to apply standard qm BC MF. I set:
For the pressure mass fixer
For the tracer mass fixer:
I get the message:
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
Michail Diamantakis
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
Michail Diamantakis
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
Jan Streffing
Thank you for the swift feedback, Michail!
For our AOGCM we will then use:
Chemistry coupling is some time still some time away, but it's good to have the information already available.
Cheers, Jan
Etienne Tourigny
Hi Michail Diamantakis Marcus Koehler are there any changes in cycle 48R1 (compared to OpenIFS 43R3) regarding mass fixers ?
Michail Diamantakis
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
Etienne Tourigny
Thanks Michail Diamantakis this is very useful! The LTRCMFMG option was suggested by Jan, we have been using LTRCMFBC without any problems using the recommendations in the linked "Options for mass fixers in IFS" CONFLUENCE page (which is not available to the general public, unfortunately).
I am mainly interested in GHG (specifically CO2), we have been using so far following the same page and using YGHG_NL(1)%BETAMFBC=2 . This same page contains the following: "For example, we may use 2 for CO2, CH4 and 1 for humidity. For most cases 1 is the recommended value".
Is there any updated information on why using YGHG_NL(1)%BETAMFBC=1.5 would be better than 2?
Michail Diamantakis
Hi Etienne, if you already use betamfbc=2 then keep using that, it gives good results for the interhemispheric gradients, I thought you were using 1 and so I suggested 1.5 to introduce a softer change. We did some testing with 1.5 for CO2 in CY48R1 and it also looked good, if you have time and computing capacity you can test it yourself but if not there is no need to change it. The larger values act more on features such as plumes, if you are interested in these. There is no perfect value, with 1.5 plumes maybe represented slightly better (less weakened by the Mfixer) but the difference is not great. We currently do work on that and something better may come in time ..