GEOS-Chem v11-01

From Geos-chem
Jump to: navigation, search

Contents

Overview

History

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

Previous version This version Next version
GEOS-Chem v10-01 GEOS-Chem v11-01 GEOS-Chem 12.0.0
(aka v11-02-final)
Released 17 Jun 2015 Released 01 Feb 2017 Released 10 Aug 2018
View v10-01 benchmark history View v11-01 benchmark history View v11-02 benchmark history
View v10-01 performance results View v11-01 performance results View GC 12.0.0 performance results

What's new in this version

NOTE: v11-01a, v11-02b, etc. denote 1-month benchmark simulations, which are designed to evaluate GEOS-Chem's performance at intermediate stages of development.

v11-01a

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

  1. Approval form for 1-month benchmark simulation v11-01a
Feature Type Submitted by Status
Incorporate moisture into air quantities, tracer units, and tracer unit conversions Science &
Bug fix
Lizzie Lundgren (GEOS-Chem Support Team) Approved 07 Jul 2015
Correct bug in below cloud average mixing ratio calculation in DO_MERRA_CONVECTION to improve mass balance Bug fix Lizzie Lundgren (GCST) " "
Added the capability to print out tracer masses every few hours, in order to check for mass conservation Structural Lizzie Lundgren (GCST) " "
Fix bug in RRTMG that prevents storage of O3 and CH4 RFs Bug fix David Ridley (MIT)
Sebastian Eastham (MIT)
" "
Prevent negative tracer concentrations at poles after advection Bug fix Lizzie Lundgren (GCST) " "

--Bob Y. (talk) 15:23, 7 July 2015 (UTC)

v11-01b

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

  1. Approval form for 1-month benchmark simulation v11-01b
  2. Results for 1-year benchmark simulation v11-01b-Run0
  3. Results for 1-year benchmark simulation v11-01b-RnPbBe
Feature Type Submitted by Status
Update DMS climatology to Lana Science Tom Breider (Harvard) 1-month benchmark:
Approved on 04 Aug 2015

1-year benchmark:
Approved on 19 Aug 2015

Impaction scavenging for hydrophobic BC Science Qiaoqiao Wang (Max Planck Institute) " "
Homogeneous IN removal Science Qiaoqiao Wang (Max Planck Institute) " "
Density of OA update Science Melanie Hammer (Dalhousie)
Eloïse Marais (Harvard)
" "
Improved dust size distribution scheme Science Li Zhang (Colorado U.)
Daven Henze (Colorado U.)
" "
Addition of BrC UV absorption to address impacts on OH
  • This feature is optional (default off)
Science Melanie Hammer (Dalhousie) " "
Acid uptake on dust aerosols
  • This feature is optional (default off)
Science T. Duncan Fairlie (NASA/LARC) " "
Now treat DST2-DST4 as coarse mode in wet scavenging Bug fix T. Duncan Fairlie (NASA/LARC) " "
Online emission of marine primary organic aerosol (POA)
  • This feature is optional (default off)
Science Brett Gantt (NCSU)
Matthew Johnson (NASA Ames)
" "
Update of PMN + O3 reaction products in globchem.dat file Bug fix Dylan Millet (UMN) " "
Bug fix in RRTMG array sizes Bug fix Sebastian Eastham (MIT) " "
Bug fixes in rrtmg_rad_transfer_mod.F Bug fix Sebastian Eastham (MIT)
David Ridley (MIT)
" "
Bug fix for black carbon in ucx_mod.F Bug fix Sebastian Eastham (MIT) " "
Bug fix for archiving P(Ox)/L(Ox) from full-chemistry simulations via the ND20 diagnostic Bug fix GEOS-Chem Support Team " "
Bug fix for linking files when compiling with PGI Bug fix GEOS-Chem Support Team " "

--Melissa Sulprizio (talk) 13:46, 3 August 2015 (UTC)

v11-01c

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

  1. Approval form for 1-month benchmark simulation v11-01c
Feature Type Submitted by Status
Updates to PAH code Science Carey Friedman (MIT) Approved 14 Sept 2015
Hg Ocean MLD bug fixes Bug fix Amanda Giang (MIT) " "
Hg Ocean rate coefficients (as an option, not default) Science Shaojie Song (MIT) " "
Hg Arctic process updates Science Jenny Fisher (Wollongong) " "
Hg emission updates (NEI2011, NPRI2011, UNEP2010 with adjustments for and emission controls) Science Yanxu Zhang (Harvard)
Amanda Giang (MIT)
" "
Update CO2 files for HEMCO Science & Bug fix Ray Nassar (Environment Canada) " "
Bug fix for sea salt alkalinity in sulfate_mod.F Bug fix Johan Schmidt (Harvard) " "
Correct problem in OTD-LIS local redistribution files for GEOS-5 Bug fix Christoph Keller (Harvard)
Lu Hu (Harvard)
" "
Bug fixes for the ND21 diagnostic Bug fix Sebastian Eastham (MIT) " "
Bug fix for custom nested grid in tpcore_bc_mod.F Bug fix Shannon Koplitz (Harvard), GCST " "
Bug fix for monoterpenes in ND46 diagnostic Bug fix Jared Brewer (CSU) " "
GEOS-Chem timers Structural Matt Yannetti (GCST) " "
Initial modifications for running GEOS-Chem with the GMAO MERRA-2 reanalysis met field product Structural Bob Yantosca (GCST)
  • The following unit tests passed:
    • merra2_4x5_RnPbBe
    • merra2_4x5_CH4
    • merra2_4x5_tagO3
    • merra2_4x5_POPs
  • Full integration of MERRA-2 in GEOS-Chem (i.e. making "full-chemistry" simulations compatible with MERRA-2) will take longer.
    • Scale factors for lightning, dust, and other emissions will need to be recomputed based on 1-year (or longer) simulations.

--Melissa Sulprizio (talk) 18:46, 9 September 2015 (UTC)

v11-01d

Please see the the following links below for complete information about the validation of GEOS-Chem v11-01d.

NOTE: The original v11-01d benchmark included a quick fix for low Pb tropospheric lifetime against deposition in GEOS-FP and MERRA-2. Due to the high impact on aerosols, the GEOS-Chem Steering Committee rejected the quick fix. We have subsequently removed this fix from v11-01d and performed additional 1-year benchmark simulations with the updated model.

Benchmark results for v11-01d after removal of the quick fix (Approved 12 Dec 2015):

  1. Results for 1-year benchmark simulation v11-01d-Run1
  2. Results for 1-year benchmark simulation v11-01d-RnPbBe

Benchmark results for v11-01d including the quick fix (Version not approved):

  1. Approval form for 1-month benchmark simulation v11-01d
  2. Results for 1-year benchmark simulation v11-01d-Run0
  3. Plots for 1-year benchmark simulation v11-01d-RnPbBe
Feature Type Submitted by Status
CO2 direct effect on isoprene emissions Science Amos Tai (CUHK) Approved 12 Dec 2015
Criegee intermediates Science Dylan Millet (U. Minnesota)
Eloïse Marais (Harvard)
" "
Update biomass burning emissions to GFED4.1, includes:
  • Daily and diurnal factors
Science Prasad Kasibhatla (Duke)
Christoph Keller (Harvard)
" "
Update implementation of optical properties for brown carbon Science Melanie Hammer (Dalhousie) " "
Species Database Phase 1: Structural GEOS-Chem Support Team " "
Resolve very high tracer concentrations in MERRA and GEOS-FP convective scavenging Bug fix Viral Shah (UW) " "
Bug fix for European grid range in tagged Ox simulation Bug fix GEOS-Chem Support Team " "


Fix for reading hourly NEI2011 emissions Bug fix Viral Shah (UW) " "
Bug fix for PBLTOP and MTTOP values in tagged Ox simulation Bug fix GEOS-Chem Support Team " "
Parallelization bug fix in Online emission of marine primary organic aerosol (POA) Bug fix GEOS-Chem Support Team " "
Bug fix for offline dust aerosols when UCX is on Bug fix Seb Eastham (Harvard) " "
Quick fix for low Pb tropospheric lifetime against deposition in GEOS-FP and MERRA-2 Science Bo Zhang (NIA)
Hongyu Liu (NIA/NASA Langley)
This feature was removed following evaluation of the initial 1-year benchmark simulation due to a high magnitude change for aerosols. It has been added to the pipeline for incorporation into a later version after further testing.

