GEOS-Chem v11-02: Difference between revisions

From Geos-chem
Jump to navigation Jump to search
Line 1,638: Line 1,638:


--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:54, 29 June 2018 (UTC)
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:54, 29 June 2018 (UTC)
=== Bug fix: Specifying NO_REDUCED=no now compiles GEOS-Chem for reduced grids ===
<span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span>
'''''[[User:Zhuangjw|Jiawei Zhang]] wrote:'''''
<blockquote>I found a small but annoying bug in <tt>Makefile_header.mk</tt>.  The problem is that if I use <tt>NO_REDUCED=n</tt> (i.e. use 47 levels) as a compile option, then the makefile will treat it as <tt>NO_REDUCED=yes</tt> (i.e. use 72 levels). The <tt>LLPAR</tt> parameter will then be set to 72 instead of 47, leading to unexpected behavior.
That's because <tt>Makefile_header.mk</tt> contains something like:</blockquote>
      # %%%%% REDUCED VERTICAL GRID (default, unless specified otherwise) %%%%
      ifndef NO_REDUCED
        USER_DEFS        += -DGRIDREDUCED
      else
        REGEXP          :=(^[Yy]|^[Yy][Ee][Ss])
        ifeq ($(shell [[ <nowiki>"$(NO_REDUCED)" =~ $(REGEXP)</nowiki> ]] && echo true),true)
        endif
      endif
<blockquote>The <tt>GRIDREDUCED</tt> C-preprocessor switch will only be activated if <tt>NO_REDUCED</tt> is not provided. The following "yes" or "no" just doesn't matter because the nested <tt>ifeq</tt> statement doesn't do anything. With this problem, the only way to compile a 47L model is NOT providing the <tt>NO_REDUCED</tt> option. It also affects compiling GEOS-Chem from the <tt>geosfp_4x5_tropchem</tt> rundir, because <tt>NO_REDUCED=n</tt> is one of the default options.</blockquote>
We have now fixed this issue by setting the <tt>NO_REDUCED</tt> Makefile variable to "no" by default, and then evaluating its value in a separate IF statement.  This code has now been added to the <tt>Makefile_header.mk</tt>.
  # %%%%% REDUCED VERTICAL GRID (default, unless specified otherwise) %%%%
  ifndef NO_REDUCED
    NO_REDUCED      :=no
  endif
  REGEXP              :=(^[Nn]|^[Nn][Oo])
  ifeq ($(shell [[ <nowiki>"$(NO_REDUCED)" =~ $(REGEXP)</nowiki> ]] && echo true),true)
    USER_DEFS        += -DGRIDREDUCED
  endif
This fix now will compile GEOS-Chem for 47 levels when <tt>NO_REDUCED=no</tt> is specified, or if <tt>NO_REDUCED</tt> is omitted.
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 16:09, 1 March 2017 (UTC)


== Outstanding issues not yet resolved in GEOS-Chem v11-02 ==
== Outstanding issues not yet resolved in GEOS-Chem v11-02 ==

Revision as of 21:57, 20 December 2019



GEOS-Chem v11-02-final will also carry the designation GEOS-Chem 12.0.0. We are migrating to a purely numeric versioning system in order to adhere more closely to software development best practices. For a complete description of the new versioning system, please see our GEOS-Chem version numbering system wiki page.




Version history

The table below shows the previous, current, and successive versions of GEOS-Chem:

Previous version This version Next version
GEOS-Chem v11-01-public GEOS-Chem 12.0.0
(aka v11-02-final)

GEOS-Chem 12.1.0
Released 01 Feb 2017 Released 10 Aug 2018 Release TBD
GC v11-01 online manual GC 12 online manual GC 12 benchmark history

The sections below describe each GEOS-Chem version in the v11-02 series. Versions v11-02a, v11-02b, etc. were validated with 1-month benchmark simulations (and 1-year benchmark simulations if necessary).

GEOS-Chem v11-02-final (aka 12.0.0)

This version was released on 10 Aug 2018

For a list of the features that were added to GEOS-Chem during the v11-02 "release candidate" testing period, please see visit this section of our GEOS-Chem 12 wiki page.

--Bob Yantosca (talk) 14:33, 21 June 2018 (UTC)

GEOS-Chem v11-02 release candidate

NOTE: These updates were not received in time for the v11-02f benchmarks, but were included in the v11-02-release-candidate version (aka v11-02-rc).

Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Only add ISOAAQ species to the PM2.5 diagnostics when using the Complex SOA option Aerosols WG Bug fix Released 22 Jun 2018
Only add ISOAAQ species to OCPISOA when using the complex SOA option Aerosols WG Bug fix " "
Disable Xiao propane emissions to avoid double-counting with CEDS Christoph Keller (NASA/GMAO)
GCST
Bug fix " "
Grid offset bug fix in high-resolution MEGAN files at southern mid-latitudes Jenny Fisher (Wollongong)
Dylan Millet (UMN)
Bug fix " "
Features NOT affecting the full-chemistry simulation:
Minor fixes (including updated parameters) for the Mercury simulation. Colin Thackray (Harvard) Bug Fix
Science
" "

--Bob Yantosca (talk) 19:16, 21 June 2018 (UTC)

v11-02f

Please see the following link for complete information about the validation of GEOS-Chem v11-02f:

  1. Approval form for 1-month benchmark simulation v11-02f
  2. Results for 1-year benchmark simulation v11-02f-Run0
Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Update HEMCO from v2.1.001 to v2.1.005 Christoph Keller (NASA GMAO) Structural 1-month benchmark:
Approved on 10 May 2018

1-year benchmark:
Approved on 17 May 2018

Use global 0.25x0.25 files for MEGAN input and MODIS LAI Jenny Fisher (U. Wollongong)
Eloise Marais (U. Birmingham)
Dylan Millet (UMN)
Bug fix/
Science
" "
Update lightning BETA values and OTD/LIS files for consistency with latest met fields Lee Murray (Rochester) Science " "
CEDS global anthropogenic emissions (1950-2014)
  • This inventory will be the default global anthropogenic emissions inventory
  • Includes a fix for NOx unit conversion
Lu Shen (Harvard)
Melissa Sulprizio (Harvard)
Science " "
EDGAR v4.3.1 emissions
  • This inventory will be included as an option
Chi Li (Dalhousie) Science " "
Use 1x1 GEIA NH3 emissions Eleanor Morris (York) Bug fix " "
Historical Canadian emissions Chi Li (Dalhousie) Science " "
Global ethane emissions Zitely Tzompa-Sosa (CSU) Science " "
Inefficient combustion emissions in Africa (DICE-Africa inventory) Eloise Marais (U. Birmingham)
Christine Wiedinmyer (NCAR)
Science " "
Trash burning emissions Eloise Marais (U. Birmingham)
Christine Wiedinmyer (NCAR)
Science " "
Update GFED4 emission factors Katie Travis (MIT) Bug fix " "
Retire GFED3 biomass burning emissions Katie Travis (MIT) Structural " "
Ammonia emissions from Arctic seabirds Betty Croft (Dalhousie) Science " "
Fixes for prod/loss rates used in linearized chemistry routines: Chris Holmes (FSU)
Christoph Keller (NASA GMAO)
Bug fix " "
Add fix for UCX mesospheric NOy routine Sebastian Eastham (MIT) Bug fix " "
Fix Henry's Law parameters for HCl Xuan Wang (Harvard) Bug fix " "
Fix for N2O5 uptake Xuan Wang (Harvard) Bug fix " "
Add fix for organic nitrate chemistry Xuan Wang (Harvard) Bug fix " "
Features not affecting the full-chemistry simulation:
Updated CH4 simulation Bram Maasakkers (Harvard)
Melissa Sulprizio (Harvard)
Science " "
Updated Tagged CO simulation Jenny Fisher (Wollongong) Science " "
Updates to Hg chemistry from Horowitz et al. (2017) Hannah Horowitz (U. Washington)
Colin Thackray (Harvard)
Rebecca Stern (Harvard)
Science " "
Change default timestep for MERRA-2 nested grid simulations Bram Maasakkers (Harvard) Science " "
Fix bug in biomass burning emissions when GFED is turned off Corey Trujillo (U. Colorado)
Therese Carter (MIT)
Bug fix " "
Fix missing HCOOH factors for RCP in HEMCO_Config.rc Seb Eastham (MIT) Bug fix " "
Fix bug in calculation of L(Ox) for tagged Ox simulations Lu Shen (Harvard) Bug fix " "
Change tolerance value as a temporary fix for convergence errors in 2x2.5 tropchem simulations Katie Travis (MIT)
Chemistry WG
Bug fix " "
Fix compatibility issue with ifort17 Bob Yantosca (GCST) Bug fix " "

