Difference between revisions of "GEOS-Chem v11-01"
(→Error message output now advises users to check the HEMCO log file) |
(→Fix bug in units of O1D and O3P for ND43) |
||
Line 1,661: | Line 1,661: | ||
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:48, 6 January 2017 (UTC) | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 18:48, 6 January 2017 (UTC) | ||
− | === Fix | + | === Fix units of O1D and O3P for ND43 === |
<span style="color:darkorange">'''''This fix will be included in the [[GEOS-Chem v11-01#v11-01 public release|v11-01 public release]].'''''</span> | <span style="color:darkorange">'''''This fix will be included in the [[GEOS-Chem v11-01#v11-01 public release|v11-01 public release]].'''''</span> |
Revision as of 16:25, 17 January 2017
Contents
- 1 Overview
- 2 Validation
- 3 Previous issues now resolved in GEOS-Chem v11-01
- 3.1 Added a test for mass conservation
- 3.2 Prevent negative tracer concentrations after advection
- 3.3 Update of PMN + O3 reaction products in globchem.dat file
- 3.4 Modifications to ND20 to archive afternoon P(O3) and L(O3)
- 3.5 Bug fixes for the ND21 diagnostic
- 3.6 Bug fix for custom grid in tpcore_bc_mod.F
- 3.7 Mercury simulation inconsistently failing optimization unit tests in v11-01c
- 3.8 Do not nullify local pointers in the same line where they are declared
- 3.9 J-values are doubled for O(1D) and O(3P) in ND22 diagnostic output
- 3.10 Incorrect incorporation of moisture in GEOS-Chem air quantities
- 3.11 Bug fixes for the dry deposition flux diagnostic
- 3.12 Fix molecular weight of N2O5
- 3.13 Prevent errors caused by uninitialized fields of the State_Met object
- 3.14 Allocate aerosol fields of State_Chm only for full-chemistry or aerosol-only simulations
- 3.15 Rename grid_mod.F90 to gc_grid_mod.F90
- 3.16 Error message output now advises users to check the HEMCO log file
- 3.17 Fix units of O1D and O3P for ND43
- 4 Outstanding issues not yet resolved in GEOS-Chem v11-01
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 v11-02 |
PUBLIC RELEASE 17 Jun 2015 | PROVISIONAL RELEASE 20 Dec 2016 | TBD |
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 | TBD |
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:
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:
- Approval form for 1-month benchmark simulation v11-01b
- Results for 1-year benchmark simulation v11-01b-Run0
- 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: |
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
|
Science | Melanie Hammer (Dalhousie) | " " |
Acid uptake on dust aerosols
|
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)
|
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:
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) |
|
--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):
- Results for 1-year benchmark simulation v11-01d-Run1
- Results for 1-year benchmark simulation v11-01d-RnPbBe
Benchmark results for v11-01d including the quick fix (Version not approved):
- Approval form for 1-month benchmark simulation v11-01d
- Results for 1-year benchmark simulation v11-01d-Run0
- 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:
|
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:
--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:
- Approval form for 1-month benchmark simulation v11-01f with GEOS-FP
- Approval form for 1-month benchmark simulation v11-01f with MERRA-2
- Results for 1-year Rn-Pb-Be benchmark simulations for v11-01f
- Results for 1-year benchmark simulation v11-01f-geosfp-Run0
- Results for 1-year benchmark simulation v11-01f-merra2-Run0
--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:
- Approval form for 1-month benchmark simulation v11-01g
- Results for 1-year benchmark simulation v11-01g-Run0
Feature | Type | Submitted by | Status |
---|---|---|---|
FlexChem
|
Science | Mike Long (Harvard) GCST |
1-month benchmark Approved 14 Sep 2016 1-year benchmark |
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:
|
Structural | Lizzie Lundgren (GCST) | " " |
Restore the tagged CO specialty simulation
|
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
|
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:
- Approval form for 1-month benchmark simulation v11-01h
- 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:
- Approval form for 1-month benchmark simulation v11-01i
- 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:
--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:
- Approval form for 1-month benchmark simulation v11-01k
- 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 |
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.
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.
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:
--Bob Yantosca (talk) 21:48, 10 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 file: EMEP_mask.geos.1x1.20151222.nc | v11-01f | 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:
|
v11-01j | ExtData/HEMCO/TIMEZONES/v2015-02/ |
GMI | New file: gmi.clim.HCOOH.geos5.2x25.20160912.nc | v11-01j | ExtData/HEMCO/GMI/v2015-02/ |
Masks | New file: USA_LANDMASK_NEI2011_0.1x0.1.20160921.nc | v11-01j | ExtData/HEMCO/MASKS/v2014-07/ |
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 |
--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.
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:
- Corrects the transport mass distribution problem by using dry surface air pressures in advection
- Preserves the moisture updates incorporated into v11-01a, including 3D dry and moist air pressures
- 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:
- 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.
- 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()
byGET_TS_CHEM()
because SCALECHEM is used eventually in diag3.F. My current fix is to add the termGET_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 will be included in the 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 for ND43
This fix will be included in the 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)
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)