--Lizzie Lundgren (talk) 15:30, 2 December 2015 (UTC)

v11-01e

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

  1. Approval form for 1-month benchmark simulation v11-01e
Feature Type Submitted by Status
Update HEMCO from version 1.1.005 to version 1.1.016 Structural Christoph Keller (Harvard) Approved 04 Jan 2016
Speed up GEOS-FP and MERRA-2 met field input by only opening each netCDF file once per day Structural Bob Yantosca (GCST) " "
Bug fixes for Arctic Hg updates in v11-01c Bug Fix Jenny Fisher (Wollongong) " "
Bug fix to update air quantities after specific humidity is updated in non-local PBL mixing Bug fix Lizzie Lundgren (GCST) " "
Species Units Phase 1: Initial implementation of area-independent species units Structural Lizzie Lundgren (GCST) " "
Modifications for running nested grid simulations with MERRA-2 Structural Melissa Sulprizio (GCST) " "
Species Database Phase 2a: Structural Bob Yantosca (GCST) " "
Species Database Phase 2b: Structural Bob Yantosca (GCST) " "

--Bob Yantosca (talk) 18:40, 4 January 2016 (UTC)

v11-01f

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

  1. Approval form for 1-month benchmark simulation v11-01f with GEOS-FP
  2. Approval form for 1-month benchmark simulation v11-01f with MERRA-2
  3. Results for 1-year Rn-Pb-Be benchmark simulations for v11-01f
  4. Results for 1-year benchmark simulation v11-01f-geosfp-Run0
  5. Results for 1-year benchmark simulation v11-01f-merra2-Run0
Feature Type Submitted by Status
Bug fixes for hydrophobic aerosol properties Bug fix Seb Eastham (Harvard) 1-month benchmark
Approved 29 Mar 2016

1-year benchmark
Approved 16 Apr 2016

Use an updated EMEP mask file to prevent zero emissions at 30 N Bug fix Eloise Marais (Harvard) " "
Correct too-high emissions of Hg2 over China and EU Bug fix Amanda Giang (MIT) " "
Fix typo in HEMCO extension module hcox_gc_RnPbBe_mod.F90 Bug fix Mat Evans (U. York) " "
Fix syntax error in globchem.dat for the MOBA + OH --> MOBAOO reaction rate Bug fix Will Porter (MIT) " "
Fix bug in reaction ISNOOA + NO2 --> PMN in globchem.dat Bug fix Mike Long (Harvard) " "
Fix an emissions error in the SOA-SVPOA simulation Bug fix Prasad Kasibhatla (Duke)
Melissa Sulprizio (GCST)
" "
Add a script (NcdfUtil/perl/isCoards) to determine if a netCDF file is COARDS-compliant Structural Bob Yantosca (GCST) " "
Consistent physical parameter values throughout GEOS-Chem Structural Lizzie Lundgren (GCST) " "
Add optimal timestep settings to the standard GEOS-Chem run directories (via the GEOS-Chem Unit Tester) Structural Sajeev Philip (Dalhousie)
Randall Martin (Dalhousie)
" "
Drive full-chemistry simulations with MERRA-2 met fields
  • Compute various scale factors (dust, lightning, etc.)
Structural Melissa Sulprizio (GCST)
Lee Murray (NASA GISS/LDEO)
" "
NetCDF Output Phase 1:
  • Input and output restart file in netCDF format for all simulations except mercury
Structural Lizzie Lundgren (GCST) " "
Add further fixes for compiling GEOS-Chem with PGI Fortran Structural Bob Yantosca (GCST) " "
Correct bug introduced in v11-01e where emissions were disabled in the stratosphere for specialty simulations Bug fix Lizzie Lundgren (GCST) " "

--Bob Yantosca (talk) 21:24, 29 March 2016 (UTC)

v11-01g

Please see the the following links for complete information about the validation of GEOS-Chem v11-01g:

  1. Approval form for 1-month benchmark simulation v11-01g
  2. Results for 1-year benchmark simulation v11-01g-Run0
Feature Type Submitted by Status
FlexChem
  • Replacing SMVGEAR with a clean and flexible implementation of KPP
  • Removing legacy SMVGEAR code and input files, including:
    • Removing 1-D array indices (JLOOP, KLOOP, etc.)
    • Removing globchem.dat, mglob.dat
    • Removing the distinction between tracers and species
Science Mike Long (Harvard)
GCST
1-month benchmark
Approved 14 Sep 2016

1-year benchmark
Approved 28 Sep 2016

Update 4x5 soil Hg files and Hg simulation photoreduction and soil emission coefficients Science Jenny Fisher (Wollongong) " "
Parallelization bug fixes for GEOS-5 Hg simulations Bug fix Bob Yantosca (GCST) " "
Bug fixes for HEMCO, including: Bug fix Christoph Keller (NASA GSFC)
GCST
" "
NetCDF Output Phase 2:
  • Use netCDF restart files for Hg simulation
Structural Lizzie Lundgren (GCST) " "
Restore the tagged CO specialty simulation
  • Use HEMCO to split CO emissions into tagged tracers
  • Restore tagged CO unit tests
Structural GCST " "
Updates for High Performance GEOS-Chem (GCHP) Dev release, includes: Structural &
Bug fix
Seb Eastham (Harvard)
GCST
" "
Do not nullify local pointers in the same line where they are declared Structural Bob Yantosca (GCST) " "
Improved species indexing
  • Removed tracerid_mod.F from GEOS-Chem
Structural GCST " "

--Melissa Sulprizio (talk) 16:59, 30 August 2016 (UTC)

v11-01h

Please see the the following links for complete information about the validation of GEOS-Chem v11-01h:

  1. Approval form for 1-month benchmark simulation v11-01h
  2. Results for 1-year benchmark simulation v11-01h-RnPbBe
Feature Type Submitted by Status
Fix to remove moisture signature in dry mixing ratio Bug fix Meemong Lee (JPL)
Richard Weidner (JPL)
Lizzie Lundgren (GCST)
Kevin Bowman (JPL)
Approved 11 Oct 2016
Modifications for running nested Asia simulations with MERRA-2 Structural Melissa Sulprizio (GCST) " "
Bug fixes for the dry deposition diagnostic when using TURBDAY Bug fix Bo Zhang (NIA / NASA Langley) " "

--Melissa Sulprizio (talk) 14:14, 11 October 2016 (UTC)

v11-01i

Please see the the following links for complete information about the validation of GEOS-Chem v11-01i:

  1. Approval form for 1-month benchmark simulation v11-01i
  2. Results for 1-year benchmark simulation v11-01i-RnPbBe
Feature Type Submitted by Status
Fix bug in GEOS-FP/MERRA/MERRA-2 re-evaporation calculation Bug fix Virah Shah (UW)
Bo Zhang (NIA)
Hongyu Liu (NIA/NASA Langley)
Approved 19 Oct 2016

--Melissa Sulprizio (talk) 18:19, 14 September 2016 (UTC)

v11-01j

Please see the the following links for complete information about the validation of GEOS-Chem v11-01j:

  1. Approval form for 1-month benchmark simulation v11-01j
Feature Type Submitted by Status
Update HEMCO from version 1.1.016 to version 2.0.003, includes:
  • Bug fix for PARANOX extension
  • Fix for ocean overlap in timezones mask file
Structural Christoph Keller (NASA GSFC) Approved 03 Dec 2016
0.1° x 0.1° CAC emissions Science Aaron van Donkelaar (Dalhousie) " "
Replace RETRO C3H8 emissions with emissions from Xiao et al. (2008), includes:
  • Overwrite Xiao C2H6 and C3H8 with MIX and NEI2011 regional inventories
