From c4bded56da8c5e133b431d814538cf8d40727335 Mon Sep 17 00:00:00 2001 From: Sebastien Villaume Date: Sat, 19 Nov 2022 17:17:11 +0000 Subject: [PATCH 01/14] adding new chemId keywords for MARS --- definitions/grib2/chemFormula.def | 467 ++++++++++++++++++ definitions/grib2/chemId.def | 467 ++++++++++++++++++ definitions/grib2/chemName.def | 467 ++++++++++++++++++ definitions/grib2/chemShortName.def | 467 ++++++++++++++++++ .../grib2/localConcepts/ecmf/chemFormula.def | 16 + .../grib2/localConcepts/ecmf/chemId.def | 16 + .../grib2/localConcepts/ecmf/chemName.def | 16 + .../localConcepts/ecmf/chemShortName.def | 16 + definitions/grib2/parameters.def | 16 + 9 files changed, 1948 insertions(+) create mode 100644 definitions/grib2/chemFormula.def create mode 100644 definitions/grib2/chemId.def create mode 100644 definitions/grib2/chemName.def create mode 100644 definitions/grib2/chemShortName.def create mode 100644 definitions/grib2/localConcepts/ecmf/chemFormula.def create mode 100644 definitions/grib2/localConcepts/ecmf/chemId.def create mode 100644 definitions/grib2/localConcepts/ecmf/chemName.def create mode 100644 definitions/grib2/localConcepts/ecmf/chemShortName.def diff --git a/definitions/grib2/chemFormula.def b/definitions/grib2/chemFormula.def new file mode 100644 index 000000000..f0f10d23d --- /dev/null +++ b/definitions/grib2/chemFormula.def @@ -0,0 +1,467 @@ +"O3" = { +constituentType = 1 ; +} +"H2O_c" = { +constituentType = 2 ; +} +"CO2" = { +constituentType = 3 ; +} +"CO" = { +constituentType = 4 ; +} +"NO2" = { +constituentType = 5 ; +} +"N2O" = { +constituentType = 6 ; +} +"HCHO" = { +constituentType = 7 ; +} +"SO2_v" = { +constituentType = 8 ; +sourceSinkChemicalPhysicalProcess = 7 ; +} +"SO2" = { +constituentType = 8 ; +} +"NH3" = { +constituentType = 9 ; +} +"NH4" = { +constituentType = 10 ; +} +"NO" = { +constituentType = 11 ; +} +"O" = { +constituentType = 12 ; +} +"NO3" = { +constituentType = 13 ; +} +"HO2_r" = { +constituentType = 14 ; +} +"N2O5" = { +constituentType = 15 ; +} +"HONO" = { +constituentType = 16 ; +} +"HNO3" = { +constituentType = 17 ; +} +"HO2NO2" = { +constituentType = 18 ; +} +"H2O2" = { +constituentType = 19 ; +} +"H2" = { +constituentType = 20 ; +} +"N" = { +constituentType = 21 ; +} +"SO4" = { +constituentType = 22 ; +} +"Ra" = { +constituentType = 23 ; +} +"Cl" = { +constituentType = 26 ; +} +"ClO" = { +constituentType = 27 ; +} +"Cl2O2" = { +constituentType = 28 ; +} +"HOCl" = { +constituentType = 29 ; +} +"ClONO2" = { +constituentType = 30 ; +} +"OClO" = { +constituentType = 31 ; +} +"Br" = { +constituentType = 32 ; +} +"BrO" = { +constituentType = 33 ; +} +"BrCl" = { +constituentType = 34 ; +} +"HBr" = { +constituentType = 35 ; +} +"HOBr" = { +constituentType = 36 ; +} +"BrONO2" = { +constituentType = 37 ; +} +"O2" = { +constituentType = 38 ; +} +"ClNO2" = { +constituentType = 39 ; +} +"H2SO4" = { +constituentType = 40 ; +} +"H2S" = { +constituentType = 41 ; +} +"SO3" = { +constituentType = 42 ; +} +"Br2" = { +constituentType = 43 ; +} +"HF" = { +constituentType = 44 ; +} +"SF6" = { +constituentType = 45 ; +} +"Cl2" = { +constituentType = 46 ; +} +"OH_r" = { +constituentType = 10000 ; +} +"CH3O2_r" = { +constituentType = 10001 ; +} +"CH3OH" = { +constituentType = 10004 ; +} +"CH3OOH" = { +constituentType = 10005 ; +} +"HCOOH" = { +constituentType = 10005 ; +} +"HCN" = { +constituentType = 10006 ; +} +"CH3CN" = { +constituentType = 10007 ; +} +"C2H6" = { +constituentType = 10008 ; +} +"C2H4" = { +constituentType = 10009 ; +} +"C2H5OH" = { +constituentType = 10011 ; +} +"CH3COOH" = { +constituentType = 10012 ; +} +"PAN" = { +constituentType = 10013 ; +} +"C3H8" = { +constituentType = 10014 ; +} +"C3H6" = { +constituentType = 10015 ; +} +"C5H8" = { +constituentType = 10017 ; +} +"MSA" = { +constituentType = 10024 ; +} +"CH3COCHO" = { +constituentType = 10025 ; +} +"C2O3_r" = { +constituentType = 10026 ; +} +"MCOOH" = { +constituentType = 10027 ; +} +"ISPD" = { +constituentType = 10028 ; +} +"MACR" = { +constituentType = 10028 ; +} +"CH3COCH3" = { +constituentType = 10029 ; +} +"DIEN" = { +constituentType = 10031 ; +} +"CH3CHO" = { +constituentType = 10032 ; +} +"GLYALD" = { +constituentType = 10033 ; +} +"CRESOL" = { +constituentType = 10034 ; +} +"CH3COOOH" = { +constituentType = 10035 ; +} +"EO" = { +constituentType = 10036 ; +} +"EO2" = { +constituentType = 10037 ; +} +"GLYOXAL" = { +constituentType = 10038 ; +} +"C3H7O2" = { +constituentType = 10039 ; +} +"C3H7OOH" = { +constituentType = 10040 ; +} +"HYAC" = { +constituentType = 10041 ; +} +"PAA" = { +constituentType = 10042 ; +} +"MVK" = { +constituentType = 10043 ; +} +"PhO" = { +constituentType = 10044 ; +} +"OCS_c" = { +constituentType = 10046 ; +} +"CH2Br2" = { +constituentType = 10047 ; +} +"CH3O" = { +constituentType = 10048 ; +} +"CHBr3" = { +constituentType = 10049 ; +} +"HCO" = { +constituentType = 10050 ; +} +"C2H5OOH" = { +constituentType = 10052 ; +} +"PO2" = { +constituentType = 10053 ; +} +"POOH" = { +constituentType = 10054 ; +} +"DMS" = { +constituentType = 10500 ; +} +"DMSO" = { +constituentType = 10501 ; +} +"HCl" = { +constituentType = 20001 ; +} +"CFC11" = { +constituentType = 20002 ; +} +"CFC12" = { +constituentType = 20003 ; +} +"CFC113" = { +constituentType = 20004 ; +} +"CFC114" = { +constituentType = 20006 ; +} +"CFC115" = { +constituentType = 20007 ; +} +"CH3Cl" = { +constituentType = 20015 ; +} +"CH3Br" = { +constituentType = 20018 ; +} +"Pb" = { +constituentType = 30296 ; +} +"O2_1s" = { +constituentType = 40000 ; +} +"O2_1d" = { +constituentType = 40001 ; +} +"O_1d" = { +constituentType = 40002 ; +} +"O_3p" = { +constituentType = 40003 ; +} +"NOx" = { +constituentType = 60003 ; +} +"NOy" = { +constituentType = 60004 ; +} +"BIGALK" = { +constituentType = 60009 ; +} +"C10H16" = { +constituentType = 60012 ; +} +"ALD2" = { +constituentType = 60018 ; +} +"ROOH" = { +constituentType = 60019 ; +} +"NO3_org" = { +constituentType = 60020 ; +} +"ROR" = { +constituentType = 60021 ; +} +"NH2" = { +constituentType = 60022 ; +} +"KET" = { +constituentType = 60023 ; +} +"DCB" = { +constituentType = 60024 ; +} +"UDD" = { +constituentType = 60025 ; +} +"HKET" = { +constituentType = 60026 ; +} +"Ox" = { +constituentType = 60027 ; +} +"ISOPOOH" = { +constituentType = 60032 ; +} +"ISOPBO2" = { +constituentType = 60056 ; +} +"ISOPDO2" = { +constituentType = 60057 ; +} +"HPALD1" = { +constituentType = 60058 ; +} +"HPALD2" = { +constituentType = 60058 ; +} +"CH3O2NO2" = { +constituentType = 210182 ; +} +"BIGENE" = { +constituentType = 600100 ; +} +"aer_seasalt_003_05" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 5 ; +} +"aer_seasalt_05_5" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 6 ; +scaledValueOfSecondSize = 5 ; +} +"aer_seasalt_5_20" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 6 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"aer_dust_003_055" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 8 ; +scaledValueOfSecondSize = 55 ; +} +"aer_dust_055_09" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 55 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 9 ; +} +"aer_dust_09_20" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 9 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"aer_hicorgmat" = { +constituentType = 62015 ; +} +"aer_hocorgmat" = { +constituentType = 62016 ; +} +"aer_hicblackcarb" = { +constituentType = 62013 ; +} +"aer_hocblackcarb" = { +constituentType = 62014 ; +} +"aer_sulph" = { +constituentType = 62006 ; +} +"aer_nitrfine" = { +constituentType = 62004 ; +typeOfSizeInterval = 5 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"aer_nitrcoars" = { +constituentType = 62004 ; +typeOfSizeInterval = 3 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"aer_nh4" = { +constituentType = 62003 ; +} +"aer_biosecorg" = { +constituentType = 62032 ; +} +"aer_antsecorg" = { +constituentType = 62033 ; +} +"aer_NO3" = { +constituentType = 62004 ; +} diff --git a/definitions/grib2/chemId.def b/definitions/grib2/chemId.def new file mode 100644 index 000000000..454d8bb16 --- /dev/null +++ b/definitions/grib2/chemId.def @@ -0,0 +1,467 @@ +"203" = { +constituentType = 1 ; +} +"59" = { +constituentType = 2 ; +} +"25" = { +constituentType = 3 ; +} +"2" = { +constituentType = 4 ; +} +"17" = { +constituentType = 5 ; +} +"31" = { +constituentType = 6 ; +} +"5" = { +constituentType = 7 ; +} +"8" = { +constituentType = 8 ; +sourceSinkChemicalPhysicalProcess = 7 ; +} +"233" = { +constituentType = 8 ; +} +"19" = { +constituentType = 9 ; +} +"21" = { +constituentType = 10 ; +} +"27" = { +constituentType = 11 ; +} +"203" = { +constituentType = 12 ; +} +"32" = { +constituentType = 13 ; +} +"28" = { +constituentType = 14 ; +} +"33" = { +constituentType = 15 ; +} +"86" = { +constituentType = 16 ; +} +"6" = { +constituentType = 17 ; +} +"34" = { +constituentType = 18 ; +} +"3" = { +constituentType = 19 ; +} +"199" = { +constituentType = 20 ; +} +"173" = { +constituentType = 21 ; +} +"20" = { +constituentType = 22 ; +} +"11" = { +constituentType = 23 ; +} +"175" = { +constituentType = 26 ; +} +"174" = { +constituentType = 27 ; +} +"69" = { +constituentType = 28 ; +} +"65" = { +constituentType = 29 ; +} +"64" = { +constituentType = 30 ; +} +"63" = { +constituentType = 31 ; +} +"191" = { +constituentType = 32 ; +} +"176" = { +constituentType = 33 ; +} +"193" = { +constituentType = 34 ; +} +"68" = { +constituentType = 35 ; +} +"70" = { +constituentType = 36 ; +} +"194" = { +constituentType = 37 ; +} +"60" = { +constituentType = 38 ; +} +"67" = { +constituentType = 39 ; +} +"85" = { +constituentType = 40 ; +} +"166" = { +constituentType = 41 ; +} +"189" = { +constituentType = 42 ; +} +"192" = { +constituentType = 43 ; +} +"202" = { +constituentType = 44 ; +} +"232" = { +constituentType = 45 ; +} +"66" = { +constituentType = 46 ; +} +"30" = { +constituentType = 10000 ; +} +"29" = { +constituentType = 10001 ; +} +"42" = { +constituentType = 10004 ; +} +"7" = { +constituentType = 10005 ; +} +"43" = { +constituentType = 10005 ; +} +"226" = { +constituentType = 10006 ; +} +"224" = { +constituentType = 10007 ; +} +"45" = { +constituentType = 10008 ; +} +"10" = { +constituentType = 10009 ; +} +"46" = { +constituentType = 10011 ; +} +"96" = { +constituentType = 10012 ; +} +"13" = { +constituentType = 10013 ; +} +"47" = { +constituentType = 10014 ; +} +"48" = { +constituentType = 10015 ; +} +"16" = { +constituentType = 10017 ; +} +"22" = { +constituentType = 10024 ; +} +"23" = { +constituentType = 10025 ; +} +"35" = { +constituentType = 10026 ; +} +"44" = { +constituentType = 10027 ; +} +"50" = { +constituentType = 10028 ; +} +"110" = { +constituentType = 10028 ; +} +"52" = { +constituentType = 10029 ; +} +"93" = { +constituentType = 10031 ; +} +"98" = { +constituentType = 10032 ; +} +"101" = { +constituentType = 10033 ; +} +"102" = { +constituentType = 10034 ; +} +"104" = { +constituentType = 10035 ; +} +"108" = { +constituentType = 10036 ; +} +"106" = { +constituentType = 10037 ; +} +"107" = { +constituentType = 10038 ; +} +"112" = { +constituentType = 10039 ; +} +"114" = { +constituentType = 10040 ; +} +"118" = { +constituentType = 10041 ; +} +"119" = { +constituentType = 10042 ; +} +"138" = { +constituentType = 10043 ; +} +"139" = { +constituentType = 10044 ; +} +"190" = { +constituentType = 10046 ; +} +"195" = { +constituentType = 10047 ; +} +"196" = { +constituentType = 10048 ; +} +"197" = { +constituentType = 10049 ; +} +"201" = { +constituentType = 10050 ; +} +"94" = { +constituentType = 10052 ; +} +"115" = { +constituentType = 10053 ; +} +"116" = { +constituentType = 10054 ; +} +"18" = { +constituentType = 10500 ; +} +"163" = { +constituentType = 10501 ; +} +"200" = { +constituentType = 20001 ; +} +"71" = { +constituentType = 20002 ; +} +"72" = { +constituentType = 20003 ; +} +"73" = { +constituentType = 20004 ; +} +"74" = { +constituentType = 20006 ; +} +"75" = { +constituentType = 20007 ; +} +"78" = { +constituentType = 20015 ; +} +"80" = { +constituentType = 20018 ; +} +"26" = { +constituentType = 30296 ; +} +"61" = { +constituentType = 40000 ; +} +"62" = { +constituentType = 40001 ; +} +"204" = { +constituentType = 40002 ; +} +"205" = { +constituentType = 40003 ; +} +"129" = { +constituentType = 60003 ; +} +"168" = { +constituentType = 60004 ; +} +"126" = { +constituentType = 60009 ; +} +"49" = { +constituentType = 60012 ; +} +"12" = { +constituentType = 60018 ; +} +"14" = { +constituentType = 60019 ; +} +"15" = { +constituentType = 60020 ; +} +"36" = { +constituentType = 60021 ; +} +"40" = { +constituentType = 60022 ; +} +"105" = { +constituentType = 60023 ; +} +"109" = { +constituentType = 60024 ; +} +"111" = { +constituentType = 60025 ; +} +"113" = { +constituentType = 60026 ; +} +"155" = { +constituentType = 60027 ; +} +"161" = { +constituentType = 60032 ; +} +"229" = { +constituentType = 60056 ; +} +"230" = { +constituentType = 60057 ; +} +"227" = { +constituentType = 60058 ; +} +"228" = { +constituentType = 60058 ; +} +"225" = { +constituentType = 210182 ; +} +"124" = { +constituentType = 600100 ; +} +"901" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 5 ; +} +"902" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 6 ; +scaledValueOfSecondSize = 5 ; +} +"903" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 6 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"904" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 8 ; +scaledValueOfSecondSize = 55 ; +} +"905" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 55 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 9 ; +} +"906" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 9 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"907" = { +constituentType = 62015 ; +} +"908" = { +constituentType = 62016 ; +} +"909" = { +constituentType = 62013 ; +} +"910" = { +constituentType = 62014 ; +} +"911" = { +constituentType = 62006 ; +} +"912" = { +constituentType = 62004 ; +typeOfSizeInterval = 5 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"913" = { +constituentType = 62004 ; +typeOfSizeInterval = 3 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"914" = { +constituentType = 62003 ; +} +"915" = { +constituentType = 62032 ; +} +"916" = { +constituentType = 62033 ; +} +"51" = { +constituentType = 62004 ; +} diff --git a/definitions/grib2/chemName.def b/definitions/grib2/chemName.def new file mode 100644 index 000000000..f1081a12e --- /dev/null +++ b/definitions/grib2/chemName.def @@ -0,0 +1,467 @@ +"Ozone" = { +constituentType = 1 ; +} +"Water vapour (chemistry)" = { +constituentType = 2 ; +} +"Carbon dioxide" = { +constituentType = 3 ; +} +"Carbon monoxide" = { +constituentType = 4 ; +} +"Nitrogen dioxide" = { +constituentType = 5 ; +} +"Nitrous oxide" = { +constituentType = 6 ; +} +"Formaldehyde" = { +constituentType = 7 ; +} +"Volcanic sulfur dioxide" = { +constituentType = 8 ; +sourceSinkChemicalPhysicalProcess = 7 ; +} +"Sulphur dioxide" = { +constituentType = 8 ; +} +"Ammonia" = { +constituentType = 9 ; +} +"Ammonium" = { +constituentType = 10 ; +} +"Nitrogen monoxide" = { +constituentType = 11 ; +} +"Oxygen atom" = { +constituentType = 12 ; +} +"Nitrate radical" = { +constituentType = 13 ; +} +"Hydroperoxy radical" = { +constituentType = 14 ; +} +"Dinitrogen pentoxide" = { +constituentType = 15 ; +} +"Nitrous acid" = { +constituentType = 16 ; +} +"Nitric acid" = { +constituentType = 17 ; +} +"Pernitric acid" = { +constituentType = 18 ; +} +"Hydrogen peroxide" = { +constituentType = 19 ; +} +"Dihydrogen" = { +constituentType = 20 ; +} +"Nitrogen atom" = { +constituentType = 21 ; +} +"Sulfate" = { +constituentType = 22 ; +} +"Radon" = { +constituentType = 23 ; +} +"Chlorine atom" = { +constituentType = 26 ; +} +"Chlorine monoxide" = { +constituentType = 27 ; +} +"Dichlorine dioxide" = { +constituentType = 28 ; +} +"Hypochlorous acid" = { +constituentType = 29 ; +} +"Chlorine nitrate" = { +constituentType = 30 ; +} +"Chlorine dioxide" = { +constituentType = 31 ; +} +"Bromine atom" = { +constituentType = 32 ; +} +"Bromine monoxide" = { +constituentType = 33 ; +} +"Bromine monochloride" = { +constituentType = 34 ; +} +"Hydrogen bromide" = { +constituentType = 35 ; +} +"Hypobromous acid" = { +constituentType = 36 ; +} +"Bromine nitrate" = { +constituentType = 37 ; +} +"Dioxygen" = { +constituentType = 38 ; +} +"Nitryl chloride" = { +constituentType = 39 ; +} +"Sulfuric acid" = { +constituentType = 40 ; +} +"Hydrogensulfide" = { +constituentType = 41 ; +} +"Sulfur trioxide" = { +constituentType = 42 ; +} +"Bromine" = { +constituentType = 43 ; +} +"Hydrogen fluoride" = { +constituentType = 44 ; +} +" Sulphur hexafluoride " = { +constituentType = 45 ; +} +"Chlorine" = { +constituentType = 46 ; +} +"Hydroxyl radical" = { +constituentType = 10000 ; +} +"Methylperoxy radical" = { +constituentType = 10001 ; +} +"Methanol" = { +constituentType = 10004 ; +} +"Methyl peroxide" = { +constituentType = 10005 ; +} +"Formic acid" = { +constituentType = 10005 ; +} +"Hydrogen cyanide" = { +constituentType = 10006 ; +} +"Acetonitrile" = { +constituentType = 10007 ; +} +"Ethane" = { +constituentType = 10008 ; +} +"Ethene" = { +constituentType = 10009 ; +} +"Ethanol" = { +constituentType = 10011 ; +} +"Acetic acid" = { +constituentType = 10012 ; +} +"Peroxyacetyl nitrate" = { +constituentType = 10013 ; +} +"Propane" = { +constituentType = 10014 ; +} +"Propene" = { +constituentType = 10015 ; +} +"Isoprene" = { +constituentType = 10017 ; +} +"Methane sulfonic acid" = { +constituentType = 10024 ; +} +"Methyl glyoxal" = { +constituentType = 10025 ; +} +"Peroxy acetyl radical" = { +constituentType = 10026 ; +} +"Methacrylic acid" = { +constituentType = 10027 ; +} +"Methacrolein MVK (needs to go local)" = { +constituentType = 10028 ; +} +"Methacrolein" = { +constituentType = 10028 ; +} +"Acetone" = { +constituentType = 10029 ; +} +"Butadiene" = { +constituentType = 10031 ; +} +"Acetaldehyde" = { +constituentType = 10032 ; +} +"Glycolaldehyde" = { +constituentType = 10033 ; +} +"Cresol" = { +constituentType = 10034 ; +} +"Peracetic acid" = { +constituentType = 10035 ; +} +"Hoch2ch2o" = { +constituentType = 10036 ; +} +"Hoch2ch2o2" = { +constituentType = 10037 ; +} +"Glyoxal" = { +constituentType = 10038 ; +} +"Isopropyldioxidanyl" = { +constituentType = 10039 ; +} +"Isopropyl hydroperoxide" = { +constituentType = 10040 ; +} +"Hydroxyacetone" = { +constituentType = 10041 ; +} +"Peroxyacetic acid" = { +constituentType = 10042 ; +} +"Methylvinylketone" = { +constituentType = 10043 ; +} +"Phenoxy radical" = { +constituentType = 10044 ; +} +"Carbonyl sulfide" = { +constituentType = 10046 ; +} +"Dibromomethane" = { +constituentType = 10047 ; +} +"Methoxy radical" = { +constituentType = 10048 ; +} +"Tribromomethane" = { +constituentType = 10049 ; +} +"Formyl radical" = { +constituentType = 10050 ; +} +"Ethyl hydroperoxide" = { +constituentType = 10052 ; +} +"C3h6oho2" = { +constituentType = 10053 ; +} +"C3h6ohooh" = { +constituentType = 10054 ; +} +"Dimethyl sulfide" = { +constituentType = 10500 ; +} +"Dimethyl sulfoxyde" = { +constituentType = 10501 ; +} +"Hydrogen chloride" = { +constituentType = 20001 ; +} +"Trichlorofluoromethane" = { +constituentType = 20002 ; +} +"Dichlorodifluoromethane" = { +constituentType = 20003 ; +} +"Trichlorotrifluoroethane" = { +constituentType = 20004 ; +} +"Dichlorotetrafluoroethane" = { +constituentType = 20006 ; +} +"Chloropentafluoroethane" = { +constituentType = 20007 ; +} +"Methyl chloride" = { +constituentType = 20015 ; +} +"Methyl bromide" = { +constituentType = 20018 ; +} +"Lead" = { +constituentType = 30296 ; +} +"Singlet sigma dioxygen" = { +constituentType = 40000 ; +} +"Singlet Delta dioxygen" = { +constituentType = 40001 ; +} +"Excited oxygen atom" = { +constituentType = 40002 ; +} +"Ground state oxygen atom" = { +constituentType = 40003 ; +} +"Nitrogen oxides" = { +constituentType = 60003 ; +} +"All nitrogen oxides" = { +constituentType = 60004 ; +} +"Lumped alkanes" = { +constituentType = 60009 ; +} +"Terpenes" = { +constituentType = 60012 ; +} +"Aldehydes" = { +constituentType = 60018 ; +} +"Peroxides" = { +constituentType = 60019 ; +} +"Organic nitrates" = { +constituentType = 60020 ; +} +"Organic ethers" = { +constituentType = 60021 ; +} +"Amine" = { +constituentType = 60022 ; +} +"Ketones" = { +constituentType = 60023 ; +} +"Unsaturated dicarbonyls" = { +constituentType = 60024 ; +} +"Unsaturated hydroxy dicarbonyl" = { +constituentType = 60025 ; +} +"Hydroxy ketone" = { +constituentType = 60026 ; +} +"Oxides" = { +constituentType = 60027 ; +} +"Hoch2c(ooh)(ch3)ch=ch2" = { +constituentType = 60032 ; +} +"Isoprene peroxy type B" = { +constituentType = 60056 ; +} +"Isoprene peroxy type D mass mixing ratio" = { +constituentType = 60057 ; +} +"Hydroperoxy aldehydes type 1" = { +constituentType = 60058 ; +} +"Hydroperoxy aldehydes type 2" = { +constituentType = 60058 ; +} +"Methyl peroxy nitrate" = { +constituentType = 210182 ; +} +"Lumped alkenes" = { +constituentType = 600100 ; +} +"Sea salt aerosol (0.03 - 0.5 um)" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 5 ; +} +"Sea salt aerosol (0.5 - 5 um)" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 6 ; +scaledValueOfSecondSize = 5 ; +} +"Sea salt aerosol (5 - 20 um)" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 6 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"Dust aerosol (0.03 - 0.55 um)" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 8 ; +scaledValueOfSecondSize = 55 ; +} +"Dust aerosol (0.55 - 0.9 um)" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 55 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 9 ; +} +"Dust aerosol (0.9 - 20 um)" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 9 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"Hydrophilic organic matter aerosol" = { +constituentType = 62015 ; +} +"Hydrophobic organic matter aerosol" = { +constituentType = 62016 ; +} +"Hydrophilic black carbon aerosol" = { +constituentType = 62013 ; +} +"Hydrophobic black carbon aerosol" = { +constituentType = 62014 ; +} +"Sulphate aerosol" = { +constituentType = 62006 ; +} +"Nitrate fine mode aerosol (<= 2.5 um)" = { +constituentType = 62004 ; +typeOfSizeInterval = 5 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"Nitrate coarse mode aerosol (>2.5 um)" = { +constituentType = 62004 ; +typeOfSizeInterval = 3 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"Ammonium aerosol" = { +constituentType = 62003 ; +} +"Biogenic secondary organic aerosol" = { +constituentType = 62032 ; +} +"Anthropogenic secondary organic aerosol" = { +constituentType = 62033 ; +} +"Nitrate" = { +constituentType = 62004 ; +} diff --git a/definitions/grib2/chemShortName.def b/definitions/grib2/chemShortName.def new file mode 100644 index 000000000..f0f10d23d --- /dev/null +++ b/definitions/grib2/chemShortName.def @@ -0,0 +1,467 @@ +"O3" = { +constituentType = 1 ; +} +"H2O_c" = { +constituentType = 2 ; +} +"CO2" = { +constituentType = 3 ; +} +"CO" = { +constituentType = 4 ; +} +"NO2" = { +constituentType = 5 ; +} +"N2O" = { +constituentType = 6 ; +} +"HCHO" = { +constituentType = 7 ; +} +"SO2_v" = { +constituentType = 8 ; +sourceSinkChemicalPhysicalProcess = 7 ; +} +"SO2" = { +constituentType = 8 ; +} +"NH3" = { +constituentType = 9 ; +} +"NH4" = { +constituentType = 10 ; +} +"NO" = { +constituentType = 11 ; +} +"O" = { +constituentType = 12 ; +} +"NO3" = { +constituentType = 13 ; +} +"HO2_r" = { +constituentType = 14 ; +} +"N2O5" = { +constituentType = 15 ; +} +"HONO" = { +constituentType = 16 ; +} +"HNO3" = { +constituentType = 17 ; +} +"HO2NO2" = { +constituentType = 18 ; +} +"H2O2" = { +constituentType = 19 ; +} +"H2" = { +constituentType = 20 ; +} +"N" = { +constituentType = 21 ; +} +"SO4" = { +constituentType = 22 ; +} +"Ra" = { +constituentType = 23 ; +} +"Cl" = { +constituentType = 26 ; +} +"ClO" = { +constituentType = 27 ; +} +"Cl2O2" = { +constituentType = 28 ; +} +"HOCl" = { +constituentType = 29 ; +} +"ClONO2" = { +constituentType = 30 ; +} +"OClO" = { +constituentType = 31 ; +} +"Br" = { +constituentType = 32 ; +} +"BrO" = { +constituentType = 33 ; +} +"BrCl" = { +constituentType = 34 ; +} +"HBr" = { +constituentType = 35 ; +} +"HOBr" = { +constituentType = 36 ; +} +"BrONO2" = { +constituentType = 37 ; +} +"O2" = { +constituentType = 38 ; +} +"ClNO2" = { +constituentType = 39 ; +} +"H2SO4" = { +constituentType = 40 ; +} +"H2S" = { +constituentType = 41 ; +} +"SO3" = { +constituentType = 42 ; +} +"Br2" = { +constituentType = 43 ; +} +"HF" = { +constituentType = 44 ; +} +"SF6" = { +constituentType = 45 ; +} +"Cl2" = { +constituentType = 46 ; +} +"OH_r" = { +constituentType = 10000 ; +} +"CH3O2_r" = { +constituentType = 10001 ; +} +"CH3OH" = { +constituentType = 10004 ; +} +"CH3OOH" = { +constituentType = 10005 ; +} +"HCOOH" = { +constituentType = 10005 ; +} +"HCN" = { +constituentType = 10006 ; +} +"CH3CN" = { +constituentType = 10007 ; +} +"C2H6" = { +constituentType = 10008 ; +} +"C2H4" = { +constituentType = 10009 ; +} +"C2H5OH" = { +constituentType = 10011 ; +} +"CH3COOH" = { +constituentType = 10012 ; +} +"PAN" = { +constituentType = 10013 ; +} +"C3H8" = { +constituentType = 10014 ; +} +"C3H6" = { +constituentType = 10015 ; +} +"C5H8" = { +constituentType = 10017 ; +} +"MSA" = { +constituentType = 10024 ; +} +"CH3COCHO" = { +constituentType = 10025 ; +} +"C2O3_r" = { +constituentType = 10026 ; +} +"MCOOH" = { +constituentType = 10027 ; +} +"ISPD" = { +constituentType = 10028 ; +} +"MACR" = { +constituentType = 10028 ; +} +"CH3COCH3" = { +constituentType = 10029 ; +} +"DIEN" = { +constituentType = 10031 ; +} +"CH3CHO" = { +constituentType = 10032 ; +} +"GLYALD" = { +constituentType = 10033 ; +} +"CRESOL" = { +constituentType = 10034 ; +} +"CH3COOOH" = { +constituentType = 10035 ; +} +"EO" = { +constituentType = 10036 ; +} +"EO2" = { +constituentType = 10037 ; +} +"GLYOXAL" = { +constituentType = 10038 ; +} +"C3H7O2" = { +constituentType = 10039 ; +} +"C3H7OOH" = { +constituentType = 10040 ; +} +"HYAC" = { +constituentType = 10041 ; +} +"PAA" = { +constituentType = 10042 ; +} +"MVK" = { +constituentType = 10043 ; +} +"PhO" = { +constituentType = 10044 ; +} +"OCS_c" = { +constituentType = 10046 ; +} +"CH2Br2" = { +constituentType = 10047 ; +} +"CH3O" = { +constituentType = 10048 ; +} +"CHBr3" = { +constituentType = 10049 ; +} +"HCO" = { +constituentType = 10050 ; +} +"C2H5OOH" = { +constituentType = 10052 ; +} +"PO2" = { +constituentType = 10053 ; +} +"POOH" = { +constituentType = 10054 ; +} +"DMS" = { +constituentType = 10500 ; +} +"DMSO" = { +constituentType = 10501 ; +} +"HCl" = { +constituentType = 20001 ; +} +"CFC11" = { +constituentType = 20002 ; +} +"CFC12" = { +constituentType = 20003 ; +} +"CFC113" = { +constituentType = 20004 ; +} +"CFC114" = { +constituentType = 20006 ; +} +"CFC115" = { +constituentType = 20007 ; +} +"CH3Cl" = { +constituentType = 20015 ; +} +"CH3Br" = { +constituentType = 20018 ; +} +"Pb" = { +constituentType = 30296 ; +} +"O2_1s" = { +constituentType = 40000 ; +} +"O2_1d" = { +constituentType = 40001 ; +} +"O_1d" = { +constituentType = 40002 ; +} +"O_3p" = { +constituentType = 40003 ; +} +"NOx" = { +constituentType = 60003 ; +} +"NOy" = { +constituentType = 60004 ; +} +"BIGALK" = { +constituentType = 60009 ; +} +"C10H16" = { +constituentType = 60012 ; +} +"ALD2" = { +constituentType = 60018 ; +} +"ROOH" = { +constituentType = 60019 ; +} +"NO3_org" = { +constituentType = 60020 ; +} +"ROR" = { +constituentType = 60021 ; +} +"NH2" = { +constituentType = 60022 ; +} +"KET" = { +constituentType = 60023 ; +} +"DCB" = { +constituentType = 60024 ; +} +"UDD" = { +constituentType = 60025 ; +} +"HKET" = { +constituentType = 60026 ; +} +"Ox" = { +constituentType = 60027 ; +} +"ISOPOOH" = { +constituentType = 60032 ; +} +"ISOPBO2" = { +constituentType = 60056 ; +} +"ISOPDO2" = { +constituentType = 60057 ; +} +"HPALD1" = { +constituentType = 60058 ; +} +"HPALD2" = { +constituentType = 60058 ; +} +"CH3O2NO2" = { +constituentType = 210182 ; +} +"BIGENE" = { +constituentType = 600100 ; +} +"aer_seasalt_003_05" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 5 ; +} +"aer_seasalt_05_5" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 6 ; +scaledValueOfSecondSize = 5 ; +} +"aer_seasalt_5_20" = { +constituentType = 62008 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 6 ; +scaledValueOfFirstSize = 5 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"aer_dust_003_055" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 3 ; +scaleFactorOfSecondSize = 8 ; +scaledValueOfSecondSize = 55 ; +} +"aer_dust_055_09" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 8 ; +scaledValueOfFirstSize = 55 ; +scaleFactorOfSecondSize = 7 ; +scaledValueOfSecondSize = 9 ; +} +"aer_dust_09_20" = { +constituentType = 62001 ; +typeOfSizeInterval = 7 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 9 ; +scaleFactorOfSecondSize = 5 ; +scaledValueOfSecondSize = 2 ; +} +"aer_hicorgmat" = { +constituentType = 62015 ; +} +"aer_hocorgmat" = { +constituentType = 62016 ; +} +"aer_hicblackcarb" = { +constituentType = 62013 ; +} +"aer_hocblackcarb" = { +constituentType = 62014 ; +} +"aer_sulph" = { +constituentType = 62006 ; +} +"aer_nitrfine" = { +constituentType = 62004 ; +typeOfSizeInterval = 5 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"aer_nitrcoars" = { +constituentType = 62004 ; +typeOfSizeInterval = 3 ; +scaleFactorOfFirstSize = 7 ; +scaledValueOfFirstSize = 25 ; +scaleFactorOfSecondSize = missing() ; +scaledValueOfSecondSize = missing() ; +} +"aer_nh4" = { +constituentType = 62003 ; +} +"aer_biosecorg" = { +constituentType = 62032 ; +} +"aer_antsecorg" = { +constituentType = 62033 ; +} +"aer_NO3" = { +constituentType = 62004 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemFormula.def b/definitions/grib2/localConcepts/ecmf/chemFormula.def new file mode 100644 index 000000000..ca3842c0f --- /dev/null +++ b/definitions/grib2/localConcepts/ecmf/chemFormula.def @@ -0,0 +1,16 @@ +"gO3" = { +constituentType = 1 ; +localTablesVersion = 1 ; +} +"CH4_c" = { +constituentType = 2 ; +localTablesVersion = 1 ; +} +"CO2_c" = { +constituentType = 3 ; +localTablesVersion = 1 ; +} +"N2O_c" = { +constituentType = 6 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemId.def b/definitions/grib2/localConcepts/ecmf/chemId.def new file mode 100644 index 000000000..eecafc8bd --- /dev/null +++ b/definitions/grib2/localConcepts/ecmf/chemId.def @@ -0,0 +1,16 @@ +"231" = { +constituentType = 1 ; +localTablesVersion = 1 ; +} +"4" = { +constituentType = 2 ; +localTablesVersion = 1 ; +} +"57" = { +constituentType = 3 ; +localTablesVersion = 1 ; +} +"58" = { +constituentType = 6 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemName.def b/definitions/grib2/localConcepts/ecmf/chemName.def new file mode 100644 index 000000000..8e4dfd1d9 --- /dev/null +++ b/definitions/grib2/localConcepts/ecmf/chemName.def @@ -0,0 +1,16 @@ +"GEMS ozone" = { +constituentType = 1 ; +localTablesVersion = 1 ; +} +"Methane (chemistry)" = { +constituentType = 2 ; +localTablesVersion = 1 ; +} +"Carbon dioxide (chemistry)" = { +constituentType = 3 ; +localTablesVersion = 1 ; +} +"Nitrous oxide (chemistry)" = { +constituentType = 6 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemShortName.def b/definitions/grib2/localConcepts/ecmf/chemShortName.def new file mode 100644 index 000000000..ca3842c0f --- /dev/null +++ b/definitions/grib2/localConcepts/ecmf/chemShortName.def @@ -0,0 +1,16 @@ +"gO3" = { +constituentType = 1 ; +localTablesVersion = 1 ; +} +"CH4_c" = { +constituentType = 2 ; +localTablesVersion = 1 ; +} +"CO2_c" = { +constituentType = 3 ; +localTablesVersion = 1 ; +} +"N2O_c" = { +constituentType = 6 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/parameters.def b/definitions/grib2/parameters.def index 2c6b703c8..216eac918 100644 --- a/definitions/grib2/parameters.def +++ b/definitions/grib2/parameters.def @@ -27,6 +27,22 @@ concept cfVarNameLegacyECMF(defaultShortName,"cfVarName.legacy.def",conceptsMast concept cfVarNameECMF (cfVarNameLegacyECMF,"cfVarName.def",conceptsMasterDir,conceptsLocalDirECMF): no_copy,dump; concept cfVarName (cfVarNameECMF,"cfVarName.def",conceptsDir2,conceptsDir1): no_copy,dump; +constant defaultChemId="unknown" :hidden; +constant defaultChemName="unknown" :hidden; +constant defaultChemShortName="unknown" :hidden; +constant defaultChemFormula="unknown" :hidden; + +concept_nofail chemId (defaultChemId,"chemId.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept_nofail chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept_nofail chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept_nofail chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; + +# Do not add 'chem' to the mars namespace indiscriminately! +# Check whether it is a chemical or aerosol +if (is_aerosol || is_chemical) { + alias mars.chem = chemId; + #alias ls.chemShortName = chemShortName; +} # modelName: Contribution from Daniel Lee @ DWD concept modelName (defaultName,"modelName.def",conceptsDir2,conceptsDir1): no_copy,dump,read_only; From d0459f6161dac17eb3ec11977ee9f38ae24149ae Mon Sep 17 00:00:00 2001 From: Sebastien Villaume Date: Sun, 20 Nov 2022 22:08:27 +0000 Subject: [PATCH 02/14] adding csv of chem species and aerosols --- definitions/aerosols.csv | 18 +++++ definitions/chemSpecies.csv | 130 ++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 definitions/aerosols.csv create mode 100644 definitions/chemSpecies.csv diff --git a/definitions/aerosols.csv b/definitions/aerosols.csv new file mode 100644 index 000000000..b4c1652c4 --- /dev/null +++ b/definitions/aerosols.csv @@ -0,0 +1,18 @@ +chemId chemName name aerosolType constituentType localTablesVersion sourceSinkChemicalPhysicalProcess typeOfSizeInterval scaleFactorOfFirstSize scaledValueOfFirstSize scaleFactorOfSecondSize scaledValueOfSecondSize +901 aer_seasalt_003_05 Sea salt aerosol (0.03 - 0.5 um) 62008 7 8 3 7 5 +902 aer_seasalt_05_5 Sea salt aerosol (0.5 - 5 um) 62008 7 7 5 6 5 +903 aer_seasalt_5_20 Sea salt aerosol (5 - 20 um) 62008 7 6 5 5 2 +904 aer_dust_003_055 Dust aerosol (0.03 - 0.55 um) 62001 7 8 3 8 55 +905 aer_dust_055_09 Dust aerosol (0.55 - 0.9 um) 62001 7 8 55 7 9 +906 aer_dust_09_20 Dust aerosol (0.9 - 20 um) 62001 7 7 9 5 2 +907 aer_hicorgmat Hydrophilic organic matter aerosol 62015 +908 aer_hocorgmat Hydrophobic organic matter aerosol 62016 +909 aer_hicblackcarb Hydrophilic black carbon aerosol 62013 +910 aer_hocblackcarb Hydrophobic black carbon aerosol 62014 +911 aer_sulph Sulphate aerosol 62006 +912 aer_nitrfine Nitrate fine mode aerosol (<= 2.5 um) 62004 5 7 25 missing() missing() +913 aer_nitrcoars Nitrate coarse mode aerosol (>2.5 um) 62004 3 7 25 missing() missing() +914 aer_nh4 Ammonium aerosol 62003 +915 aer_biosecorg Biogenic secondary organic aerosol 62032 +916 aer_antsecorg Anthropogenic secondary organic aerosol 62033 +51 aer_NO3 Nitrate 62004 diff --git a/definitions/chemSpecies.csv b/definitions/chemSpecies.csv new file mode 100644 index 000000000..92a06ef66 --- /dev/null +++ b/definitions/chemSpecies.csv @@ -0,0 +1,130 @@ +chemId chemName name aerosolType constituentType localTablesVersion sourceSinkChemicalPhysicalProcess +203 O3 Ozone 1 +231 gO3 GEMS ozone 1 1 +4 CH4_c Methane (chemistry) 2 1 +59 H2O_c Water vapour (chemistry) 2 +57 CO2_c Carbon dioxide (chemistry) 3 1 +25 CO2 Carbon dioxide 3 +2 CO Carbon monoxide 4 +17 NO2 Nitrogen dioxide 5 +58 N2O_c Nitrous oxide (chemistry) 6 1 +31 N2O Nitrous oxide 6 +5 HCHO Formaldehyde 7 +8 SO2_v Volcanic sulfur dioxide 8 7 +233 SO2 Sulphur dioxide 8 +19 NH3 Ammonia 9 +21 NH4 Ammonium 10 +27 NO Nitrogen monoxide 11 +203 O Oxygen atom 12 +32 NO3 Nitrate radical 13 +28 HO2_r Hydroperoxy radical 14 +33 N2O5 Dinitrogen pentoxide 15 +86 HONO Nitrous acid 16 +6 HNO3 Nitric acid 17 +34 HO2NO2 Pernitric acid 18 +3 H2O2 Hydrogen peroxide 19 +199 H2 Dihydrogen 20 +173 N Nitrogen atom 21 +20 SO4 Sulfate 22 +11 Ra Radon 23 +175 Cl Chlorine atom 26 +174 ClO Chlorine monoxide 27 +69 Cl2O2 Dichlorine dioxide 28 +65 HOCl Hypochlorous acid 29 +64 ClONO2 Chlorine nitrate 30 +63 OClO Chlorine dioxide 31 +191 Br Bromine atom 32 +176 BrO Bromine monoxide 33 +193 BrCl Bromine monochloride 34 +68 HBr Hydrogen bromide 35 +70 HOBr Hypobromous acid 36 +194 BrONO2 Bromine nitrate 37 +60 O2 Dioxygen 38 +67 ClNO2 Nitryl chloride 39 +85 H2SO4 Sulfuric acid 40 +166 H2S Hydrogensulfide 41 +189 SO3 Sulfur trioxide 42 +192 Br2 Bromine 43 +202 HF Hydrogen fluoride 44 +232 SF6 Sulphur hexafluoride 45 +66 Cl2 Chlorine 46 +30 OH_r Hydroxyl radical 10000 +29 CH3O2_r Methylperoxy radical 10001 +42 CH3OH Methanol 10004 +7 CH3OOH Methyl peroxide 10005 +43 HCOOH Formic acid 10005 +226 HCN Hydrogen cyanide 10006 +224 CH3CN Acetonitrile 10007 +45 C2H6 Ethane 10008 +10 C2H4 Ethene 10009 +46 C2H5OH Ethanol 10011 +96 CH3COOH Acetic acid 10012 +13 PAN Peroxyacetyl nitrate 10013 +47 C3H8 Propane 10014 +48 C3H6 Propene 10015 +16 C5H8 Isoprene 10017 +22 MSA Methane sulfonic acid 10024 +23 CH3COCHO Methyl glyoxal 10025 +35 C2O3_r Peroxy acetyl radical 10026 +44 MCOOH Methacrylic acid 10027 +50 ISPD Methacrolein MVK (needs to go local) 10028 +110 MACR Methacrolein 10028 +52 CH3COCH3 Acetone 10029 +93 DIEN Butadiene 10031 +98 CH3CHO Acetaldehyde 10032 +101 GLYALD Glycolaldehyde 10033 +102 CRESOL Cresol 10034 +104 CH3COOOH Peracetic acid 10035 +108 EO Hoch2ch2o 10036 +106 EO2 Hoch2ch2o2 10037 +107 GLYOXAL Glyoxal 10038 +112 C3H7O2 Isopropyldioxidanyl 10039 +114 C3H7OOH Isopropyl hydroperoxide 10040 +118 HYAC Hydroxyacetone 10041 +119 PAA Peroxyacetic acid 10042 +138 MVK Methylvinylketone 10043 +139 PhO Phenoxy radical 10044 +190 OCS_c Carbonyl sulfide 10046 +195 CH2Br2 Dibromomethane 10047 +196 CH3O Methoxy radical 10048 +197 CHBr3 Tribromomethane 10049 +201 HCO Formyl radical 10050 +94 C2H5OOH Ethyl hydroperoxide 10052 +115 PO2 C3h6oho2 10053 +116 POOH C3h6ohooh 10054 +18 DMS Dimethyl sulfide 10500 +163 DMSO Dimethyl sulfoxyde 10501 +200 HCl Hydrogen chloride 20001 +71 CFC11 Trichlorofluoromethane 20002 +72 CFC12 Dichlorodifluoromethane 20003 +73 CFC113 Trichlorotrifluoroethane 20004 +74 CFC114 Dichlorotetrafluoroethane 20006 +75 CFC115 Chloropentafluoroethane 20007 +78 CH3Cl Methyl chloride 20015 +80 CH3Br Methyl bromide 20018 +26 Pb Lead 30296 +61 O2_1s Singlet sigma dioxygen 40000 +62 O2_1d Singlet Delta dioxygen 40001 +204 O_1d Excited oxygen atom 40002 +205 O_3p Ground state oxygen atom 40003 +129 NOx Nitrogen oxides 60003 +168 NOy All nitrogen oxides 60004 +126 BIGALK Lumped alkanes 60009 +49 C10H16 Terpenes 60012 +12 ALD2 Aldehydes 60018 +14 ROOH Peroxides 60019 +15 NO3_org Organic nitrates 60020 +36 ROR Organic ethers 60021 +40 NH2 Amine 60022 +105 KET Ketones 60023 +109 DCB Unsaturated dicarbonyls 60024 +111 UDD Unsaturated hydroxy dicarbonyl 60025 +113 HKET Hydroxy ketone 60026 +155 Ox Oxides 60027 +161 ISOPOOH Hoch2c(ooh)(ch3)ch=ch2 60032 +229 ISOPBO2 Isoprene peroxy type B 60056 +230 ISOPDO2 Isoprene peroxy type D mass mixing ratio 60057 +227 HPALD1 Hydroperoxy aldehydes type 1 60058 +228 HPALD2 Hydroperoxy aldehydes type 2 60058 +225 CH3O2NO2 Methyl peroxy nitrate 210182 +124 BIGENE Lumped alkenes 600100 From a4720d3a0aea371f13eb3924dfeaad72ed11eeaa Mon Sep 17 00:00:00 2001 From: Sebastien Villaume Date: Mon, 21 Nov 2022 14:48:07 +0000 Subject: [PATCH 03/14] changing stuff for chemId --- definitions/grib2/name.def | 20 -------------------- definitions/grib2/paramId.def | 20 -------------------- definitions/grib2/parameters.def | 9 +++------ definitions/grib2/section.1.def | 3 ++- definitions/grib2/shortName.def | 20 -------------------- definitions/grib2/units.def | 18 ------------------ 6 files changed, 5 insertions(+), 85 deletions(-) diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 25c4301cb..ada84f689 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -4497,7 +4497,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 6 ; } #Emission mass flux from anthropogenic sources @@ -4505,7 +4504,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 4 ; } #Emission mass flux from elevated anthropogenic sources @@ -4513,7 +4511,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 12 ; } #Emission mass flux from surface anthropogenic sources @@ -4521,7 +4518,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 13 ; } #Emission from aviation @@ -4529,7 +4525,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 1 ; } #Emission mass flux from agriculture livestock @@ -4537,7 +4532,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 14 ; } #Emission mass flux from agriculture soils @@ -4545,7 +4539,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 15 ; } #Emission mass flux from agricultural waste burning @@ -4553,7 +4546,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 16 ; } #Emission mass flux from residential, commercial and other combustion @@ -4561,7 +4553,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 18 ; } #Emission mass flux from power generation @@ -4569,7 +4560,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 19 ; } #Emission mass flux from fugitives @@ -4577,7 +4567,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 21 ; } #Emission mass flux from industrial process @@ -4585,7 +4574,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 22 ; } #Emission mass flux from solvents @@ -4593,7 +4581,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 23 ; } #Emission mass flux from ships @@ -4601,7 +4588,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 24 ; } #Emission mass flux from wastes (solid and water) @@ -4609,7 +4595,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 25 ; } #Emission mass flux from off-road transportation @@ -4617,7 +4602,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 27 ; } #Emission mass flux from road transportation @@ -4625,7 +4609,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 26 ; } #Emission mass flux from super power stations @@ -4633,7 +4616,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 20 ; } #Emission mass flux from volcanoes @@ -4641,7 +4623,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 7 ; } #Emission mass flux from wetlands @@ -4649,7 +4630,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } #Aerosol number density diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index 0bb53e79d..81421657f 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -4497,7 +4497,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 6 ; } #Emission mass flux from anthropogenic sources @@ -4505,7 +4504,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 4 ; } #Emission mass flux from elevated anthropogenic sources @@ -4513,7 +4511,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 12 ; } #Emission mass flux from surface anthropogenic sources @@ -4521,7 +4518,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 13 ; } #Emission from aviation @@ -4529,7 +4525,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 1 ; } #Emission mass flux from agriculture livestock @@ -4537,7 +4532,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 14 ; } #Emission mass flux from agriculture soils @@ -4545,7 +4539,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 15 ; } #Emission mass flux from agricultural waste burning @@ -4553,7 +4546,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 16 ; } #Emission mass flux from residential, commercial and other combustion @@ -4561,7 +4553,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 18 ; } #Emission mass flux from power generation @@ -4569,7 +4560,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 19 ; } #Emission mass flux from fugitives @@ -4577,7 +4567,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 21 ; } #Emission mass flux from industrial process @@ -4585,7 +4574,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 22 ; } #Emission mass flux from solvents @@ -4593,7 +4581,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 23 ; } #Emission mass flux from ships @@ -4601,7 +4588,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 24 ; } #Emission mass flux from wastes (solid and water) @@ -4609,7 +4595,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 25 ; } #Emission mass flux from off-road transportation @@ -4617,7 +4602,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 27 ; } #Emission mass flux from road transportation @@ -4625,7 +4609,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 26 ; } #Emission mass flux from super power stations @@ -4633,7 +4616,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 20 ; } #Emission mass flux from volcanoes @@ -4641,7 +4623,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 7 ; } #Emission mass flux from wetlands @@ -4649,7 +4630,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } #Aerosol number density diff --git a/definitions/grib2/parameters.def b/definitions/grib2/parameters.def index 216eac918..8cd3ed33c 100644 --- a/definitions/grib2/parameters.def +++ b/definitions/grib2/parameters.def @@ -37,12 +37,9 @@ concept_nofail chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir concept_nofail chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; concept_nofail chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; -# Do not add 'chem' to the mars namespace indiscriminately! -# Check whether it is a chemical or aerosol -if (is_aerosol || is_chemical) { - alias mars.chem = chemId; - #alias ls.chemShortName = chemShortName; -} +alias mars.chem = chemId; +alias ls.chemShortName = chemShortName; + # modelName: Contribution from Daniel Lee @ DWD concept modelName (defaultName,"modelName.def",conceptsDir2,conceptsDir1): no_copy,dump,read_only; diff --git a/definitions/grib2/section.1.def b/definitions/grib2/section.1.def index 719a9399c..cf137f840 100644 --- a/definitions/grib2/section.1.def +++ b/definitions/grib2/section.1.def @@ -97,6 +97,7 @@ concept stepType { "mode" = {selectStepTemplateInterval=1; stepTypeInternal="mode";} } +if ( tablesVersion < 30 ) { # 0=atmospheric chemical constituents # 1=atmospheric chemical constituents based on a distribution function # 2=atmospheric chemical constituents with source or sink @@ -108,7 +109,7 @@ meta is_chemical_srcsink g2_chemical(productDefinitionTemplateNumber, stepType, # 1=optical properties of aerosol meta is_aerosol g2_aerosol(productDefinitionTemplateNumber, stepType, 0); meta is_aerosol_optical g2_aerosol(productDefinitionTemplateNumber, stepType, 1); - +} transient setCalendarId = 0 ; transient deleteCalendarId = 0 ; alias calendarIdPresent = zero; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index a068b2b6b..d71a78ee5 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -4497,7 +4497,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 6 ; } #Emission mass flux from anthropogenic sources @@ -4505,7 +4504,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 4 ; } #Emission mass flux from elevated anthropogenic sources @@ -4513,7 +4511,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 12 ; } #Emission mass flux from surface anthropogenic sources @@ -4521,7 +4518,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 13 ; } #Emission from aviation @@ -4529,7 +4525,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 1 ; } #Emission mass flux from agriculture livestock @@ -4537,7 +4532,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 14 ; } #Emission mass flux from agriculture soils @@ -4545,7 +4539,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 15 ; } #Emission mass flux from agricultural waste burning @@ -4553,7 +4546,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 16 ; } #Emission mass flux from residential, commercial and other combustion @@ -4561,7 +4553,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 18 ; } #Emission mass flux from power generation @@ -4569,7 +4560,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 19 ; } #Emission mass flux from fugitives @@ -4577,7 +4567,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 21 ; } #Emission mass flux from industrial process @@ -4585,7 +4574,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 22 ; } #Emission mass flux from solvents @@ -4593,7 +4581,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 23 ; } #Emission mass flux from ships @@ -4601,7 +4588,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 24 ; } #Emission mass flux from wastes (solid and water) @@ -4609,7 +4595,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 25 ; } #Emission mass flux from off-road transportation @@ -4617,7 +4602,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 27 ; } #Emission mass flux from road transportation @@ -4625,7 +4609,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 26 ; } #Emission mass flux from super power stations @@ -4633,7 +4616,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 20 ; } #Emission mass flux from volcanoes @@ -4641,7 +4623,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 7 ; } #Emission mass flux from wetlands @@ -4649,7 +4630,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } #Aerosol number density diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 2996ef85f..ff555e508 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -4497,7 +4497,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 6 ; } #Emission mass flux from anthropogenic sources @@ -4505,7 +4504,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 4 ; } #Emission mass flux from elevated anthropogenic sources @@ -4513,7 +4511,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 12 ; } #Emission mass flux from surface anthropogenic sources @@ -4521,7 +4518,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 13 ; } #Emission from aviation @@ -4529,7 +4525,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 1 ; } #Emission mass flux from agriculture livestock @@ -4537,7 +4532,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 14 ; } #Emission mass flux from agriculture soils @@ -4545,7 +4539,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 15 ; } #Emission mass flux from agricultural waste burning @@ -4553,7 +4546,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 16 ; } #Emission mass flux from residential, commercial and other combustion @@ -4561,7 +4553,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 18 ; } #Emission mass flux from power generation @@ -4569,7 +4560,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 19 ; } #Emission mass flux from fugitives @@ -4577,7 +4567,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 21 ; } #Emission mass flux from industrial process @@ -4585,7 +4574,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 22 ; } #Emission mass flux from solvents @@ -4593,7 +4581,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 23 ; } #Emission mass flux from ships @@ -4601,7 +4588,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 24 ; } #Emission mass flux from wastes (solid and water) @@ -4609,7 +4595,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 25 ; } #Emission mass flux from off-road transportation @@ -4617,7 +4602,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 27 ; } #Emission mass flux from road transportation @@ -4625,7 +4609,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 26 ; } #Emission mass flux from super power stations @@ -4633,7 +4616,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 20 ; } #Emission mass flux from volcanoes From 97a5a335c146879b1680f1a6a938c652f67de503 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Thu, 24 Nov 2022 20:50:51 +0000 Subject: [PATCH 04/14] Definitions: Fix inconsistency between name.def and units.def --- definitions/grib2/units.def | 2 -- 1 file changed, 2 deletions(-) diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index ff555e508..dd6a7288c 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -4623,7 +4623,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 7 ; } #Emission mass flux from wetlands @@ -4631,7 +4630,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } #Aerosol number density From cd648c9f32ae6c131fdc5f06f120884c780aa486 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Thu, 24 Nov 2022 21:04:18 +0000 Subject: [PATCH 05/14] Definitions: Fix inconsistency between name.def and cfVarName.def --- definitions/grib2/cfVarName.def | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 84f46a219..43840a943 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -4497,7 +4497,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 6 ; } #Emission mass flux from anthropogenic sources @@ -4505,7 +4504,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 4 ; } #Emission mass flux from elevated anthropogenic sources @@ -4513,7 +4511,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 12 ; } #Emission mass flux from surface anthropogenic sources @@ -4521,7 +4518,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 13 ; } #Emission from aviation @@ -4529,7 +4525,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 1 ; } #Emission mass flux from agriculture livestock @@ -4537,7 +4532,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 14 ; } #Emission mass flux from agriculture soils @@ -4545,7 +4539,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 15 ; } #Emission mass flux from agricultural waste burning @@ -4553,7 +4546,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 16 ; } #Emission mass flux from residential, commercial and other combustion @@ -4561,7 +4553,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 18 ; } #Emission mass flux from power generation @@ -4569,7 +4560,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 19 ; } #Emission mass flux from fugitives @@ -4577,7 +4567,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 21 ; } #Emission mass flux from industrial process @@ -4585,7 +4574,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 22 ; } #Emission mass flux from solvents @@ -4593,7 +4581,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 23 ; } #Emission mass flux from ships @@ -4601,7 +4588,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 24 ; } #Emission mass flux from wastes (solid and water) @@ -4609,7 +4595,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 25 ; } #Emission mass flux from off-road transportation @@ -4617,7 +4602,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 27 ; } #Emission mass flux from road transportation @@ -4625,7 +4609,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 26 ; } #Emission mass flux from super power stations @@ -4633,7 +4616,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 20 ; } #Emission mass flux from volcanoes @@ -4641,7 +4623,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 7 ; } #Emission mass flux from wetlands @@ -4649,7 +4630,6 @@ discipline = 0 ; parameterCategory = 20 ; parameterNumber = 77 ; - is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } #Aerosol number density From d55fb2cb112a7b076b0cc90d41bbd3facf2f1f67 Mon Sep 17 00:00:00 2001 From: Robert Osinski Date: Fri, 3 Feb 2023 08:21:38 +0000 Subject: [PATCH 06/14] corrections chemIds --- definitions/grib2/chemFormula.def | 21 +++++++--------- definitions/grib2/chemId.def | 23 ++++++++--------- definitions/grib2/chemName.def | 25 ++++++++----------- definitions/grib2/chemShortName.def | 21 +++++++--------- .../grib2/localConcepts/ecmf/chemFormula.def | 6 ++++- .../grib2/localConcepts/ecmf/chemId.def | 6 ++++- .../grib2/localConcepts/ecmf/chemName.def | 6 ++++- .../localConcepts/ecmf/chemShortName.def | 6 ++++- .../grib2/tables/local/ecmf/1/4.230.table | 1 + 9 files changed, 60 insertions(+), 55 deletions(-) diff --git a/definitions/grib2/chemFormula.def b/definitions/grib2/chemFormula.def index f0f10d23d..48e1214c7 100644 --- a/definitions/grib2/chemFormula.def +++ b/definitions/grib2/chemFormula.def @@ -1,8 +1,8 @@ "O3" = { -constituentType = 1 ; +constituentType = 0 ; } "H2O_c" = { -constituentType = 2 ; +constituentType = 1 ; } "CO2" = { constituentType = 3 ; @@ -144,7 +144,7 @@ constituentType = 10001 ; constituentType = 10004 ; } "CH3OOH" = { -constituentType = 10005 ; +constituentType = 10002 ; } "HCOOH" = { constituentType = 10005 ; @@ -191,9 +191,6 @@ constituentType = 10026 ; "MCOOH" = { constituentType = 10027 ; } -"ISPD" = { -constituentType = 10028 ; -} "MACR" = { constituentType = 10028 ; } @@ -357,22 +354,22 @@ constituentType = 60027 ; constituentType = 60032 ; } "ISOPBO2" = { -constituentType = 60056 ; +constituentType = 10056 ; } "ISOPDO2" = { -constituentType = 60057 ; +constituentType = 10057 ; } "HPALD1" = { -constituentType = 60058 ; +constituentType = 10058 ; } "HPALD2" = { -constituentType = 60058 ; +constituentType = 10059 ; } "CH3O2NO2" = { -constituentType = 210182 ; +constituentType = 10055 ; } "BIGENE" = { -constituentType = 600100 ; +constituentType = 60010 ; } "aer_seasalt_003_05" = { constituentType = 62008 ; diff --git a/definitions/grib2/chemId.def b/definitions/grib2/chemId.def index 454d8bb16..8018ee2fc 100644 --- a/definitions/grib2/chemId.def +++ b/definitions/grib2/chemId.def @@ -1,8 +1,8 @@ -"203" = { -constituentType = 1 ; +"236" = { +constituentType = 0 ; } "59" = { -constituentType = 2 ; +constituentType = 1 ; } "25" = { constituentType = 3 ; @@ -144,7 +144,7 @@ constituentType = 10001 ; constituentType = 10004 ; } "7" = { -constituentType = 10005 ; +constituentType = 10002 ; } "43" = { constituentType = 10005 ; @@ -191,9 +191,6 @@ constituentType = 10026 ; "44" = { constituentType = 10027 ; } -"50" = { -constituentType = 10028 ; -} "110" = { constituentType = 10028 ; } @@ -357,22 +354,22 @@ constituentType = 60027 ; constituentType = 60032 ; } "229" = { -constituentType = 60056 ; +constituentType = 10056 ; } "230" = { -constituentType = 60057 ; +constituentType = 10057 ; } "227" = { -constituentType = 60058 ; +constituentType = 10058 ; } "228" = { -constituentType = 60058 ; +constituentType = 10059 ; } "225" = { -constituentType = 210182 ; +constituentType = 10055 ; } "124" = { -constituentType = 600100 ; +constituentType = 60010 ; } "901" = { constituentType = 62008 ; diff --git a/definitions/grib2/chemName.def b/definitions/grib2/chemName.def index f1081a12e..7a38f2a55 100644 --- a/definitions/grib2/chemName.def +++ b/definitions/grib2/chemName.def @@ -1,8 +1,8 @@ "Ozone" = { -constituentType = 1 ; +constituentType = 0 ; } "Water vapour (chemistry)" = { -constituentType = 2 ; +constituentType = 1 ; } "Carbon dioxide" = { constituentType = 3 ; @@ -128,7 +128,7 @@ constituentType = 43 ; "Hydrogen fluoride" = { constituentType = 44 ; } -" Sulphur hexafluoride " = { +"Sulphur hexafluoride " = { constituentType = 45 ; } "Chlorine" = { @@ -144,7 +144,7 @@ constituentType = 10001 ; constituentType = 10004 ; } "Methyl peroxide" = { -constituentType = 10005 ; +constituentType = 10002 ; } "Formic acid" = { constituentType = 10005 ; @@ -191,9 +191,6 @@ constituentType = 10026 ; "Methacrylic acid" = { constituentType = 10027 ; } -"Methacrolein MVK (needs to go local)" = { -constituentType = 10028 ; -} "Methacrolein" = { constituentType = 10028 ; } @@ -357,22 +354,22 @@ constituentType = 60027 ; constituentType = 60032 ; } "Isoprene peroxy type B" = { -constituentType = 60056 ; +constituentType = 10056 ; } -"Isoprene peroxy type D mass mixing ratio" = { -constituentType = 60057 ; +"Isoprene peroxy type D" = { +constituentType = 10057 ; } "Hydroperoxy aldehydes type 1" = { -constituentType = 60058 ; +constituentType = 10058 ; } "Hydroperoxy aldehydes type 2" = { -constituentType = 60058 ; +constituentType = 10059 ; } "Methyl peroxy nitrate" = { -constituentType = 210182 ; +constituentType = 10055 ; } "Lumped alkenes" = { -constituentType = 600100 ; +constituentType = 60010 ; } "Sea salt aerosol (0.03 - 0.5 um)" = { constituentType = 62008 ; diff --git a/definitions/grib2/chemShortName.def b/definitions/grib2/chemShortName.def index f0f10d23d..48e1214c7 100644 --- a/definitions/grib2/chemShortName.def +++ b/definitions/grib2/chemShortName.def @@ -1,8 +1,8 @@ "O3" = { -constituentType = 1 ; +constituentType = 0 ; } "H2O_c" = { -constituentType = 2 ; +constituentType = 1 ; } "CO2" = { constituentType = 3 ; @@ -144,7 +144,7 @@ constituentType = 10001 ; constituentType = 10004 ; } "CH3OOH" = { -constituentType = 10005 ; +constituentType = 10002 ; } "HCOOH" = { constituentType = 10005 ; @@ -191,9 +191,6 @@ constituentType = 10026 ; "MCOOH" = { constituentType = 10027 ; } -"ISPD" = { -constituentType = 10028 ; -} "MACR" = { constituentType = 10028 ; } @@ -357,22 +354,22 @@ constituentType = 60027 ; constituentType = 60032 ; } "ISOPBO2" = { -constituentType = 60056 ; +constituentType = 10056 ; } "ISOPDO2" = { -constituentType = 60057 ; +constituentType = 10057 ; } "HPALD1" = { -constituentType = 60058 ; +constituentType = 10058 ; } "HPALD2" = { -constituentType = 60058 ; +constituentType = 10059 ; } "CH3O2NO2" = { -constituentType = 210182 ; +constituentType = 10055 ; } "BIGENE" = { -constituentType = 600100 ; +constituentType = 60010 ; } "aer_seasalt_003_05" = { constituentType = 62008 ; diff --git a/definitions/grib2/localConcepts/ecmf/chemFormula.def b/definitions/grib2/localConcepts/ecmf/chemFormula.def index ca3842c0f..42197760a 100644 --- a/definitions/grib2/localConcepts/ecmf/chemFormula.def +++ b/definitions/grib2/localConcepts/ecmf/chemFormula.def @@ -1,5 +1,5 @@ "gO3" = { -constituentType = 1 ; +constituentType = 0 ; localTablesVersion = 1 ; } "CH4_c" = { @@ -14,3 +14,7 @@ localTablesVersion = 1 ; constituentType = 6 ; localTablesVersion = 1 ; } +"ISPD" = { +constituentType = 65523 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemId.def b/definitions/grib2/localConcepts/ecmf/chemId.def index eecafc8bd..bb0282226 100644 --- a/definitions/grib2/localConcepts/ecmf/chemId.def +++ b/definitions/grib2/localConcepts/ecmf/chemId.def @@ -1,5 +1,5 @@ "231" = { -constituentType = 1 ; +constituentType = 0 ; localTablesVersion = 1 ; } "4" = { @@ -14,3 +14,7 @@ localTablesVersion = 1 ; constituentType = 6 ; localTablesVersion = 1 ; } +"50" = { +constituentType = 65523 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemName.def b/definitions/grib2/localConcepts/ecmf/chemName.def index 8e4dfd1d9..5b371a449 100644 --- a/definitions/grib2/localConcepts/ecmf/chemName.def +++ b/definitions/grib2/localConcepts/ecmf/chemName.def @@ -1,5 +1,5 @@ "GEMS ozone" = { -constituentType = 1 ; +constituentType = 0 ; localTablesVersion = 1 ; } "Methane (chemistry)" = { @@ -14,3 +14,7 @@ localTablesVersion = 1 ; constituentType = 6 ; localTablesVersion = 1 ; } +"Methacrolein MVK" = { +constituentType = 65523 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/chemShortName.def b/definitions/grib2/localConcepts/ecmf/chemShortName.def index ca3842c0f..42197760a 100644 --- a/definitions/grib2/localConcepts/ecmf/chemShortName.def +++ b/definitions/grib2/localConcepts/ecmf/chemShortName.def @@ -1,5 +1,5 @@ "gO3" = { -constituentType = 1 ; +constituentType = 0 ; localTablesVersion = 1 ; } "CH4_c" = { @@ -14,3 +14,7 @@ localTablesVersion = 1 ; constituentType = 6 ; localTablesVersion = 1 ; } +"ISPD" = { +constituentType = 65523 ; +localTablesVersion = 1 ; +} diff --git a/definitions/grib2/tables/local/ecmf/1/4.230.table b/definitions/grib2/tables/local/ecmf/1/4.230.table index b256f0afa..aa72cb8b6 100644 --- a/definitions/grib2/tables/local/ecmf/1/4.230.table +++ b/definitions/grib2/tables/local/ecmf/1/4.230.table @@ -1,4 +1,5 @@ # Code table 4.230 - Atmospheric chemical constituent type for ECMWF +65523 65523 Methacrolein MVK 65524 65524 Stratospheric Ozone 65525 65525 Nitrate aerosol 65526 65526 Condensable gas type 1 From 837d7667f2074aa04b4b3b6bd8bfdc6e90ceb1ac Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Tue, 28 Mar 2023 16:09:11 +0000 Subject: [PATCH 07/14] Make chemId an integer (like paramId) --- definitions/grib2/parameters.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definitions/grib2/parameters.def b/definitions/grib2/parameters.def index 229e40533..65f94f368 100644 --- a/definitions/grib2/parameters.def +++ b/definitions/grib2/parameters.def @@ -32,7 +32,7 @@ constant defaultChemName="unknown" :hidden; constant defaultChemShortName="unknown" :hidden; constant defaultChemFormula="unknown" :hidden; -concept_nofail chemId (defaultChemId,"chemId.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept_nofail chemId (defaultChemId,"chemId.def",conceptsDir2,conceptsDir1): no_copy,long_type,dump; concept_nofail chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir1): no_copy,dump; concept_nofail chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; concept_nofail chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; From a8620ee1d4918f2076a2280457dce3b61c6c92d0 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 09:38:23 +0000 Subject: [PATCH 08/14] Compiler warning: macro redefined --- src/grib_context.cc | 1 - tools/grib_tools.cc | 1 - 2 files changed, 2 deletions(-) diff --git a/src/grib_context.cc b/src/grib_context.cc index c2c49aa92..be280a384 100644 --- a/src/grib_context.cc +++ b/src/grib_context.cc @@ -19,7 +19,6 @@ #endif #ifdef ENABLE_FLOATING_POINT_EXCEPTIONS - #define _GNU_SOURCE #include int feenableexcept(int excepts); #endif diff --git a/tools/grib_tools.cc b/tools/grib_tools.cc index af8d71f0a..887adf539 100644 --- a/tools/grib_tools.cc +++ b/tools/grib_tools.cc @@ -21,7 +21,6 @@ #endif #ifdef ENABLE_FLOATING_POINT_EXCEPTIONS -#define _GNU_SOURCE #include int feenableexcept(int excepts); #endif From d6bccf2e285b235ef8c93568be30113926cac501 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 12:28:58 +0000 Subject: [PATCH 09/14] chemID: use normal concept --- definitions/grib2/parameters.def | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/definitions/grib2/parameters.def b/definitions/grib2/parameters.def index 65f94f368..ad5a169e8 100644 --- a/definitions/grib2/parameters.def +++ b/definitions/grib2/parameters.def @@ -32,10 +32,10 @@ constant defaultChemName="unknown" :hidden; constant defaultChemShortName="unknown" :hidden; constant defaultChemFormula="unknown" :hidden; -concept_nofail chemId (defaultChemId,"chemId.def",conceptsDir2,conceptsDir1): no_copy,long_type,dump; -concept_nofail chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir1): no_copy,dump; -concept_nofail chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; -concept_nofail chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept chemId (defaultChemId,"chemId.def",conceptsDir2,conceptsDir1): no_copy,long_type,dump; +concept chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; +concept chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; alias mars.chem = chemId; alias ls.chemShortName = chemShortName; From 18dff8fe95b801cdb42552c9ef3dc3da3b118eb1 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 12:30:08 +0000 Subject: [PATCH 10/14] chemID: Do not add to ls and mars namespace unless it is a chemical or aerosol --- definitions/grib2/parameters.def | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/definitions/grib2/parameters.def b/definitions/grib2/parameters.def index ad5a169e8..f81a162ec 100644 --- a/definitions/grib2/parameters.def +++ b/definitions/grib2/parameters.def @@ -37,8 +37,10 @@ concept chemName (defaultChemName,"chemName.def",conceptsDir2,conceptsDir1): no_ concept chemShortName (defaultChemShortName,"chemShortName.def",conceptsDir2,conceptsDir1): no_copy,dump; concept chemFormula (defaultChemFormula,"chemFormula.def",conceptsDir2,conceptsDir1): no_copy,dump; -alias mars.chem = chemId; -alias ls.chemShortName = chemShortName; +if(defined(constituentType)) { + alias mars.chem = chemId; + alias ls.chemShortName = chemShortName; +} # modelName: Contribution from Daniel Lee @ DWD concept modelName (defaultName,"modelName.def",conceptsDir2,conceptsDir1): no_copy,dump,read_only; From 5de45aabab6bfec80330e86ebe9284945fc8146d Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 12:41:26 +0000 Subject: [PATCH 11/14] chemID: Fix broken test; tablesVersion has to be < 30 --- tests/grib2_chemicals_aerosols.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/grib2_chemicals_aerosols.sh b/tests/grib2_chemicals_aerosols.sh index f70689e88..f2bdc35c8 100755 --- a/tests/grib2_chemicals_aerosols.sh +++ b/tests/grib2_chemicals_aerosols.sh @@ -93,7 +93,7 @@ grib_check_key_equals $temp aerosolType,typeOfSizeInterval '0 0' # ============================= # Plain chemicals tempSample=temp.sample.$label -${tools_dir}/grib_set -s tablesVersion=$latest,productDefinitionTemplateNumber=1 $sample2 $tempSample +${tools_dir}/grib_set -s tablesVersion=29,productDefinitionTemplateNumber=1 $sample2 $tempSample grib_check_key_equals $tempSample perturbationNumber '0' ${tools_dir}/grib_set -s is_chemical=1 $tempSample $temp From 29d02c3b2ab449af4baa0f98aa5483e774123502 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 12:56:32 +0000 Subject: [PATCH 12/14] GitHub actions --- .github/workflows/ci.yml | 82 ++++++++++++++++++++------- .github/workflows/label-public-pr.yml | 10 ++++ .github/workflows/reusable-ci-hpc.yml | 23 ++++++++ .github/workflows/reusable-ci.yml | 25 ++++++++ 4 files changed, 120 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/label-public-pr.yml create mode 100644 .github/workflows/reusable-ci-hpc.yml create mode 100644 .github/workflows/reusable-ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0017a99ee..99f2ffff4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,33 +1,75 @@ name: ci -# Controls when the workflow will run on: - - # Trigger the workflow on all pushes, except on tag creation + # Trigger the workflow on push to master or develop, except tag creation push: branches: - - '**' + - 'master' + - 'develop' tags-ignore: - - '**' + - '**' - # Trigger the workflow on all pull requests + # Trigger the workflow on pull request pull_request: ~ - # Allow workflow to be dispatched on demand + # Trigger the workflow manually workflow_dispatch: ~ -jobs: + # Trigger after public PR approved for CI + pull_request_target: + types: [labeled] - # Calls a reusable CI workflow to build & test the current repository. - # It will pull in all needed dependencies and produce a code coverage report on success. - ci: - name: ci - uses: ecmwf-actions/reusable-workflows/.github/workflows/ci.yml@v1 +jobs: + # Run CI including downstream packages on self-hosted runners + downstream-ci: + name: downstream-ci + if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main with: - codecov_upload: true - build_package_inputs: | - self_coverage: true - dependencies: | - ecmwf/ecbuild - MathisRosenhauer/libaec@master - dependency_branch: develop + eccodes: ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }} + secrets: inherit + + # Run CI of private downstream packages on self-hosted runners + private-downstream-ci: + name: private-downstream-ci + needs: [downstream-ci] + if: (success() || failure()) && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Dispatch private downstream CI + uses: ecmwf-actions/dispatch-private-downstream-ci@v1 + with: + token: ${{ secrets.GH_REPO_READ_TOKEN }} + owner: ecmwf-actions + repository: private-downstream-ci + event_type: downstream-ci + payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}"}' + + # Build downstream packages on HPC + downstream-ci-hpc: + name: downstream-ci-hpc + if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci-hpc.yml@main + with: + eccodes: ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }} + secrets: inherit + + # Run CI of private downstream packages on HPC + private-downstream-ci-hpc: + name: private-downstream-ci-hpc + needs: [downstream-ci-hpc] + if: (success() || failure()) && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Dispatch private downstream CI + uses: ecmwf-actions/dispatch-private-downstream-ci@v1 + with: + token: ${{ secrets.GH_REPO_READ_TOKEN }} + owner: ecmwf-actions + repository: private-downstream-ci + event_type: downstream-ci-hpc + payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}"}' diff --git a/.github/workflows/label-public-pr.yml b/.github/workflows/label-public-pr.yml new file mode 100644 index 000000000..59b2bfa2b --- /dev/null +++ b/.github/workflows/label-public-pr.yml @@ -0,0 +1,10 @@ +# Manage labels of pull requests that originate from forks +name: label-public-pr + +on: + pull_request_target: + types: [opened, synchronize] + +jobs: + label: + uses: ecmwf-actions/reusable-workflows/.github/workflows/label-pr.yml@v2 diff --git a/.github/workflows/reusable-ci-hpc.yml b/.github/workflows/reusable-ci-hpc.yml new file mode 100644 index 000000000..3db33f2d2 --- /dev/null +++ b/.github/workflows/reusable-ci-hpc.yml @@ -0,0 +1,23 @@ +name: reusable-ci-hpc + +on: + workflow_call: + inputs: + eccodes: + required: false + type: string + +jobs: + ci-hpc: + name: ci-hpc + uses: ecmwf-actions/reusable-workflows/.github/workflows/ci-hpc.yml@v2 + with: + name-prefix: eccodes- + build-inputs: | + --package: ${{ inputs.eccodes || 'ecmwf/eccodes@develop' }} + --modules: | + ecbuild + ninja + aec + --parallel: 64 + secrets: inherit diff --git a/.github/workflows/reusable-ci.yml b/.github/workflows/reusable-ci.yml new file mode 100644 index 000000000..79f4cf53b --- /dev/null +++ b/.github/workflows/reusable-ci.yml @@ -0,0 +1,25 @@ +name: reusable-ci + +on: + workflow_call: + inputs: + eccodes: + required: false + type: string + +jobs: + ci: + name: eccodes-ci + uses: ecmwf-actions/reusable-workflows/.github/workflows/ci.yml@v2 + with: + repository: ${{ inputs.eccodes || 'ecmwf/eccodes@develop' }} + name_prefix: eccodes- + build_package_inputs: | + repository: ${{ inputs.eccodes || 'ecmwf/eccodes@develop' }} + self_coverage: true + dependencies: | + ecmwf/ecbuild + MathisRosenhauer/libaec@master + dependency_branch: develop + parallelism_factor: 8 + secrets: inherit From d1d947efbaade0a75e80bc2639833b62e7512173 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 29 Mar 2023 13:17:24 +0000 Subject: [PATCH 13/14] Formatting --- definitions/grib2/section.1.def | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/definitions/grib2/section.1.def b/definitions/grib2/section.1.def index cf137f840..af7be8b26 100644 --- a/definitions/grib2/section.1.def +++ b/definitions/grib2/section.1.def @@ -98,18 +98,19 @@ concept stepType { } if ( tablesVersion < 30 ) { -# 0=atmospheric chemical constituents -# 1=atmospheric chemical constituents based on a distribution function -# 2=atmospheric chemical constituents with source or sink -meta is_chemical g2_chemical(productDefinitionTemplateNumber, stepType, 0); -meta is_chemical_distfn g2_chemical(productDefinitionTemplateNumber, stepType, 1); -meta is_chemical_srcsink g2_chemical(productDefinitionTemplateNumber, stepType, 2); + # 0=atmospheric chemical constituents + # 1=atmospheric chemical constituents based on a distribution function + # 2=atmospheric chemical constituents with source or sink + meta is_chemical g2_chemical(productDefinitionTemplateNumber, stepType, 0); + meta is_chemical_distfn g2_chemical(productDefinitionTemplateNumber, stepType, 1); + meta is_chemical_srcsink g2_chemical(productDefinitionTemplateNumber, stepType, 2); -# 0=aerosol -# 1=optical properties of aerosol -meta is_aerosol g2_aerosol(productDefinitionTemplateNumber, stepType, 0); -meta is_aerosol_optical g2_aerosol(productDefinitionTemplateNumber, stepType, 1); + # 0=aerosol + # 1=optical properties of aerosol + meta is_aerosol g2_aerosol(productDefinitionTemplateNumber, stepType, 0); + meta is_aerosol_optical g2_aerosol(productDefinitionTemplateNumber, stepType, 1); } + transient setCalendarId = 0 ; transient deleteCalendarId = 0 ; alias calendarIdPresent = zero; From 11c7245b0d6ec570f3006975da8335c38b6ee3dc Mon Sep 17 00:00:00 2001 From: Sebastien Villaume Date: Tue, 16 May 2023 16:00:30 +0100 Subject: [PATCH 14/14] test push --- definitions/grib2/chemId.def | 1 + 1 file changed, 1 insertion(+) diff --git a/definitions/grib2/chemId.def b/definitions/grib2/chemId.def index 8018ee2fc..2d3a6a7eb 100644 --- a/definitions/grib2/chemId.def +++ b/definitions/grib2/chemId.def @@ -1,4 +1,5 @@ "236" = { + constituentType = 0 ; } "59" = {