v11-02e

Please see the following link for complete information about the validation of GEOS-Chem v11-02e:

  1. Approval form for 1-month benchmark simulation v11-02e
  2. Approval form for 1-month benchmark simulation v11-02e using a spun-up restart file
  3. Results for 1-year benchmark simulation v11-02e-Run0
  4. Results for 1-year Rn-Pb-Be benchmark simulation with fixed GEOS-FP met fields
  5. Results for 1-year Rn-Pb-Be benchmark simulation using 72 levels

We also completed a second set of benchmark simulations for GEOS-Chem v11-02e using 2016 GEOS-FP met fields. Please see the following links:

  1. Approval form for 1-month benchmark simulation v11-02e using 2016 GEOS-FP met fields
  2. Results for 1-year benchmark simulation v11-02e-Run1
  3. Results for 1-year Rn-Pb-Be benchmark simulation using 2016 GEOS-FP met fields
Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Monthly mean surface methane distributions Lee Murray (Rochester) Science 1-month benchmark:
Approved on 15 Mar 2018

1-year benchmark:
Approved 24 Mar 2018

UCX updates, including:
Seb Eastham (Harvard)
Chris Holmes (Florida State)
Melissa Sulprizio (GCST)
Science " "
Use monthly mean stratospheric prod/loss rates from UCX simulation for all species Melissa Sulprizio (GCST) Science " "
Update density of BC to 1.8 and add absorption enhancement factor in input.geos Xuan Wang (MIT) Science " "
Metal catalyzed oxidation of SO2 as a switch (on by default) Viral Shah (UW)
Becky Alexander (UW)
Science " "
Add SOA updates and bug fixes, including: Sam Silva (MIT)
Chemistry Working Group
Aerosols Working Group
GCST
Eloise Marais (U. Birmingham)
Science & Bug fix " "
Fix dust rainout settings to match BCPO Colette Heald (MIT) Bug fix " "
Fixes in gckpp_HetRates.F90 for halogen chemistry Lei Zhu (Harvard)
Seb Eastham (MIT)
Bug fix " "
Add bug fix in sulfate_mod.F involving reorder IF statements for Fahey and Seinfeld decision algorithm Chris Holmes (FSU)
Becky Alexander (UW)
Bug fix " "
Sync GEOS-FP files on Harvard ftp with files at Dalhousie GCST Bug fix " "
Features not affecting the full-chemistry simulation:
Spatially varying OM/OC as a switch (off by default) Sajeev Philip (Dalhousie/NASA Ames) Science " "
Update Rn-Pb-Be-Pasv simulations to use 72 levels by default Melissa Sulprizio (GCST) Science " "
Bug fixes for ISORROPIA II stable mode Jingyuan Shao (UW)
Shaojie Song (Harvard)
Bug fix " "
Change input.geos timestep units from minutes to seconds Lizzie Lundgren (GCST) Structural " "
Fixes for ND21 binary diagnostics Lizzie Lundgren (GCST) Bug fix " "
Fix bug in HEMCO reference time code Barron Henderson (US EPA) Bug fix " "

v11-02d

Please see the following link for complete information about the validation of GEOS-Chem v11-02d:

  1. Approval form for 1-month benchmark simulation v11-02d
  2. Results for 1-year benchmark simulation v11-02d-Run2
Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Halogen chemistry updates Tomás Sherwen (York)
Johan Schmidt (Harvard)
Seb Eastham (MIT)
Lei Zhu (Harvard)
Oxidants and Chemistry WG
Science Approved 12 Feb 2018
Sulfur oxidation by reactive halogens Qianjie Chen (UW) Science
Add bug fixes for GLYX, MGLY, IEPOX, and IMAE heterogeneous chemistry Sebastian Eastham (MIT) Bug fix
Fix bug impacting dust radius obtained in RDUST_ONLINE for UCX simulations Melissa Sulprizio (GCST) Bug fix
Add fix for IPMN reactions contributing to high P(Ox) and L(Ox) Melissa Sulprizio (GCST)
Eloïse Marais (U. Birmingham)
Bug fix
Features not affecting the full-chemistry simulation:
Update CH4 latitude bands for 2014-2016 Katie Travis (MIT) Science
Remove support for GCAP, GEOS-4, MERRA, GEOS-5 Melissa Sulprizio (GCST) Structural
Timestamp HEMCO diagnostics filename with start time rather than end time Lizzie Lundgren (GCST) Structural
Structural updates for netCDF diagnostics GCST Structural

v11-02c

Please see the following link for complete information about the validation of GEOS-Chem v11-02c:

  1. Approval form for 1-month benchmark simulation v11-02c
  2. Results for 1-year benchmark simulation v11-02c-Run0
Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Enhance default GEOS-Chem simple SOA Sal Farina (Colorado State)
Aerosols Working Group Chairs
Science 1-month benchmark:
Approved on 07 Sep 2017

1-year benchmark:
Approved 21 Sep 2017