Science Emily Fischer (CSU)
Zitely Tzompa (CSU)
" "
Add option for QFED & FINN emissions in the Hg simulations Science Jenny Fisher (Wollongong) " "
Updates to TOMAS Jeagle sea salt extension Science Jack Kodros (CSU) " "
Correct bug in units of EDGAR v4.2 SO2 emissions Bug fix Jaegun Jung (Ramboll Environ) " "
Prevent biofuel emissions from being double counted in EDGAR v4.2 Bug fix GCST " "
Fix bug in the GMI stratospheric production rates for HCOOH Bug fix Eloise Marais (Harvard)
Xin Chen (UMN)
" "
Set ACTA and HCOOH to active Bug fix Katie Travis (Harvard) " "
Fix for mesospheric NOx chemistry, includes: Bug fix Seb Eastham (Harvard) " "
Fix molecular weight of N2O5 Bug fix Chi Li (Dalhousie) " "
Fix KPP's prod/loss diagnostic to account for reactions where there is cycling between species within a chemical family Bug fix Mike Long (Harvard) " "
Fix for TOMS/HEMCO to address strange cycle in OH output Bug fix Barron Henderson (U. Florida) " "
Fix for monthly stratospheric P/L rates in HEMCO Bug fix Christoph Keller (NASA GSFC) " "
Fix bug in NOx diurnal scale factors Bug fix Brian Boys (Dalhousie)
Christoph Keller (NASA GSFC)
" "
Add PM2.5 diagnostic Structural Melissa Sulprizio (GCST) " "
Add support for the GNU Fortran compiler Structural Seb Eastham (Harvard)
Bob Yantosca (GCST)
" "
Fix minor issues in the specialty simulations discovered by the GNU Fortran compiler: Bug fix Bob Yantosca (GCST) " "

--Melissa Sulprizio (talk) 15:40, 29 November 2016 (UTC)

v11-01k

Please see the the following links for complete information about the validation of GEOS-Chem v11-01k:

  1. Approval form for 1-month benchmark simulation v11-01k
  2. Results for 1-year benchmark simulation v11-01k-Run0
Feature Type Submitted by Status
Lightning update based on Travis et al. (2016, ACP) and Zhang et al. (2014, ACP) Science Katie Travis (Harvard) 1-month benchmark
Approved 06 Dec 2016

1-year benchmark
Approved 19 Dec 2016

Updates for interfacing GEOS-Chem with the Beijing Climate Center model: Structural GCST " "
Updates to avoid allocating memory to arrays that aren't used in specialty simulations: Structural GCST " "
Prevent errors caused by uninitialized fields of the State_Met object Bug fix GCST " "

--Bob Yantosca (talk) 18:09, 7 December 2016 (UTC)

v11-01 provisional release

After the v11-01k benchmarks were approved, the GEOS-Chem Support Team issued a v11-01 provisional release on 20 Dec 2016. GEOS-Chem users are invited to download and run v11-01 on their systems and report any bugs, technical issues, or errors/omissions in the documentation (including code comments, GEOS-Chem manual, and GEOS-Chem wiki) to the GCST. The v11-01 provisional release evaluation period is expected to last until 01 Feb 2017.

An unofficial benchmark simulation was performed for v11-01 provisional release. Please see the following link for complete information:

  1. Approval form for 1-month benchmark simulation v11-01 provisional release

The following updates were added to the v11-01 provisional release:

Feature Type Submitted by Status
Remove calls to UPDATE_SUN, UPDATE_RCONST from gckpp_Integrator.F90 Structural GCST Approved 20 Dec 2016
Add temporary fix to get TOMAS simulations to pass unit tests Bug fix Sal Farina (TOMAS team)
GCST
" "
Add support for the GNU profiler (gprof) Structural Bob Yantosca (GCST) " "

--Bob Yantosca (talk) 20:02, 3 January 2017 (UTC)

v11-01 public release

The GEOS-Chem Support Team will officially release v11-01 (expected date: 01 Feb 2017) once all of the issues identified during the provisional release evaluation period (about 1 month) have been resolved.

Unofficial benchmark simulations were performed for v11-01 public release. Please see the following links for complete information:

  1. Approval form for 1-month benchmark simulation v11-01 public release
  2. Results for 1-year benchmark simulation v11-01-public-Run0

The following updates were added to GEOS-Chem during the v11-01 provisional release evaluation period, and will ship with the v11-01 public release:

Feature Type Submitted by Status
Fixed incorrect timestamps in the GMI HCOOH stratospheric prod/loss file Bug fix Seb Eastham (Harvard)
GCST
Approved 31 Jan 2017
Turn on the traceback error output (i.e. set TRACEBACK=yes) by default Structural Seb Eastham (Harvard)
GCST
Fixed a seg fault error in HEMCO v2.0 that was caused by an Intel Fortran compiler bug Bug fix Bob Yantosca (GCST)
GEOS-Chem error messages now advise the user to check the HEMCO log file Structural Bob Yantosca (GCST)
Fix for out-of-bounds error when using the brown carbon option Bug fix Melissa Sulprizio (GCST)
Bug fix: MAP_A2A now applies periodic boundary conditions only to global data sets during regridding Bug fix Seb Eastham (Harvard)
GCST
Ocean grid boxes now use the timezone of the nearest land mass for computing emissions Science Seb Eastham (Harvard)
Bug fix for time interpolation in netCDF utility module ncdf_mod.F90 Bug fix Christoph Keller (NASA/GSFC)
Seb Eastham (Harvard)
Bug fix: Make sure nAdvect is initialized in EMISSCO2 Bug fix Bob Yantosca GCST
Fix units of O1D and O3P in ND43 diagnostic Bug fix Chris Holmes (Florida State)
Fix for compiling with CHEM=Custom Bug fix Prasad Kasibhatla (Duke)
Print message to log file if OpenMP parallelization is turned off Structural Melissa Sulprizio (GCST)
Fix incorrect unit strings for ND65 diagnostic in diag3.F Bug fix Chris Holmes (Florida State)
Melissa Sulprizio (GCST)
Improve write speed of netCDF output files Structural Chris Holmes (Florida State)
GAMAP can now read GEOS-Chem restart files in netCDF format Structural Bob Yantosca (GCST)
Minor fix for ND68 entries in tracerinfo.dat Bug fix Melissa Sulprizio (GCST)

--Bob Yantosca (talk) 21:35, 30 January 2017 (UTC)

New data directories

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

Inventory What was added? When added? Directory
Aerocom volcano emissions Now split into separate eruptive and degassing emissions v11-01b ExtData/HEMCO/VOLCANO/v2015-02/
DMS seawater concentrations Update to Lana climatology v11-01b ExtData/HEMCO/DMS/v2015-07/
POPs simulation Updates for secondary emissions and GCAP met v11-01c ExtData/HEMCO/POPs/v2015-08/
GFED4 biomass Update to GFED v4.1 v11-01d ExtData/HEMCO/GFED/v2015-10/
MERRA-2* Capability to drive GEOS-Chem with MERRA-2 meteorology fields v11-01f ExtData/GEOS_4x5/MERRA2/
ExtData/GEOS_2x2.5/MERRA2/
ExtData/GEOS_0.5x0.625/MERRA2/
ExtData/GEOS_0.5x0.625_AS/MERRA2/
ExtData/GEOS_0.5x0.625_EU/MERRA2/
ExtData/GEOS_0.5x0.625_NA/MERRA2/
Masks New files:
  • EMEP_mask.geos.1x1.20151222.nc
Do not zero emissions at 30N
  • USA_LANDMASK_NEI2011_0.1x0.1.20160921.nc
Do not zero Canadian and Mexican emissions
v11-01f & v11-01j ExtData/HEMCO/MASKS/v2014-07/
Restart files NetCDF restart files
(Moved here from the Unit Tester repo)
v11-01f ExtData/SPC_RESTARTS/
FINNv1 biomass Data processing scripts v11-01g ExtData/HEMCO/FINN/preprocess/
CAC Canadian anthro 0.1° x 0.1° data files v11-01j ExtData/HEMCO/CAC/v2016-09/
Timezones New files:
  • timezones_1x1.edit.nc
    • Introduced in v11-01j
  • timezones_voronoi_1x1.nc
    • Introduced in v11-01 public release, will be the new default

Fix ocean values in timezones mask file

v11-01j ExtData/HEMCO/TIMEZONES/v2015-02/
GMI New file: gmi.clim.HCOOH.geos5.2x25.20160912.nc

Fix bug in GMI rates for HCOOH

v11-01j ExtData/HEMCO/GMI/v2015-02/
TOMS/SBUV O3 columns Barron Henderson reprocessed TOMS/SBUV data in order to fix a strange cycle in OH output when running GEOS-Chem with GEOS-5 meteorology. v11-01j ExtData/HEMCO/TOMS_SBUV/v2016-11
Stratospheric chemistry New file: gmi.clim.HCOOH.geos5.2x25.20170108.nc

