This file documents all notable changes to the GEOS-Chem repository starting in version 14.0.0, including all GEOS-Chem Classic and GCHP run directory updates.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Script
test/difference/diffTest.sh
, checks 2 different integration tests for differences - Added GCHP environment file and export/unset env variables in run script for NASA Pleiades cluster
SatDiagnEdge
collection to all GEOS-Chem ClassicHISTORY.rc
templates - Added new GCHP config file ESMF.rc for configuring ESMF logging
- Added several new run directory files for use with GEOS-Chem in GEOS
- GCClassic integration tests now display proper commit info in
results.compile.log
- Stopped OCEAN_CONC from needlessly being pushed through vertical regridding for Hg simulations
- Added warning in GCHP HISTORY.rc about outputting area-dependent variables on custom grids
- Added option to use a single advected species in the carbon simulation
- Added option to perturb CH4 boundary conditions in CH4 simulation
- Added option to perturb OH in CH4 simulation using scale factor in HEMCO_Config.rc
- Update
DiagnFreq
in GCClassic integration tests to ensure HEMCO diagnostic output - Rename restart files in GCHP integration tests (as we do in non-test runs)
- Request 6 hours of execution time for GEOS-Chem Classic integration tests
- Invert directory structure where integration and parallel test scripts are stored
- Error check to stop run if any
MW_g
values are undefined - Explicitly define tagCH4 simulations in
Input_Opt
rather than basing off of number of advected species - The
fullchem
mechanism must now be built with KPP 3.0.0 or later - Changed the AEIC 2019 monthly climatology specification format in ExtData.rc to match standard convention for climatology
- Changed default ESMF logging in GCHP to be ESMF_LOGKIND_NONE (no log)
- NetCDF utilities in
NcdfUtil
folder now use the netCDF-F90 API - GEOS-only updates for running GEOS-Chem in GEOS
- Boundary conditions for nested-grid simulations are now imposed at every time step instead of 3-hourly
- Update
GeosCore/carbon_gases_mod.F90
for consistency with config file updates in PR #1916 - Update MPI usage in CESM-only code to match new conventions in CAM
- Updated GEPA inventory to GHGI v2 for CH4 and carbon simulations
- Updated integration tests scripts to run on the WashU Compute1 cluster
- Add missing mol wt for HgBrO in
run/shared/species_database_hg.yml
- Moved the
EDGAR REF_TRF CH4
emissions to the Oil emissions category so it is superseded by GFEIv2 for carbon simulations. - Prevent
State_Diag%SatDiagnCount
from not being allocated - For satellite diagnostics, do not test for
id_OH
if OH is not a species - Fixed parallelization in Luo wetdep simulations caused by uninitialized variable
- Fixed parallelization for Hg0 species in
GeosCore/drydep_mod.F90
- Fixed incorrect time-slice when reading nested-grid boundary conditions
- Fixed initialization of advected species missing in GCHP restart file
- Fixed comments in
GeosUtil/unitconv_mod.F90
to reflect code implementation - Fixed compilation issues for
KPP/custom
; updated equations incustom.eqn
- Prevent users from creating GCClassic rundirs at 0.25 x 0.3125 resolution for MERRA-2 met
- Added fix to set
RUNDIR_GRID_HALF_POLAR
option for global grids at 0.25x0.3125 or 0.5x0.625 resolutions - Moved
OCEAN_MASK
out ofExtData.rc.TransportTracers
and into the meteorology template files - Update
ExtData.rc.CO2
to get meteorology entries from template files - Added fix for CH4 analytical inversions to convert the state vector value read from file to the nearest integer before comparing to the
Input_Opt%StateVectorElement
read from geoschem_config.yml
- Remove references to the obsolete tagged Hg simulation
- Added a printout of GEOS-Chem species and indices
- Added
NcdfUtil/README.md
file directing users to look for netCDF utility scripts at https://github.com/geoschem/netcdf-scripts - Restored sink reactions for HOI, IONO, IONO2 (fullchem, custom mechanisms)
- S(IV) + HOBr and S(IV) + HOCl reactions to
KPP/fullchem/fullchem.eqn
- Added setting in GCHP setCommonRunSettings.sh to require species in restarts
- Added setting in GCHP HISTORY.rc to control whether output can be overwritten
- Activated nitrate photolysis
- Added
LightingClimatology
option to HEMCO_Config.rc - Added run configuration files for WRF-GC
- Added new files
photolysis_mod.F90
,phot_container_mod.F90
, andfjx_interface_mod.F90
- Added photolysis toggle in
geoschem_config.yml
andInput_Opt
variable Do_Photolysis - Added speed of light and Planck's constant to PhysConstants module
- Added
GFED4_CLIMATOLOGY
option to HEMCO_Config.rc - Added CH4 emissions from hydroelectric reservoirs to CH4, Carbon, and tagCH4 simulations
- Added RxnConst diagnostic for archiving reaction rate constants
- Added GCHP run-time option in GCHP.rc to choose dry or total pressure in GCHP advection
- Added GCHP run-time option in GCHP.rc to correct native mass fluxes for humidity
- Added new tracer_mod.F90 containing subroutines for applying sources and sinks for the TransportTracer simulation
- Added new species to the TransportTracer simulation: aoa (replaces CLOCK), aoa_bl, aoa_nh, st80_25
- Added GEOS-IT and GEOSIT as allowable meteorology source options in geoschem_config.yml
- Most printout has been converted to debug printout (toggled by
debug_printout: true
ingeoschem_config.yml
HEMCO_Config.rc
template files now useVerbose: true
to toggle debug printout- Turn on sea salt debromination via switches in
HEMCO_config.rc
- If KPP integration fails, reset to prior concentrations and set
RSTATE(3) = 0
before retrying - Suppress integration errors after 20 errors have been printed to stdout
- Simplified and added comments for bimolecular reactions in clouds in function CloudHet2R
HEMCO_Config.rc
andExtData.rc
templates now pointHEMCO/GFED4/v2023-03
- Updated GCHP carbon simulation Global Cl and P(CO) inputs to use 14.0.0 files
- Write GCHP restart files directory to Restarts subdirectory
- Rename GCHP mid-run checkpoint files to standard GEOS-Chem restart format
- Rules for species in restarts files are now the same in GCHP as in GC-Classic
- Moved parts of
CMN_FJX_Mod.F90
not used in original Fast-JX to new container State_Chm%Phot - Restructured photolysis to create generic photolysis module, interface with Fast-JX, and module containing original Fast-JX analogous to Cloud-J
- Moved UVFlux diagnostics out of JValues collection and into new collection called UVFlux
- In the user registration process:
- Now ask for both first and last names of the user
- Now state that user registration is needed for GEOS-Chem support
- Updated
HEMCO_Config.rc
templates to read HEMCO restarts from theRestarts
rundir folder - In fullchem simulations, set CO2 to 421 ppm (avg global conc in 2022) everywhere
- Updated CH4 simulation to use CH4 loss frequencies from GCClassic 14.0.0 10-year benchmarks instead of GMI
- Updated CH4 global anthropogenic emission inventory from EDGARv6 to EDGARv7
- Updated
AUTHORS.txt
for version 14.2.0 - Updated links in
README.md
to point tohttp://geos-chem.org
- Changed GCHP default settings to use dry pressure rather than total pressure in advection and correct native mass fluxes for humidity
- Updated partitions requested in Harvard run script examples
- Change RTOL value from 0.5e-3 back to 0.5e-2 to address model slowdown
- Allow the use of OFFLINE_SEASALT for seasalt alkalinity, Cl, and Br in GEOS-Chem within CESM
- Renamed TransportTracer species for consistency with GMAO's TR_GridComp
- See
KPP/fullchem/CHANGELOG_fullchem.md
for fullchem-mechanism changes - Update template
HEMCO_Config.rc.carbon
files to allow running the carbon simulation with only a single species.
- Fixed typo in
GCClassic/createRunDir.sh
preventing benchmark run script from being copied to the run directory - Fixed divide by zero bug in sulfur chemistry introduced in 14.1.0
- Updates for 0.5 x 0.625 degree GCClassic integration & parallel tests
- Use
CYS
inHEMCO_Config.rc
so that missing species inGC_BCs
will not stop simulations - Tests now run for 20 model minutes instead of an hour
- Use
- Fixed divide by zero bug in sulfur chemistry introduced in 14.1.0
- Fixed GCHP
HISTORY.rc
issue preventing running with over 3000 cores - Fixed GCHP
ExtData.rc
error in tagged ozone simulation - Fixed GCHP
HISTORY.rc
issue preventing diagnostic file overwrite - Update GCHP interactive run script to fix error handling silent bugs
- Rewrote subroutine calls in
carbon_mod.F90
andseasalt_mod.F90
to prevent array temporaries. - Prevent repeated printing of KPP integrate errors to the stdout stream.
- Fixed selection of troposphere-stratosphere boundary in
global_ch4_mod.F90
- Removed operator splitting in CH4 simulation that was biasing diagnostics
- Fixed GCHP start and elapsed times in time_mod.F90 to use cap_restart value
- Disabled SpeciesConcMND output for benchmark simulations
- Exit
Init_Photolysis
before callingCalc_AOD
when doing dry-run simulations - Make sure
State_Het%f_Alk_SSA
andState_Het%f_Alk_SSC
are in the range 0..1 - Restore seasalt alkalinity to heterogeneous acid-catalyzed reactions of halogens on seasalt aerosols
Warnings: 1
is now removed fromHEMCO_Config.rc.*
template files- Removed the
NcdfUtil/perl
folder - Removed
X-HRS
output from log file - IONO2 recycling (fullchem, custom mechanisms)
- Deleted unused file set_prof_o3.F90
- Fixed entries for CH4 emissions in
HEMCO_Config.rc.carbon
- New integration test functions in
test/GCClassic/integration
andtest/GCHP/integration
- New parallelization test functions in
test/GCClassic/parallel
- Added
README.md
files for integration and parallelization tests in thetest
folder structure - Added GCHP integration test for the tagO3 simulation
- Added GCHP and GCClassic integration tests for the carbon simulation
- Integration and parallelization test folders have been separated into subdirectories to minimize clutter.
- GEOS-only updates
- Add
about
to GitHub issue templates (ensures they will be displayed) - Added
.github/ISSUE_TEMPLATE/config.yml
file w/ Github issue options
- GCClassic integration tests now use a single set of scripts
- GCHP integration tests now use a single set of scripts
- Integration test run directories are created with the default names assigned by
createRunDir.sh
- Several bash functions in
test/shared/commonFunctionsForTests.sh
have been combined so that they will work for both GCClassic and GCHP integration tests ./cleanRunDir.sh
functions now take an argument for non-interactive execution (facilitates integration & parallelization tests)- Moved several module variables from
GeosCore/ucx_mod.F90
toHeaders/state_chm_mod.F90
. This facilitates using GEOS-Chem in CESM. - Time cycle flags EFYO are changed to CYS for all GCClassic integration/parallel tests, and for GCClassic fullchem_benchmarksimulations.
- Ask users for the name of their research institution at registration
- Ask users for the name of their PI at registration
- Do not compile GCHP for tagO3 integration tests; use the default build instead
- Moved GC-Classic sample run scripts to operational_examples/harvard_cannon
- The GitHub PR template is now named
./github/PULL_REQUEST_TEMPLATE.md
- Fixed bug in where writing species metadata yaml file write was always attempted
- Prevent a warning from being generated when compiling
gckpp_Jacobian.F90
- Fixed a bug in routine GET_IJ where X and Y were swapped in an IF comparison.
- Fixed bug in GFAS pFe by applying work-around in config files
- Removed
intTest*_slurm.sh
,intTest_*lsf.sh
, andintTest*_interactive.sh
integration test scripts - Removed State_Met%LWI and input meteorology LWI from carbon simulation run config files
- Removed function
CLEANUP_UCX
; deallocations are now done instate_chm_mod.F90
- Added dry deposition updates to Hg0 from Feinberg22 ESPI publication + AMAP emissions
- Added MO2 + NO3 = NO2 + CH2O + HO2 reaction
- Added capability to write species metadata to YAML file
- Added satellite diagnostic (SatDiagn) collection, to archive several fields within a user-defined local-time interval. CAVEAT: For now, only one local-time interval is permitted.
- Added adaptive solver (
rosenbrock_autoreduce
) option for fullchem mechanism - Added entries for BALD, BENZP, BZCO3H, NPHEN to JValues collection in HISTORY.rc for GCHP
- Added GCHP run script and environment files for MIT clusters Hex and Svante
- Added operational GCHP and GCClassic environment and run scripts for the University of York cluster, Viking
- Added tagO3 run directory for GCHP
- Added upwards mass flux diagnostic to GCHP History collection LevelEdgeDiags
- Added timestep menu to GCHP
geoschem_config.yml
template files - Added HTAPv3 inventory as a global emissions option (off by default)
- Added carbon simulation and KPP mechanism for CO-CO2-CH4-OCS
- Added GCHP run script and environment file for UCI Australia cluster Gadi
- Added GFAS entries in GCHP config file ExtData.rc
- Moved in-module variables in global_ch4_mod.F90 to State_Chm
- Moved in-module variables in hco_interface_gc_mod.F90 to State_Met and State_Chm
- Modified SpeciesConc diagnostic to include option to output units in v/v or molec/cm3
- Rebuilt fullchem and Hg mechanisms with KPP 3.0.0
- Changed HEMCO timecycle flag for QFED and offline emissions from EF to EFY
- Updated the time refresh settings for
O3_PROD
andO3_LOSS
inExtData.rc.tagO3
to read data on the first of each month.
- Fixed sign of Arrhenius "A" coefficient in reaction ETO = HO2 + 2CH2O
- Fixed products in HOBr + SO2 and HOCl + SO2 reactions
- Changed MW_g value of CH4 from 16.05 to 16.04
- Added "WD_CoarseAer:true" for SO4s and NITs in species_database.yml
- Fixed bug in computing State_Met surface type logicals (IsLand, IsWater, etc)
- Fixed bug where State_Met%FRSNO (fraction snow) was all zeros in GCHP
- Fixed HCFC141b and HCFC142b names in GCHP HISTORY.rc
- Fixed list of complex SOA species checked in input_mod.F90
- Now use a string array for reading the list of ObsPack diagnostic species (in
GeosCore/input_mod.F90
) - Fixed bug in logic that caused restart files not to be linked to the Restarts/ folder of the GCHP tagO3 run directory
- Fixed timestamp for GCClassic History diagnostic so time-averaged collections match the reference time
- Fixed double-titration of seasalt alkalinity
- Fixed bug in GFAS pFe by applying work-around in config files
- Removed LRED_JNO2 and AERO_HG2_PARTITON switches from HEMCO_Config.rc (and related code)
- Added fix for writing dry-run header to log file
- Updated KPP diagnostics archive flags
- Rewrote code to avoid memory leaks (identified by the code sanitizer)
- Updated EDGAR v6 CH4 emission files to correct timestamp issue
- Updated CH4 Lakes emission files to correct time unit issue
- Added fix for CH4_RICE emissions from EDGAR v6
- Fixed indentation error in the
legacy_bpch
section ofgeoschem_config.yml
template files - Removed "dry air" from the metadata of fields
State_Met%AIRVOL
andState_Met%BXHEIGHT
- Applied fixes for CESM runs: Turned off sea salt emissions; Modified time cycle flag for YUAN_MODIS_LAI
- Updated CESM HISTORY.rc to work with new CESM-GC diagnostics interface
- Updated sample fullchem restart files copied to run directories to 14.0.0 10-year benchmark output
- Use met-field surface type fractions instead of input land-water-ice (LWI) index
- Removed State_Met%LWI and LWI as a met-field input
- Corrected units in metadata for State_Met%AirNumDen and State_Met%PHIS
- Fixed file path for AEIC2019_DAILY emissions for aerosol-only simulations
- Fixed GCHP bug to populate non-species data in mid-run restart files
- Fixed typo preventing ND51 satellite diagnostic from turning on
- Documented and cleaned up GCHP run script operational examples
- Updated README.md and AUTHORS.txt
- Set species concentration arrays as pointers to internal state in GCHP
- Updated Restart collection in HISTORY.rc to save out BXHEIGHT and TROPLEV for all simulations
- Added user registration with dynamodb database during run directory creation
- Added Hg simulation with KPP
- Added yaml-format config file geoschem_config.yml which replaces input.geos
- Added native GEOS-FP and mass fluxes options to GCHP run directory creation
- Added cap_restart file to GCHP run directories to set simulation start time
- Added updates for compatibility with CESM, GEOS, and WRF-GC
- Fixed missing output boundary conditions on first timestep of run
- Added missing entries for POG1, POG2, and pFe to HEMCO_Config.rc
- Reverted GC-Classic pressure fixer to v13.3 to fix bug in v13.4
- Fixed dry deposition of methanol over oceans
- Fixed issues in creating run directory for GCAP2
- Removed duplicate species for SO4 in aciduptake.eqn
- Fixed CEDS_CO2_SHP emissions in HEMCO_Config.rc file for CO2 simulation
- Fixed Volcano_Table entry in HEMCO config template for GCHP
- Fixed transport tracers simulation in GCHP
- Applied fix to avoid divide-by-zero in routine MMR_Compute_FLux
- Fixed HEMCO diagnostic counter zero warnings in full chemistry simulation
- Fixed bug in totalOC diagnostic
- Fixed bugs causing differences when splitting up GC-Classic and GCHP simulations in time
- Fixed bug setting GEOS-FP meteorology in GCHP run directories
- Updated KPP to version 2.5.0
- Updated GCHP run scripts to easily segment runs in time
- Changed GCHP restart filename convention to exclude seconds
- Updated offline biogenic VOC and soil NOx emissions
- Reduced root logging level for MAPL from INFO to WARNING
- Changed 4D State_Chm%Species array to vector of 3D concentration arrays
- Renamed GCHP config file runConfig.sh to setCommonRunSettings.sh
- Moved restart file location in run directory to Restarts subdirectory
- Updated sample restart files copied to run directories to 14.0.0 1-year benchmark output
- Removed TMPU1, SPHU1, PS1_WET, and PS1_DRY from GC-Classic restart file
- Removed input.geos; replaced with geoschem_config.yml
- Removed HEMCO.log output file; HEMCO log info now sent to main GEOS-Chem log