Hi all

I'm running OpenIFS CY40R1 in a coupled configuration (with NEMOv3.6/LIM2 and OASIS3-MCT2.8). I've managed to configure updrgas to set radiation and CO2, CH4, NO2, CFC11, CFC12 to values in the CMIP5 recommended data (https://cmip.llnl.gov/cmip5/forcing.html#concentrations). 

However I don't fully understand how O3 is set. For O3, I've got this in my NODE file

DATE= 2068 1 1
UPDO3CH: IJOUR= 1 IMOIS= 1 IAN= 2068
UPDO3CH: IMT1= 12 IMT2= 1
ZPOID1= 0.451612903225806 ZPOID2= 0.548387096774194
READ O3 CHEM. FIELDS
INITIAL DATA FOR MONTH 1 TO BE READ FROM FILE 159l_2/o3chem_l91/O3CHEM12_V2.9
RESERVE_LUN reserves unit 57
INITIAL DATA FOR MONTH 2 TO BE READ FROM FILE 159l_2/o3chem_l91/O3CHEM01_V2.9
RESERVE_LUN reserves unit 58
UPDO3CH: IMONTH1= 12 IMT1= 12
UPDO3CH: IMONTH2= 1 IMT2= 1
UPDO3CH: IPNCH1= 9 NVCLIS= 8


From what I understand of the documentation and the source code, O3 concentration is relaxed toward some climatology (from the O3CHEM files?) and allowed to vary due to O3 parametrization with chlorine. 

The array "ZEECL" in updo3ch.F90 seems to be global-mean chlorine concentrations for years 1950-2100, so this is what is used for the parametrization (not varying with latitude or season?). 

Does anyone know from which period the O3 climatology that OpenIFS relaxes to is taken? I would like it to be pre-industrial conditions, so if it is 1980-2000 or so, how can I change it? 

Also, as a side note, OpenIFS refuses to output O3 in my runs. I've got "203" in my "MFPPHY=" list in the namelist, which should give me O3 in the output, but in the NODE file I have

WARNING: GRIBCODE UNKNOWN 51
WARNING: GRIBCODE UNKNOWN 52
WARNING: GRIBCODE UNKNOWN 207
WARNING: GRIBCODE UNKNOWN 157
WARNING: GRIBCODE UNKNOWN 135
WARNING: GRIBCODE UNKNOWN 203
WARNING: GRIBCODE UNKNOWN 210061

How can I output O3? 


Many thanks in advance for any help!

/Joakim

14 Comments

  1. Unknown User (digs)

    Dear Joakim,

    Just a quick answer regarding ozone output: code number 203 has to be added to the lists of 3D variables (MFP3DFS, MFP3DFP et al., please do not forget to increase the size of the corresponding NFP3D* in the namelist) and then it will be included in the ICMGG* file.

    I will come back with detailed answer to your other questions.

    Gabriella

    1. Unknown User (nagc)

      See here for the list of fields and variables used to output 3D fields (including ozone) and 2D fields:

      How to control OpenIFS output

  2. Unknown User (de3j)

    Hi Gabriella

    Thanks for the reply! I'm not running the model at the moment (old HPC gone, and still waiting for the new one to come online!), but I'll get back to you when I've tried your suggestion. 

    /Joakim

  3. Unknown User (de3j)

    Hi Gabriella

    I've just tried adding code 203 to MFP3DFS and that seemed to have worked! Now O3 ends up in my ICMGG files. Many thanks for the help!

    If you have the time, it would be great to know more about how O3 concentrations are set in OpenIFS, and how I can change them (e.g. to pre-ind conditions etc.). 

    Cheers

    Joakim

  4. Hi Joakim, 


    You deal with the prognostic ozone (grib id 203) in the IFS. I am not sure if you have switched on the mechanism to use prognostic ozone in the IFS radiation scheme. 

    The routine O3CHEM is a parameterisation of the stratospheric ozone chemistry following Cariolle and Teyssedere (2007).

     (Cariolle, D. and Teyssèdre, H.: A revised linear ozone photochemistry parameterization for use in transport and general circulation models: multi-annual simulations, Atmos. Chem. Phys., 7, 2183-2196, https://doi.org/10.5194/acp-7-2183-2007, 2007.)

    The scheme depends on ozone itself, temperature and overhead ozone columns and varies with month of year, height (pressure) and latitude . The scheme has an additional term to account for catalytic ozone loss because of chlorine and other halogens ("Ozone hole"). The stratospheric load of these  halogens changes over time, which is expressed with effective chlorine time series 1950-2100 as additional input to the Cariolle scheme. 

    I hope this is useful and answers some of your questions. 

    regards,

    Johannes Flemming




  5. Unknown User (joakimkjellsson@gmail.com)

    Hi Johannes

    Thanks for your reply! That explains a lot of what's going on. I've been running with LE03CH=true all this time, so I guess that means O3 chemistry is activated. 

    What still puzzles me a bit is that O3 is both an input field (with one O3CHEM file per month?) and a prognostic variable. The input files seem to be read all the time in my runs. Does that me O3 is calculated using the chemistry scheme but then relaxed toward a climatology? Is there any way of generating my own O3 fields for input? 

    Best regards
    Joakim

  6. Unknown User (digs)

    Hi Joakim and Johannes,

    As far as I followed the way of the variables in the code, the data read from the O3CHEM files represent the photochemical equlibrium values in the equation of Cariolle and Teyssedre (which is cited in the IFS documentation).

    Joakim, do you have access to this page: https://confluence.ecmwf.int/display/~necr/Ozone+in+IFS ? Depending on the namelist settings, the prognostic ozone can be passed (or not) to the radiation.

    Johannes, please correct me, if I am wrong.

    Gabriella

    1. Unknown User (de3j)

      Hi Gabriella

      I'm revisiting this thread after a long absence. 

      I've looking into my namelist and it seems that I've got the ozone parametrisation activated, LEO3CH=true, and also advection, YO3_NL%LGP=true, but I have not set LEPO3RA, which means it is "false" in the model. 

      What does this mean exactly? OpenIFS will simulate a varying O3 concentration, but O3 will not be seen by the radiation code, and therefore will not impact the model dynamics? I tried checking the IFS documentation, but could not find anything about LEPO3RA. 

      Unfortunately I don't have access to the link you sent. 

      Cheers
      Joakim 

      1. Unknown User (de3j)

        Hi again

        I've done two runs now, one with LEPO3RA=true, and the other without setting it, which I took to mean it is "false". However, I see no difference between the runs. The results are identical. 

        I've checked the NODE log file, and for the control run I see "LEO3CH=T", "LEPO3RA = T" and "YO3%LGP = T". 
        In the other, I see "LEO3CH=T", "LEPO3RA = F" and "YO3%LGP = T". 
        I thought this would mean that the O3 concentration is "seen" by the radiation code, thereby giving a O3-temperature feedback, but it seems that this has not happened. 

        Have I set up my configuration wrong? 

        Many thanks for any help
        Joakim

        1. Hi Joakim,

          Did you also set the variable NGHGRAD=20 in your experiments. This is also needed to switch on  prognostic ozone in the radiation scheme.

          regards,

          Johannes


          1. Unknown User (de3j)

            Hi Johannes

            I've checked, and I have not set NGHGRAD at all, which I think means it is NGHGRAD=21 (set in suecrad.F90). 
            I'll try setting NGHGRAD=20 in the namelist and see how that goes. 

            Cheers
            Joakim 

          2. Unknown User (de3j)

            Setting NGHGRAD=20 seems to have done it. I now see some changes between the runs, especially temperature over Antarctica, which makes sense. 

            So if I understand correctly, with NGHGRAD=21, OpenIFS will have prognostic O3 but the radiation code will only see climatological O3? And this climatology is for each month and in latitude-pressure, i.e. zonally symmetric? 

            /Joakim

  7. Unknown User (joakimkjellsson@gmail.com)

    Ah, I see. 

    So if I understand correctly, the input files contain an equilibrium state (derived from the Cariolle paper), and then the O3 chemistry parametrization allows the O3 concentration to fluctuate around that equilibrium, giving e.g. low ozone concentrations when temperatures are very low. OpenIFS should be able to model the late 20th century O3 depletion since Chlorine concentrations vary from year to year.  

    So to make sure that OpenIFS has correct O3 concentrations for pre-industrial or historical runs, it is the Chlorine content that has to be set to the right values for the year I want to simulate? And global-mean Chlorine concentrations are hard coded into the model, i.e. not read from a file? 

    /Joakim 

  8. The O3CHEM files are the coefficients of the Cariolle scheme.  Technically you should just look at the Cariolle scheme as a parameterisations that produces the chemical ozone tendencies. In practise, one set of coefficients represents a mean modelled state.  But is much more than a relaxation because the temperature and overhead ozone column as well as the heterogeneous ozone loss is also considered by the scheme. 


    Johannes