metno / emep-ctm

Open Source EMEP/MSC-W model
GNU General Public License v3.0
30 stars 20 forks source link

Reading IC and BC for ozone from CAMS #99

Open lgallard-cr2 opened 2 years ago

lgallard-cr2 commented 2 years ago

Hi there!

We are trying to read initial and boundary conditions from CAMS reanalysis v EAC4 for year 2016 using EMEP rv4_36. The run is made using WRF fields+EMEP over central and southern Chile. Some of the species are successfully read, while others, including ozone are not.

We indicate to read BC every 12 hours, and to read CAMS's IC and BC, we indicate:

  USE_EXTERNAL_BIC     = T,         ! .false. to deactivate
  EXTERNAL_BIC_NAME    = 'CAMS',
  EXTERNAL_BIC_VERSION = 'EAC4',
  TOP_BC               = T,
  filename_eta         = '/home/cr2/kbasoa/BIC/eac4_L37_eta.zaxis',

we are using the following mapping

&ExternalBICs_bc
  description='CAMS','EAC4',17,  ! name,version,size
  map_bc=
    'CO'        ,'co'          ,1.0,T,F,-1, ! Carbon monoxide
    'O3'        ,'go3'         ,1.0,T,F,-1, ! GEMS Ozone
    'NO'        ,'no'          ,1.0,T,F,-1, ! Nitrogen monoxide
    'NO2'       ,'no2'         ,1.0,T,F,-1, ! Nitrogen dioxide
    'PAN'       ,'pan'         ,1.0,T,F,-1, ! Peroxyacetyl nitrate
    'HNO3'      ,'hno3'        ,1.0,T,F,-1, ! Nitric acid
    'HCHO'      ,'hcho'        ,1.0,T,F,-1, ! Formaldehyde
    'SO2'       ,'so2'         ,1.0,T,F,-1, ! Sulphur dioxide
    'C5H8'      ,'c5h8'        ,1.0,T,F,-1, ! Isoprene
    'C2H6'      ,'c2h6'        ,1.0,T,F,-1, ! Ethane
    'SeaSalt_f' ,'aermr01'     ,0.23255814,T,F,-1, ! ss_f: 0.03 - 0.5  um @80%rh
    'SeaSalt_f' ,'aermr02'     ,0.23255814,T,F,-1, ! ss_c: 0.5  - 5.0  um @80%rh
    'SeaSalt_c' ,'aermr03'     ,0.23255814,F,F,-1, !
    'Dust_SAH_f','aermr04'     ,1.0,T,F,-1, ! dd_f: 0.03 - 0.55 um
    'Dust_SAH_f','aermr05'     ,1.0,T,F,-1, ! dd_c: 0.55 - 0.9  um
    'Dust_SAH_c','aermr06'     ,0.4,T,F,-1, ! dd_g: 0.9  - 20   um
    'SO4'       ,'aermr11'     ,1.0,T,F,-1, ! Sulphate
&end

We get this type of warning/error ....

WARNING: IC variable 'O3' not found

There is not warning regarding the boundary condition. However, the ozone values we get in the upper troposphere are NOT consistent with typical UTLS values, i.e., they are much lower than expected, i.e., ca 50 ppbv at 15 km 120 hPa.

My "feeling" is that we are only reading the lateral BC, and not the top BC. But I don't know.

Is it a mistake to use the same fields as IC and BC?

We are using 20 levels in emep and 37 levels in CAMS,....

Suggestions and clarifications are much welcome, particularly during XMAS!

Cheers

Laura Gallardo

avaldebe commented 2 years ago

Hi Laura,

We get this type of warning/error ....

WARNING: IC variable 'O3' not found

The mapping described on ExternalBICs_bc applies only to external BCs. ICs are assumed to come from a restart/dump file from a previous model run. Therefore, the field names on the IC file should match (case insensitive) the model advected variable names. Each advected variable without a matching filed on the IC file will trigger a warning like the one in your example, and will retain its initialization value (from climatology or zero depending on the variable).

My "feeling" is that we are only reading the lateral BC, and not the top BC. But I don't know.

From your configuration, BCs (including the top) should be read every 3 hours. However, I'm not sure what will happen if your BC file is hollow (only has the lateral BCs and NaN elsewhere). Other possible explanation for the low top values would be that the BC file does not have the required vertical coordinate metadata (hyai/hybi or hyam/hybm for eta levels) and filename_eta is wrong.

Is it a mistake to use the same fields as IC and BC?

Alas, configuring the model to use IC/BC files is prone to subtle errors. Most users do not use this feature, so this is not as well documented as it should.

It is possible to the same file, as long as the IC file names match. You would have to modify the CAMS BC file for this. Otherwise, you could modify the source code to use the BC mapping for ICs.

We are using 20 levels in emep and 37 levels in CAMS,....

This should not be a problem. Older model versions had a bug that affected the lowermost level, but this not seem yo be your case.

Cheers, Á.