Fixed incorrect timestamps in gmi.clim.HCOOH.geos5.2x25.20160912.nc file

v11-01 public release ExtData/HEMCO/GMI/v2015-02/

*We recommend downloading the MERRA-2 data from the Dalhousie data directory archive, where data for the complete MERRA-2 coverage period (1980-present) is stored.

--Bob Yantosca (talk) 19:45, 9 January 2017 (UTC)

Validation

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

1-month and 1-year benchmarks

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

--Melissa Sulprizio 10:30, 5 May 2015 (EDT)

Unit tests for GEOS-Chem v11-01

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-01.. Click on the links below to see the results from each set of unit tests:

Unit test Date
v11-01a 02 Jul 2015
v11-01b 29 Jul 2015
v11-01c 10 Sep 2015
v11-01d 02 Nov 2015
v11-01e 21 Dec 2015
v11-01f 03 Mar 2016
v11-01g 06 Sep 2016
v11-01h 30 Sep 2016
v11-01i 16 Oct 2016
v11-01j 29 Nov 2016
v11-01k 05 Dec 2016
v11-01-provisional-release 22 Dec 2016
v11-01-public-release 27 Jan 2017

--Bob Yantosca (talk) 15:31, 2 November 2016 (UTC)

Previous issues now resolved in GEOS-Chem v11-01

The following bugs and/or technical issues have now been resolved in GEOS-Chem v11-01. Some issues are listed on other wiki pages as well. Please also see this listing of all issues resolved v11-01.

TRACEBACK=y is now the default setting

This update was included in GEOS-Chem v11-01 public release

Seb Eastham (Harvard) suggested that all GEOS-Chem simulations should use the traceback option by default. An example of traceback output generated by the Intel Fortran Compiler is shown below:

Image              PC                Routine            Line        Source             
libifcoremt.so.5   00002B9EFA2188D3  Unknown               Unknown  Unknown
geos.mp            00000000011FCE35  regrid_a2a_mod_mp        1914  regrid_a2a_mod.F90
libiomp5.so        00002B9EFB70A8A3  Unknown               Unknown  Unknown

The above example shows that the GEOS-Chem simulation exited abnormally at line 1914 of module regrid_a2a_mod.F90. We believe that having this information available will help GEOS-Chem users to better diagnose and report issues.

We have modified the Makefile_header.mk file in the GEOS-Chem v11-01 public release to set the Makefile option TRACEBACK=y if it is not already passed as an argument. To disable the traceback output, you will now have to compile with TRACEBACK=n.

It should be noted that the traceback option will increase the size of the GEOS-Chem executable, but will not have any impact on execution speeds.

--Bob Yantosca (talk) 22:27, 3 January 2017 (UTC)

Added a test for mass conservation

These updates were validated in the 1-month benchmark simulation v11-01a, which was approved on 07 Jul 2015.

In GEOS-Chem v11-01a, we have added a mass conservation check capability. This will let you see at a glance if GEOS-Chem is conserving mass.

In the GEOS-Chem Unit Tester, we have created two new run directories:

runs/geosfp_2x25_masscons
runs/geos5_2x25_masscons

which are instances of the 2° x 2.5° CO2 simulation, but with zero emissions and with a constant (e.g. 370 ppm) initial condition field.

You can make a fresh copy of one (or both) of these directories with the gcCopyRunDirs script to a convenient location in your account. Once you have done that, then follow these steps:

1. Let's say you want to run the geos5_2x5_masscons test. First cd into the copied geos5_2x25_masscons directory.
2. Make sure you specify your desired start & end dates in your input.geos file. Also make sure to put a 3 on the last day of the simulation in the OUTPUT MENU section.
3. Then type this command:
   make -j4 TRACEBACK=y NO_ISO=y mp
this will start compiling and running the GEOS-5 mass conservation test. The Makefile in this run directory will automatically set a new Makefile option, MASSCONS=y, which disables output to the bpch, timeseries, and restart files. Instead, the mass of the total CO2 tracer will be printed out to a file named tracer_mass_kg.dat (you can rename this in the ND49 MENU section of input.geos). The output will look similar to this:
 2.887072562747136E+015  : 2012/07/01 06:00
 2.887072562747084E+015  : 2012/07/01 12:00
 2.887072562747109E+015  : 2012/07/01 18:00
 2.887072562747105E+015  : 2012/07/02 00:00
 2.887072562747306E+015  : 2012/07/02 06:00
 2.887072562747272E+015  : 2012/07/02 12:00
 2.887072562747154E+015  : 2012/07/02 18:00
 2.887072562746720E+015  : 2012/07/03 00:00
The output shows the sum of CO2 tracer (in kg) over all longitudes, latitudes and levels, with a corresponding time stamp. As you can see from this example, mass is conserved to about the 11th decimal place, which indicates good mass conservation.

--Bob Y. (talk) 21:53, 24 June 2015 (UTC)

Prevent negative tracer concentrations after advection

These updates were validated in the 1-month benchmark simulation v11-01a, which was approved on 07 Jul 2015.

In GEOS-Chem v11-01a, we have included a fix for negative tracer concentrations following advection. Tracer concentrations may become negative within routine TPCORE_FVDAS at the poles with values on the order of -1e-10 v/v or smaller in v10-01. Negative values can cause GEOS-Chem to stop downstream if TOMAS is enabled due to a negative NK check within routine MNFIX in tomas_mod.F.

To fix this issue, we set all negative tracer concentration values to 1.0e-26 at the end of advection. The fix, inserted in routine TPCORE_FVDAS within tpcore_fvdas_mod.F90, is shown below. This code is not inserted in nested region advection routines because none of the nested regions overlap the poles.

      !======================================================================
      ! MODIFICATION by Harvard Atmospheric Chemistry Modeling Group
      ! 
      ! Set tracer concentration to a small positive number if concentration 
      ! is negative. Negative concentrations may occur at the poles.
      ! (ewl, 6/30/15) 
      !======================================================================
!$OMP PARALLEL DO        &
!$OMP DEFAULT( SHARED   )&
!$OMP PRIVATE( I, J, K )
      DO K = 1, KM
      DO J = 1, JM
      DO I = 1, IM
         IF ( q(I,J,K,IQ) < 0.0e0_fp ) THEN
            q(I,J,K,IQ) = 1.0e-26_fp
         ENDIF
      ENDDO
      ENDDO
      ENDDO
!$OMP END PARALLEL DO

Note that the reasons for negative values at the poles is not currently understood and is listed in the Outstanding issues not yet resolved in GEOS-Chem v11-01 section of this wiki page.

--Lizzie Lundgren (talk) 16:37, 1 July 2015 (UTC)

Update of PMN + O3 reaction products in globchem.dat file

This update was validated with 1-month benchmark simulation v11-01b and 1-year benchmark simulation v11-01b-Run0. This version was approved on 19 Aug 2015.

NOTE: SMVGEAR was removed from GEOS-Chem v11-01g when FlexChem was implemented. The globchem.dat file has now been replaced with the KPP master equation file.

Dylan Millet wrote:

I'd like to submit the following change for the globchem.dat file. The PMN + O3 reaction does not give the appropriate products. We should change:
   A  505 8.20E-18  0.0E+00      0 0     0.00     0.     0.         
         PMN           +     O3                                              
   =1.000NO2           +0.600CH2O          +1.000HO2           +             
   +                   +                   +                   +             
   +                   +                   +                   +             
   +                   +                   +                   +
to
   A  505 8.20E-18  0.0E+00      0 0     0.00     0.     0.         
         PMN           +     O3                                              
   =1.000CH2O          +1.000MCO3          +1.000NO3           +             
   +                   +                   +                   +             
   +                   +                   +                   +             
   +                   +                   +                   +
It won't have a major impact, but it is currently is wrong, and my sense (Mat as well) is that this falls under 'bug fix' rather than science update.

--Bob Y. (talk) 17:55, 26 June 2015 (UTC)

Modifications to ND20 to archive afternoon P(O3) and L(O3)

This update was validated with 1-month benchmark simulation v11-01b and 1-year benchmark simulation v11-01b-Run0. This version was approved on 19 Aug 2015.

