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

17 Comments

  1. 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... (wink) 

    Cheers
    Joakim 

  2. We obviously need one of the fancy systems that displays suggested links when you start typing, though personally I tend to ignore them! :)

  3. 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

  4. 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

    1. Hi Marcus, Etienne,

      a small correction, I miss-typed the subroutine name earlier in my message to Marcus : qmfixer.F90 contains: (info) 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

      1. 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.

      2. Michail, thanks. I will update the confluence page for OpenIFS with this information.

  5. 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?

  6. Etienne, I will email you separately.

  7. 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.

  8. 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.

    1. 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.

      1. Thanks Glenn. Then with these changes you will have the version available in latest IFS cycle which is described by TM819

  9. 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


  10. 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

  11. 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

  12. 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