Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
2d9d698
GEOS-Chem update: Merge PR #2900 (Optional FINNv25 emissions)
yantosca Jun 17, 2025
ee7ccd6
GEOS-Chem update: Merge PR #2889 (Luo 2023 wetdep updates)
yantosca Jun 23, 2025
9312da6
GEOS-Chem update: Merge PR #2916 (ESMF 8.6.1 on Harvard Cannon)
yantosca Jun 26, 2025
cf3d31d
Merge updates from 14.6.3 into a branch off dev/14.7.0
yantosca Jul 29, 2025
88a4834
Merge PR #507 (Merge GCHP 14.6.3 into the dev/14.7.0 branch)
yantosca Jul 29, 2025
18cb98e
GEOS-Chem update: Merge PR #2974 (Fix Hg ocean flux diags)
yantosca Jul 29, 2025
52a3b2b
Add "Lint" GitHub action, fix security issues in cloud-benchmarking
yantosca Jul 29, 2025
d14cc67
Add "persist-credentials: false" to GitHub actions yaml files
yantosca Jul 29, 2025
fdcbfce
Merge PR # (Add "Lint" GitHub action to check for security issues)
yantosca Jul 30, 2025
8a24417
HEMCO update: Merge PR #339 (Add "Lint" GitHub action)
yantosca Jul 30, 2025
2af0c41
Remove submodule gFTL-shared and add submodule GFE
lizziel May 27, 2025
ed344b6
Remove yaFyaml and pFlogger submodules; now included in GFE
lizziel May 27, 2025
fe3f170
Update minimum CMake version for compatibility with MAPL 2.55
lizziel May 27, 2025
374fca6
Add R4 exports to GCHPctmEnv since R8->R4 conversion in MAPL 2.55 has…
lizziel May 29, 2025
d91f166
Set mass flux and courant number exports even if using wind in advection
lizziel Jun 24, 2025
a5981a1
Update minimum version of ESMF specified in ReadTheDocs
lizziel Jun 25, 2025
3e52259
Fix bug in Courant number array copied to new R4 diagnostics
lizziel Jun 27, 2025
c592f09
Update GCHP docs to indicate timing info now printed to allPEs.log
lizziel Jul 7, 2025
e973f8d
GEOS-Chem update: Merge PR #2984 (Fix GCHP rst for Jacobian tracers)
yantosca Aug 7, 2025
21a8eab
Updated changelog
lizziel Aug 7, 2025
f2e711a
Signed-off-by: Lizzie Lundgren <[email protected]>
lizziel Aug 7, 2025
03ca552
GEOS-Chem update: Merge PR #2988 (Update Compute1 run script)
yantosca Aug 11, 2025
3bacbe9
GEOS-Chem update: Merge PR #2989 (GCHP run scripts for Compute2)
yantosca Aug 12, 2025
0fb5f05
GEOS-Chem update: Merge PR #2990 (Update GCHP AWS EFA run scripts)
yantosca Aug 12, 2025
c9da875
Merge PR #496 (Update MAPL from 2.26 to 2.59)
yantosca Aug 13, 2025
f525b9e
Submodule updates for MAPL 2.59
yantosca Aug 13, 2025
811b7a9
ReadTheDocs updates for udunits2 requirement and stretched grid edits
lizziel Aug 13, 2025
c300a7c
Merge PR #510 (Docs updates for new udunits2 requirement)
yantosca Aug 13, 2025
11b19e0
GEOS-Chem update: Merge PR #2996 (Update GFEIv3 files)
yantosca Aug 25, 2025
de063a6
GEOS-Chem update: Merge PR #2997 (Pass seconds to Accept_External_Dat…
yantosca Aug 25, 2025
5d51f30
GEOS-Chem update: Merge PR #3000 (FIx OM/OC ratio for OCPO)
yantosca Aug 26, 2025
422e6c9
GEOS-Chem update: Merge PR #3001 (Update conv washout)
yantosca Sep 2, 2025
c6060e7
GEOS-Chem update: Merge PR #3014 (Conserve init rst file mass in GCC)
yantosca Sep 8, 2025
9538df1
GEOS-Chem update: Merge PR #3019 (Fix parallel error from PR #3014)
yantosca Sep 9, 2025
990654e
GEOS-Chem update: Merge PR #3016 (Update MF & CN scalings for MAPL 2.59)
yantosca Sep 9, 2025
1310e85
GEOS-Chem update: Merge PR #3010 (Add LPJ_MERRA2 CH4 inventory )
yantosca Sep 9, 2025
5a968c7
GEOS-Chem update: Merge PR #3029 (Fix parallel error in convection)
yantosca Sep 12, 2025
b2258dc
GEOS-Chem update: Merge PR #3021 (Merge dev/ndtb into dev/14.7.0)
yantosca Sep 12, 2025
57e8c04
GEOS-Chem update: Merge PR #3027 (Remove Is_Advected tags)
yantosca Sep 30, 2025
8f8a183
GEOS-Chem update: Merge PR #3020 (Unhide direct GC-Classic rst read)
yantosca Sep 30, 2025
d3f8e66
GEOS-Chem update: Merge PR #3055 (Fixed download_data.py)
yantosca Oct 1, 2025
64e977b
Add connectivity from GEOS-Chem to dynamics to pass restart delta pre…
lizziel Oct 3, 2025
96ba225
GEOS-Chem update: Merge PR #3050 (Fix precision of area from FV3)
yantosca Oct 6, 2025
bbd8900
GEOS-Chem update: Merge PR #3062 (Updates for GCHP mass cons.)
yantosca Oct 7, 2025
bcc364f
Merge PR #515 (Add connectivity from GEOS-Chem to FV3)
yantosca Oct 7, 2025
da3e599
FVDycore submod update: Merge PR #11 (Scale tracers by pressure ratio)
yantosca Oct 7, 2025
47b0536
GEOS-Chem update: Merge PR #3066 (Read rst as REAL*8 for bmk sims)
yantosca Oct 8, 2025
ef8f110
GEOS-Chem update: Merge PR #3011 (Disable PARANOx at 0.25 or finer)
yantosca Oct 8, 2025
98e74be
GEOS-Chem and HEMCO updates: Merge PR #2893 and HEMCO PR #330
yantosca Oct 8, 2025
66ee4db
GEOS-Chem update: Merge PR #3074 (Fix error in carbon sim)
yantosca Oct 16, 2025
ac26ee2
GEOS-Chem update: Merge PR #3073 (Fix typo in GCHP run script)
yantosca Oct 16, 2025
ef9fe1b
Submodule update: ESMF_cmake PR #8
lizziel Oct 16, 2025
9631c71
Updated changelog
lizziel Oct 16, 2025
468d15e
Merge pull request #518 from geoschem/bugfix/fixes_to_gnu_fortran_fla…
lizziel Oct 16, 2025
1fd4eff
GEOS-Chem update: Merge PR #3087 (Fix bug in ObsPack sampling)
yantosca Oct 23, 2025
2c3e0e2
GEOS-Chem update: Merge PR #3086 (Fix LPJ path in ExtData.rc)
yantosca Oct 23, 2025
533b7cc
HEMCO update: Merge PR #345 (Rewrite error message for clarity)
yantosca Oct 28, 2025
45ee8c7
GEOS-Chem update: Merge PR #3095 (Fix carbon sim diagnostic error)
yantosca Oct 29, 2025
7fd8b2e
Enable running GCHPctmEnv gridded component only simulation
lizziel Feb 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 27 additions & 18 deletions .github/workflows/cloud-benchmarking-workflow.yml
Original file line number Diff line number Diff line change
@@ -1,57 +1,65 @@
# Release pipeline:
#
#
# This pipeline triggers the cloud-based benchmarking workflow
# upon pushes to the dev environment. The benchmarking workflow
# upon pushes to the dev environment. The benchmarking workflow
# infrastructure code can be found in the following repository:
# https://github.com/geoschem/gc-cloud-infrastructure
#
# This pipeline is triggered by pushes to dev
# This pipeline is triggered by pushes to dev/* branches.
#
# Notes:
# - This workflow requires aws credentials necessary to
# trigger the benchmarking step function via the aws cli.
# The credentials need step function permissions and can
# be added to the repo as an action secret called
# trigger the benchmarking step function via the aws cli.
# The credentials need step function permissions and can
# be added to the repo as an action secret called
# AWS_SECRET_ACCESS_KEY and AWS_ACCESS_KEY_ID.

