metno / emep-ctm

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

PM outputs rv4_36 #95

Closed kevinbasoa closed 1 year ago

kevinbasoa commented 2 years ago

Hi everyone,

I have this problem with the outputs concentrations of PM. The recommended output to contrast simulations with observations is PM25_rh50 but, when I see the resoults the best variable to compare is PMFINE, regarding the amount of the concentrations, been the former around ~5 ug/m3 and the latter >100 ug/m3.

I atach my output configuration.

OutputConcs=
  'HMIX'                ,'m'   ,'2d','HMIX'     ,'MISC' ,'H',
  'T2m'                 ,'degC','2d','T2m'      ,'MISC' ,'H',
!  'SURF_ppbC_VOC'       ,'ppb' ,'2d','VOC'      ,'MISC' ,'H',
!  'SO2'                 ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NH3'                 ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'HNO3'                ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NO2'                 ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NO'                  ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'SO4'                 ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NO3_F'               ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NO3_C'               ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'NH4_F'               ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'SEASALT_F'           ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'SEASALT_C'           ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_ROAD_F'         ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_ROAD_C'         ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_WB_F'           ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_WB_C'           ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_SAH_F'          ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'DUST_SAH_C'          ,'ug'  ,'2d','AIR_CONCS','SPEC' ,'YMD',
  'O3'                  ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'H',
  'NO'                  ,'ppb' ,'3d','AIR_CONCS','SPEC' ,'H',
  'NO2'                 ,'ppb' ,'3d','AIR_CONCS','SPEC' ,'H',
  'NH3'                 ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'H',
!  'HNO3'                ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
  'SO2'                 ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'H',
  'CO'                  ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'H',
!  'HCHO'                ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'C5H8'                ,'ppb' ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'OXN'                 ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
!  'NOX'                 ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
!  'RDN'                 ,'ugN' ,'2d','AIR_CONCS','GROUP','YMD',
!  'TNO3'                ,'ug'  ,'2d','AIR_CONCS','GROUP','YMD',
!  'SIA'                 ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
  'PMFINE'              ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
  'PMFINE'              ,'ug'  ,'3d','AIR_CONCS','GROUP','H',
  'PM10'                ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
  'PMCO'                ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
  'PPM25'               ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
  'PPM_C'               ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
!  'SS'                  ,'ug'  ,'2d','AIR_CONCS','GROUP','YMD',
!  'DUST_NAT_F'          ,'ug'  ,'2d','AIR_CONCS','GROUP','YMD',
!  'DUST_NAT_C'          ,'ug'  ,'2d','AIR_CONCS','GROUP','YMD',
!  'DUST'                ,'ug'  ,'2d','AIR_CONCS','GROUP','YMD',
  'ECFINE'              ,'ug'  ,'3d','AIR_CONCS','GROUP','H',
  'ECCOARSE'            ,'ug'  ,'3d','AIR_CONCS','GROUP','H',
  'SURF_ug_PM25_rh50'   ,'ug'  ,'2d','PM25_rh50','MISC','H',
  'SURF_ug_PM10_rh50'   ,'ug'  ,'2d','PM10_rh50','MISC','H',
  'SURF_ug_PM25'        ,'ug'  ,'2d','PM25','MISC','H',
  'PMFINE'            ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',
  'OM25'              ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',
!  'OM25'              ,'ugC_PM','2d','AIR_CONCS','GROUP','H',
  'OMCOARSE'          ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',
!  'OMCOARSE'          ,'ugC_PM','2d','AIR_CONCS','GROUP','H',
!  'ASOA'              ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',
!  'BSOA'              ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',
!  'BSOA'              ,'ug'    ,'2d','AIR_CONCS','GROUP','H',
!  'PPM25_FIRE'        ,'ug'    ,'2d','AIR_CONCS','GROUP','YMD',
!  'FFIRE_BC'          ,'ug'    ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'FFIRE_REMPPM25'    ,'ug'    ,'2d','AIR_CONCS','SPEC' ,'YMD',
!  'FFIRE_OM'          ,'ug'    ,'2d','AIR_CONCS','SPEC' ,'YMD',
  'AOD'                ,' '  ,'550nm','AOD:GROUP','MISC','H',