Bob Yantosca wrote:

I was able to make a couple of modifications that will let you just archive afternoon P(O3) and L(O3), since that may let you avoid the too-low-values at night. If you look in diag_pl_mod.F, in routine DIAG20, you will see these new lines:
!                                                                                         
! !DEFINED PARAMETERS:                                                                    
!                                                                                         
     ! Local time limits (optional)                                                      
     REAL(fp), PARAMETER :: LT_START = 12.0e+0_fp
     REAL(fp), PARAMETER :: LT_END   = 16.0e+0_fp
and
!$OMP+DEFAULT( SHARED )                                                                   
!$OMP+PRIVATE( I, J, L, P_Ox, L_Ox, JLOOP, LT )                                           
!$OMP+SCHEDULE( DYNAMIC )                                                                 
     DO L = 1, LD65
     DO J = 1, JJPAR
     DO I = 1, IIPAR

        ! Zero P(Ox), L(Ox) variables for safety's sake                                  
        P_Ox  = 0e+0_fp
        L_Ox  = 0e+0_fp

        ! JLOOP is the 1-D grid box index for SMVGEAR arrays                             
        JLOOP = JLOP(I,J,L)

        ! If this is a grid box where we have done chemistry, then ...                   
        IF ( JLOOP > 0 ) THEN

           !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                  
           !%%% NOTE: If you want to restrict output to a given local                    
           !%%% time range, then uncomment these lines of code.                          
           !%%% (bmy, 7/9/15)                                                            
           !                                                                             
           ! Get the local time at box (I,J,L)                                           
           !LT = GET_LOCALTIME( I, J, L )                                                
           !                                                                             
           ! Skip processing if we are outside of the desired                            
           ! local time range (bmy, 7/9/15)                                              
           !IF ( LT < LT_START .or. LT > LT_END ) CYCLE                                  
           !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

           ! Increment counter of valid grid boxes                                       
           COUNT(I,J,L) = COUNT(I,J,L) + 1

(I also defined the LT variable and put in a USE statement for the GET_LOCALTIME function, not shown.)
So if you want to restrict archiving of P(O3) and L(O3) to a given window, you can modify the LT_START and LT_END to the starting and ending hour of the local time window. Values must be in the range 0.0 to 23.99 hours. Then also uncomment the lines after the IF ( JLOOP > 0 ) block.
In addition, I fixed a few minor issues in the DIAG20 and WRITE20 routines. For example, the bpch file was being saved with the wrong JFIRST value, so I corrected that. Also, I made the code more efficient by not trying to compute P(O3) and L(O3) where JLOOP == 0 (i.e. where chemistry wasn't done).

--Melissa Sulprizio (talk) 17:22, 3 August 2015 (UTC)

Bug fixes for the ND21 diagnostic

These fixes were validated with the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015.

Sebastian Eastham wrote:

I was looking at some output for a recent run with v10-01 and realized that diagnostic 21 (OD_MAP) no longer produces the expected data. I only know for certain that this happens when the UCX is enabled, as I do not run with the trop-only version of the code. It basically comes down to index mismatching between aerosol_mod, diag3_mod and gamap_mod.
Once implemented, it should restore output of diagnostic 21 when UCX is active. Prior to this patch, selecting diagnostic 21 with “all” output seemed to result in the incorrect number of tracers and misassignments.

--Melissa Sulprizio (talk) 16:32, 3 August 2015 (UTC)

Bug fix for custom grid in tpcore_bc_mod.F

This fix was validated with the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015.

Shannon Koplitz wrote:

I think there may be a redundant call to allocate the custom nested grid array BC at line 2045 in tpcore_bc_mod.F.
It looks like the call to allocate that array is given earlier in the code at line 1977, and the double call appears to result in an allocation error when attempting to save out BCs for a custom nested grid.

Melissa Sulprizio responded:

I found a few other places where the array BC is used. From what I see, it appears that BC is used in SAVE_GLOBAL_TPCORE_BC specifically for the custom grid, but in READ_WINDOW_TPCORE_BC, GET_4x5_BC, and GET_2x25_BC it's used in a more general sense (for all nested grids). So I think the issue here is that BC is unintentionally used for two different purposes. I think if we remove the second allocation and only allocate BC when LWINDO_CU is true, we'd get errors in the last three routines that I mentioned.
I suggest we change BC for the custom nested grid to BC_CU. In SAVE_GLOBAL_TPCORE_BC, we would modify the following code (in green text):
        IF ((IC .eq. 1) .and. LWINDO_CU )THEN

           !----------------------------------------------------------
           ! IC == 1 : Save BC's to file (custom window)
           !----------------------------------------------------------

           ! Open file for writing, if necessary
           CALL OPEN_BC_FILE( am_I_Root, Input_Opt, RC,
    &                         WINDOW=IC, FOR_WRITE=.TRUE. )

           ! Loop over each tracer
           DO N = 1, N_TOT_TRC

              ! Save concentrations in WINDOW REGION to disk
              DO L = 1, LLPAR
                 BC_CU(1:IM_BC,1:JM_BC,L,N)= 
    &               STT(I1_BC:I2_BC,J1_BC:J2_BC,L,N)
              ENDDO

              ! Write boundary conditions to binary punch file
              CALL BPCH2( IU_BC,     MODELNAME, LONRES,   LATRES,
    &               HALFPOLAR, CENTER180, CATEGORY, N,
    &               UNIT,      TAU,       TAU,      RESERVED,
    &               IM_BC,     JM_BC,     LLPAR,    I1_BC,
    &               J1_BC,     1,   BC_CU(1:IM_BC, 1:JM_BC, 1:LLPAR, N))

              ENDDO

and in INIT_TPCORE_BC:
     ! Boundary condition array for CUSTOM NESTED REGION
     IF ( LWINDO_CU ) THEN
        ALLOCATE( BC_CU( IM_BC, JM_BC, LLPAR, N_TRACERS ), STAT=AS )
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'BC_CU' )
        BC_CU = 0e+0_fp
     ENDIF

We would also have to declare BC_CU at the top of the module and deallocate it in CLEANUP_TPCORE_BC.

--Melissa Sulprizio (talk) 16:56, 3 August 2015 (UTC)

Mercury simulation inconsistently failing optimization unit tests in v11-01c

This fix was included in v11-01g (approved 28 Sep 2016).

Bob Yantosca (GCST) found and fixed three parallelization errors that had been causing the GEOS-5 Hg simulations to fail unit tests, as first described by Lizzie Lundgren:

There are inconsistent differences in the diagnostics and ocean restart files when running unit tests on GEOS-5 4x5 and 2x2.5 mercury simulations in v11-01c. When running a test of ten GEOS-5 4x5 Hg unit tests, the trac_avg file failed with differences seven times and the ocean restart file failed with differences eight times. We have isolated the issue to a single call to depo_mercury_mod.F routine ADD_HG2_SNOWPACK that occurs in convection_mod.F routine NFCLDMX. Commenting out the call and conducting ten GEOS-5 4x5 Hg unit tests results in all tests passing. The issue appears to be an optimization problem but is currently unresolved.

--Lizzie Lundgren (talk) 19:05, 9 September 2015 (UTC)

For a complete description of the fixes, please see this post on our Mercury wiki page.

--Bob Yantosca (talk) 18:47, 5 October 2016 (UTC)

Do not nullify local pointers in the same line where they are declared

NOTE: This fix was included in v11-01g (approved 28 Sep 2016).

As described on our our Common GEOS-Chem error messages wiki page, we no longer nullify several pointer variables at the same time when they are declared. In several GEOS-Chem routines, we replaced code that looked like this:

 TYPE(Species), POINTER :: ThisSpc => NULL()

with code that looked like this.

 TYPE(Species), POINTER :: ThisSpc
 . . .
 ThisSpc => NULL()

As it happens, when you nullify a pointer in the same line when it is declared, then the pointer is inadvertently converted to a SAVEd variable, and is only initialized once (instead of every time when the subroutine is called). This can have unexpected side-effects in OpenMP parallel loops.

For more information, please see this article.

--Bob Yantosca (talk) 16:33, 6 May 2016 (UTC)

J-values are doubled for O(1D) and O(3P) in ND22 diagnostic output

NOTE: This fix was included in v11-01g (approved 28 Sep 2016).