name: cloud_benchmarking
on:
push:
branches:
- dev**
- dev/*
tags:
- '*'
pull_request:
branches:
- dev**
- dev/*

jobs:
trigger_step_function:
runs-on: ubuntu-latest # aws cli comes pre-installed
steps:

# for now both use Spot instances -- may need to update to use on demand
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

# By default we use 1Hr benchmarks
- name: Set Initial Variables
# By default we use 1Hr benchmarks
run: |
echo "TIME_PERIOD=1Hr" >> $GITHUB_ENV
echo "RESOLUTION=24" >> $GITHUB_ENV
echo "GITHUB_SHA_SHORT=`echo ${GITHUB_SHA} | cut -c1-7`" >> $GITHUB_ENV
echo "COMMIT_NAME=`echo ${GITHUB_SHA} | cut -c1-7`" >> $GITHUB_ENV
# conditionally overwrite variables if a tag was the triggering event
echo "GITHUB_SHA_SHORT=${GITHUB_SHA:0:7}" >> $GITHUB_ENV
echo "COMMIT_NAME=${GITHUB_SHA:0:7}" >> $GITHUB_ENV

# Conditionally overwrite variables if a tag was the triggering event
- name: Reset Initial Variables for pull request
run: |
echo "GITHUB_SHA_SHORT=`echo ${{ github.event.pull_request.head.sha }} | cut -c1-7`" >> $GITHUB_ENV
echo "COMMIT_NAME=`echo ${{ github.event.pull_request.head.sha }} | cut -c1-7`" >> $GITHUB_ENV
if: github.event_name == 'pull_request'
env:
GITHUB_SHA_SHORT: ${{ github.event.pull_request.head.sha }}
run: |
echo "GITHUB_SHA_SHORT=${GITHUB_SHA_SHORT:0:7}" >> $GITHUB_ENV
echo "COMMIT_NAME=${GITHUB_SHA_SHORT:0:7}" >> $GITHUB_ENV

# We do a 1Month benchmark for tags
- name: Reset Variables For Tags
# We do a 1Month benchmark for tags
if: startsWith(github.ref, 'refs/tags/')
run: |
echo "TIME_PERIOD=1Mon" >> $GITHUB_ENV
echo "COMMIT_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
if: startsWith(github.ref, 'refs/tags/')

- name: Generate Primary Key
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
Expand All @@ -62,6 +70,7 @@ jobs:
cd ${{ github.workspace }}
echo "DEV_PRIMARY_KEY=gchp-c${RESOLUTION}-${TIME_PERIOD}-`git describe --tags`" >> $GITHUB_ENV
echo "REF_PRIMARY_KEY=`./.github/workflows/findRefKey.sh ${RESOLUTION} ${TIME_PERIOD} ${GITHUB_SHA}`" >> $GITHUB_ENV

- name: Trigger Step Function
env:
# Set config options for aws cli
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/lint-ci-workflows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Workflow to run linting checks on source
name: Lint

# Controls when the workflow will run
on:
# Triggers the workflow on pushes to the "main" or "dev/"* branches,
# i.e., PR merges
push:
branches: [ "main", "dev/*" ]

# Triggers the workflow on pushes to open pull requests with code changes
pull_request:
paths:
- '.github/workflows/*.yml'

# Allows you to run this workflow manually from the Actions tab
# (usually leave it blank)
workflow_dispatch:

# Allow the jobs to read the secret GitHub token
permissions:
contents: read

# Cancel jobs running if new commits are pushed
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

# Workflow run - one or more jobs that can run sequentially or in parallel
jobs:

# This workflow contains a single job called "lint"
lint:

# The type of runner that the job will run on
runs-on: ubuntu-latest

# Don't quit the Action at the first
strategy:
fail-fast: false

# GitHub secret token
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Steps represent a sequence of tasks that will be
# executed as part of the job
steps:

# Checks-out your repository under $GITHUB_WORKSPACE,
# so your job can access it
- name: Checkout code
with:
persist-credentials: false
uses: actions/checkout@v4

# Installs Python 3.x
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

# Installs Python packages
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m venv ci_venv
. ci_venv/bin/activate
pip install zizmor==0.9.2

# Apply GitHub Actions linter, zizmor
- name: zizmor
if: always()
run: |
cd ${{ github.workspace }}
. ci_venv/bin/activate
zizmor .github/workflows/*.yml
6 changes: 5 additions & 1 deletion .github/workflows/spack-deployment-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ jobs:
runs-on: ubuntu-latest
container: continuumio/miniconda3
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

- name: Get release tag
id: vars
run: |
Expand Down
12 changes: 3 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
[submodule "ESMA_cmake"]
path = ESMA_cmake
url = https://github.com/geoschem/ESMA_cmake
[submodule "gFTL-shared"]
path = src/gFTL-shared
url = https://github.com/geoschem/gFTL-shared.git
[submodule "FMS"]
path = src/FMS
url = https://github.com/geoschem/FMS.git
Expand All @@ -22,12 +19,6 @@
[submodule "HEMCO"]
path = src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO
url = https://github.com/geoschem/HEMCO.git
[submodule "yaFyaml"]
path = src/yaFyaml
url = https://github.com/geoschem/yaFyaml.git
[submodule "pFlogger"]
path = src/pFlogger
url = https://github.com/geoschem/pFlogger.git
[submodule "geos-chem-shared-docs"]
path = docs/source/geos-chem-shared-docs
url = https://github.com/geoschem/geos-chem-shared-docs.git
Expand All @@ -37,3 +28,6 @@
[submodule "HETP"]
path = src/GCHP_GridComp/GEOSChem_GridComp/HETP
url = https://github.com/geoschem/HETerogeneous-vectorized-or-Parallel.git
[submodule "src/GFE"]
path = src/GFE
url = https://github.com/Goddard-Fortran-Ecosystem/GFE
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,27 @@ This file documents all notable changes to the GCHP wrapper repository starting

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] - TBD
### Added
- Added R4 exports in GCHPctmEnv for diagnostics since R8 to R4 conversion in MAPL 2.55 History is broken
- Added submodule for GFE (Goddard-Fortran-Ecosystem) which includes GMAO libraries yafYaml, pFlogger, gFTL, gFTL-shared, fArgParse, and pFUnit as its own submodules
- Added connectivity from GEOS-Chem to FV3 dynamics to pass DELP_DRY in GEOS-Chem restart file to advection for restart file species mass conservation

### Changed
- Changed minimum CMake version from 3.13 to 3.24
- Changed minimum ESMF version from 8.4.2 to 8.6.1
- Updated docs to indicate timing information now printed to allPEs.log
- Updated docs to include library requirement udunits2 and additional information about stretched grid parameters
- Updated `lint-ci-workflows` to run on `main` and `dev/*` branches
- Updated badges on `README.md` and `docs/source/index.rst`
- Updated submodule ESMA_cmake for GNU Fortran compiler compatibility with CPUs returning processor description INTEL

### Fixed
- Fixed security issues in GitHub Actions that caused the `lint-ci-workflows` action to fail

### Removed
- Removed individual submodules for yafYaml, pFlogger, and gFTL-shared since now located in new submodule GFE

## [14.6.3] - 2025-07-28
### Added
- Added `-DSANITIZE` option for use with GNU Fortran compiler to check for memory leaks
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required (VERSION 3.13)
cmake_minimum_required (VERSION 3.24)
project (gchp_ctm
VERSION 14.6.3
LANGUAGES Fortran CXX C
Expand Down
2 changes: 1 addition & 1 deletion ESMA_cmake
10 changes: 3 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
<img src="https://geoschem.github.io/img/GEOS-Chem_Logo_Light_Background.png" height="60%" width="60%" alt="GEOS-Chem Logo">

<p>
<a href="https://github.com/geoschem/GCHP/releases"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?include_prereleases&label=Latest%20Pre-Release"></a>
<a href="https://github.com/geoschem/GCHP/releases/"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?label=Latest%20Stable%20Release"></a>
<a href="https://github.com/geoschem/GCHP/"><img src="https://img.shields.io/github/release-date/geoschem/GCHP"></a>
<a href="https://github.com/geoschem/GCHP/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<br />
<a href="https://spack.readthedocs.io/en/latest/package_list.html#gchp"><img src="https://img.shields.io/badge/Install%20with-Spack-ff69b4"></a>
<a href="https://hub.docker.com/r/geoschem/gchp"><img src="https://img.shields.io/docker/v/geoschem/gchp?color=blue&label=Docker%2FSingularity"></a>
<a href="https://github.com/geoschem/GCHP/releases/"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?label=Latest%20Stable%20Release" alt="Latest release"></a>
<a href="https://github.com/geoschem/GCHP/"><img src="https://img.shields.io/github/release-date/geoschem/GCHP" alt="Release date"></a><br/>
<a href="https://doi.org/10.5281/zenodo.4428926"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.4428926.svg" alt="DOI"></a>
<a href="https://github.com/geoschem/GCHP/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://gchp.readthedocs.io"><img src="https://img.shields.io/readthedocs/gchp?label=ReadTheDocs"></a>
</p>

Expand Down
5 changes: 3 additions & 2 deletions docs/source/getting-started/requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ following software:

* Git
* Make (or GNUMake)
* CMake version ≥ 3.13
* CMake version ≥ 3.24
* UDUNITS2
* Compilers (C, C++, and Fortran):

* Intel compilers versions 2019-2021, or
Expand All @@ -31,7 +32,7 @@ following software:

* HDF5
* NetCDF (with C, C++, and Fortran support)
* Earth System Modeling Framework (ESMF) version 8.4.2+. Problems with 8.1 and prior have been reported.
* Earth System Modeling Framework (ESMF) version 8.6.1+. Prior versions are not compatible with the version of MAPL used in GCHP.

Your system administrator should be able to tell you if this software is already available on your cluster, and if so, how to activate it.
If it is not already available, they might be able to build it for you.
Expand Down
13 changes: 6 additions & 7 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@ GEOS-Chem High Performance
.. raw:: html

<p>
<a href="https://github.com/geoschem/GCHP/releases"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?include_prereleases&label=Latest%20Pre-Release"></a>
<a href="http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_versions"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?label=Latest%20Stable%20Release"></a>
<a href="https://github.com/geoschem/GCHP/releases/"><img src="https://img.shields.io/github/release-date/geoschem/GCHP"></a><br/>
<a href="https://zenodo.org/badge/latestdoi/200900441"><img src="https://zenodo.org/badge/200900441.svg"></a>
<a href="https://github.com/geoschem/GCHP/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://gchp.readthedocs.io/en/latest/"><img src="https://img.shields.io/readthedocs/gchp?label=ReadTheDocs"></a>
<a href="https://dev.azure.com/geoschem/GCHP/_build"><img src="https://img.shields.io/azure-devops/build/geoschem/GCHP/20/main?label=Build%20Matrix"></a>
<a href="https://github.com/geoschem/GCHP/releases/"><img src="https://img.shields.io/github/v/release/geoschem/GCHP?label=Latest%20Stable%20Release" alt="Latest release"></a>
<a href="https://github.com/geoschem/GCHP/"><img src="https://img.shields.io/github/release-date/geoschem/GCHP" alt="Release date"></a><br/>
<a href="https://doi.org/10.5281/zenodo.4428926"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.4428926.svg" alt="DOI"></a>
<a href="https://github.com/geoschem/GCHP/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://gchp.readthedocs.io"><img src="https://img.shields.io/readthedocs/gchp?label=ReadTheDocs"></a>
</p>


The `GEOS--Chem model <http://geos-chem.org/>`_ is a global 3-D model
of atmospheric composition driven by assimilated meteorological
observations from the Goddard Earth Observing System (GEOS) of the
Expand Down
Loading