! 'EXT'                ,'1/m','550nm','EXT:GROUP','MISC','YM',
! 'NO2'                ,'mcm2','k20','COLUMN'   ,'MISC' ,'I',
! 'O3'                 ,'mcm2','k20','COLUMN'   ,'MISC' ,'I',
! 'CO'                 ,'mcm2','k20','COLUMN'   ,'MISC' ,'I',
! 'HCHO'               ,'mcm2','k20','COLUMN'   ,'MISC' ,'I',
avaldebe commented 2 years ago

Hi @kevinbasoa

The SURF_ug_PM25_rh50 output relies on the PMFINE output to save some calculations: https://github.com/metno/emep-ctm/blob/23ae40f91edbaa4e8b1613ed8c44d6ab0562b3b5/Derived_mod.f90#L1426-L1440

Here you have one PMFINE 2d output defined before SURF_ug_PM25_rh50 and one defined after.

  'PMFINE'              ,'ug'  ,'2d','AIR_CONCS','GROUP','H',
[...]
  'SURF_ug_PM25_rh50'   ,'ug'  ,'2d','PM25_rh50','MISC','H',
  'SURF_ug_PM10_rh50'   ,'ug'  ,'2d','PM10_rh50','MISC','H',
  'SURF_ug_PM25'        ,'ug'  ,'2d','PM25','MISC','H',
  'PMFINE'            ,'ug_PM' ,'2d','AIR_CONCS','GROUP','H',

My best guess is that ind2d_pmfine correspond to the last PMFINE 2d output, so d_2d(ind2d_pmfine ,i,j,IOU_INST) is zero every time that SURF_ug_PM25_rh50 output is calculated.

@gitpeterwind and @mifads what do you think?

kevinbasoa commented 2 years ago

Hi @avaldebe,

I reorder my outputs and the resoults seems to be ok, regarding the magnitude.
I attach my new configuration:

OutputConcs=
  'HMIX'          ,'m'   ,'2d' ,'HMIX'     ,'MISC' ,'H',
  'O3'            ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'NO2'           ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'PMFINE'        ,'ug'  ,'2d' ,'AIR_CONCS','GROUP','',
  'PM10'          ,'ug'  ,'2d' ,'AIR_CONCS','GROUP','',
  'SURF_PM25water','ug'  ,'2d' ,'PM25water','MISC' ,'',
  'SURF_ug_PM25_rh50','ug','2d','PM25_rh50','MISC' ,'H',
  'SURF_ug_PM10_rh50','ug','2d','PM10_rh50','MISC' ,'H',
  'NO'            ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'SO2'           ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'CO'            ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'NH3'           ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'PAN'           ,'ppb'  ,'2d' ,'AIR_CONCS','SPEC' ,'H',
  'NMVOC'         ,'ppb'  ,'2d' ,'AIR_CONCS','GROUP','H',
  'ECFINE'        ,'ug'  ,'2d' ,'AIR_CONCS','GROUP','H',
  'ECCOARSE'      ,'ug'  ,'2d' ,'AIR_CONCS','GROUP','H',
  'PMFINE'        ,'ug'  ,'3d' ,'AIR_CONCS','GROUP','',
  'PM10'          ,'ug'  ,'3d' ,'AIR_CONCS','GROUP','',
  'D3_PM25water'  ,'ug'  ,'3d' ,'PM25water','MISC' ,'',
  'D3_ug_PM25_wet','ug'  ,'3d' ,'PM25_wet' ,'MISC' ,'H',
  'ECFINE'        ,'ug'  ,'3d' ,'AIR_CONCS','GROUP','H',
  'ECCOARSE'      ,'ug'  ,'3d' ,'AIR_CONCS','GROUP','H',
  'NO2'           ,'ugm2','k20','COLUMN'   ,'MISC' ,'H',
  'AOD'           ,' ' ,'550nm','AOD:GROUP','MISC' ,'H',

Best regards

avaldebe commented 2 years ago

Ho @kevinbasoa

I reorder my outputs and the resoults seems to be ok, regarding the magnitude.

I'm glad that you found a way around.

We are discussing a solution on metno/emep-mscw#214, which will hopefully be included on the next open source release.

Cheers, Á.

mifads commented 2 years ago

Hi @avaldebe Can we close this now with regard to the forthcoming OS release?

avaldebe commented 2 years ago

We can close it when the new version is released

mifads commented 2 years ago

OK. Next week then ;-)