There was a bug in the way ND22 was calculated in the pre-FlexChem code that caused the J-values for O(3P) and O(1D) to be double counted. In calcrate.F, we looped over 1 to JPHOTRATE(NCS) = 94 (i.e. the number of photolysis reactions) and identify the species being photolyzed:

     DO I  = 1, JPHOTRAT(NCS)
        NK  = NRATES(NCS) + I
        NKN = NKNPHOTRT(I,NCS)

        ! Name of species being photolyzed
        SPECNAME = NAMEGAS(IRM(1,NK,NCS))

        SELECT CASE ( TRIM( SPECNAME ) )
           CASE ( 'NO2'   )
              INDEX = 1
           CASE ( 'HNO3'  )
              INDEX = 2
           CASE ( 'H2O2'  )
              INDEX = 3
           CASE ( 'CH2O'  )
              INDEX = 4
           CASE ( 'O3'    )
              INDEX = 5
           ...

It turns out the O3 tracer occurs twice: once for O3 -> O + O2 and once for O3 -> O1D + O2. Further down in that same loop over JPHOTRAT(NCS), there was code to add the J-values to the ND22 diagnostic:

           !===========================================================
           ! Store J-values in ND22 diagnostic 
           !===========================================================
           IF ( ND22 > 0 ) THEN
              ! Save J-values for 2PM diagnostic boxes
              ! Use AD22 array for J-value diagnostic (bmy, 9/30/99)
              IF ( LTJV(IX,IY) > 0 .and. IZ <= LD22 ) THEN
                 IF ( INDEX == 5 ) THEN
#if !defined( UCX )
                    ! Store unadjusted total J-O3 as AD22(:,:,:,5)
                    AD22(IX,IY,IZ,5) = AD22(IX,IY,IZ,5) +  
    &                                     DUMMY(KLOOP)
                    ! Store POH as AD22(:,:,:,6)
                    AD22(IX,IY,IZ,6) = AD22(IX,IY,IZ,6) +
    &                                     RRATE(KLOOP,NKN)
#else
                    ! Store O1D/O3P rates separately
                    AD22(IX,IY,IZ,5) = AD22(IX,IY,IZ,5) + 
    &                                     DUMMY(KLOOP)
                    AD22(IX,IY,IZ,6) = AD22(IX,IY,IZ,6) +
    &                                     DUMMYO3P(KLOOP)
#endif

However, because INDEX = 5 occurs twice, GEOS-Chem was adding DUMMY to AD22(IX,IY,IZ,5) twice and DUMMYO3P to AD22(IX,IY,IJ,6) twice. This should have only impacted the ND22 diagnostic output.

In v11-0g, the code for adjusting photolysis rates was moved from calcrate.F (which is now gone) to a routine called PHOTRATE_ADJ in fast_jx_mod.F. In that routine, the J-values for O(1D) and O(3P) are passed to the ND22 diagnostic directly from the ZPJ array, which holds the photolysis rates.

--Melissa Sulprizio (talk) 17:36, 14 September 2016 (UTC)

Incorrect incorporation of moisture in GEOS-Chem air quantities

This issue was partially resolved in GEOS-Chem v11-01a, which was approved on 07 Jul 2015.

The remaining issue was resolved in GEOS-Chem v11-01h, which was approved on 11 Oct 2016.

GCST member Lizzie Lundgren (Harvard) discovered that v10-01 tracer unit conversions between [v/v] and [kg] did not accurately handle moisture in their use of moist air mass with dry air molecular weight. Updates to fix this issue and other moisture-related discrepancies discovered during the update implementation were introduced in GEOS-Chem v11-01a.

Validation of the v11-01a moisture corrections revealed an additional moisture handling issue in advection. Inert tracer dry mixing ratio maps contained patterns resembling the moisture signature in the atmosphere. We traced this phenomenon to lack of moisture handling within transport. Tracer mass was distributed relative to moist rather than dry air pressure and therefore preferentially pooled within grid boxes that contained more water vapor mass.

Meemong Lee and Richard Weidner (JPL) issued a JPL Publication detailing a transport moisture fix for the Adjoint model addressing this issue. Their adjoint fix consisted of (1) deriving dry surface pressures from GMAO moist surface pressures and specific humidity, and (2) replacing moist pressures with dry pressures throughout the model.

Lizzie Lundgren (GCST) adapted JPL’s Adjoint fix to the GEOS-Chem forward model in GEOS-Chem v11-01h. The GEOS-Chem v11-01h implementation does the following:

  1. Corrects the transport mass distribution problem by using dry surface air pressures in advection
  2. Preserves the moisture updates incorporated into v11-01a, including 3D dry and moist air pressures
  3. Preserves inert tracer mass conservation by using dry air mass derived from dry surface pressure in species unit conversions and mixing ratio updates

See the Moisture Updates in v11-01 wiki page for details of the v11-01a and v11-01h moisture updates. Changes specific to the updates in v11-01h are discussed in the Transport section of that page. Important changes to highlight with this fix are as follows:

  1. The dry air mass per level calculated using the dry surface pressure is close but not exactly the same as the dry air mass calculated using the legacy method. Both methods produce valid approximations of level mass, but using dry air mass derived from the new dry surface pressure is required for species unit conversions to ensure mass conservation. This is because species are advected in units of mass mixing ratio, with dry air mass in the denominator. Retaining the same global species mass before and after advection, therefore, requires unit conversions that use a dry air mass definition consistent with that used in advection.
  2. The new dry surface pressure should NOT be used for constructing vertical profiles of dry and moist air pressures. The dry air pressure derived from dry surface pressure and GMAO vertical grid parameters A and B would not reflect an accurate height profile and cannot be used to derive a moist pressure height proxy. For this reason, 3D pressures (State_Met variables PEDGE, PEDGE_DRY, PMID, and PMID_DRY) are still constructed using the v11-01a method with GMAO wet surface pressures in combination with specific humidity.

--Lizzie Lundgren (talk) 15:33, 29 September 2016 (UTC)

Bug fixes for the dry deposition flux diagnostic

These updates were validated in the 1-year Rn-Pb-Be benchmark simulation v11-01h-Rn-Pb-Be, which was approved on 11 Oct 2016.

After the initial 1-year Rn-Pb-Be benchmark simulations were completed for v11-01h, Hongyu Liu pointed out the 210Pb budget was not balanced. The imbalance was tracked to large values in the dry deposition flux diagnostic when using the TURBDAY mixing scheme. The issue does not impact simulations using the VDIFF mixing scheme.

Bo Zhang wrote:

The large drydep flux diagnostic term is likely caused by ignoring the difference between chemistry and convection timesteps.
The drydep flux diagnostic is added up every convection step in mixing_mod.F:
  AD44(I,J,DryDepID,1) = AD44(I,J,DryDepID,1) + FLUX
, then it is divided by the chemistry scale in diag3.F before being saved into bpch. The chemistry and convection timesteps are 10 mins and 20 mins respectively, which leads to the issue.
  ARRAY(:,:,1) = ( AD44(:,:,N,1) / SCALECHEM )
For non-local PBL, the difference is considered, but there is also a potential issue.
  AD44(:,:,D,1) = AD44(:,:,D,1) + dflx(:,:,trc_id)        &
                  / TRACER_MW_KG(trc_id) * AVO * 1.e-4_fp &
                  * GET_TS_CONV() / GET_TS_EMIS()
Emission timestep is given the same value as chemistry in default, so this works fine, but it seems more appropriate to replace GET_TS_EMIS() by GET_TS_CHEM() because SCALECHEM is used eventually in diag3.F. My current fix is to add the term GET_TS_CONV() / GET_TS_CHEM() in the first equation in mixing_mod.F.
In addition, the following lines update tracer concentrations and calculate drydep flux in mixing_mod.F. It seems that FLUX should be calculated first before the tracer conc gets updated (the second equation should come first).
  ! Apply dry deposition
  State_Chm%Tracers(I,J,L,N) = FRAC *    &
                               State_Chm%Tracers(I,J,L,N)

  ! Loss in kg/m2
  FLUX = ( 1.0_fp - FRAC ) * State_Chm%Tracers(I,J,L,N)

--Melissa Sulprizio (talk) 14:10, 11 October 2016 (UTC)

Fix molecular weight of N2O5

