All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- GitHub Action config file
.github/workflows/stale.yml
, which replaces StaleBot
- GitHub config files
.github/stale.yml
and.github/no-response.yml
- Converted Github issue templates into issue forms using YAML definition files
- Updated Python package versions for ReadTheDocs in
docs/requirements.txt
- Now request Python 3.12 for ReadTheDocs builds in
.readthedocs.yaml
- Now allow up to 10 nested brackets (
((( )))
) in theHEMCO_Config.rc
file - Now use short submodule names (i.e. w/o path) in
.gitmodules
- Limit volcano climatology file read message to root core
- Updated
hco_interp_mod.F90
to handle 3D NEI emissions.
- Updated TOMAS_Jeagle sea salt extension
- Updated IsModelLevel check for CESM and WRF-GC
- Interpolation error for 8-day MODIS LAI files (removed month loop in
GetIndex2Interp
)
- Script
.release/changeVersionNumbers.sh
to change version numbers before a new HEMCO release
- Increased netCDF variable string length from 50 to 100
- Rename
HEMCO_Config.rc.sample
toHEMCO_Config.rc
increateRunDir.sh
if sample is used. - Added fix to turn off emissions extensions when
EMISSIONS
logical is false
- Updated version numbers to 3.7.1
- Make Hg0 emission factors in
hcox_gfed_include_gfed4.H
multipliers of the CO emission factor - Removed superfluous routine
GetExtSpcVal_Dr
insrc/Core/hco_extlist_mod.F90
- NetCDF routines in
src/Shared/NcdfUtil
now use the Fortran-90 API - Overhauled vertical regridding
src/Core/hco_interp_mod.F90
- Removed
INFLATE
(but retained its behavior only for 47L -> 72L vertical regridding, warning users that this isn't recommended) ModelLev_Interpolate
is only called when the input is 47/48, 72/73, or 102/103 levels (otherwise, MESSy is used).- A bug that averaged the wrong number of levels in
COLLAPSE
is fixed (and edges are now sampled instead of averaged). - Removed the now superfluous
NC_ISMODELLEVEL
andNC_SISIGMALEVEL
fromsrc/Shared/NcdfUtil/hco_ncdf_mod.F90
- Removed old code and references to
GEOS-4
.
- Removed
- Fixed incorrect
XMIN
,XMAX
values inHEMCO_sa_Grid.025x03125.rc
andHEMCO_sa_Grid.05x0625.rc
- Fixed line length too long for the
GC_72_EDGE_SIGMA
variable insrc/Core/hcoio_read_std_mod.F90
- HEMCO extensions now display a first-time message, whether
Verbose
istrue
orfalse
. - Added 'src/Shared/NcdfUtil/README.md` file directing users to look for netCDF utility scripts at https://github.com/geoschem/netcdf-scripts
- Added GFED4 biomass burning emissions for furans, PHEN, MVK, ISOP, ACTA, MGLY, MYLX, RCHO
- Add GEOSIT as an allowable meteorology directory name in HEMCO_Config.rc
- Added
.readthedocs.yaml
file to configure ReadTheDocs builds
Verbose
is now atrue/false
variable inrun/HEMCO_sa_Config.rc
andrun/HEMCO_Config.rc.sample
- HEMCO warnings are now only generated when
Verbose: true
is found in the HEMCO configuration file (no more numerical levels) - Updated GFED4 emission factors for VOCs to Andreae et al. (2019)
- Refactored
hco_calc_mod.F90
to avoid computational bottlenecks (PR #201) - Restart files are now written to the rundir
Restarts/
subdirectory - Created a
Restarts/
subdirectory in HEMCO standalone run directories - Added changes needed to build with NAG compiler
- Renamed Be7Strat and Be10Strat to Be7s and Be10s for consistency with GMAO's TR_GridComp
- Updated ReadTheDocs documentation about time cycle options
RFY
,RFY3
- Updated ReadTheDocs documentation about the
HEMCO_Diagn.rc
file - Updated
AUTHORS.txt
for GEOS-Chem 14.2.0 and HEMCO 3.7.0 - Updated formatting in
README.md
- Updated title and links to badges in
README.md
- Updated version number to 3.7.0
- Do not read masks if the filename is
-
(non-ESMF environments only) - Always assume partial coverage when reading masks in an ESMF environment (#163)
- Increased the string length for reading lines from HEMCO grid file to fix error in global 0.25x0.3125 standalone simulations
- Warnings is now removed from
run/HEMCO_sa_Config.rc
andrun/HEMCO_Config.rc.sample
- Removed the
src/Shared/NcdfUtil/perl
folder
- Fixed nvhpc compiler error in CESM by reducing line length of
GC_72_EDGE_SIGMA
assignment
- Added
.github/config.yml
with settings for the issue chooser page
- Replace
description:
withabout:
in GitHub issue templates - The PR template is now
.github/PULL_REQUEST_TEMPLATE.md
- Now point to proper commit of the
geos-chem-shaed-docs
submodule
- GEOS-only updates
- Removed several memory leaks in HEMCO Core and Standalone routines
- Simplified Github issue and pull request templates
- Throw an error if input calendar is not supported
- Added MAPL_ESMF compiler option for use with GCHP and GEOS
- New "Parallelize GEOS-Chem and HEMCO source code" guide on ReadTheDocs
- Updated documentation describing a masking error that can happen when performing simulations with cropped horizontal grids
- Set HCO_MISSVAL to MAPL missing value (1e15) if using GCHP or GEOS
- Use fraction surface type inputs instead of ExtState%WLI
- The version number in docs/source/conf.py is now 3.6.0
- Updated compilation output splash screen in compiling.rst ReadTheDocs file
- Bug fix for inserting hard breaks in hemco-config.rst ReadTheDocs file
- Removed old kludge for MAPL missing data if applying mask
- Removed ExtState field for water-land-ice index (WLI)
- Added sanitizer option for detecting memory leaks in HEMCO standalone during build
- Remove unused, commented-out code in
src/Extensions/hcox_dustdead_mod.F
- Replaced placeholder error messages in
src/Core/hco_config_mod.F90
with more informational messages (often including the line of the HEMCO_Config.rc in the printout) - Added improved documentation for time cycle flag
EFYO
in ReadTheDocs
- Removed memory leaks that were identified by the code sanitizer
- Changed Inst%NP to Inst%NumP in HCOX_Seasalt_Mod for CESM compatibility
- Support for MAPL 2.16 (needed by GCHP and GEOS)
- Bug fix for HEMCO standalone run directory creation
- Bug fix: If HEMCO masks are specified as
lon1/lat1/lon2/lat2
, then don't try to read from disk - Documentation from the GEOS-Chem wiki (now on ReadTheDocs)
- Badges for the ReadTheDocs front page
- Bug fix for masking issues in MPI environment (for WRF, CESM)
- Mapping of CAM-Chem species to GFED4 (for CESM)
- New documentation for hemco.readthedocs.io, migrated from GC wiki
- Updated documentation on vertical regridding behavior
- Ignore non-printing characters (e.g. tabs) when reading
HEMCO_Config.rc
. This had caused a bug in GCHP. - Updated module names for MAPL 2.16 upgrade
- "Diagnostic counter zero" warning is now printed at warning level 2 (instead of 1)
OFFLINE_BIOGENICVOC
emissions in MEGAN now include species MOH
- Make sure each routine exits HEMCO with an error message (even if a placeholder message is used)
- Fixed syntax error in
hcox_tomas_dustdead_mod.F
- GCHP bug fix: revert to all zeros in criteria for restart field not filled
- Several fixes for OpenMP parallelization and numerical stability
- Bug fix: Prevent out-of-bounds error in HEMCO vertical interpolation
- Prevent undefined variable when calculating vertical scale factor
- Set MEGAN biogenic annual emission factors to zero in before computing them
- Updated ReadTheDocs documentation
- Retired CH4 wetlands emissions extension
- Updated
Extensionss/hcox_gc_RnPbBe_mod.F90
to use Zhang et al 2021 emissions (now the default)` (cf doi:0.5194/acp-21-1861-2021)
- Restore updating of manual HEMCO diagnostics, which had been clobbered due to a prior Git merge
- Add patch branches to continuous integration tests
- Fix indexing of species in 'hcox_seasalt_mod.F90` when using marinePOA option
- GCHP adjoint updates
- Add climatology input to volcano extension
- Include PET number in error message if using ESMF
- Send all HCO_ERROR messages to stderr and write from all threads
- Modify volcano extension so that dry-run option also looks for climatology file
- Modified HEMCO diagnostics and standalone config files for consistency with GEOS-Chem updates
- Fix to HEMCO lightning flash rate diagnostic units
- Fix HEMCO's
createRunDir.sh
script to replace additional added tokens
- Blowing snow emissions of sea salt and sea salt bromide added to sea salt extension
- Add
HEMCO_INTERFACE
cache variable to CMake build
- Updates to speed up HEMCO
- Updates to calculate emissions sensitivities, apply emissions scaling factors, and output adjoint diagnostics
- Support for GCAP 2.0
- Several driver programs have been added to the
src/Interfaces/
subdirectory for using HEMCO in other models - Unify HCOIO interfaces for standard and MAPL configurations
- Updates for using HEMCO in CESM2-GC and WRF-GC
- Fixed bug where met fields were only being read in once at the start of a simulation
- Added stale bot and no-response bot to HEMCO GitHub repo
- A script for creating HEMCO standalone rundirs is now included in the
run/
folder - CEDS GDB-MAPS is now the default anthropogenic emissions inventory
- HEMCO source code has been split off from the GEOS-Chem repository into https://github.com/geoschem/HEMCO repository
- Source code has been reorganized
- Set and update
ExtState
before computing emissions in HEMCO standalone - Use
HcoState%NZ
instead ofNLEV
inhco_interp_mod.F90
- Make sure data containers with
EFY
time cycle flag are only updated once - CMake is now the default build system
- Update isCoards script to account for files saved out by GCHP's History component
- Support for GNU make
- Carbon-based units for VOC species
- Hard-coded scale factors in the DustDead extension
- Duplicate
Inst%FLUXSABI
allocation in MEGAN HCO extension
- Implemented dry-run option
- Now properly interpolate data with irregular timesteps
- New logical switches for all inventories and datasets
- New main switches for emissions, meteorology, and chemistry input
- Fixed HEMCO's time shift capability to properly accommodate units of year, month, day, hour, minute, and second
- New checks to adjust date and timestamps so they fall within physical ranges
- Now avoid running HEMCO for the end timestep of a simulation
- Now avoid running HEMCO twice on the first timestep of a simulation
- New
RFY3
time cycle option (3 hour input)
- Now use semantic versioning (X.Y.Z)
- Restore reading CHLR fields for marine POA simulations
- Read met fields daily instead of hourly to improve file I/O
- Bug fixes for HEMCO interpolation
- Updates from the NASA/GEOS development branch
- New option to always use the simulation year for specified fields
- Updates to the volcanic emissions extension
- Bug fix: Prevent zero emissions for
MEGAN_Mono
extension
- Bug fix: Read data with the "E" cycle flag just once
- Bug fix for collapsing model levels to reduced grid
- New
CS
time cycle option
- Fixed unit conversion in
HCO_UNIT_GetAreaScal
- Wrap HEMCO extensions into instances
- Bug fix: respect range/exact flag for 1D values set in
HEMCO_Config.rc
- Bug fix in
E
(exact) time cycling optiion - Now stop with error if multiple containers have the same
- Bug fix for distributing emissions in the vertical dimension
- New error checks in the HEMCO standalone module
- Bug fix for
ifort
compiler in soil NOx extension
- Null string character from netCDF unit string
- CH4 emissions from wetlands now uses category #1
- CH4 emissions from rice now uses category #2
- Unit
mol/mol
has beeeen added to the list of unitless quantities.
- Option to emit into the layer height read from netCDF file
- Updates to remove possible issues and excessive print statements when operating in GEOS environment
- Fixed possible tracer ID mismatch in sea salt extension
- New option to normalize MEGAN LAI, HEMCO diagnostics
- Now write multiple time slices into one file
- New error trap in
hcox_dustginoux)mod.F90
to avoid seg faults - Bug fix in reference time code
- Now normalize MEGAN LAI by plant functional type.
- Enable tokens within math functions
- Now enable data compression in netCDF-4 output
- Fixed bug in computation of local time in routine
- HEMCO diagnostic and restart files now have an
unlimited
time dimension - All internal timestamp variables are now
REAL*8
- New option to define species-specific scale factors that are applied across all inventories, categories, hierarchies, and extensions
- New option to use mathematical expressions in
HEMCO_Config.rc
- Regridding routines can now support non-global grids
- New passive tracer module
- Improve write speed of netCDF output files
- New option
DiagnRefTime
(specfies reference time in created netCDF files) - Fix missing pointer in call to
HCO_CalcVertRegrid
- Bug fix: Prevent HEMCO from writing restart files more than once
- Now uses updated timezones mask file.
- Now accepts scale factors for extension fields.
- New options to emit 2D fields across multiple vertical levels
- In
hcox_paranox_mod.F90
: Archive deposition flux as a positive number to avoid negative values propagating. - The HEMCO state object (
HcoState
) now must be passed to each routine. - Updated the passive tracer code.
- New HEMCO standalone run directory
- Bug fix in GEOS5 -> GEOS-4 regridding
- Bug fix in syncing the MEGAN LAI_PREVDAY variable
- Bug fix when interpolating/averaging between multiple files.
- Now allow mask grid points
- Now treat MEGAN restart variables as running averages
- Bug fix: make sure that sea salt aerosol calculations work on curvilinear grids
- New option
DiagnTimeStamp
to control diagnostics time stamp format - Bug fix: restrict day to last day of month when searching for file names.
- The
SeaFlux
extension now uses HEMCO landtypes instead of land fraction
- Now allow horizontal coordinates
longitude
andlatitude
- New time flags
EF
andRF
to force exit if field not found for current simulation datetime - Bug fix in
Seaflux
extension: pull variables out of parallel loop.
- HEMCO can now read any additional (arbitrary) dimension.
- Bug fixes to allow specifying flexible diagnostics output frequencies.
- Bug fix in
hcoi_standalone_mod.F90
: make sure current date and simulation end date are properly calculated - Make sure that negative emissions are correctly passed to hierarchy level diagnostics
- Bug fix: When reading a data field, check if diagnostics container with the same name exist and write data into it.
- Grid edges can now be explicitly given in HEMCO standalone model
- Aerocom, CH4, FINN, GFED, and soil NOx extensions now accept scale fields
- Bug fix: diagnostics update can now span multiple diagnostics levels
- Now also build HEMCO standalone executable
- New extension module
hcox_aerocom_mod.F90
- Capability to emit 2D data into levels other than the surface
- Bug fix: Avoid out of bounds errors in
MEGAN_Mono
extension - Bug fix: Restore archiving biogenic CO emissions form monoterpenes
- Now ensure that longitudes fall within the range -180 to 180, for COARDS compliance.
- Unit strings
%
andpercent
are now treated as unitless.
- New capability to apply scale factors to meteorological fields.
- Bug fix: Now allow FINN biomass emission diagnostics to be archived.
- Extra flexibility to the definition of the vertical dimension used in
HEMCO_Config.rc
(i.e. attributeSrcDim
).
- Base emissions can now have a dynamic number of scale factors (used to be limited to a fixed number).
- Now compute
SUNCOS
andSUNCOS - 5
in the PARANOX extension instead of reading these as restarrt fields.
- Various updates to PARANOX:
- Bug fix in calculation of H2O ambient air concentration'
- Bug fix in computation of solar zenith angle for the current date calculation of the current date SZA;
- Loss fluxes of O3 and HNO3 are now passed in kg/m2/s via the HEMCO diagnostics instead of converting them to a deposition velocity (and then recalculating a flux from this value);
- The SUNCOS values for the previous 5 hours are now saved out to the HEMCO restart file.
- Diagnostic collections are now organized in a linked list.
- Masks can now be treated as fractions (instead of binary values).
- Various updates to the HEMCO standalone code
- Modifications to on/off switches in
HEMCO_Config.rc
:- Extension names can be used as switches
- Multiple switches can be combined with
.or
- HEMCO has now two run phases:
- Phase 1 reads the HEMCO list
- Phase 2 calculates emissions.
- Environmental fields used by HEMCO (stored in the
ExtState
object) can now be read directly from disk. - Various updates to the HEMCO standalone code
- Modifications to on/off switches in the HEMCO configuration file
Initial HEMCO release
- Bug fix: Prevent seg fault when emissions are turned off
- Bug fixes for the BIOGENIC_OCPI diagnostic
- Bug fixes in the computation of alkalinity
- PARANOx updates:
- Can now read the lookup table from netCDF or ASCII format
- Wind speed is now accounted for in the parameterization
- Dry deposition of N is included va loss of HNO3.
- Total tropospheric column mass is used to calculate dry deposition frequencies.
- Local times can now be calculated based on a time zone map (at 1x1 degree resolution).
- Non-emissions data may now be specified in
HEMCO_Config.rc
by setting the extension number to the wildcard (*
) character. - New MAP_A2A horizontal regridding algorithm
- The
R
time cycling option will cause HEMCO only to read data that is within the specified time range - Entries in the
HEMCO_Config.rc
file may now be grouped into collections - Minor updates in the HEMCO-to-GEOS-Chem interface
- UV albedo data is now read by HEMCO as a non-emissions data set.
- Included GFED4 biomass burning as an extension.
- Nested configuration files are now allowed
- Added the capability to exclude collections with
.not.
- Added
hco_restart_mod.F90
to define and obtain HEMCO restart variables - Vertical mapping between 72 and 47 level GEOS-Chem grids
- The MEGAN extension can now read initial data from a HEMCO restart file
- Index-sorted data can now be read from an ASCII file and mapped onto the simulation grid
- Treat OCPI, OCPO, BCPI, and BCPO separately
- Stratospheric production and loss are read as non-emissions data
- Multiple emissions categories can now be assigned to each emissions field
- Extension switches has been moved to the beginning of
HEMCO_Config.rc
Verbose
is no longer a logical switch but a number between 0 and 3- Masks can now be applied to scale factors
- Extension data has been removed from
HEMCO_Config.rc
. This is now a subsection ofBase Emissions
.