GEOS-Chem benchmarking: Difference between revisions

From Geos-chem
Jump to navigation Jump to search
 
(108 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Overview ==
== Objectives ==


The GEOS-Chem benchmarking procedure is described below.
Benchmarking supports the maintenance of GEOS-Chem as a robust state-of-the-science facility with a nimble grass-roots approach and strong version control. Benchmarking has four main objectives:
#Document a consistent GEOS-Chem model configuration, and the expected characteristics of that configuration.
#Support version control through traceability, and by confirming the expected behavior of model developments submitted by the community. 
#Track the evolution of the model over the years.
#Promote scientific transparency of GEOS-Chem.  


#Any update to the GEOS-Chem source code or run directories will change the [[GEOS-Chem_version_numbering_system#Numeric_versioning_system|GEOS-Chem version number ('''X.Y.Z''')]].
== Types of benchmark simulations ==
#All '''Y''' versions require a dedicated [[#1-month benchmark|1-month benchmark]] with the [[GEOS-Chem_chemistry_mechanisms#Mechanisms_in_GEOS-Chem_v10-01_and_later_versions|standard full-chemistry mechanism]]. The benchmark results will be posted on the wiki and an email will be sent to the developer(s) and the [http://acmg.seas.harvard.edu/geos/geos_steering_cmte.html GEOS-Chem Steering Committee].
#The developer(s) will assess the benchmark results and review a benchmark assessment form on the wiki. If the developer has any concerns about the benchmark results they will contact the [[GCST|GEOS-Chem Support Team]], the relevant [http://acmg.seas.harvard.edu/geos/geos_working_groups.html GEOS-Chem Working Group Chairs], and/or [http://acmg.seas.harvard.edu/people/faculty/djj/index.html Model Scientist Daniel Jacob]. GEOS-Chem Steering Committee members are also encouraged to examine and comment on the benchmark results.
#If the update is for a [[GEOS-Chem_chemistry_mechanisms#Specialty_simulations|specialty simulation]] (e.g. CO2, CH4, Hg), then a further benchmark may be conducted by the appropriate Working Group.
#Once the developer is satisfied with the changes in the 1-month benchmark, GEOS-Chem Model Scientist Daniel Jacob will review the results and approve the new internal version.
#[[#1-year benchmark|1-year benchmarks]] for '''Y''' versions will be conducted only if justifiably requested by the developer or by GEOS-Chem Steering Committee members.
#Each new major version release (i.e. '''X''' version) will be subject to a 1-year benchmark to be inspected by the GEOS-Chem Steering Committee before approval.


== List of GEOS-Chem benchmarks ==
The [https://geoschem.github.io/support-team GEOS-Chem Support Team (GCST)] runs several types of benchmark simulations in order to assess the performance of GEOS-Chem.  These are described in the following sections.


Links to information about past 1-month and 1-year benchmark simulations can be found on the [[GEOS-Chem_Benchmarks|''GEOS-Chem Benchmarks'']] wiki page. For information about 1-year benchmark simulations for GEOS-Chem v8-02-04 and earlier, see [http://acmg.seas.harvard.edu/geos/geos_1yr_plots.html this website].
=== 1-hour benchmarks ===


== Benchmark output archive ==
1-hour benchmarks primarily serve as '''sanity checks'''. They are useful in determining if two successive updates to GEOS-Chem result in identical model output. These are triggered when:


Output files and evaluation plots for 1-month and 1-year benchmark simulations are archived at Harvard as summarized below. GEOS-Chem users may utilize these output for comparisons against their own simulations.
#A commit is pushed to any development branch[[#Notes|<sup>2</sup>]] in the [https://github.com/geoschem/GCClassic <tt>geoschem/GCClassic</tt> "superproject" repository]
#A commit is pushed to any development branch[[#Notes|<sup>2</sup>]] in the [https://github.com/geoschem/GCHP <tt>geoschem/GCHP</tt> "superproject" repository].


{| border=1 cellpadding=5 cellspacing=0
Evaluation tables are posted to [https://gc-dashboard.org <tt>gc-dashboard.org</tt>] upon successful completion of each 1-hour benchmark simulation.  The evaluation tables include information on OH metrics, emissions totals, global mass, and a summary table.
|-bgcolor="#CCCCCC"                       
!width="450px"|Directory                 
!width="550px"|Description


|-valign="top" 
Automatic 1-hour benchmarks are only performed for the full-chemistry simulation.
|<tt>http://ftp.as.harvard.edu/gcgrid/geos-chem/1mo_benchmarks/</tt>
|Contains the following data from the [[GEOS-Chem_benchmarking#1-month_benchmark|1-month benchmarks]] used to evaluate GEOS-Chem:
*Restart files
*Model output
*Log files
*Input files
*Evaluation plots


|-valign="top" 
=== 1-month benchmarks ===
|<tt>http://ftp.as.harvard.edu/gcgrid/geos-chem/1yr_benchmarks/</tt>                       
|Contains the following data from the [[GEOS-Chem_benchmarking#1-year_benchmark|1-year benchmarks]] used to evaluate GEOS-Chem:
*Restart files
*Model output
*Log files
*Input files
*Evaluation plots
|}


== 1-month benchmark ==
1-month benchmarks (aka '''alpha benchmarks''') are primarily used to quantify the changes in model output that occur when adding a new science feature into GEOS-Chem.  These are triggered when:


=== Overview ===
#An alpha tag[[#Notes|<sup>3</sup>]] is pushed to any development branch[[#Notes|<sup>1</sup>]] in the [https://github.com/geoschem/GCClassic <tt>geoschem/GCClassic</tt> superproject repository]
#An alpha tag[[#Notes|<sup>3</sup>]] is pushed to any development branch[[#Notes|<sup>1</sup>]] in the [https://github.com/geoschem/GCHP <tt>geoschem/GCHP</tt> "superproject" repository].


{| border=1 cellspacing=0 cellpadding=5
Evaluation plots and tables are posted to [https://gc-dashboard.org <tt>gc-dashboard.org</tt>] upon successful completion of each 1-hour benchmark simulation.  These include comparison plots of species concentrations, emissions, aerosol optical depth, J-Values, as well as the same tables produced for the [[#1-hour benchmarks|1-hour benchmarks]].


|-valign="top"
Automatic 1-month benchmarks are only performed for the full-chemistry simulation.
!bgcolor="#cccccc"|Dates of run:
|
*July 1, 2013 &ndash; August 1, 2013 (prior to [[GEOS-Chem v11-02#v11-02e|v11-02e]])
*July 1, 2016 &ndash; August 1, 2016 ([[GEOS-Chem v11-02#v11-02e|v11-02e]] and later versions)


|-valign="top"
=== 1-year benchmarks ===
!bgcolor="#cccccc"|[[GEOS-Chem_vertical_grids|Vertical Resolution]]:
|[[GEOS-FP]] with [[GEOS-Chem_vertical_grids#72-layer_vertical_grid|72 hybrid sigma-pressure levels]]


|-valign="top"
1-year benchmarks are performed before every '''feature version (<tt>X.Y.0</tt>)''' release.  They are used to compare the version currently in preparation against the the previous feature version.  Due to the size of the output and length of the simulation, the GCST runs 1-year benchmark simulations on the Harvard Cannon cluster.
!bgcolor="#cccccc"|[[GEOS-Chem_horizontal_grids|Horizontal Resolution]]:
|[[GEOS-Chem_horizontal_grids#GMAO_4_x_5_grid|4&deg; latitude x 5&deg; longitude]]


|-valign="top"
1-year benchmarks may be run for either the [[Simulations using KPP-built mechanisms|full-chemistry simulation] or for the [[TransportTracers simulation]].  Ad-hoc 1-year benchmarks for the [[Carbon simulation]] may also be performed in order to assess scientific updates made to that particular simulation.
!bgcolor="#cccccc"|[[Species_in_GEOS-Chem#Full-chemistry|Advected species]]:
|<u>Gas-phase species:</u> NO, O3, PAN, CO, ALK4, ISOP, HNO3, H2O2, ACET, MEK, ALD2, RCHO, MVK, MACR, PMN (isoprene and non-isoprene), PPN, R4N2, PRPE, C3H8, CH2O, C2H6, N2O5, HNO4, MP, MPN, ISOPND, ISOPNB, MOBA, PROPNN, HAC, GLYC, MVKN, MACRN, MAP, NO2, NO3, HNO2, BENZ, TOLU, XYLE, MTPA, LIMO, MTPO, TSOG0-3, ISOG1-3, ASOG1-3, EOH, MGLY, GLYX, ACTA, HPALD, DHDN, ETHLN, HCOOH, IEPOXA, IEPOXB, IEPOXD, ISN1, RIPA, RIPB, RIPD, IMAE, LVOC, ISN1OG, MONITS, MONITU, HONIT, HC187


<u>Aerosol species:</u> DMS, SO2, SO4, MSA, NH3, NH4, NIT, BCPO, OCPI, BCPI, OCPI, DST1-4, SALA, SALC, SO4s, NITs, TSOA0-3, ISOA1-3, ASOAN, ASOA1-3, SOAIE, SOAME, SOAGX, SOAMG, LVOCOA, ISN1OA, IONITA, MONITA, INDIOL
Full-chemistry 1-year benchmarks are performed before each feature version (<tt>X.Y.0</tt>) release. On the other hand, 1-year TransportTracers benchmarks are only performed for feature versions containing changes to transport and/or wet deposition.  1-year TransportTracers benchmarks are spun up for 10 years before the evaluation year in order to make sure the model atmosphere is in steady-state.


<u>Bromine species:</u> Br2, Br, BrO, HOBr, HBr, BrNO2 BrNO3, CHBr3, CH2Br2, CH3Br
Benchmark output consists of similar plots and tables as in the 1=month simulation but for January, April, July, and October 2019, plus annual means.


<u>Stratospherically-important species:</u> N2O, OCS, CH4, BrCl, HCl, CCl4, CH3Cl, CH3CCl3, CFCX, HCFCX, CFC11, CFC12, HCFC22, H1211, H2402, Cl, ClO, HOCl, ClNO3, ClNO2, ClOO, OClO, Cl2, Cl202, H2O
=== 10-year benchmarks ===


|-valign="top"
10-year benchmarks are performed before every '''major version (<tt>X.0.0</tt>)''' release.  These benchmarks are intended to evaluate how well GEOS-Chem full-chemistry simulation is performing in the stratosphere.  Oxidant fields and prod/loss rates from the 10-year benchmarks are also used as input to some GEOS-Chem specialty simulations (such as the [[Carbon simulation]] and [[Tagged O3 simulation]]).
!bgcolor="#cccccc"|[[GEOS-Chem_chemistry_mechanisms|Chemical Mechanism]]:
|[[FlexChem]] chemical solver<br> using the standard chemistry mechanism ([[NOx-Ox-HC-Aer-Br_chemistry_mechanism|NOx-Ox-HC-Aer-Br]] + [[UCX_chemistry_mechanism|UCX]] + [[Secondary_organic_aerosols#Complex_SOA_scheme|complex SOA]])<br>Chemistry is done in both the troposphere and the stratosphere.


|-valign="top"
=== Notes ===
!bgcolor="#cccccc"|[[FAST-JX_v7.0_photolysis_mechanism|Photolysis Mechanism]]:
#GEOS-Chem uses [[GEOS-Chem_version_numbering_system#Numeric_versioning_system|semantic versioning]] (i.e. '''<tt>X.Y.Z</tt>''' version labels).
|[[FAST-JX_v7.0_photolysis_mechanism|FAST-JX v7.0]] (Prather, 2012, Wild et al, 2000).
#Development branches are '''<tt>dev/X.Y.0</tt>''' and '''<tt>dev/no-diff-to-benchmark</tt>'''.
#An alpha tag is a Git tag using the format '''<tt>X.Y.Z-alpha.N</tt>''', where '''<tt>X.Y.Z</tt>''' is the version number and '''<tt>N</tt>''' is a sequential index starting at 0.
#*Alpha tags indicate the locations in the Git revision history where 1-month full-chemistry benchmarks were run.
#*Alpha tags are used to link changes in 1-month full chemistry benchmark simulation results to a specific update (or group of updates).


|-valign="top"
== GEOS-Chem benchmarking procedure ==
!bgcolor="#cccccc"|Operations:
GEOS-Chem is evaluated with several [[#Types of benchmark simulations|benchmark simulations]].  The procedure is as follows:
|
*[[Advection scheme TPCORE|Advection]]
*[[ISORROPIA II|Aerosol thermodynamical equilibriium]]
*[[Boundary layer mixing]]
*[[Chemistry Issues|Chemistry]]
*[[Cloud convection]] (with updraft scavenging)
*[[Dry deposition]]
*[[Emissions overview|Emissions]]
*[[Photolysis_mechanism|Photolysis]]
*[[Wet deposition]]


|-valign="top"
#Any update to GEOS-Chem source code, input data, or run directories must be evaluated with a benchmark simulation.<br><br>
!bgcolor="#cccccc"|[[List_of_diagnostics_for_v11-01|Diagnostic Output]]:
#Updates to GEOS-Chem source code, input data, or run directories '''impacting the [[Simulations using KPP-built mechanisms|full-chemistry simulation]]''' are considered to be '''science updates'''. 
|The following diagnostic outputs are archived as monthly means
#*Science updates are pushed to the '''<tt>dev/X.Y.0</tt>''' branch of the <tt>geoschem/geos-chem</tt> repository.
*Sulfate production and loss quantities
#*Corresponding submodule hash updates are added to the '''<tt>dev/X.Y.0</tt>''' branches of the <tt>geoschem/GCClassic</tt> and <tt>geoschem/GCHP</tt> repositories.
*Dust aerosol sources
#**This triggers [[#1-hour benchmarks|automatic 1-hour benchmarks]] for GEOS-Chem Classic and GCHP, which run on the AWS cloud.
*Carbon aerosol sources
#**Benchmark results are automatically uploaded to [https://gc-dashboard.org gc-dashboard.org]
*Sea salt aerosol sources
#*The 1-hour GEOS-Chem Classic and GCHP benchmarks are examined by the GCST to ensure they executed properly.<br><br>
*Acetone sources
#Updates '''not impacting the [[Simulations using KPP-built mechanisms|full-chemistry simulation]]''' (including updates to specialty simulations) are considered to be '''no-diff updates'''.
*Sulfur sources
#*No-diff updates are pushed to the '''<tt>dev/no-diff-to-benchmark</tt>'''  branch of the <tt>geoschem/geos-chem</tt> repository.
*Optical Depths
#*Corresponding submodule hash updates are added to the '''<tt>dev/X.Y.0</tt>''' branches of the <tt>geoschem/GCClassic</tt> and <tt>geoschem/GCHP</tt> repositories.
*Noontime J-values
#**This triggers [[#1-hour benchmarks|automatic 1-hour benchmarks]] for GEOS-Chem Classic and GCHP. which run on the AWS cloud.
*Biomass burning emission fluxes
#**Benchmark results are automatically uploaded to [https://gc-dashboard.org gc-dashboard.org]
*CO sources
#*The 1-hour GEOS-Chem Classic and GCHP benchmarks are examined by the GCST to ensure they executed properly.
*Surface Pressure
#*No-diff updates are considered to be '''mergeable at any time'''.<br><br>
*NOx sources
# Once it is determined that the 1-hour benchmarks for GEOS-Chem Classic and GCHP corresponding to a particular science update have executed properly, the 1-month benchmark simulations can be run.
*Biofuel emission fluxes
#*An '''alpha tag[[#Notes|<sup>3</sup>]] (<tt>X.Y.0-alpha.N</tt>)''' is pushed to the '''<tt>dev/X.Y.0</tt>''' branches of the <tt>geoschem/GCClassic</tt> and <tt>geoschem/GCHP</tt> repositories.
*Anthropogenic emission fluxes
#**This triggers [[#1-month benchmark|1-month benchmarks]] for GEOS-Chem Classic and GCHP.
*Scavenging loss from moist convection
#**Benchmark results are automatically uploaded to [https://gc-dashboard.org gc-dashboard.org]
*Scavenging loss from wet deposition
#*The GCST will note the changes in model output from each 1-hour alpha benchmark in a spreadsheet.<br><br>
*Concentrations of chemically produced OH and HO2
#Several alpha tags [[#Notes|<sup>3</sup>]] are bundled into a '''proposed feature version (<tt>X.Y.0</tt>)'''.
*Dry deposition fluxes and velocities
#*Feature versions are released quarterly, roughly coinciding with [https://geoschem.github.io GCSC meetings].
*Tracer concentrations
#*The last alpha tag before a planned feature version release is referred to as a '''release candidate'''.
*Biogenic emission fluxes
#*No-diff updates can be merged into the next feature version or could be released into a '''bugfix version (<tt>X.Y.Z</tt>)''', as circumstances dictate.<br><br>
*Tropopause height
#The GCST will post the links to the 1-month '''release candidate''' benchmark plots and tables on the '''GEOS-Chem X.Y.0''' wiki page.
*DAO 3-D met fields
#*The GCST will add a benchmark assessment form to the wiki, with information about the benchmark setup and a summary of observed changes.<br><br>
*DAO 2-D met fields
#The developer(s) and GCSC will assess the 1-month release candidate benchmark results and review the benchmark assessment form on the wiki.
*Air masses and grid box heights
#*If the update is for a specialty simulation (e.g. carbon, Hg, etc.), then a further benchmark may be conducted by the appropriate Working Group.
*Surface area
#*If there are no concerns about the results, the GEOS-Chem Model Scientist will approve the results.
*Lifetime of Methylchloroform (CH3CCl3)
#*A '''release candidate tag (<tt>X.Y.0-rc.0</tt>)''', which is pushed to the <tt>geoschem/GCClassic</tt> and <tt>geoschem/GCHP</tt> repositories.
#*A [[#1-year benchmarks|1-year full-chemistry benchmark]] is run for '''release candidate <tt>X.Y.0-rc.0</tt>'''.
#*A 1-year TransportTracer benchmark will be run only if the transport, wet deposition, or met field inputs are impacted.
#**Due to the large amount of output produced, 1-year benchmark(s) will be run locally on a computer cluster instead of on AWS.<br><br>
#Plots and tables from the 1-year benchmark(s) for '''release candidate <tt>X.Y.0-rc.0</tt>''' will be added to the '''GEOS-Chem X.Y.0''' wiki page.
#*Developers, the GCSC, the GEOS-Chem Model Scientist, and GEOS-Chem Co-Model Scientist will evaluate the benchmark results.
#*If there are any concerns about the benchmark results, the GCST will be notified and further investigation and/or benchmarking may be required.
#**This may result in one or more additional '''release candidates (<tt>X.Y.0-rc.N</tt>) to be considered.
#**New 1-year benchmark(s) will be prepared for approval
#*If there are no concerns about the results, the GEOS-Chem Model Scientist will approve the release candidate.
#*The GCST will proceed to release '''feature version (<tt>X.Y.0</tt>)'''.<br><br>
#A '''major version (<tt>X.0.0</tt>)''' will be issued whenever a science update breaks backwards compatibility with the previous feature version.
#*Each major version will be evaluated with [[#1-month benchmarks|1-month]] and [[#1-year benchmarks|1-year benchmarks]] as described above.
#*The major version will also be evaluated with a [[#10-year benchmark|10-year benchmark]]. The evaluation process follows that of the 1-year benchmark.


|-valign="top"
== List of GEOS-Chem benchmarks ==
!bgcolor="#cccccc"|Benchmark Plots and Summaries:
|The following plots, budgets, and totals are created from the oxidant-aerosol simulation:
*Budget of Ox and CO
*Mean OH concentration
*Methyl Chloroform Lifetime (w/r/t loss by tropospheric OH)
*Aerosol optical depth maps (this benchmark)
*Aerosol optical depth differences (this benchmark - previous benchmark)
*Concentration maps (this benchmark) of tracers + OH + HO2 at the surface and at 500 hPa
*Difference maps (this benchmark - previous benchmark) of tracers + OH + HO2 at the surface and at 500 hPa
*Summary of emission totals (this benchmark vs. previous benchmark)
*Emissions maps (this benchmark) for all emitting tracers
*Emissions difference maps (this benchmark - previous benchmark) for all emitting tracers
*Emissions ratio maps (this benchmark / previous benchmark) for all emitting tracers
*Frequency distribution histogram of ratios (this benchmark vs previous benchmark) for tracers, OH, and optical depths
*J-value maps (this benchmark)
*J-value difference maps (this benchmark - previous benchmark)
*J-value ratio maps (this benchmark / previous benchmark)
*Ratio maps (this benchmark / previous benchmark) of tracers + OH + HO2 at the surface and at 500 hPa
*Zonal mean concentration maps (this benchmark) of tracers + OH + HO2
*Zonal mean difference maps (this benchmark - previous benchmark) of tracers + OH + HO2


|}
Links to past 1-month and 1-year benchmark simulations can be found on the [[GEOS-Chem_versions|''GEOS-Chem versions'']] wiki page.


=== Plotting routines ===
== Benchmark output archive ==


The 1-month benchmark plotting routines are included with [https://github.com/geoschem/gcpy GCPy], a Python took kit available for GEOS-Chem.
Output files and evaluation plots for 1-month and 1-year benchmark simulations are archived at Harvard as summarized below. GEOS-Chem users may utilize these output for comparisons against their own simulations.


== 1-year benchmark ==
{| border=1 cellpadding=5 cellspacing=0
|-bgcolor="#CCCCCC"                       
!width="550px"|Directory                 
!width="300px"|Description


=== Overview ===
|-valign="top" 
|<tt>https://gc-dashboard.org/search?searchString=&1Hr=1Hr&GCHP=GCHP&GCC=GCC</tt>
|Contains the following data from the [[GEOS-Chem_benchmarking#1-hour_benchmark|1-hour benchmarks]] used to evaluate GEOS-Chem:
*Evaluation plots & tables
*Run log
*Run directory (tarball)
*Diagnostic files (tarball)
*Restart Files (tarball)


{| border=1 cellspacing=0 cellpadding=5
|-valign="top" 
|<tt>https://gc-dashboard.org/search?searchString=&1Mon=1Mon&GCHP=GCHP&GCC=GCC</tt>
|Contains the following data from the [[GEOS-Chem_benchmarking#1-month_benchmark|1-month benchmarks]] used to evaluate GEOS-Chem:
*Evaluation plots & tables
*Run log
*Run directory (tarball)
*Diagnostic files (tarball)
*Restart Files (tarball)


|-valign="top"
|-valign="top"
!bgcolor="#cccccc"|Spin-up:
|<tt>http://ftp.as.harvard.edu/gcgrid/geos-chem/1yr_benchmarks/</tt>                       
|
|Contains the following data from the [[GEOS-Chem_benchmarking#1-year_benchmark|1-year benchmarks]] used to evaluate GEOS-Chem:
*January 1, 2013 &ndash; January 1, 2014 (prior to [[GEOS-Chem v11-02#v11-02e|GEOS-Chem v11-02e]])
*Evaluation plots
*January 1, 2015 &ndash; January 1, 2016 (since [[GEOS-Chem v11-02#v11-02e|GEOS-Chem v11-02e]])
*Restart files (tarball)
*Model output (tarball)
*Log files (tarball)
*Input files (tarball)


|-valign="top"
|-valign="top"
!bgcolor="#cccccc"|Dates of Run:
|<tt>http://ftp.as.harvard.edu/gcgrid/geos-chem/10yr_benchmarks/</tt>                       
|
|Contains the following data from the [[GEOS-Chem_benchmarking#10-year_benchmark|10-year benchmarks]] used to evaluate GEOS-Chem:
*January 1, 2013 &ndash; January 1, 2014 (prior to [[GEOS-Chem v11-02#v11-02e|GEOS-Chem v11-02e]])
*Evaluation plots & tables
*January 1, 2016 &ndash; January 1, 2017 (since [[GEOS-Chem v11-02#v11-02e|GEOS-Chem v11-02e]])
*Restart files (tarball)
 
*Model output (tarball)
|-valign="top"
*Log files (tarball)
!bgcolor="#cccccc"|[[GEOS-Chem_vertical_grids|Vertical Resolution]]:
*Input files (tarball)
|[[GEOS-FP]] with [[GEOS-Chem_vertical_grids#72-layer_vertical_grid|72 hybrid sigma-pressure levels]]
 
|-valign="top"
!bgcolor="#cccccc"|[[GEOS-Chem_horizontal_grids|Horizontal Resolution]]:
|[[GEOS-Chem_horizontal_grids#GMAO_4_x_5_grid|4&deg; latitude x 5&deg; longitude]]
 
|-valign="top"
!bgcolor="#cccccc"|[[Species_in_GEOS-Chem#Full-chemistry|Advected species]]:
|<u>Gas-phase species:</u> NO, O3, PAN, CO, ALK4, ISOP, HNO3, H2O2, ACET, MEK, ALD2, RCHO, MVK, MACR, PMN (isoprene and non-isoprene), PPN, R4N2, PRPE, C3H8, CH2O, C2H6, N2O5, HNO4, MP, MPN, ISOPND, ISOPNB, MOBA, PROPNN, HAC, GLYC, MVKN, MACRN, MAP, NO2, NO3, HNO2, BENZ, TOLU, XYLE, MTPA, LIMO, MTPO, TSOG0-3, ISOG1-3, ASOG1-3, EOH, MGLY, GLYX, ACTA, HPALD, DHDN, ETHLN, HCOOH, IEPOXA, IEPOXB, IEPOXD, ISN1, RIPA, RIPB, RIPD, IMAE, LVOC, ISN1OG, MONITS, MONITU, HONIT, HC187
 
<u>Aerosol species:</u> DMS, SO2, SO4, MSA, NH3, NH4, NIT, BCPO, OCPI, BCPI, OCPI, DST1-4, SALA, SALC, SO4s, NITs, TSOA0-3, ISOA1-3, ASOAN, ASOA1-3, SOAIE, SOAME, SOAGX, SOAMG, LVOCOA, ISN1OA, IONITA, MONITA, INDIOL
 
<u>Bromine species:</u> Br2, Br, BrO, HOBr, HBr, BrNO2 BrNO3, CHBr3, CH2Br2, CH3Br
 
<u>Stratospherically-important species:</u> N2O, OCS, CH4, BrCl, HCl, CCl4, CH3Cl, CH3CCl3, CFCX, HCFCX, CFC11, CFC12, HCFC22, H1211, H2402, Cl, ClO, HOCl, ClNO3, ClNO2, ClOO, OClO, Cl2, Cl202, H2O
 
|-valign="top"
!bgcolor="#cccccc"|[[GEOS-Chem_chemistry_mechanisms|Chemical Mechanism]]:
|[[FlexChem]] chemical solver<br> using the standard chemistry mechanism ([[NOx-Ox-HC-Aer-Br_chemistry_mechanism|NOx-Ox-HC-Aer-Br]] + [[UCX_chemistry_mechanism|UCX]] + [[Secondary_organic_aerosols#Complex_SOA_scheme|complex SOA]])<br>Chemistry is done in both the troposphere and the stratosphere.
 
|-valign="top"
!bgcolor="#cccccc"|[[FAST-JX_v7.0_photolysis_mechanism|Photolysis Mechanism]]:
|[[FAST-JX_v7.0_photolysis_mechanism|FAST-JX v7.0]] (Prather, 2012, Wild et al, 2000).
 
|-valign="top"
!bgcolor="#cccccc"|Operations:
|
*[[Advection scheme TPCORE|Advection]]
*[[ISORROPIA II|Aerosol thermodynamical equilibriium]]
*[[Boundary layer mixing]]
*[[Chemistry Issues|Chemistry]]
*[[Cloud convection]] (with updraft scavenging)
*[[Dry deposition]]
*[[Emissions overview|Emissions]]
*[[Photolysis_mechanism|Photolysis]]
*[[Wet deposition]]
 
|-valign="top"
!bgcolor="#cccccc"|[[List_of_diagnostics_for_v11-01|Diagnostic Output]]:
|All diagnostics above are saved as monthly means.
*Sulfate production and loss quantities
*Dust aerosol sources
*Carbon aerosol sources
*Sea salt aerosol sources
*Acetone sources
*Sulfur sources
*Optical Depths
*Noontime J-values
*Transport fluxes (N/S, E/W, up/down)
*Biomass burning emission fluxes
*CO sources
*Surface Pressure
*NOx sources
*Biofuel emission fluxes
*Anthropogenic emission fluxes
*Scavenging loss from moist convection
*Scavenging loss from wet deposition
*Concentrations of chemically produced OH and HO2
*Dry deposition fluxes and velocities
*Tracer concentrations
*Biogenic emission fluxes
*Tropopause height
*DAO 3-D met fields
*DAO 2-D met fields
*Air masses and grid box heights
*Surface area
*Lifetime of Methylchloroform (CH3CCl3)
*Satellite timeseries of BrO, cloud fraction, and cloud top height
 
|-valign="top"
!bgcolor="#cccccc"|Benchmark Plots:
|The following plots compare advected species from 3 different benchmark simulations (versions 1-3, where version 3 is the current benchmark version). Plots are created for January, April, July, and October.
*Aerosol optical depth maps (version 1, version 2, and version 3)
*Emission maps (version 1, version 2, and version 3)
*Emisison difference maps (version 3 - version 1, version 3 - version 2)
*Emission ratio maps (version 3 / version 1, version 3 / version 2)
*J-value maps (version 1, version 2, and version 3)
*J-value difference maps (version 3 - version 1, version 3 - version 2)
*J-value ratio maps (version 3 / version 1, version 3 / version 2)
*Tracer difference maps at the surface and 500 hPa (version 3 - version 1, version 3 - version 2)
*Tracer ratio maps at the surface and 500 hPa (version 3 / version 1, version 3 / version 2)
*Tracer difference profiles along longitude slices (15S, 42N) (version 3 - version 1, version 3 - version 2)
 
The following plots show data from 3 benchmark simulations side-by-side with observations. GEOS-Chem output is plotted in red for version 1, in green for version 2, and in blue for version 3 (current benchmark version)
*BrO seasonal columns vs. observations
*C2H6 vertical profiles vs. observations from various aircraft campaigns
*C3H8 vertical profiles vs. observations from various aircraft campaigns
*CO seasonal cycle at the surface vs. MOZAIC observations
*CO vertical profiles vs. MOZAIC observations
*CO vertical profiles vs. various sonde observations
*H2O2 vertical profiles vs. observations from various aircraft campaigns
*IMPROVE difference maps (benchmark simulation output vs. surface sites)
*IMPROVE scatter plots (benchmark simulation output vs. surface sites)
*HNO3 vertical profiles vs. observations from various aircraft campaigns
*NO vertical profiles vs. observations from various aircraft campaigns
*O3 seasonal cycle @ the surface vs. MOZAIC observations
*O3 seasonal cycle @ 300, 500, and 800 hPa vs. MOZAIC observations
*O3 seasonal cycle @ 300, 500, and 800 hPa vs. sonde observations
*O3 seasonal cycle @ 150, 300, 500,and 800 hPa vs. sonde observations
*O3 vertical profiles vs. observations from various aircraft campaigns
*O3 vertical profiles vs. observations from various aircraft campaigns
*O3 vertical profiles vs. various sonde observations
*O3 vertical profiles vs. MOZAIC observations
*PAN vertical profiles vs. observations from various aircraft campaigns
*PM2.5 difference maps (benchmark simulation output vs. surface sites)
*PM2.5 scatter plots (benchmark simulation output vs. surface sites)
 
|}
 
=== Plotting routines ===
 
''<span style="color:darkorange">NOTE: The 1-month benchmark plotting routines are currently written in IDL. We are planning on moving these routines to Python for the [[GEOS-Chem v11-02]] release as part of the [[Python_code_for_GEOS-Chem#GCPy|GCPy package]].</span>''
 
The 1-year benchmark plotting routines can be downloaded from Bitbucket via Git using:
 
  git clone https://bitbucket.org/gcst/gc_1yr_benchmark
 
The data files needed for the plots are included in the repository and are discussed in more detail [[#Observations|below]].
 
=== Observations ===
 
Here we provide an overview of the data used in the 1-year benchmark plots.
 
{| border=1 cellspacing=0 cellpadding=5
|-valign="top" bgcolor="#cccccc"
!Directory
!Data year
!Species
!Data source
!Provided by
 
|-valign="top"
|<tt>BrO/</tt>
|2007-2008
|BrO
|[https://www.eumetsat.int/website/home/Satellites/CurrentSatellites/Metop/MetopDesign/GOME2/index.html GOME-2]
|Justin Parrella<br>(Data used to reproduce Figure 5 of [http://acmg.seas.harvard.edu/publications/2012/parrella2012.pdf Parrella et al. (2012)])
 
|-valign="top"
|<tt>cmdl/</tt>
|2005, 2009<br>[[#Update 2005/2009 CMDL CO data to 2013/2014 GMD CO data|New data available]]
|CO
|[https://www.esrl.noaa.gov/gmd/ GMD] (formerly CMDL)
|Jennifer Logan and Inna Megretskaia
 
|-valign="top"
|<tt>co.prof.for.gmi/</tt>
|2001-2008<br>(varies by station)
|CO
|[http://iagos.sedoo.fr/ MOZAIC]
|Jennifer Logan and Inna Megretskaia
 
|-valign="top"
|<tt>eval/aircraft/</tt><br>''NOTE: Other directories in <tt>eval/</tt> aren't currently used''
|1995-2003<br>(varies by aircraft campaign)
|C2H6, C3H8, CO, H2O2, HNO3, NO, O3, PAN<br>
''(Not currently used: ACET, ALK4, C2H2, CH2Br2, CH2BrCl, CH3Br, CH3OH, CH4, CHBr2Cl, CHBrCl2, CO2, ETHE, PRPE)''
|See [https://bitbucket.org/gcst/gc_1yr_benchmark/src/6495a17e5c0004f8290d09f141d585c30ce480ef/IDL/data/eval/aircraft/data/README.aircraft.data?at=master&fileviewer=file-view-default README]
|Jennifer Logan and Inna Megretskaia
 
|-valign="top"
|<tt>netCDF/</tt>
|N/A
|C2H6, C3H8, CH3I, CO, H2O2, HNO3, NO, O3, OH, PAN, Rn
|Various<br>(contains information about station locations)
|Jennifer Logan and Inna Megretskaia
 
|-valign="top"
|<tt>PAN/</tt>
|Varies
|PAN
|ARCTAS-A, ARCTAS-B, ARCPAC, INTEX-B, ITCT-2K2
|Emily Fischer<br>(Data used to reproduce Figure S1 of [https://www.atmos-chem-phys.net/14/2679/2014/acp-14-2679-2014-supplement.pdf Fischer et al. (2014) Supplement])
 
|-valign="top"
|<tt>pm25_data/</tt>
|2005
|[[Particulate_matter_in_GEOS-Chem|PM2.5]]
|[http://vista.cira.colostate.edu/improve/ IMPROVE]
|Colette Heald
 
|-valign="top"
|<tt>sondes.for.gmi/</tt>
|1990-2008<br>(varies by station)
|O3
|
|Jennifer Logan and Inna Megretskaia
 
|-valign="top"
|<tt>strat/</tt>
|2001-2010
|NOy, O3
|[http://www.asc-csa.gc.ca/eng/satellites/odin.asp OSIRIS]
|Dylan Jones
 
|-valign="top"
|<tt>surface_ozone/</tt>
|
|O3
|[https://www.esrl.noaa.gov/gmd/ CMDL]
|Jennifer Logan and Inna Megretskaia


|}
|}


--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 14:26, 16 August 2017 (UTC)
NOTE: "tarball" refers to a <tt>*.tar.gz</tt> file. This is an archive of files & folders created with <tt>tar cvzf</tt> and can be extracted with <tt>tar xzvf</tt>.
 
==== Update 2005/2009 CMDL CO data to 2013/2014 GMD CO data ====
 
<span style="color:green">'''''This update was included in [[GEOS-Chem v11-02#v11-02c|v11-02c]] and approved on 21 Sep 2017.'''''</span>
 
'''''Jenny Fisher wrote:'''''
 
:Attached is a zip file containing routines to process the GMD (previously CMDL) CO data for use in the benchmarking scripts, as well as the 2013 and 2014 data. I added the 2014 data because there was no ships data for 2013 (or 2012), so this seemed like the best approximation.
 
:To replace the existing benchmark data with these, you will want to do the following in the 1-year benchmark code:
 
:#Put the <tt>2013data/</tt> and <tt>2014data/</tt> in the <tt>data/cmdl/</tt> directory of the 1-year benchmark code
:#Change <span style="color:red"><tt>newdata/</tt></span> to <span style="color:green"><tt>2013data/</tt></span> in plot_cmdl_3_models_4_months.pro
:#Change <span style="color:red"><tt>Feb09/</tt></span> to <span style="color:green"><tt>2013data/</tt></span> in plot_surface_co_geos_3_models.pro
:#Change <span style="color:red"><tt>newdata/</tt></span> to <span style="color:green"><tt>2014data/</tt></span> in plot_ships_3_models_4_months.pro and plot_ships_3_models_co.pro
:#Change the line <span style="color:red"><tt>file=pre+name_sta(kk)+'.mn'</tt></span> to <span style="color:green"><tt>file=pre+name_sta(kk)+’.mn.2013'</tt></span> in plot_cmdl_3_models_4_months.pro
:#Change the line <span style="color:red"><tt>file=pre+name_sta(kk)+’.mn.2005'</tt></span> to <span style="color:green"><tt>file=pre+name_sta(kk)+’.mn.2013'</tt></span> in plot_surface_co_geos_3_models.pro
:#Change the line <span style="color:red"><tt>file=pre+name_sta(kk)+'.mn'</tt></span> to <span style="color:green"><tt>file=pre+name_sta(kk)+’.mn.2014'</tt></span> in plot_ships_3_models_4_months.pro and plot_ships_3_models_co.pro


:As I said before, I think this would be a useful improvement to our benchmarks, rather than using data >10 years old!
== Benchmark plotting routines ==


--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 22:10, 15 August 2017 (UTC)
The benchmark plotting routines are included with [https://github.com/geoschem/gcpy GCPy], a Python tool kit available for GEOS-Chem.

Latest revision as of 15:28, 23 May 2024

Objectives

Benchmarking supports the maintenance of GEOS-Chem as a robust state-of-the-science facility with a nimble grass-roots approach and strong version control. Benchmarking has four main objectives:

  1. Document a consistent GEOS-Chem model configuration, and the expected characteristics of that configuration.
  2. Support version control through traceability, and by confirming the expected behavior of model developments submitted by the community.
  3. Track the evolution of the model over the years.
  4. Promote scientific transparency of GEOS-Chem.

Types of benchmark simulations

The GEOS-Chem Support Team (GCST) runs several types of benchmark simulations in order to assess the performance of GEOS-Chem. These are described in the following sections.

1-hour benchmarks

1-hour benchmarks primarily serve as sanity checks. They are useful in determining if two successive updates to GEOS-Chem result in identical model output. These are triggered when:

  1. A commit is pushed to any development branch2 in the geoschem/GCClassic "superproject" repository
  2. A commit is pushed to any development branch2 in the geoschem/GCHP "superproject" repository.

Evaluation tables are posted to gc-dashboard.org upon successful completion of each 1-hour benchmark simulation. The evaluation tables include information on OH metrics, emissions totals, global mass, and a summary table.

Automatic 1-hour benchmarks are only performed for the full-chemistry simulation.

1-month benchmarks

1-month benchmarks (aka alpha benchmarks) are primarily used to quantify the changes in model output that occur when adding a new science feature into GEOS-Chem. These are triggered when:

  1. An alpha tag3 is pushed to any development branch1 in the geoschem/GCClassic superproject repository
  2. An alpha tag3 is pushed to any development branch1 in the geoschem/GCHP "superproject" repository.

Evaluation plots and tables are posted to gc-dashboard.org upon successful completion of each 1-hour benchmark simulation. These include comparison plots of species concentrations, emissions, aerosol optical depth, J-Values, as well as the same tables produced for the 1-hour benchmarks.

Automatic 1-month benchmarks are only performed for the full-chemistry simulation.

1-year benchmarks

1-year benchmarks are performed before every feature version (X.Y.0) release. They are used to compare the version currently in preparation against the the previous feature version. Due to the size of the output and length of the simulation, the GCST runs 1-year benchmark simulations on the Harvard Cannon cluster.

1-year benchmarks may be run for either the [[Simulations using KPP-built mechanisms|full-chemistry simulation] or for the TransportTracers simulation. Ad-hoc 1-year benchmarks for the Carbon simulation may also be performed in order to assess scientific updates made to that particular simulation.

Full-chemistry 1-year benchmarks are performed before each feature version (X.Y.0) release. On the other hand, 1-year TransportTracers benchmarks are only performed for feature versions containing changes to transport and/or wet deposition. 1-year TransportTracers benchmarks are spun up for 10 years before the evaluation year in order to make sure the model atmosphere is in steady-state.

Benchmark output consists of similar plots and tables as in the 1=month simulation but for January, April, July, and October 2019, plus annual means.

10-year benchmarks

10-year benchmarks are performed before every major version (X.0.0) release. These benchmarks are intended to evaluate how well GEOS-Chem full-chemistry simulation is performing in the stratosphere. Oxidant fields and prod/loss rates from the 10-year benchmarks are also used as input to some GEOS-Chem specialty simulations (such as the Carbon simulation and Tagged O3 simulation).

Notes

  1. GEOS-Chem uses semantic versioning (i.e. X.Y.Z version labels).
  2. Development branches are dev/X.Y.0 and dev/no-diff-to-benchmark.
  3. An alpha tag is a Git tag using the format X.Y.Z-alpha.N, where X.Y.Z is the version number and N is a sequential index starting at 0.
    • Alpha tags indicate the locations in the Git revision history where 1-month full-chemistry benchmarks were run.
    • Alpha tags are used to link changes in 1-month full chemistry benchmark simulation results to a specific update (or group of updates).

GEOS-Chem benchmarking procedure

GEOS-Chem is evaluated with several benchmark simulations. The procedure is as follows:

  1. Any update to GEOS-Chem source code, input data, or run directories must be evaluated with a benchmark simulation.

  2. Updates to GEOS-Chem source code, input data, or run directories impacting the full-chemistry simulation are considered to be science updates.
    • Science updates are pushed to the dev/X.Y.0 branch of the geoschem/geos-chem repository.
    • Corresponding submodule hash updates are added to the dev/X.Y.0 branches of the geoschem/GCClassic and geoschem/GCHP repositories.
    • The 1-hour GEOS-Chem Classic and GCHP benchmarks are examined by the GCST to ensure they executed properly.

  3. Updates not impacting the full-chemistry simulation (including updates to specialty simulations) are considered to be no-diff updates.
    • No-diff updates are pushed to the dev/no-diff-to-benchmark branch of the geoschem/geos-chem repository.
    • Corresponding submodule hash updates are added to the dev/X.Y.0 branches of the geoschem/GCClassic and geoschem/GCHP repositories.
    • The 1-hour GEOS-Chem Classic and GCHP benchmarks are examined by the GCST to ensure they executed properly.
    • No-diff updates are considered to be mergeable at any time.

  4. Once it is determined that the 1-hour benchmarks for GEOS-Chem Classic and GCHP corresponding to a particular science update have executed properly, the 1-month benchmark simulations can be run.
    • An alpha tag3 (X.Y.0-alpha.N) is pushed to the dev/X.Y.0 branches of the geoschem/GCClassic and geoschem/GCHP repositories.
    • The GCST will note the changes in model output from each 1-hour alpha benchmark in a spreadsheet.

  5. Several alpha tags 3 are bundled into a proposed feature version (X.Y.0).
    • Feature versions are released quarterly, roughly coinciding with GCSC meetings.
    • The last alpha tag before a planned feature version release is referred to as a release candidate.
    • No-diff updates can be merged into the next feature version or could be released into a bugfix version (X.Y.Z), as circumstances dictate.

  6. The GCST will post the links to the 1-month release candidate benchmark plots and tables on the GEOS-Chem X.Y.0 wiki page.
    • The GCST will add a benchmark assessment form to the wiki, with information about the benchmark setup and a summary of observed changes.

  7. The developer(s) and GCSC will assess the 1-month release candidate benchmark results and review the benchmark assessment form on the wiki.
    • If the update is for a specialty simulation (e.g. carbon, Hg, etc.), then a further benchmark may be conducted by the appropriate Working Group.
    • If there are no concerns about the results, the GEOS-Chem Model Scientist will approve the results.
    • A release candidate tag (X.Y.0-rc.0), which is pushed to the geoschem/GCClassic and geoschem/GCHP repositories.
    • A 1-year full-chemistry benchmark is run for release candidate X.Y.0-rc.0.
    • A 1-year TransportTracer benchmark will be run only if the transport, wet deposition, or met field inputs are impacted.
      • Due to the large amount of output produced, 1-year benchmark(s) will be run locally on a computer cluster instead of on AWS.

  8. Plots and tables from the 1-year benchmark(s) for release candidate X.Y.0-rc.0 will be added to the GEOS-Chem X.Y.0 wiki page.
    • Developers, the GCSC, the GEOS-Chem Model Scientist, and GEOS-Chem Co-Model Scientist will evaluate the benchmark results.
    • If there are any concerns about the benchmark results, the GCST will be notified and further investigation and/or benchmarking may be required.
      • This may result in one or more additional release candidates (X.Y.0-rc.N) to be considered.
      • New 1-year benchmark(s) will be prepared for approval
    • If there are no concerns about the results, the GEOS-Chem Model Scientist will approve the release candidate.
    • The GCST will proceed to release feature version (X.Y.0).

  9. A major version (X.0.0) will be issued whenever a science update breaks backwards compatibility with the previous feature version.
    • Each major version will be evaluated with 1-month and 1-year benchmarks as described above.
    • The major version will also be evaluated with a 10-year benchmark. The evaluation process follows that of the 1-year benchmark.

List of GEOS-Chem benchmarks

Links to past 1-month and 1-year benchmark simulations can be found on the GEOS-Chem versions wiki page.

Benchmark output archive

Output files and evaluation plots for 1-month and 1-year benchmark simulations are archived at Harvard as summarized below. GEOS-Chem users may utilize these output for comparisons against their own simulations.

Directory Description
https://gc-dashboard.org/search?searchString=&1Hr=1Hr&GCHP=GCHP&GCC=GCC Contains the following data from the 1-hour benchmarks used to evaluate GEOS-Chem:
  • Evaluation plots & tables
  • Run log
  • Run directory (tarball)
  • Diagnostic files (tarball)
  • Restart Files (tarball)
https://gc-dashboard.org/search?searchString=&1Mon=1Mon&GCHP=GCHP&GCC=GCC Contains the following data from the 1-month benchmarks used to evaluate GEOS-Chem:
  • Evaluation plots & tables
  • Run log
  • Run directory (tarball)
  • Diagnostic files (tarball)
  • Restart Files (tarball)
http://ftp.as.harvard.edu/gcgrid/geos-chem/1yr_benchmarks/ Contains the following data from the 1-year benchmarks used to evaluate GEOS-Chem:
  • Evaluation plots
  • Restart files (tarball)
  • Model output (tarball)
  • Log files (tarball)
  • Input files (tarball)
http://ftp.as.harvard.edu/gcgrid/geos-chem/10yr_benchmarks/ Contains the following data from the 10-year benchmarks used to evaluate GEOS-Chem:
  • Evaluation plots & tables
  • Restart files (tarball)
  • Model output (tarball)
  • Log files (tarball)
  • Input files (tarball)

NOTE: "tarball" refers to a *.tar.gz file. This is an archive of files & folders created with tar cvzf and can be extracted with tar xzvf.

Benchmark plotting routines

The benchmark plotting routines are included with GCPy, a Python tool kit available for GEOS-Chem.