This update was validated with the 1-month benchmark simulation v11-01j and approved on 03 Dec 2016

Chi Li found that we were using a molecular weight of 105.0 g/mole for N2O5 in the species database, but 108.0 g/mole should be used. This fix will be applied in v11-01j in Headers/species_database_mod.F90. In GEOS-Chem v10-01 and earlier versions, this fix can be applied to the input.geos file.

--Melissa Sulprizio (talk) 16:51, 23 November 2016 (UTC)

Prevent errors caused by uninitialized fields of the State_Met object

This update was included in v11-01k and approved on 19 Dec 2016

Several fields of the State_Met object may or may not get allocated depending on the met fields being used, or if we are running in GEOS-Chem HP mode. Under some circumstances (especially when using the GNU Fortran compiler), GEOS-Chem simuations have crashed in the wet deposition module because an uninitialized field of State_Met was encountered.

Therefore, we now make sure to nullify all such pointers in routine Init_State_Met. This will prevent such errors from occurring in the future.

--Bob Yantosca (talk) 20:17, 2 December 2016 (UTC)

Allocate aerosol fields of State_Chm only for full-chemistry or aerosol-only simulations

This update was included in v11-01k and approved on 19 Dec 2016

The aerosol area and radius fields of the State_Chm object hold values that are computed by routine RDAER (located in module GeosCore/aerosol_mod.F). These values are only relevant for full-chemistry and aerosol-only GEOS-Chem simulations.

We have made a minor modification—shown in GREEN below—to routine Init_State_Chm (in module Headers/state_chm_mod.F90) so that these fields will only get allocated for full-chemistry or aerosol-only simulations. This will allow the other GEOS-Chem specialty simuations (e.g. Rn-Pb-Be, Hg, CH4, etc) to use less memory.

   !=====================================================================
   ! Allocate and initialize aerosol area and radius fields
   ! These are only relevant for fullchem or aerosol-only simulations
   !=====================================================================
   IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. Input_Opt%ITS_AN_AEROSOL_SIM ) THEN

    State_Chm%nAero = nAerosol

    ALLOCATE( State_Chm%AeroArea   ( IM, JM, LM, State_Chm%nAero  ), STAT=RC )
    IF ( RC /= GC_SUCCESS ) RETURN
    State_Chm%AeroArea    = 0.0_fp

    ALLOCATE( State_Chm%AeroRadi   ( IM, JM, LM, State_Chm%nAero  ), STAT=RC )
    IF ( RC /= GC_SUCCESS ) RETURN
    State_Chm%AeroRadi    = 0.0_fp

    ALLOCATE( State_Chm%WetAeroArea( IM, JM, LM, State_Chm%nAero  ), STAT=RC )
    IF ( RC /= GC_SUCCESS ) RETURN
    State_Chm%WetAeroArea = 0.0_fp

    ALLOCATE( State_Chm%WetAeroRadi( IM, JM, LM, State_Chm%nAero  ), STAT=RC )
    IF ( RC /= GC_SUCCESS ) RETURN
    State_Chm%WetAeroRadi = 0.0_fp

   ENDIF

--Bob Yantosca (talk) 20:18, 2 December 2016 (UTC)

Rename grid_mod.F90 to gc_grid_mod.F90

This update was included in v11-01k and approved on 19 Dec 2016

In order to interface GEOS-Chem with the Beijing Climate Center (BCC) model, we had to rename module GeosUtil/grid_mod.F90 to GeosUtil/gc_grid_mod.F90. The BCC model already has a module named grid_mod, and this was causing conflicts during compilation.

--Bob Yantosca (talk) 20:16, 2 December 2016 (UTC)

Error message output now advises users to check the HEMCO log file

This update was included in GEOS-Chem v11-01 public release

When a GEOS-Chem simulation dies because of an error in HEMCO, the error message output now contains a line (shown in GREEN) advising the user to look in the HEMCO log file for further information.

===============================================================================
GEOS-CHEM ERROR: HCO_RUN 

HEMCO ERROR: Please check the HEMCO log file for error messages!

STOP at HCOI_GC_RUN (GeosCore/hcoi_gc_main_mod.F90)
===============================================================================

The HEMCO log file (which is usually named HEMCO.log) will contain more detailed output that should identify the cause and location of the error. In this example below, HEMCO tried to read a file from disk, but could not find it.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
HEMCO ERROR: Cannot find file for current simulation time: $ROOT/TIMEZONES/v2015-02/timezones_1x1.edit.nc - 
 Cannot get field TIMEZONES. Please check file name and time (incl. time range flag) in the config. file
ERROR LOCATION: HCOIO_READ_STD (hcoio_read_std_mod.F90)
ERROR LOCATION: ReadList_Fill (hco_readlist_mod.F90)
ERROR LOCATION: ReadList_Read (hco_readlist_mod.F90)
ERROR LOCATION: HCO_RUN (hco_driver_mod.F90)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

We hope that this update will help GEOS-Chem users to be better able to diagnose and re:port errors.

--Bob Yantosca (talk) 18:48, 6 January 2017 (UTC)

Fix units of O1D and O3P in ND43 diagnostic

This update was included in GEOS-Chem v11-01 public release

Chris Holmes wrote:

I found a minor bug in ND43 in v11-01. When running with UCX chemistry ND43 saves the concentrations of O1D and O in the trac_avg file. Gamap reports that the units for O1D and O are v/v (see below), but the values are inconsistent with those units. Based on the values, I am quite confident that the units for O1D and O are molec/cm3. I suspect that the only change necessary is to revise the units that are written in tracerinfo.dat.
GAMAP output
   100 : CHEM-L=$   20       OH  16001       molec/cm3 208176.00 2008100100   72  46  59
   101 : CHEM-L=$   20      HO2  16003             v/v 208176.00 2008100100   72  46  59
   102 : CHEM-L=$   20      O1D  16004             v/v 208176.00 2008100100   72  46  59
   103 : CHEM-L=$   20        O  16005             v/v 208176.00 2008100100   72  46  59

To fix this bug, the following lines in green need to be added in diag3.F:

#if defined( UCX )
              ! O1D
              CASE ( 4 )
                 WHERE( CTO1D /= 0 )
                    ARRAY(:,:,1:LD43) = AD43(:,:,1:LD43,N) /
    &                    FLOAT( CTO1D )
                 ELSEWHERE
                    ARRAY(:,:,1:LD43) = 0.
                 ENDWHERE

                 UNIT = 'molec/cm3'

              ! O3P
              CASE ( 5 )
                 WHERE( CTO3P /= 0 )
                    ARRAY(:,:,1:LD43) = AD43(:,:,1:LD43,N) /
    &                    FLOAT( CTO3P )
                 ELSEWHERE
                    ARRAY(:,:,1:LD43) = 0.
                 ENDWHERE

                 UNIT = 'molec/cm3'
#endif

--Melissa Sulprizio (talk) 16:23, 17 January 2017 (UTC)

Print message to log file if OpenMP parallelization is turned off

This update was included in GEOS-Chem v11-01 public release

For debugging purposes, users may turn off OpenMP parallelization with the OMP=n compiler switch. When OpenMP is turned off, a C-preprocesor switch (-DNO_OMP) will be added to the compilation. This will let us check for #if defined( NO_OMP ) in main.F and print a warning message to the log file if OpenMP parallization has been turned off.

In this way, the user will be able to immediately tell if OpenMP parallelization has been deactivated simply by checking the top of the log file.

--Bob Yantosca (talk) 17:19, 20 January 2017 (UTC)

Fix incorrect unit strings for ND65 diagnostic in diag3.F

This update was included in GEOS-Chem v11-01 public release

Chris Holmes wrote:

The ND65 P/L diagnostics are molec/cm3/s, but in GeosCore/diag3.F they are called mol/cm3/s. This is confusing because "mol" is the abbreviation for mole, not molecule. The units are correct in tracerinfo.dat, but gamap displays the incorrect units from the bpch file.

This inconsistency also applied to ND29. In GeosCore/gamap_mod.F, the units for ND29 are defined as molec/cm3/s, but in GeosCore/diag3.F they were mol/cm3/s. This has now been fixed so that both files use molec/cm3/s.

Also note: The binary punch diagnostics are slated to be removed soon, probably in GEOS-Chem v11-02.

--Bob Yantosca (talk) 17:25, 20 January 2017 (UTC)