Updates to isoprene and monoterpene chemistry Katie Travis (MIT)
Jenny Fisher (U. Wollongong)
Eloïse Marais (U. Birmingham)
Christopher Chan Miller (Harvard)
Kelvin Bates (Caltech)
Rebecca Schwantes(Caltech)
Science " "
Add aqueous isoprene uptake to SOA scheme Eloise Marais (U. Birmingham) Science " "
Carbon balance (fix C creation) Sarah Safieddine (MIT) Bug fix " "
Fix bugs for EOH and MGLY following implementation of PAN updates in v11-02a Melissa Sulprizio (GCST) Bug fix " "
Update HEMCO from v2.0.004 to v2.1.001 Christoph Keller (NASA GMAO) Structural " "
Features not affecting the full-chemistry simulation:
HEMCO updates:
Christoph Keller (NASA GMAO)
Andy Jacobson (NOAA)
Paulo Tuccella (L'Aquila)
Structural " "
Fixes for several minor issues:
Chris Holmes (Florida State)
Chris Holmes (Florida State)
Jiawei Zhuang (Harvard)
Amanda Giang (MIT)
Katie Travis (MIT)
Katie Travis(MIT)
Bug fix " "
Fixes for the TOMAS simulation:
Sal Farina (Colorado State)
Jack Kodros (Colorado State)
Bob Yantosca (GCST)
Bug fix " "
Fix STE flux diagnostics and add to benchmark procedure Melissa Sulprizio (GCST) Bug fix &
Benchmarking
" "
Initial structural modifications for netCDF diagnostics:
  • Introduce Headers/State_Diag as a stub module (for now)
  • Add a registry object into State_Met, State_Diag, and State_Chm in order to obtain a pointer to any module variable (or slice) by looking up its name
  • Add new module Headers/registry_mod.F90 which contains derived types and routines for registering module variables.
Bob Yantosca (GCST) Structural " "
Combine timestep settings in input.geos in a Timesteps menu Melissa Sulprizio (GCST) Structural " "
Update CO data used in 1-year benchmark plots Jenny Fisher (U. Wollongong) Benchmarking " "

v11-02b

Please see the following link for complete information about the validation of GEOS-Chem v11-02b:

  1. Approval form for 1-month benchmark simulation v11-02b
  2. Approval form for 1-month benchmark simulation v11-02b with high performance option (v11-02b-HP)
  3. Results for 1-year standard benchmark simulation of v11-02b-HP Run0
  4. Results for 1-year standard benchmark simulation of v11-02b-HP Run1 (uses offline archived lightning and dust emissions)
  5. Results for 1-year RnPbBe benchmark simulation of v11-02b-HP
Feature Submitted by Type Status
Features not affecting the full-chemistry simulation:
Source code updates for high performance option (GCHP) Seb Eastham (Harvard)
Lizzie Lundgren (Harvard)
Mike Long (Harvard)
Jiawei Zhuang (Harvard)
Bob Yantosca (Harvard)
Structural Approved 16 Jun 2017
Bug fixes for diagnostics:
Ilya Stanevic (Toronto)
Lee Murray (Rochester)
Bug fix " "
Write initial and final Ox mass to file when using the tagged O3 simulation Bob Yantosca (GCST) Structural " "
Convert CO2 emissions units using dry pressure used in advection Meemong Lee (JPL) Science " "
Add QFED emissions for 2014-2016 Christoph Keller (NASA GMAO) Science " "

v11-02a

Please see the following link for complete information about the validation of GEOS-Chem v11-02a:

  1. Approval form for 1-month benchmark simulation v11-02a
  2. Results for 1-year benchmark simulation v11-02a-Run0
  3. Results for 1-year benchmark simulation v11-02a-Run1 (final version)
Feature Submitted by Type Status
Features affecting the full-chemistry simulation:
Update chemistry rate constants based on JPL Publication 15-10 Barron Henderson (US EPA),
Mat Evans (U. York), &
Oxidants and Chemistry WG
Science Approved 12 May 2017
Fixes to correct ALK4 lumping issue Barron Henderson (US EPA) Science " "
PAN updates, including:
  • Updates to emissions, deposition, species, chemistry
  • Ocean+biogenic ALD2 emissions from Millet al. [2010]
Emily Fischer (CSU) Science " "
Monthly mean NEI2011 emissions GCST &
Katie Travis (Harvard)
Science " "
Bug fixes in the GEOS-Chem sulfate module:
Prasad Kasibhatla (Duke)
Prasad Kasibhatla (Duke)
Qianjie Chen (UW)
Viral Shah (UW)
Bug fix " "
Fix bug in dry deposition aerodynamic resistance Brian Boys (Dalhousie) Bug fix " "
Fix acetone parameterization in hcox_seaflux_mod.F90 GCST Bug fix " "
Bug fix in cos(SZA) for start of timestep Lizzie Lundgren (GCST) Bug fix " "
Include TOA pressure when calculating dry pressure edges Seb Eastham (Harvard) Science " "
Features not affecting the full-chemistry simulation:
Implement ISORROPIA v2.0 as a Fortran module Seb Eastham (Harvard) &
GCST
Structural " "
Updates to the HEMCO emissions component:
Christoph Keller (NASA GMAO)
Seb Eastham (Harvard)
Jessica Morena (Dalhousie)
Brian Boys (Dalhousie) & GCST
Structural
& Bug fix
" "
Updates to gain computational speedup:
Mike Long (Harvard)
Bob Yantosca (GCST)
Structural
& Bug fix
" "
Fixed typo in INIT_WINDOW Bob Yantosca (GCST) Bug fix " "
netCDF file I/O updates:
Chris Holmes (Florida State)
Andy Jacobson (NOAA)
GCST
Bug fix &
Structural
" "
Makefile and build sequence updates:
Jiawei Zhang (Harvard)
GCST
Bug fix &
Structural
" "
Bug fixes for running UCX in ESMF environment Christoph Keller (NASA GMAO) Bug fix " "
Bug fixes for diagnostics:
Aaron van Donkelaar (Dalhousie)
Jenny Fisher (U. Wollongong)
GCST
Jenny Fisher (U. Wollongong)
Chris Holmes (Florida State)
Bug fix " "
Removal of obsolete variables: GCST Structural " "

New data directories

The following HEMCO data directories have been added or updated for GEOS-Chem v11-02. You will have to download the directories relevant to your simulation.

Inventory What was added? When added? Directory
MEGAN Global 0.25x0.3125 CLM4 PFT and emission factor input files for MEGAN v11-02f HEMCO/MEGAN/v2017-07/
MODIS LAI Updated 0.25 x 0.25 MODIS LAI files (2005-2011) v11-02f CHEM_INPUTS/MODIS_LAI_201707/
Lightning NOx GEOS-FP OTD-LIS redistribution factors for Apr 2012 - Jul 2017 and MERRA-2 OTD-LIS redistribution factors for any date v11-02f HEMCO/LIGHTNOX/v2017-09/
Volcanic SO2 emissions OMI-based volcanic emissions for 2005-2012 v11-02f HEMCO/VOLCANO/v2018-03/
APEI Historical Canadian emissions v11-02f HEMCO/APEI/v2016-11/
EDGAR v4.3 Annual global anthropogenic emissions for 1970-2010 at 0.1x0.1 resolution v11-02f HEMCO/EDGARv43/v2016-11/
C2H6_2010 Global fossil fuel and biofuel emissions of C2H6 for 2010 v11-02f HEMCO/C2H6_2010/v2017-05/
DICE-Africa Biofuel and diffuse anthropogenic emissions for Africa v11-02f HEMCO/DICE_Africa/v2016-10/
Trash burning emissions Global trash burning emissions from Wiedinmyer et al. (2014) v11-02f HEMCO/TrashEmis/v2015-03/
SEABIRD NH3 NH3 emissions from arctic sea birds v11-02f HEMCO/NH3/v2018-04
OMOC Spatially varying OM/OC ratio v11-02e HEMCO/OMOC/v2018-01
NOAA GMD CH4 Monthly mean surface methane distributions v11-02e HEMCO/NOAA_GMD/v2018-01
UCX Input files for applying linearized stratospheric chemistry production and loss rates saved out from a UCX simulation using GEOS-Chem v11-02d v11-02e HEMCO/UCX/v2018-02/
IODINE Monthly emission fluxes of organic iodine compounds (CH3I, CH2I2, CH2ICl, CH2IBr) from Carlos Ordonez. v11-02d HEMCO/IODINE/v2017-03/
GMI New symbolic links:
  • gmi.clim.RIPA.geos5.2x25.nc -> gmi.clim.RIP.geos5.2x25
  • gmi.clim.RIPB.geos5.2x25.nc -> gmi.clim.RIP.geos5.2x25
  • gmi.clim.RIPD.geos5.2x25.nc -> gmi.clim.RIP.geos5.2x25
  • gmi.clim.IPMN.geos5.2x25.nc -> gmi.clim.PMN.geos5.2x25
  • gmi.clim.NPMN.geos5.2x25.nc -> gmi.clim.PMN.geos5.2x25
v11-02c HEMCO/GMI/v2015-02/
QFED Data for 2014-2016 v11-02b HEMCO/QFED/v2014-09/
NEI2011 North American emissions Monthly mean data files (created from the existing hourly data in HEMCO/NEI2011/v2015-03) v11-02a HEMCO/NEI2011/v2017-02-MM/
ALD2 Fields for ALD2 emissions, including:
  • Seawater concentration of acetaldehyde
  • Heterotrophic respiration rates, used to compute biogenic emissions of ALD2 and EOH

(added with the PAN updates)

v11-02a HEMCO/ALD2/v2017-03/
POET Anthropogenic emissions of ethanol from the POET inventory
(added with the PAN updates)
v11-02a HEMCO/POET/v2017-03/
Soil NOx New file: DepReservoirDefault.nc
Read default DEP_RESERVOIR fields from file when not found in HEMCO restart file
v11-02a HEMCO/SOILNOX/v2014-07/

Validation

In this section we provide information about the benchmarks and tests that we have done to validate GEOS-Chem v11-02.

1-month and 1-year benchmarks

For complete information about the benchmark simulations used to validate GEOS-Chem v11-02, please see our GEOS-Chem v11-02 benchmark history wiki page.

Unit tests for GEOS-Chem v11-02

We perform a full set of unit tests on GEOS-Chem on an almost daily basis. These tests ensure that each new feature being added does not break any existing functionality.

Here are the unit tests that we ran before submitting 1-month benchmark simulation for v11-02. Click on the links below to see the results from each set of unit tests:

Unit test Date
v11-02a 17 Apr 2017
v11-02b 18 May 2017
v11-02c 5 Sep 2017
v11-02d 5 Jan 2018
v11-02e 07 Mar 2018
v11-02f 02 May 2018

Previous issues now resolved in GEOS-Chem v11-02

The following bugs and/or technical issues have been resolved in v11-02.

Removed the NNPAR parameter from CMN_SIZE_mod.F

This update was included in v11-02a and approved on 12 May 2017.

The NNPAR parameter is a holdover from when we used COMMON blocks to store GEOS-Chem arrays. With the advent of the GEOS-Chem species database, we now use State_Chm%nSpecies to represent the total number of species in the chemistry mechanism, and State_Chm%nAdvect to represent the total number of advected species.

We have therefore removed the following lines (in RED) from CMN_SIZE_mod.F:

      !=================================================================
      ! TRACER & EMISSION SPECIES PARAMETERS
      !
      ! NNPAR   = max number of tracers
      ! NEMPARA = max number of anthropogenic emission species
      ! NEMPARB = max number of biogenic      emission species
      !=================================================================
      ! increase NNPAR and NEMPARA an extra amount (hotp 7/31/09)
#if   defined( TOMAS )
# if    defined( TOMAS40 )
      INTEGER,    PARAMETER :: NNPAR   = 430   ! For TOMAS40 (sfarina 6/11/13)
# elif  defined( TOMAS15 )
      INTEGER,    PARAMETER :: NNPAR   = 205   ! For TOMAS15 (sfarina 6/11/13)
# elif  defined( TOMAS12 )
      INTEGER,    PARAMETER :: NNPAR   = 178   ! For TOMAS12 (sfarina 6/11/13)
# else
      INTEGER,    PARAMETER :: NNPAR   = 340   ! For TOMAS (win, bmy, sfarina 6/11/13)f
# endif
#else
      INTEGER,    PARAMETER :: NNPAR   = 150   ! For non-TOMAS simulations
#endif

--Bob Yantosca (talk) 20:27, 17 March 2017 (UTC)

Print the version number to the log file

This update was included in v11-02a and approved on 12 May 2017.

In routine DISPLAY_GRID_AND_MODEL of GeosCore/main.F, we now print out the version number, e.g.

Using GEOS-Chem version: v11-02

to the log file (i.e. stdout output stream). This will facilitate debugging.

--Bob Yantosca (talk) 18:21, 16 March 2017 (UTC)

Include TOA pressure when calculating dry pressure edges

This fix was included in v11-02a and approved on 12 May 2017.

For physicality and consistency with GCHP, the top-of-atmosphere (TOA) pressure is now included when calculating dry pressure edges. The following lines in GeosCore/dao_mod.F were changed from:

     ! Reset dry surface pressure to zero
     PS_DRY = 0.0e+0_fp

to:

     ! Reset dry surface pressure to TOA value
     PS_DRY = GET_AP(LLPAR+1)

--Melissa Sulprizio (talk) 20:47, 14 April 2017 (UTC)

ND26 vertical flux diagnostic does not yield mass balance in advection

This update was included in v11-02b and approved on 16 Jun 2017.

To achieve mass balance in the advection diagnostic output (ND24, ND25, and ND26) Ilya Stanevic (U. Toronto) suggested that the FZ array be used to compute the ND26 vertical mass flux diagnostic for all levels. This is similar to how FX is used for ND24 and FY for ND25. Note that this fix is only for global advection since the FZ array is not defined for the nested model. With this update, the global ND26 vertical flux diagnostic is defined as the flux into the grid box above (e.g. ND26(:,:,1) is flux from level 1 to level 2 and ND26(:,:,LLPAR) is all zeros).

--Lizzie Lundgren (talk) 21:41, 9 May 2017 (UTC)

ND40 planeflight diagnostic not always written out when turned on

This update was included in v11-02b and approved on 16 Jun 2017.

We have moved the discussion of this issue to our Planeflight diagnostics wiki page.

CO2 emissions unit conversion not consistent with new advection pressure

This update was included in v11-02b and approved on 16 Jun 2017.

We have moved the discussion of this issue to our CO2 simulation wiki page.

--Lizzie Lundgren (talk) 19:44, 10 May 2017 (UTC)

Fixed an incorrect format statement in input_mod.F

This update was included in v11-02c and approved on 21 Sep 2017.

Chris Holmes wrote:

An incorrect format specification caused GEOS-Chem to crash rather than write a helpful error message when the transport timestep is too big. The code in RED was removed and the lines in GREEN was added at approximately line 3324 of input_mod.F.

        IF ( Input_Opt%TS_DYN > MAX_DYN .and. LTRAN ) THEN
           write(MSG,'(I8,a,L)') '<>', Input_Opt%TS_DYN, Input_Opt%HPC
           WRITE( MSG, 300 ) 'Transport timestep exceeds max:',
    &                         Input_Opt%TS_DYN, MAX_DYN
300        FORMAT( a, i8, ' >', i8 ) 
           CALL ERROR_STOP( MSG, LOCATION )
        ENDIF

--Bob Yantosca (talk) 17:55, 18 April 2017 (UTC)

Bug fixes for the ND50 timeseries diagnostic

This update was included in v11-02c and approved on 21 Sep 2017.

Chris Holmes wrote:

I have found what I suspect are two bugs in ND50.

1. Function ITS_TIME_FOR_WRITE_DIAG50() checks if the integer part of the hour is zero to decide whether to write to disk. With the 20 minute time steps recommended in v11-01, Diag50 gets written and overwritten multiple times in the first hour of every day! The fix is simply to have this function return TRUE if the GMT time is 00:00.

2. Within WRITE_DIAG50 there is the following block of code

        ! Pick the proper divisor, depending on whether or not the
        ! species in question is archived only each chem timestep
        SELECT CASE ( ND50_TRACERS(W) )
           CASE (91, 92, 76, 77 )
              DIVISOR = COUNT_CHEM3D
           CASE DEFAULT
              DIVISOR = COUNT
        END SELECT

I see nothing special about tracers 76, 77, 91, and 92 that should make them divided by a different number. The special tracers numbers are all >= 150 for ND50. I suspect this is left over from a previous code revision. I think it should be DIVISOR=COUNT for all ND50_Tracers.

--Bob Yantosca (talk) 14:42, 14 April 2017 (UTC)

Add MERRA2 to #if and #elif statements where it had been omitted

This update was included in v11-02c and approved on 21 Sep 2017.

Jiawei Zhuang wrote:

In v11-02, (commit 8d27b9a), I am trying to unify defined( GEOS_FP ) and defined( MERRA ) by a adding a new tag defined( FlexGrid ). However, I find some model codes that treat them differently without explanation:

(1) In GeosCore/convection_mod.F: At the #if statement at line 1443, MERRA2 will execute the #else block. But it should execute the #if block:

      #if defined( GEOS_5 ) || defined( GEOS_FP ) || defined( MERRA )
          ! Do nothing, these are all hybrid grids
      #else
          ... etc ...

(2) In HEMCO/Core/hco_interp_mod.F90, MERRA2 will skip the #elif block at line 531:

      #elif defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
          ! Full grid
          ... etc ...

(3) At line 1193 of GeosCore/hcoi_gc_main_mod.F90, I noticed what appears to be a typo:

      #if defined ( GEOS_FP ) || ( MERRA2 )

(4) At line 779 of GeosCore/land_mercury_mod.F, I noticed this #if block, which could be written better:

            IF ( FIRSTTIME ) THEN
      #if !defined( MERRA2 ) || !defined( GEOS_FP )
               WRITE( 6, * ) 'WARNING: Snow emission parameterization '//
         &       'designed for use with incident '
               WRITE( 6, * ) 'shortwave radiation. Only net shortwave '//
         &       'radiation available.'
      #endif
               FIRSTTIME = .FALSE.
           ENDIF

(5) In KPP/Standard/gckpp_HetRates.F90, there are 3 places that seem to miss defined (MERRA2):

      ! continental or marine clouds only...
#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
      IF ( (FRLAND (I,J) > 0) .or. (FROCEAN(I,J) > 0) ) THEN
#else
      ! Above line is to skip over land ice (Greenland and Antartica). This
      ! should do the same (and also work for GEOS-5, but leave above for now).
      IF ( IS_LAND .and. .not. IS_ICE  ) THEN
#endif

#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
      IF ( FRLAND(I,J) > FROCEAN(I,J) ) THEN
#else
      IF ( IS_LAND ) THEN
#endif

#if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP )
      ! QL is [g/g]
      Vc = CLDF(I,J,L) * QL * AD(I,J,L) / dens_h2o
#else
      ! QL is [cm3/cm3]
      Vc = CLDF(I,J,L) * QL * XAIRM3
#endif

These appear to have been oversights. To fix the issues, simply add the code in GREEN to the #if blocks mentioned above:

 At line 1443 of convection_mod.F: 
 #if defined( GEOS_5 ) || defined( GEOS_FP ) || defined( MERRA ) || defined( MERRA2 )

 At line 531 of hco_interp_mod.F90:
 #elif defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )
 
 At line 1193 of hcoi_gc_main_mod.F90
 #if defined( GEOS_FP ) || defined( MERRA2 )

 At line 779 of land_mercury_mod.F:
 #if defined( GEOS_FP ) || defined( MERRA2 )
    ! do nothing
 #else
     WRITE( 6, * ) ... etc ...

 At lines 1953, 2029, and 2047 of KPP/Standard/gckpp_HetRates.F90
 #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_FP ) || defined( MERRA2 )

--Bob Yantosca (talk) 20:28, 22 May 2017 (UTC)

Code cleanup suggestions

Suggestion 1 was included in v11-02c and approved on 21 Sep 2017.

Suggestion 2 (Git ID: d06ae04a) was included in GEOS-Chem 12.1.0, which was released on 26 Nov 2018.

Chris Holmes wrote:

I have a few housekeeping suggestions that I think would be helpful to GC users.
  1. Combine all of the timestep settings in input.geos in a single “Timesteps” menu. With the default timesteps being much shorter now, there seems to be much more interest in changing these timesteps (e.g. do model development with large time steps, then publication runs with small time steps), myself included. It would be nice to change all of the time steps in one place. Besides making it easier to double or halve them all, a single menu would also help clarify whether the time steps for each process have the recommended 1:2 ratio for operator splitting.
  2. Move all of the photolysis and aerosol optics data files out of the run directory and into a folder in ExtData. That would allow them to be documented, tracked and updated like emissions. As far as I have seen, these files are rarely modified by users, so they don’t need to be in the run directory. That would include the following files...
      brc.dat
      dust.dat
      FJX_j2j.dat
      FJX_spec.dat
      h2so4.dat
      jv_spec_mie.dat
      org.dat
      so4.dat
      soot.dat
      ssa.dat
      ssc.dat

The .dat files required for FAST-JX can now be found in CHEM_INPUTS/FAST_JX/v2018-09/.

--Melissa Sulprizio (talk) 16:37, 19 July 2017 (UTC)

Update CH4 latitude bands for 2014-2016

This update was included in v11-02d (approved 12 Feb 2018).

The last year of latitudinal CH4 concentration data (based on CMDL flask observations) was 2013. (Data is provided in 4 latitude bands: 90°S-30°S, 30°S-0°N:, 0°N-30°N, 30°N-90°N.) Katherine Travis has updated the subroutine get_global_ch4.F with additional years of latitudinal CH4 data from 2014 thru 2016.

Lee Murray will provide additional latitudinal CH4 concentration data through present day, once it is available. See this post on our NOx-Ox-HC-aerosol wiki page for more information.

--Melissa Sulprizio (talk) 15:16, 5 September 2017 (UTC)
--Bob Yantosca (talk) 21:59, 20 February 2018 (UTC)

Add bug fixes for GLYX, MGLY, IEPOX, and IMAE heterogeneous chemistry added in v11-02c

This update was included in v11-02d (approved 12 Feb 2018).

Sebastian Eastham wrote:

There’s a bug in the v11-02c het rate code. In KPP/Standard/gckpp_HetRates.F90, many of the dedicated routines (e.g. HetIMAE) loop over NAERO. The loop looks like
   Do N=1,NAERO
      ! [Comment]
      If (N==8) Then
         XSTKCF = [number] 
      End If
      If (N == 13) Then
         ADJUSTEDRATE = XAREA(N)*XSTKCF
      Else
         ADJUSTEDRATE = ARSL1K( XAREA(N), XRADI(N), XDENA, XSTKCF, XTEMP, (A**0.5_FP) )
      End If
      Het_IMAE = Het_IMAE + ADJUSTEDRATE
   End Do
The problem here is that every aerosol after aerosol 8 is inheriting the sticking coefficient from aerosol 8. Crucially, this includes SOAS – so the fact that the simple SOA tracer is missing could affect this. GCC is artificially increasing the het rate on all aerosols because of this bug, whereas GCHP is not. Fixing this would be as simple as inserting either XSTKCF = 0.0 or XSTKCF = B at the start of the loop, where I’ve written ! [Comment]. The question of which is correct is really a science question (probably XSTKCF = B, although I’d ask the original authors). However, what’s definitely true is that one of these two options needs to be put in or the result of the calculation will be wrong.
Fixing this bug is likely to change SOA burdens in both GCC and GCHP. In gckpp_HetRates, the following routines are definitely affected:
  • HetGLYX
  • HetMGLY
  • HetIEPOX (forms SOAIE)
  • HetIMAE (forms SOAME)
The other het routines look like they have the correct form (either by a "header" of XSTKCF = B, or because they have an If...ElseIf...Else...End clause that catches all possible values of N and sets XSTKCF accordingly).

The solution is to set XSTKCF = TINY(1e0) where ! [Comment] is in the code snippet above, following what is done in Eloise Marais's version of calcrate.F.

--Melissa Sulprizio (talk) 17:57, 20 September 2017 (UTC)

Add fix for IPMN reactions contributing to high P(Ox) and L(Ox)

This update was included in v11-02d (approved 12 Feb 2018).

During the 1-year benchmark for v11-02d, Lu Hu pointed out an issue in the O3 budget where P(Ox) and L(Ox) were too high (~40000 Tg/yr compared to the expected 4000-5000 Tg/yr). This issue was tracked to the following reactions in the chemical mechanism:

IMAO3 + NO2 {+M} = IPMN  # Impacts L(Ox)
IPMN = IMAO3 + NO2       # Impacts P(Ox)

Eloise Marais wrote:

I'd suggest just using the same reaction rate values as for NPMN: non-isoprene PMN, as the reaction rates I used come from a rather speculative chemical mechanism anyway proposed by Lin et al., 2013 (http://www.pnas.org/content/suppl/2013/04/03/1221150110.DCSupplemental/pnas.201221150SI.pdf) and the isoprene SOA that these reactions form is relatively minor.

This fix involves changing the reactions rates for the following IPMN reactions in the .eqn files from:

IMAO3 + NO2 {+M} = IPMN : GCJPLPR(1.21E-11, 1.1E+00, 0.0, 7.7E-12, 0.2, 0.0, 0.6, 0.0, 0.0);
NMAO3 + NO2 {+M} = NPMN : GCJPLPR(9.00E-28, 8.9E+00, 0.0, 7.7E-12, 0.2, 0.0, 0.6, 0.0, 0.0);
IPMN = IMAO3 + NO2 : GCJPLEQ(1.60E+16, 0.0E+00, -13486.0, 9.00E-28, 8.9E0, 0.0, 7.7E-12, 0.2, 0., 0.6, 0., 0.);
NPMN = NMAO3 + NO2 : GCJPLEQ(9.00E-29, 0.0E+00, 14000.0, 9.00E-28, 8.9E0, 0.0, 7.7E-12, 0.2, 0., 0.6, 0., 0.);

to:

IMAO3 + NO2 {+M} = IPMN : GCJPLPR(9.00E-28, 8.9E+00, 0.0, 7.7E-12, 0.2, 0.0, 0.6, 0.0, 0.0);
NMAO3 + NO2 {+M} = NPMN : GCJPLPR(9.00E-28, 8.9E+00, 0.0, 7.7E-12, 0.2, 0.0, 0.6, 0.0, 0.0);
IPMN = IMAO3 + NO2 : GCJPLEQ(9.00E-29, 0.0E+00, 14000.0, 9.00E-28, 8.9E0, 0.0, 7.7E-12, 0.2, 0., 0.6, 0., 0.);
NPMN = NMAO3 + NO2 : GCJPLEQ(9.00E-29, 0.0E+00, 14000.0, 9.00E-28, 8.9E0, 0.0, 7.7E-12, 0.2, 0., 0.6, 0., 0.);

In addition IPMN should be added to the Ox family in gckpp.kpp:

POx : O3 + NO2 + 2NO3 + PAN + NPMN + IPMN + PPN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + ISN1 + ISOPNB + ISOPND + MACRN + MVKN + PROPNN + R4N2 + INPN + ISNP + INO2 + ISNOOA + ISNOOB + ISNOHOO + MAN2 + PRN1 + PRPN + R4N1 + PMNN + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4;
LOx : O3 + NO2 + 2NO3 + PAN + NPMN + IPMN + PPN + HNO4 + 3N2O5 + HNO3 + BrO + HOBr + BrNO2 + 2BrNO3 + MPN + ETHLN + ISN1 + ISOPNB + ISOPND + MACRN + MVKN + PROPNN + R4N2 + INPN + ISNP + INO2 + ISNOOA + ISNOOB + ISNOHOO + MAN2 + PRN1 + PRPN + R4N1 + PMNN + MACRNO2 + ClO + HOCl + ClNO2 + 2ClNO3 + 2Cl2O2 + 2OClO + O + O1D + IO + HOI + IONO + 2IONO2 + 2OIO + 2I2O2 + 3I2O3 + 4I2O4;

After implementing those fixes, the chemical mechanisms will need to be rebuilt with KPP.

--Melissa Sulprizio (talk) 21:42, 25 January 2018 (UTC)

Remove support for GCAP, GEOS-4, MERRA, GEOS-5

This update was included in v11-02d (approved 12 Feb 2018).

Daniel Jacob wrote to the GEOS-Chem Steering Committee:

I met today with the GCST and they brought up again the issue of discontinuing support for old met fields (GEOS-4, GEOS-5, MERRA) in GEOS-Chem. They told me that it would benefit the code structurally to stop supporting these old met fields, also that GCHP will not be able to use them since the data are in binary format. We would also reclaim some disk storage, and we would satisfy GMAO who doesn’t like that we’re using these old met fields.
We will discontinue support for the old met fields (MERRA, GEOS-4, GEOS-5) in future model versions BUT we will keep the data archives [at Dalhousie] at least for now.

Loretta Mickley consulted with Lee Murray, Amos Tai, and Jeff Geddes of the Chemistry-Ecosystems-Climate Working Group and wrote:

It looks like we can safely retire the GCAP met fields and #ifdef GCAP sections of the code now. As Lee describes, there are other capabilities in use by the chemistry-climate community that we will eventually implement into standard code.
I believe we currently have GCAP2 met fields stored at Harvard, and these should be maintained. GCAP2 consists of met fields from the GISS ModelE2.1 present-day and future. Lee Murray and Eric Leibensperger created these files, after a lot of work!

--Melissa Sulprizio (talk) 16:11, 2 November 2017 (UTC)
--Bob Yantosca (talk) 21:59, 20 February 2018 (UTC)

Bug fixes for aerosols in v11-01

This fix was included in v11-02c.

Jingyuan Shao (UW) wrote:

When I use GEOS-Chem v11-01, I found two small bugs in the codes.
The first is described in more detail at this post on our ISORROPIA II wiki page.
Second, In aerosol_mod.F(line 2077) from
     ! Mass of hydrophilic aerosol from Mian Chin
     ALLOCATE( WAERSL(IIPAR,JJPAR,LLPAR,NAER), STAT=AS)
     IF ( AS /= 0) CALL ALLOC_ERR( 'WAERSL' )
     DAERSL = 0d0
to
     ! Mass of hydrophilic aerosol from Mian Chin
     ALLOCATE( WAERSL(IIPAR,JJPAR,LLPAR,NAER), STAT=AS)
     IF ( AS /= 0) CALL ALLOC_ERR( 'WAERSL' )
     WAERSL = 0d0

The fix in aerosol_mod.F was included in v11-02c with the implementation of aqueous isoprene uptake updates from Eloise Marais.

--Melissa Sulprizio (talk) 16:28, 15 November 2017 (UTC)

Remove MONX from chemical mechanisms

This update was included in v11-02e (approved 24 Mar 2018).

Sam Silva (MIT) wrote:

I was wondering why there were three monoterpene species in the chemical mechanism: MTPA (lumped alpha pinene), LIMO (lumped limonene) and then MONX (all monoterpenes).
MONX doesn’t play with any of the monoterpene nitrate chemistry, it just is converted into 3 formaldehyde:
   MONX = 3.000CH2O :                          GCARR(1.07E-05, 0.0E+00, 0.0);
It seems like having the MONX group (all monoterpenes) and the speciated lumped monoterpenes is an inconsistency. Ultimately, I’m interested in adding Glyoxal formation from monoterpenes, and it’s not clear to me how to properly do that, given the three different species.
Do you know of a reason why MONX is still in the mechanism?

Melissa Sulprizio responded:

I had a look through the Git history of the globchem.dat file. The MONX -> 3CH2O reaction was originally included in the SOA mechanism. Just prior to the v10-01 public release, the GEOS-Chem Steering Committee requested that we include SOA chemistry in the benchmark simulations. At that time, MONX was made an active species and the MONX -> 3CH2O reaction was added to the globchem.dat file for the benchmark simulations. No other monoterpene chemistry was included in that chemical mechanism at the time.
In v11-02a, we introduced monoterpene chemistry during Emily’s PAN updates. At that time MTPA was introduced. The monoterpene chemistry was further modified and expanded upon in v11-02c following Jenny’s updates originally made for SEAC4RS.
Looking back at Emily’s original PAN updates that she sent to us (based on v9-02h), it looks like MONX is a dead species in globchem.dat and the MONX -> 3CH2O reaction is not included. That may have been an oversight during the PAN updates implementation. Since Emily’s globchem.dat did not include the SOA chemistry by default and our standard/benchmark mechanism did, it wasn’t clear that we should remove the MONX species and reaction.

The MONX species will be removed from GEOS-Chem mechanisms in v11-02e, upon the recommendation given to us by Emily Fischer. This update also requires the addition of the MTPO species to represents all the monoterpenes not covered by species MTPA. See this post on our Secondary organic aerosols wiki page for more details.

--Melissa Sulprizio (talk) 16:28, 15 November 2017 (UTC)

Fix dust rainout settings to match BCPO

This update was included in v11-02e (approved 24 Mar 2018).

Colette Heald (MIT) wrote:

BCPO/DST1-4: are all "insoluble" but can act as IN, so I think the DST RainEff should be modified to [1,1,0] to match BCPO

--Lizzie Lundgren (talk) 15:44, 30 November 2017 (UTC)

Change timestep units from minutes to seconds

This update was included in v11-02e (approved 24 Mar 2018).

Andrea Molod (GMAO) wrote:

As part of the side by side testing of GMI and GEOSChem chemistry in our coupled framework, we have run across a small but annoying issue. The "annoyance" is that the geoschem code does not accomodate a call at a time step that is not a multiple of a minute. our current model "heartbeat" is 450 seconds (for many reasons) at what is now a wide range of resolutions, and we end up having to run with geoschem at 300 seconds (for other reasons internal to GEOS).

To address this issue, the timestep duration specifications in the configuration file input.geos will be changed from minutes to seconds. The data type will stay as integer. This change has implications for the GEOS-Chem source code. Subroutines of form GET_TS_{component} now return seconds instead of minutes and usages of time units since a reference time must incorporate seconds as well as minutes in the calculation.

--Lizzie Lundgren (talk) 23:19, 29 January 2018 (UTC)

Fixes for two new ND21 binary diagnostics introduced in v11-02

This update was included in v11-02e (approved 24 Mar 2018).

Two new ND21 diagnostics introduced in v11-02c are assigned to the wrong tracer numbers in the AD21 array written to binary output. The optical depth of SOA from aqueous isoprene is written to tracer 34 but should be written to tracer 58. The aqueous aerosol volume is written to tracer 35 but should be written to tracer 59.

These tracer number errors resulted in an inconsistency with metadata supplied by GAMAP and prevented the diagnostics from being written to file during a full chemistry simulation. The new diagnostics also overwrite the dust AOD wavelength 2 diagnostics for bins 2 and 3 if run with RRTMG. A parallelization issue in setting one of the diagnostics is also present.

To get around these issues in v11-02c and v11-02d, replace AD21 index 34 with 58 and 35 with 59 where the diagnostics are set in aerosol_mod.F and declare local variable TAERVOL as private in the OMP loop in subroutine RDAER.

--Lizzie Lundgren (talk) 23:19, 29 January 2018 (UTC)

Use spun-up restart file to initialize benchmark simulations

This update was included in v11-02e (approved 24 Mar 2018).

Starting in GEOS-Chem v11-02e, we have replaced the default restart file (initial_GEOSChem_rst.4x5_standard.nc) used to initialize 1-month benchmark simulations and UCX-based simulations in general. The previous default restart file had not been spun up in many years, so several species concentrations did not reflect updates to the model. The new restart file was obtained from the 1-year benchmark v11-02d-Run2 and has been spun up for many years. The updated restart file also allowed us to remove the initial stratospheric 2D mixing ratio option from input.geos and use the values provided by the restart file to initialize species concentrations for the relevant UCX species.

--Melissa Sulprizio (talk) 18:26, 16 March 2018 (UTC)

Restore use of prod/loss rates from GMI in the mesosphere for UCX-based simulations

This update was included in v11-02f (approved 17 May 2018).

Following the implementation of the prod/loss rates from UCX in v11-02e, it was discovered that we need to restore the use of prod/loss rates from GMI in the mesosphere for UCX-based simulations. The prod/loss rates saved out from a UCX simulation via KPP are only saved out on 59 levels (i.e. the maximum number of levels in the chemistry grid). Values in levels 59-72 (~1 hPa to ~ 0.01 hPa according to our vertical grids wiki page) are set to zero.

Chris Holmes wrote:

I think it’s important to do some kind of mesospheric P/L in the UCX simulations. If we’re going to have a stratospheric chemistry capability in GEOS-Chem, we need to have a reasonable upper boundary condition (and zero P/L in the mesosphere is not reasonable). It seems to me that the easiest thing is to retain the GMI P/L in the mesosphere in UCX simulations.

Sebastian Eastham wrote:

I think that's the most sensible approach for now. One additional point that's worth raising is that, in the course of the evaluation of the UCX by the GMI group, they actually ended up extending the UCX up into the mesosphere. This removed the need for any mesospheric paramaterizations, and did not involve adding any new chemistry or code. They found that this gave the same results as the GMI model - no big surprise since the GMI and UCX models are very similar, and the GMI model is already run up to the model top. As a result we may want to consider (in v11-03) adding an "extended UCX" option which runs UCX directly up to the model top which will resolve this problem when generating P/L data. It will also allow interested users to avoid reading in all the P/L data (a not-insignificant startup cost) or using mesospheric paramaterizations.

--Bob Yantosca (talk) 15:56, 17 May 2018 (UTC)

Fix bug in units of UCX P/L rates

This update was included in v11-02f (approved 17 May 2018).

Christoph Keller wrote:

I think I found a bug in the implementation of the UCX P/L rates: in subroutine Set_PLVEC (in strat_chem_mod.F90), there is a unit conversion of the UCX P/L fields (from molec/cm3/s to v/v/s and 1/s, respectively), which will be erased after the first simulation month because the arrays in the PLVEC(:) structure are only *pointers* to the 3D fields managed by HEMCO (PLVEC(N)%PROD and PLVEC(N)%LOSS). After the first simulation month, HEMCO automatically updates the UCX P/L arrays (because they change monthly), thus overwriting the unit conversion performed in Set_PLVEC. So I'd expect the first month to be ok but then after the second month, GEOS-Chem will actually apply UCX P/L loss rates that are in molec/cm3/s instead of v/v/s and 1/s.
In short, the arrays in PLVEC (PLVEC(N)%PROD and PLVEC(N)%LOSS) should not be modified because HEMCO changes them automatically.

The solution for this issue is to apply the unit conversion to the prod/loss rates at the time that we copy them into the loss frequency (k) and production term (P) variables in routine DO_STRAT_CHEM.

--Bob Yantosca (talk) 15:56, 17 May 2018 (UTC)

Use 1x1 GEIA NH3 emissions

This update was included in v11-02f (approved 17 May 2018), but was later removed in v11-02-release-candidate. See below for details.

Eleanor Morris wrote:

We have been looking at the ammonia emissions in the model in our comparisons to observational data from Africa and have a couple of questions.
Although the GEIA anthropogenic emissions are overwritten by other inventories, for Africa at least, the model still uses the GEIA Natural and Biofuel emission of NH3:
    GEIA_NH3_BIOF $ROOT/NH3/v2014-07/NH3_biofuel.geos.4x5.nc NH3_BIOFUEL 1998/1-12/1/ C xy  kg/m2/s NH3 - 2 1
    GEIA_NH3_NATU $ROOT/NH3/v2014-07/NH3_geos.4x5.nc         NH3_NATU    1990/1-12/1/ C xy  kg/m2/s NH3 - 3 1
The standard HEMCO_Config.rc file uses the 4x5 degree resolution emission files (NH3_biofuel.geos.4x5.nc and NH3_geos.4x5.nc) although there are files at 1x1 degree resolution in the same directory (NH3_biofuel.geos.1x1.nc and NH3_geos.1x1.nc). We were wondering why the default setting is to use the 4x5 degree resolution rather than the 1x1 degree resolution? It looks like the original GEIA NH3 emissions are at 1x1 degree resolution.
There are large differences between the files at different resolutions. Attached are some plots of the NH3 natural emissions for the three resolutions of files in the $ROOT/NH3/v2014-07 folder. When we calculate the total global burden, the 1x1 degree emissions give a total of ~26 Tg NH3 yr-1 which is relatively similar to the Park et al. Transboundary Pollution paper which quotes 20 Tg N yr-1 global natural ammonia emissions. The 4x5 degree emissions are a factor of 20 lower than this and we wondered whether perhaps there was an error in the re-gridding from 1x1 degree to 4x5 degree?
When we run our simulation using the default 4x5 degree emissions, the modelled ammonia concentrations are too low compared to observations, whereas when we run with the 1x1 degree resolution emissions we get much better agreement.
We just wanted to know whether there was a reason that 4x5 is used as the standard emissions instead of 1x1 degree, and if not whether the HEMCO_Config.rc file might need updating to use the 1x1 degree emissions instead?

Bob Yantosca wrote:

I am not 100% sure why we still use the GEIA NH3 emissions at 4x5 in the HEMCO. It may have been that while we were developing HEMCO, we needed to keep those NH3 emissions at 4x5 in order to better match the emissions in the pre-HEMCO code, so that we could get “apples-to-apples” comparisions. It could have been as simple as that. I would recommend bringing this to the attention of the Emissions and Deposition Working Group.

Eloise Marais wrote:

GCST, in summary, can we use the GEIA natural NH3 emissions file at 1x1 resolution rather than 4x5? Currently the default is 4x5 and Eleanor from U York found large differences between these two files, where the 1x1 emissions are more consistent with observations. It looks like GEIA natural NH3 will eventually be retired and replaced with emissions that Amos Tai is working on, so this would be an interim fix.

NOTE: The 1-year benchmark v11-02f-Run0 showed that the 1° x 1° NH3 emissions file was problematic, producing 20X too much emissions as expected. This is probably due to a regridding issue. We have since removed this update from the v11-02-release-candidate version and this issue remains open. (Bob Y., 07 Jun 2018).

GEIA anthro and biofuel NH3 are skipped if either CEDS or EDGARv43 is used

The GCST has confirmed that HEMCO's default behavior is to skip the following GEIA anthropogenic (GEIA_NH3_ANTH) and biofuel (GEIA_NH3_BIOF) if either the CEDS or EDGARv43 is selected as the global inventory. This is because these GEIA emissions are listed in the HEMCO_Config.rc files with a lower priority than CEDS or EDGARv43.

The GEIA NH3 natural emissions (GEIA_NH3_NATU) and emissions from arctic seabirds (SEABIRD_NH3) will always be read, regardless of the choice of global base inventory.

For more information, please see this post on our GEOS-Chem 12 wiki page.

--Bob Yantosca (talk) 16:09, 3 July 2018 (UTC)

Fix for organic nitrate chemistry

This update was included in v11-02f (approved 17 May 2018).

Xuan Wang wrote:

For MONIT and HONIT = INDOL + HNO3, I see from wiki we should use uptake rate of 2.78e-04 s-1 (lifetime = 1hour). However, we are setting gamma = 2.78e-04 s-1, not the uptake rate. I change it to manually setting the rate to 2.78e-04 s-1.

Jenny Fisher wrote:

In my version there were 3 gas-phase monoterpene nitrate species (MONITU, MONITS, HONIT) and one monoterpene nitrate aerosol species (let’s call it pONITm since it had a confusing name in my code), plus INDIOL.
In my version, for each gas phase species we had e.g. MONITU -> pONITm with gamma = 0.01
Then pONITm -> HNO3 + INDIOL with a lifetime of 1 hour (set as a simple first order rate constant, not as an uptake rate).

Xuan Wang wrote:

In v11-02, your pONITm seems to be IONITA and MONITA. For each gas it is like MONITU = MONITA with gamma = 0.01. For MONITA/IONITA =HNO3 + INDIOL, it is like this:
        ! Define gamma for MONITA 
        ! Imposed lifetime = 1 hour (Fisher et al., 2016)
        XSTKCF = 2.78e-4_fp
And later:
        ! Reaction rate for surface of aerosol
        ADJUSTEDRATE=ARSL1K(XAREA(N),XRADI(N),XDENA,XSTKCF,XTEMP, &
                              (A**0.5_FP))

Jenny Fisher wrote:

Ok, this does seem like an error I think, although I don’t really know how to fix it in the framework of v11-02. Should we even be using XSTKCF at all? Is there a way to do this in the v11-02 chemistry framework to just set the rate constant to 2.78e-4 s^-1?

Melissa Sulprizio wrote:

If you would like to just set the rate constant for this reaction to 2.78e-4 then we can change it from a heterogeneous reaction in the .eqn files (i.e. utilizing the HET function in gckpp_HetRates.F90) to a standard reaction utilizing the Arrhenius equation (i.e. function GCARR). For example:
    IONITA = INDIOL + HNO3 :  HET(ind_IONITA,1);  {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS}
    MONITA = INDIOL + HNO3 :  HET(ind_MONITA,1);  {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS}
becomes
    IONITA = INDIOL + HNO3 :  GCARR(2.78E-04, 0.0E+00, 0.0);  {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS}
    MONITA = INDIOL + HNO3 :  GCARR(2.78E-04, 0.0E+00, 0.0);  {2017/07/14; Fisher2016; KRT,JAF,CCM,EAM,KHB,RHS}

--Bob Yantosca (talk) 15:57, 17 May 2018 (UTC)

Fix compatibility issue with ifort17

This update was included in v11-02f (approved 17 May 2018).

GEOS-Chem v11-02e with the netCDF diagnostics option enabled is not compatible with Intel Fortran compiler 17.0.4 and likely other ifort17 versions as well. The source code compiles but a string concatenation error is encountered in state_diag_mod.F90 during run-time. It appears that ifort17 is stricter than earlier versions of intel compilers with regards to concatenating indexed character arrays. Setting the indexed character array to a temporary variable prior to concatenation prevents the issue.

--Bob Yantosca (talk) 16:09, 17 May 2018 (UTC)

KPP errors with halogen chemistry and tropchem-based mechanisms

This update was included in v11-02f (approved 17 May 2018).

Melissa Sulprizio wrote:

Katie Travis discovered an issue starting with v11-02d when the halogen chemistry updates were introduced. When running 2x2.5 tropchem simulations for an extended period (usually a month will do), GEOS-Chem crashes with a KPP integrator error. This happens for both GEOS-FP and MERRA-2 met fields. We don’t seem to encounter these errors for 2x2.5 standard (i.e. UCX-based) simulations. I’m wondering if we need to change the tolerance values in v11-02? Right now, in flexchem_mod.F we have:
   !%%%%% CONVERGENCE CRITERIA %%%%%

   ! Absolute tolerance
   ATOL      = 1e-2_dp  

   ! Relative tolerance
   IF ( Input_Opt%LUCX  ) THEN
      ! UCX-based mechanisms
      !RTOL      = 2e-2_dp
      !RTOL      = 1e-2_dp
      RTOL      = 0.5e-2_dp
   ELSE
      ! Non-UCX mechanisms
      RTOL      = 2e-1_dp
   ENDIF
I ran two simulations to see if we can resolve the issue in the 2x2.5 tropchem simulations. In the first simulation I changed the convergence criteria (RTOL) to 1e-1_dp following Mat's suggestion and in the second I changed the value to 1e-2_dp. In both simulations, we still get the integrator errors (Forced exit from Rosenbrock due to the following error: Step size too small...) but the 1-month runs finish successfully because the error is not encountered twice for a given grid box in a given timestep. Also, comparing the two simulations, we see the integrator errors at different times and for different grid boxes.

Barron Henderson wrote:

I have a couple thoughts that you may have already tried. They basically boil down to finding the few species at fault and tightening tolerances for everything else.
First, add a print statement for SPC_NAMES and VAR and in flexchem_mod.F90 when the IERR is -7. That will help us to quickly see if any concentrations at cells are unexpected.
Second, add a print statement for Yerr after 535 in gckpp_Integrator.F90. That should further isolate the source of error and will only print when the error is triggered.
Hopefully, a few species will jump out. Then, the tolerances can targeted. Right now, it looks like tolerances are set as a vector, but all values are identical. The values are pretty loose for many species, but I suspect they were chosen to allow integration for a few radical species. One common approach for this situation is to identify a few key species and set the ATOL/RTOL separately for those species.
    # set default
    ATOL = 1e-3
    RTOL = 1e-5
    # set species specific
    ATOL(ind_O1D) = 1e-2
    RTOL(ind_O1D) = 1e-2
    ATOL(ind_XXX) = 1e-2
    RTOL(ind_XXX) = 1e-2
Tightening the tolerances will make it more stable, and oddly often faster.

Mat Evans wrote:

So even if we set the tolerance to be 1e-2_dp we still get a convergence error. Its hard to know what to advise here. It sounds like we need a bit of work to be done looking at this and looking at the situation that the convergence fails and to get an understanding of when we get the problem. However given the pressure at the moment to get v11.2 done I think my advise would be for us to move to using 1e-2 in the interim and we come back to this.
The major problem I can see from this is in the run time. I don’t know how much longer the simulation is to run with this as the convergence criteria.

--Bob Yantosca (talk) 16:09, 17 May 2018 (UTC)

Disable Xiao propane emissions to avoid double-counting with CEDS

This fix was incldued in GEOS-Chem v11-02-rc (issued 22 Jun 2018).

Lizzie Lundgren wrote:

I am turning off the XIAO inventory in v11-02 but just noticed Daniel said "for propane" while Christoph said to turn off the entire inventory. Christoph pointed out this would avoid double-counting C2H6 since we also get it from [the C2H6_2010 inventory of] Tzompa-Sosa et al. (2017)

Christoph Keller wrote:

I should have been more specific: in the current configuration, XIAO emissions are only used for propane. For ethane, the Tzompa-Sosa emissions always have priority over XIAO (hierarchy of 1000 vs. 5) and XIAO ethane emissions are thus ignored. The problem with propane is that CEDS and XIAO have the same hierarchy (=5) and the emissions are therefore added. Just disabling XIAO will fix this - and won't have an impact on ethane.

--Bob Yantosca (talk) 18:54, 29 June 2018 (UTC)

Bug fix: Specifying NO_REDUCED=no now compiles GEOS-Chem for reduced grids

This fix was included in v11-02a and approved on 12 May 2017.

Jiawei Zhang wrote:

I found a small but annoying bug in Makefile_header.mk. The problem is that if I use NO_REDUCED=n (i.e. use 47 levels) as a compile option, then the makefile will treat it as NO_REDUCED=yes (i.e. use 72 levels). The LLPAR parameter will then be set to 72 instead of 47, leading to unexpected behavior. That's because Makefile_header.mk contains something like:

      # %%%%% REDUCED VERTICAL GRID (default, unless specified otherwise) %%%%
      ifndef NO_REDUCED
        USER_DEFS        += -DGRIDREDUCED
      else
        REGEXP           :=(^[Yy]|^[Yy][Ee][Ss])
        ifeq ($(shell [[ "$(NO_REDUCED)" =~ $(REGEXP) ]] && echo true),true)
        endif
      endif

The GRIDREDUCED C-preprocessor switch will only be activated if NO_REDUCED is not provided. The following "yes" or "no" just doesn't matter because the nested ifeq statement doesn't do anything. With this problem, the only way to compile a 47L model is NOT providing the NO_REDUCED option. It also affects compiling GEOS-Chem from the geosfp_4x5_tropchem rundir, because NO_REDUCED=n is one of the default options.

We have now fixed this issue by setting the NO_REDUCED Makefile variable to "no" by default, and then evaluating its value in a separate IF statement. This code has now been added to the Makefile_header.mk.

  # %%%%% REDUCED VERTICAL GRID (default, unless specified otherwise) %%%%
  ifndef NO_REDUCED
    NO_REDUCED       :=no
  endif
  REGEXP              :=(^[Nn]|^[Nn][Oo])
  ifeq ($(shell [[ "$(NO_REDUCED)" =~ $(REGEXP) ]] && echo true),true)
    USER_DEFS        += -DGRIDREDUCED
  endif

This fix now will compile GEOS-Chem for 47 levels when NO_REDUCED=no is specified, or if NO_REDUCED is omitted.

--Bob Yantosca (talk) 16:09, 1 March 2017 (UTC)

Outstanding issues not yet resolved in GEOS-Chem v11-02

GCHP issues

For a complete list of outstanding issues not yet resolved in GEOS-Chem v11-02 with High Performance option, see the outstanding issues section of the GCHP v11-02 wiki page.

Discrepancies in single-stage simulations vs multi-stage simulations

Jack Kodros wrote

I am having an issue re-starting simulations. I was trying to restart a simulation midway through the year using the restart file the sim had created, yet I noticed I started getting odd results.

To test things out I ran a tropchem sim starting in February and ran straight through until April. I then ran a second, separate, but identical sim with the March restart file and HEMCO restart file from the first sim. I then compared the two sim outputs for the month of March. I had expected to get identical results, but instead I get small differences. I am attaching a percent change plot of OC, BC, NH3, and SO4 from this simulation showing the changes.

This is a concerning issue for me because I will now get different results if my simulation runs straight through or if I have to restart the simulation part way through.

Christoph Keller wrote:

At least for standard GEOS-Chem the updates should be pretty simple. It should be as easy as adding a few more variables to the GEOS-Chem and HEMCO restart files:

  1. Move PSC_RESTART variable from HEMCO restart file to GEOS-Chem restart file.
  2. Archive fields DRY_TOTN, WET_TOTN, into HEMCO restart file.
  3. Archive H2O2s, SO2s, and HSAVE_FOR_KPP as GEOS-Chem restart file variables. (NOTE: HSAVE_FOR_KPP might be obsolete in v11-02.)

--Bob Yantosca (talk) 18:19, 24 May 2018 (UTC)