Minor fix for ND68 entries in tracerinfo.dat

This update was included in GEOS-Chem v11-01 public release

In GEOS-Chem v11-01g, the ND68 air mass and related quantities diagnostic was updated to reduce the number of fields from 13 to 8. The code in INIT_TRACERINFO (in GeosCore/gamap_mod.F) and the comments in GeosCore/diag3.F are now updated to reflect that ND68 now only includes:

1:  BXHEIGHT     - box height [m]
2:  AD           - dry air mass [kg]
3:  AVGW         - mol H2O / mol dry air [v/v]
4:  AIRNUMDEN    - dry air number density [molecules/m3]
5:  T            - temperature [K]
6:  PMID         - arithmetic mean pressure [hPa]
7:  PEDGE        - level pressure (bottom edge) [hPa]
8:  RH           - relative humidity [%]
   

--Bob Yantosca (talk) 21:33, 30 January 2017 (UTC)

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

The following issues have not yet been resolved in GEOS-Chem v11-01. Some of these issues represent questions of open research rather than bugs in the source code.

Cause of negative tracer concentrations at the poles is unknown

Tracer concentrations at the poles may become negative within advection. A fix is included in v11-01 that resets negative values to positive at the end of TPCORE_FVDAS but the underlying cause of the negative values is not addressed. All negative values are small enough to not significantly impact advection mass balance.

--Bob Yantosca (talk) 21:22, 20 April 2016 (UTC)

Error in production of SO4s and NITs in SEASALT_CHEM

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

Prasad Kasibhatla reported an issue in the production of SO4 and NITs in routine SEASALT_CHEM (in GeosCore/sulfate_mod.F) due to a unit conversion error. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.

--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)

Bug in nitrate uptake on fine sea salt

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

Prasad Kasibhatla discovered nitrate uptake on fine sea salt is only done in the PBL, but should be done throughout the troposphere. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.

--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)

ALK4 lumping issue

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

Barron Henderson noted a lumping issue for ALK4. For a complete description of the issue and the proposed solution, see this post on our Chemistry Issues wiki page.

--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)

Bug in sulfate production in HET_DROP_CHEM

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

Qianjie Chen identified a bug in sulfate_mod.F that results in too much sulfate produced from ozone over the ocean. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.

--Melissa Sulprizio (talk) 17:37, 2 February 2017 (UTC)

Computational bottleneck in the convection module

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

After the v11-01 public release was issued, the GCST discovered a computational bottleneck in the convection module. For more information about this issue, please see this post on our Cloud convection wiki page.

--Bob Yantosca (talk) 22:11, 8 February 2017 (UTC)

Bug in cos(SZA) for start of timestep

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

After the v11-01 public release was issued, Lizzie Lundgren (GCST) discovered a bug in the computation of the cosine of the solar zenith angle for the start of the current timestep. This value is stored in State_Met%suncos. Instead of using the start time of the current timestep for the calculation, the model always used the current hour. The cos(SZA) for the mid-point of the timestep, stored as State_Met%suncosmid, is unaffected.

--Lizzie Lundgren (talk) 15:17, 13 March 2017 (UTC)

Bugs in convective flux diagnostics (ND14)

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

After the v11-01 public release was issued, Prasad Kasibhatla (Duke) discovered unexpected behavior when enabling the convective mass flux diagnostics (ND14) in the standard simulation using GEOS-FP. The GCST then identified two bugs in the source code for ND14 in v11-01 public release. Please make the following two updates to correct the issue if using ND14 with GEOS-FP, MERRA, or MERRA2 met-fields:

Around line 420:

        !--------------------------
        ! ND14 diagnostic [kg/s]
        !--------------------------
        IF ( DO_ND14 ) THEN

           ! Loop over only the soluble species
           DO NW = 1, State_Chm%nWetDep

              ! Get the species ID From the wetdep ID
              N = State_Chm%Map_Advect(NA)  ---> CHANGE TO: N = State_Chm%Map_Wetdep(NW)

              ! Archive diagnostic
              DO L = 1, LD14
                 CONVFLUP(I,J,L,N) = CONVFLUP(I,J,L,N) + DIAG14(L,NW)
              ENDDO
           ENDDO

Around line 2731:

                 !--------------------------------------------------------------
                 ! (3.3)  N D 1 4   D i a g n o s t i c
                 !
                 ! Archive upward mass flux due to wet convection  
                 ! [kg/sec] in the box (I,J), for the species IC going out 
                 ! of the top of the layer K to the layer above (K+1)  
                 ! (bey, 11/10/99). We must divide by DNS, the # of internal 
                 ! timesteps so that the sum represents the average loss rate 
                 ! across all internal timesteps.
                 !------------------------------------------------------------
                 IF ( USE_DIAG14 ) THEN ---> CHANGE TO: IF ( USE_DIAG14 .and. NW > 0 ) THEN  
                    DIAG14(K,NW) = 
    &               DIAG14(K,NW) + ( -T2-T3 ) * AREA_M2 / DNS   
                 ENDIF

--Lizzie Lundgren (talk) 15:26, 15 March 2017 (UTC)

P(OH) not saved out in ND22 diagnostic

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

Prasad Kasibhatla pointed out that production of OH from O3 photolysis (index 6) in the ND22 diagnostic is saved out as all zeroes in GEOS-Chem v11-01. This diagnostic quantity is only saved out for the tropchem and SOA mechanisms (i.e. simulations that do not use UCX). In the Standard and UCX mechanisms, J(O3P) is saved out for index 6 of ND22. The P(OH) quantity was deactivated during the implementation of FlexChem and was not restored. This will be corrected in GEOS-Chem v11-02. To restore P(OH) from O3 photolysis in ND22, add the following lines (in green) to routine PHOTRATE_ADJ in fast_jx_mod.F:

     ! Prevent div-by-zero
     IF ( RO1D > 0.0_fp ) THEN

        ! RXN_O3_2a specifies: O3 + hv -> O2 + O(1D) #1
        ZPJ(L,RXN_O3_2a,I,J) = ZPJ(L,RXN_O3_2a,I,J) * RO1DplH2O / RO1D

        ! RXN_O3_2b specifies: O3 + hv -> O2 + O(1D) #2
        ZPJ(L,RXN_O3_2b,I,J) = ZPJ(L,RXN_O3_2b,I,J) * RO1DplH2  / RO1D

     ENDIF

     ! Store P(OH) from O3 photolysis as AD22(:,:,:,6)
     IF ( ND22 > 0 ) THEN
        IF ( L <= LD22 .and. LTJV(I,J) > 0 ) THEN
           AD22(I,J,L,6) = AD22(I,J,L,6)        + 
    &                      ZPJ(L,RXN_O3_2a,I,J) +
    &                      ZPJ(L,RXN_O3_2b,I,J)
        ENDIF
     ENDIF

#endif
     
     END SUBROUTINE PHOTRATE_ADJ

--Melissa Sulprizio (talk) 14:32, 16 March 2017 (UTC)

Planeflight diagnostic is disabled for full-chemistry simulations

NOTE: The planeflight diagnostics will be overhauled in v11-02.

Lee murray wrote:

I think the FlexChem implementation accidentally disabled the planeflight diagnostic for the full chemistry simulation. We used to initialize the planeflight diagnostic in chemdr.F for full chemistry simulations (now no more) and all the other versions in main.F.
We should change main.F to always call SETUP_PLANEFLIGHT whenever the diagnostic is turned on.
        ! Plane following diagnostic
        IF ( ND40 > 0 .and. DO_DIAG_WRITE ) THEN 
        
           ! Call SETUP_PLANEFLIGHT routine if necessary
           IF ( ITS_A_NEW_DAY() ) THEN
              
!               ! If it's a full-chemistry simulation but LCHEM=F,
!               ! or if it's an offline simulation, call setup routine 
!               IF ( ITS_A_FULLCHEM_SIM ) THEN
!                  IF ( .not. LCHEM ) THEN
!                     CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt,
!     &                                       State_Chm, RC )
!                  ENDIF
!               ELSE
!                  CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, 
!     &                                    State_Chm, RC )
!               ENDIF

              CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, State_Chm, RC )

           ENDIF
        ENDIF

--Melissa Sulprizio (talk) 19:55, 8 May 2017 (UTC)