From 2d9d698f5ba039349dd380164c8af9bce51b5b52 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 17 Jun 2025 14:48:17 -0400 Subject: [PATCH 001/102] GEOS-Chem update: Merge PR #2900 (Optional FINNv25 emissions) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: PR #2900 does the following: 1. Adds entries for FINN v2.5 biomass burning emissions to HEMCO_Config.rc template files for aerosol-only, carbon, and fullchem simulations. 2. Removes entries for the FINN v1.5 biomass burning extension from HEMCO_Config.rc template files, as FINN v1.5 is now superseded by FINN v2.5. 3. Adds clarifying comments in HEMCO_Diagn.rc template files instructing which settings of ExtNr, Cat, and Hier should be used for online vs. offline biomass burning emissions. 4. Replaces comments in HEMCO_Config.rc and HEMCO_Diagn.rc template files that were directing users to the obsolete HEMCO manual on the GC wiki with comments directing users to the current hemco.readthedocs.io documentation. 5. Restores TMB emission diagnostic entries to the HEMCO_Config.rc.fullchem files for GEOS-Chem Classic and GCHP. 6. Renames OCS biomass burning emissions to EmisOCS_BiomassBurn in GCHP HEMCO_Diagn.rc and HISTORY.rc files, for consistency with the corresponding diagnostic name in GEOS-Chem Classic. 7. Moves EmisOCS_Total to the top of the GCHP HISTORY.rc.carbon template file, which is expected by the script that edits the configuration files for single species carbon simulations. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index f4c75742e..66e3ea565 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit f4c75742e13da440b34c4968797aa150ce114113 +Subproject commit 66e3ea56512527cbb3d303d956334391a43c0401 From ee7ccd6ef95254eff4cfee5b88acf442c7fa2148 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 23 Jun 2025 13:16:04 -0400 Subject: [PATCH 002/102] GEOS-Chem update: Merge PR #2889 (Luo 2023 wetdep updates) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 78aa048e2 Merge PR #2889 (Updates for Luo2023) PR #2889 updates the Luo wet deposition scheme accordintg to Luo, G., & Yu, F. (2023). GRL, 50, e2023GL104258. https://doi.org/10.1029/2023GL104258. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 66e3ea565..78aa048e2 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 66e3ea56512527cbb3d303d956334391a43c0401 +Subproject commit 78aa048e2652fb277239f43363f23835be5aae20 From 9312da6d4a44dd0737e3b31d054875ace0693fee Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 26 Jun 2025 09:47:01 -0400 Subject: [PATCH 003/102] GEOS-Chem update: Merge PR #2916 (ESMF 8.6.1 on Harvard Cannon) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 1a97c01e5 Update ESMF to 8.6.1 in GCHP env file for Harvard Cannon PR #2916 updates the ESMF version from 8.4.2 to 8.6.1 in the sample GCHP environment file "gchp.gcc12_openmpi4_cannon_rocky.env", which is used on the Harvard Cannon cluster. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 78aa048e2..2a8f81dfd 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 78aa048e2652fb277239f43363f23835be5aae20 +Subproject commit 2a8f81dfda2404d1502272c85122b07de968f58f From 99b0678fcb050704c5d1a406a17bed417be15e98 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 22 Jul 2025 17:17:01 -0400 Subject: [PATCH 004/102] Update ESMF version in ReadTheDocs from 8.4.2 to 8.6.1 docs/source/getting-started/requirements.txt - Updated the installation instructions so that we install ESMF 8.6.1 (needed for MAPL 2.55) instead of ESMF 8.4.2 - Now use "-" instead of "*" for bullet lists - Cosmetic changes (word-wrapping, whitespace) - Changed several code-block sections containing bash code to use "bash" instead of "console" format - Updated modules in examples to GCC 12.2.0 (as used on Cannon) --- CHANGELOG.md | 1 + docs/source/getting-started/requirements.rst | 119 ++++++++++--------- 2 files changed, 66 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0b8e4a6d..17fb8ceb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Changed - Updated ReadTheDocs documentation to state that we are using Spack v0.23.1 in the Spack installation guide - Reordered entries in the ReadTheDocs reference section to match the GCClassic documentation +- Updated the ESMF version used in ReadTheDocs installation instructions from 8.4.2 to 8.6.1 ## [14.6.2] - 2025-06-12 ### Changed diff --git a/docs/source/getting-started/requirements.rst b/docs/source/getting-started/requirements.rst index 745d13ef1..65ab5c169 100644 --- a/docs/source/getting-started/requirements.rst +++ b/docs/source/getting-started/requirements.rst @@ -13,29 +13,31 @@ Software Requirements To build and run GCHP your compute :term:`environment` needs the following software: -* Git -* Make (or GNUMake) -* CMake version ≥ 3.13 -* Compilers (C, C++, and Fortran): +- Git +- Make (or GNUMake) +- CMake version ≥ 3.13 +- Compilers (C, C++, and Fortran): - * Intel compilers versions 2019-2021, or - * GNU compilers versions ≥ 10 and < 13 + - Intel compilers versions 2019-2021, or + - GNU compilers versions ≥ 10 and < 13 -* MPI (Message Passing Interface) +- MPI (Message Passing Interface) - * OpenMPI ≥ 4.0, or - * IntelMPI, or - * MVAPICH2, or - * MPICH, or - * other MPI libraries might work too + - OpenMPI ≥ 4.0, or + - IntelMPI, or + - MVAPICH2, or + - MPICH, or + - other MPI libraries might work too -* 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. +- HDF5 +- NetCDF (with C, C++, and Fortran support) +- Earth System Modeling Framework (ESMF) version 8.6.1+. -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. -If you need to build GCHP's dependencies yourself other than ESMF then see the supplemental guide for building required software with Spack. +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. If you need to build GCHP's dependencies yourself other than ESMF +then see our supplemental guide entitled :ref:`spackguide`. Environment File ---------------- @@ -48,16 +50,19 @@ but there are notes in the comments on how to use Intel instead. The commands to load modules on your system may be different than in this example. Contact your system administrator if you need help finding libraries on your system. -.. code-block:: console +.. code-block:: bash + # NOTE: Modules listed here are for the Harvard Cannon cluster, + # but modules on your system will probably be named differently module purge - module load gcc/10.2.0-fasrc01 # GNU compiler collection (C, C++, Fortran) - module load openmpi/4.1.0-fasrc01 # MPI - module load netcdf-c/4.8.0-fasrc01 # Netcdf-C - module load netcdf-fortran/4.5.3-fasrc01 # Netcdf-Fortran - module load cmake/3.25.2-fasrc01 # CMake + module load gcc/12.2.0-fasrc01 # gcc / g++ / gfortran + module load openmpi/4.1.4-fasrc01 # MPI + module load netcdf-c/4.9.2-fasrc01 # netcdf-c + module load netcdf-fortran/4.6.0-fasrc02 # netcdf-fortran + module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP) + module load cmake/3.25.2-fasrc01 # CMake (needed to compile) - umask 022 # Make all files world-readable by default + umask 022 # Make all files world-readable by default # NetCDF if [[ "x{NETCDF_HOME}" == "x" ]]; then @@ -78,15 +83,20 @@ your system administrator if you need help finding libraries on your system. export ESMF_COMPILER=gfortran # Fortran compiler (use intel for Intel) export ESMF_COMM=openmpi # MPI (use intelmpi for IntelMPI) export ESMF_DIR=/home/ESMF/ESMF # Path to ESMF repository within a generic directory called ESMF - export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_gnu10.2_openmpi4.1.0 + export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_gnu12.2_openmpi4.1 export ESMF_ROOT=${ESMF_INSTALL_PREFIX} + #---------------------------------------------------------------------------- + # ESMF does not build with GCC12 without the following work-around + # for a type mismatch error (https://trac.macports.org/ticket/60954) + export ESMF_F90COMPILEOPTS="-fallow-argument-mismatch -fallow-invalid-boz" + #---------------------------------------------------------------------------- -Note that this example is set up with environment variables needed to build ESMF so -that you may use it for both the initial ESMF build as well as subsequent GCHP runs. -Not all of these ESMF environment variables are needed to actually run GCHP, but including -them is useful to keep track of the ESMF install you are using. More information on -installing ESMF is in the next section. - +Note that this example is set up with environment variables needed to +build ESMF so that you may use it for both the initial ESMF build as +well as subsequent GCHP runs. Not all of these ESMF environment +variables are needed to actually run GCHP, but including them is +useful to keep track of the ESMF install you are using. More +information on installing ESMF is in the next section. Installing ESMF --------------- @@ -99,10 +109,10 @@ checkout tags/tag_name` to checkout the version. .. code-block:: console - git clone https://github.com/esmf-org/esmf ESMF - cd ESMF - git tag - git checkout tags/v8.4.2 + $ git clone https://github.com/esmf-org/esmf ESMF + $ cd ESMF + $ git tag + $ git checkout tags/v8.6.1 If you have previously downloaded ESMF you can use your same clone to checkout and build a new ESMF version. Use the same steps as above @@ -134,9 +144,9 @@ builds you should export environment variable :envvar:`ESMF_DIR`. Include details about that particular build to distinguish it from others. For example: -.. code-block:: console +.. code-block:: bash - export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_ESMF8.4.1_gfortran10.2_openmpi4.1 + export ESMF_INSTALL_PREFIX=${ESMF_DIR}/INSTALL_ESMF8.6.1_gfortran12.2_openmpi4.1 Using this install in GCHP will require setting :envvar:`ESMF_ROOT` to the install directory. Add the following line to your ESMF environment @@ -144,7 +154,7 @@ file if you plan on repurposing it for use with GCHP. Otherwise remember to add it to your GCHP environment file along with the assignment of :envvar:`ESMF_INSTALL_PREFIX`. -.. code-block:: console +.. code-block:: bash export ESMF_ROOT=${ESMF_INSTALL_PREFIX} @@ -243,9 +253,9 @@ compared to GEOS-Chem Classic. Bare Minimum Requirements ------------------------- -* 6 cores -* 32 GB of memory -* 100 GB of storage for input and output data +- 6 cores +- 32 GB of memory +- 100 GB of storage for input and output data Running GCHP on one node with as few as six cores is possible but we recommend this only for testing short low resolution runs such as @@ -256,10 +266,10 @@ we recommend running at C90 or greater for scientific applications. Recommended Minimum Requirements -------------------------------- -* 2 nodes, preferably ≥24 cores per node -* Gigabit Ethernet (GbE) interconnect or better -* 100+ GB memory per node -* 1 TB of storage, depending on your input and output needs +- 2 nodes, preferably ≥24 cores per node +- Gigabit Ethernet (GbE) interconnect or better +- 100+ GB memory per node +- 1 TB of storage, depending on your input and output needs These recommended minimums are adequate to effectively use GCHP in scientific applications. These runs should be at grid resolutions at @@ -269,11 +279,11 @@ or above C90 which is approximately 1x1 degree. Big Compute Recommendations --------------------------- -* 5--50 nodes, or more if running at C720 (12 km grid) -* >24 cores per node (the more the better), preferably Intel Xeon -* High throughput and low-latency interconnect, preferably InfiniBand +- 5--50 nodes, or more if running at C720 (12 km grid) +- >24 cores per node (the more the better), preferably Intel Xeon +- High throughput and low-latency interconnect, preferably InfiniBand if using ≥500 cores -* 1 TB of storage, depending on your input and output needs +- 1 TB of storage, depending on your input and output needs These requirements can be met by using a high-performance-computing cluster or a cloud-HPC service like AWS. @@ -282,9 +292,10 @@ cluster or a cloud-HPC service like AWS. General Hardware and Software Recommendations --------------------------------------------- -* Hyper-threading may improve simulation throughput, particularly at low core counts +- Hyper-threading may improve simulation throughput, particularly at + low core counts -* MPI processes should be bound sequentially across cores and +- MPI processes should be bound sequentially across cores and nodes. For example, a simulation using two nodes with 24 processes per node should bind ranks 0-23 on the first node and ranks 24-47 on the second node. This should be the default, but it's worth @@ -292,7 +303,7 @@ General Hardware and Software Recommendations the :literal:`--report-bindings` argument will show you how processes are ranked and binded. -* If using IntelMPI include the following your environment setup to +- If using IntelMPI include the following your environment setup to avoid a run-time error: .. code-block:: bash @@ -300,7 +311,7 @@ General Hardware and Software Recommendations export I_MPI_ADJUST_GATHERV=3 export I_MPI_ADJUST_ALLREDUCE=12 -* If using OpenMPI and a large number of cores (>1000) we recommend +- If using OpenMPI and a large number of cores (>1000) we recommend enabling the MAPL o-server functionality for writing restart files, thereby speeding up the model. This is set automatically when executing :file:`setCommonRunSettings.sh` if using over 1000 From 18cb98ece7ba7faf0f0af75841127b54eaf9de44 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 29 Jul 2025 12:32:25 -0400 Subject: [PATCH 005/102] GEOS-Chem update: Merge PR #2974 (Fix Hg ocean flux diags) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 481b4fece Merge PR #2974 (Fix ocean flux diagnostics in Hg simulation) PR #2974 removes the zeroing of the directional Hg ocean flux diagnostics, in order to make the them equal the net flux. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 3671d504c..481b4fece 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 3671d504cab09196ee960447a361b36ec41fe926 +Subproject commit 481b4fecec1d86fd08f0f0c59a0e7fe16ac82a0b From 52a3b2bff3fa50e7036b2ff5414632212a11a64e Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 29 Jul 2025 17:11:20 -0400 Subject: [PATCH 006/102] Add "Lint" GitHub action, fix security issues in cloud-benchmarking .github/workflows/lint-ci-workflows.yml - Added this workflow to error-check other workflows for security issues .github/workflows/cloud-benchmarking-workflow.yml - Now trigger the workflow on "dev/*" branches - Update actions/checkout from v3 to v4 - Now use bash-safe syntax to get the 1st 7 chars of the commit hash - Move "if:" statements before the "run:" blocks README.md docs/source/index.rst - Updated GitHub badges (remove badges for obsolete functionality) CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca --- .../workflows/cloud-benchmarking-workflow.yml | 44 ++++++----- .github/workflows/lint-ci-workflows.yml | 77 +++++++++++++++++++ CHANGELOG.md | 8 ++ README.md | 10 +-- docs/source/index.rst | 13 ++-- 5 files changed, 120 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/lint-ci-workflows.yml diff --git a/.github/workflows/cloud-benchmarking-workflow.yml b/.github/workflows/cloud-benchmarking-workflow.yml index bacf1f6fd..2bafad22f 100644 --- a/.github/workflows/cloud-benchmarking-workflow.yml +++ b/.github/workflows/cloud-benchmarking-workflow.yml @@ -1,57 +1,64 @@ # 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 + + # 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 }} @@ -62,6 +69,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 diff --git a/.github/workflows/lint-ci-workflows.yml b/.github/workflows/lint-ci-workflows.yml new file mode 100644 index 000000000..2f09ab478 --- /dev/null +++ b/.github/workflows/lint-ci-workflows.yml @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c758356..0de195e2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,14 @@ 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 +### Changed +- Updated `lint-ci-workflows` to run on `main` and `dev/*` branches +- Updated badges on `README.md` and `docs/source/index.rst` + +### Fixed +- Fixed security issues in GitHub Actions that caused the `lint-ci-workflows` action to fail + ## [14.6.3] - 2025-07-28 ### Added - Added `-DSANITIZE` option for use with GNU Fortran compiler to check for memory leaks diff --git a/README.md b/README.md index 1735f2d0f..f7c81ae69 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,10 @@ GEOS-Chem Logo

- - - - -
- - + Latest release + Release date
DOI +

diff --git a/docs/source/index.rst b/docs/source/index.rst index 431c06a59..214e61975 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -4,15 +4,14 @@ GEOS-Chem High Performance .. raw:: html

- - -
- - - - + Latest release + Release date
+ DOI + +

+ The `GEOS--Chem model `_ is a global 3-D model of atmospheric composition driven by assimilated meteorological observations from the Goddard Earth Observing System (GEOS) of the From d14cc6755e59f87002c74bc4dc2b940ef4121be6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 29 Jul 2025 17:25:48 -0400 Subject: [PATCH 007/102] Add "persist-credentials: false" to GitHub actions yaml files .github/workflows/cloud-benchmarking-workflow.yml - Added persist-credentials: false to actions/checkout@v4 so that GitHub credentials will be wiped after the task finishes .github/spack-deployment-workflow.yml - Updated actions/checkout@v2 to @v4 - Added persist-credentials: false to actions/checkout@v4 so that GitHub credentials will be wiped after the task finishes Signed-off-by: Bob Yantosca --- .github/workflows/cloud-benchmarking-workflow.yml | 1 + .github/workflows/spack-deployment-workflow.yml | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cloud-benchmarking-workflow.yml b/.github/workflows/cloud-benchmarking-workflow.yml index 2bafad22f..089f13c6e 100644 --- a/.github/workflows/cloud-benchmarking-workflow.yml +++ b/.github/workflows/cloud-benchmarking-workflow.yml @@ -34,6 +34,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 + persist-credentials: false # By default we use 1Hr benchmarks - name: Set Initial Variables diff --git a/.github/workflows/spack-deployment-workflow.yml b/.github/workflows/spack-deployment-workflow.yml index 718ca5aa3..24e9256de 100644 --- a/.github/workflows/spack-deployment-workflow.yml +++ b/.github/workflows/spack-deployment-workflow.yml @@ -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: | From 8a2441756cb760125d94338612159b1b66dd5b22 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 30 Jul 2025 11:00:39 -0400 Subject: [PATCH 008/102] HEMCO update: Merge PR #339 (Add "Lint" GitHub action) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/HEMCO repository: 8dbae83 Merge PR #339 (Add "Lint" GitHub action) PR #339 does the following: 1. The lint-ci-workflows action now runs when updates are made to the main and dev/* branches. 2. We have removed the .ci-pipelines folder, which contained the configuration files for the Microsoft Azure Dev Pipelines C-I tests. Many of these were broken anyway. 3. The windows, mac, and ubuntu GitHub actions have been updated to fix security issues. These actions now also run when pushes or pull requests are made to dev or release branches. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index 28e6d8e27..8dbae833a 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit 28e6d8e27dfd059f5c6e3ceee0c0844523a0689f +Subproject commit 8dbae833a397da191288c799aa45aaaa3d619324 From 2af0c4178c2f7f2e9bce669b765fdaafe1fd395f Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Tue, 27 May 2025 10:40:06 -0400 Subject: [PATCH 009/102] Remove submodule gFTL-shared and add submodule GFE Signed-off-by: Lizzie Lundgren --- .gitmodules | 6 +++--- src/GFE | 1 + src/gFTL-shared | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) create mode 160000 src/GFE delete mode 160000 src/gFTL-shared diff --git a/.gitmodules b/.gitmodules index daea64969..5e2fe8dad 100644 --- a/.gitmodules +++ b/.gitmodules @@ -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 @@ -37,3 +34,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 diff --git a/src/GFE b/src/GFE new file mode 160000 index 000000000..bac529f82 --- /dev/null +++ b/src/GFE @@ -0,0 +1 @@ +Subproject commit bac529f8220cfc87add0487920e40166663b4d69 diff --git a/src/gFTL-shared b/src/gFTL-shared deleted file mode 160000 index 4b8249208..000000000 --- a/src/gFTL-shared +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4b82492082b432fc7cebe1edb821314c900cfc24 From ed344b64931b4b28e409bac85eed0cd75a065420 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Tue, 27 May 2025 10:44:04 -0400 Subject: [PATCH 010/102] Remove yaFyaml and pFlogger submodules; now included in GFE Signed-off-by: Lizzie Lundgren --- .gitmodules | 6 ------ src/CMakeLists.txt | 22 ++++++++++++++++++---- src/pFlogger | 1 - src/yaFyaml | 1 - 4 files changed, 18 insertions(+), 12 deletions(-) delete mode 160000 src/pFlogger delete mode 160000 src/yaFyaml diff --git a/.gitmodules b/.gitmodules index 5e2fe8dad..e248dc88d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b1c124438..6938e702a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,20 +1,34 @@ +# Add gFTL +add_subdirectory(GFE/gFTL EXCLUDE_FROM_ALL) +set(GFTL_DIR ${GFTL_SOURCE_DIR}) +message(STATUS "${GFTL_DIR}") + # Add gFTL-shared set(GIT_SUBMODULE OFF CACHE BOOL "Prevent gFTL-shared from trying to checkout its gFTL submodule") -add_subdirectory(gFTL-shared EXCLUDE_FROM_ALL) +add_subdirectory(GFE/gFTL-shared EXCLUDE_FROM_ALL) +set(GFTL_SHARED ${GFTL_SOURCE_DIR}) +message(STATUS "${GFTL_SHARED}") + +# Add fArgParse +add_subdirectory(GFE/fArgParse EXCLUDE_FROM_ALL) +set(FARGPARSE_DIR ${FARGPARSE_SOURCE_DIR}) +message(STATUS "${FARGPARSE_DIR}") # Add pFUnit set(PFUNIT_FOUND FALSE) # Do not rely on ESMA_cmake/FindBaseLibs.cmake to set this if(PFUNIT_FOUND) - add_subdirectory(pFUnit EXCLUDE_FROM_ALL) + add_subdirectory(GFE/pFUnit EXCLUDE_FROM_ALL) endif() # Add yaFyaml -add_subdirectory(yaFyaml EXCLUDE_FROM_ALL) +add_subdirectory(GFE/yaFyaml EXCLUDE_FROM_ALL) set(YAFYAML_DIR ${YAFYAML_SOURCE_DIR}) message(STATUS "${YAFYAML_DIR}") # Add pFlogger -add_subdirectory(pFlogger EXCLUDE_FROM_ALL) +add_subdirectory(GFE/pFlogger EXCLUDE_FROM_ALL) +set(PFLOGGER_DIR ${PFLOGGER_SOURCE_DIR}) +message(STATUS "${PFLOGGER_DIR}") # Add MAPL set(LATEX_FOUND FALSE) # Disable LaTeX support (to avoid dependencies like ImageMagick) diff --git a/src/pFlogger b/src/pFlogger deleted file mode 160000 index 2c4b72458..000000000 --- a/src/pFlogger +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2c4b72458d0ccd03b847ec38f515b6bc9960152a diff --git a/src/yaFyaml b/src/yaFyaml deleted file mode 160000 index 19afe509d..000000000 --- a/src/yaFyaml +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 19afe509d8eb9d4d8d0a0ca7ed7626c71fad6aee From fe3f170b5ab583d32d7e4afbc815dc1418533847 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Tue, 27 May 2025 10:44:26 -0400 Subject: [PATCH 011/102] Update minimum CMake version for compatibility with MAPL 2.55 Signed-off-by: Lizzie Lundgren --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f7a3e8e2..ff2e65533 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.13) +cmake_minimum_required (VERSION 3.14) project (gchp_ctm VERSION 14.6.3 LANGUAGES Fortran CXX C From 374fca65b95310c615e73ac1248d69de8cbae47b Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Thu, 29 May 2025 11:34:37 -0400 Subject: [PATCH 012/102] Add R4 exports to GCHPctmEnv since R8->R4 conversion in MAPL 2.55 has bug This is a temporary update until GMAO implements a bug fix in MAPL History Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 3 + .../GCHPctmEnv_GridCompMod.F90 | 131 ++++++++++++++++++ 2 files changed, 134 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c758356..ca955f6fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Check if mass flux import is top-down and flip accordingly - Bumped `jinja2` to 3.1.6 in `docs/requirements.txt` (fixes a security issue id +### Added +- Added R4 exports in GCHPctmEnv for diagnostics since R8 to R4 conversion in MAPL 2.55 History is broken + ## [14.5.3] - 2025-03-05 ### Added - Updated RTD docs to state that users wishing not to open AWS account can use AWS CLI commands with `--no-sign-request` diff --git a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 index 599d90d1f..bd1cb8d0a 100644 --- a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 @@ -341,6 +341,89 @@ subroutine SetServices(GC, RC) RC=STATUS) _VERIFY(STATUS) + ! Add the same exports as R4 as a work-around to a MAPL 2.55 History + ! bug where R8 cannot be converted to R4 for output (ewl, 5/28/25) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='SPHU0_R4', & + LONG_NAME='specific_humidity_before_advection', & + UNITS='kg kg-1', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationCenter, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='PLE0_R4', & + LONG_NAME='pressure_at_layer_edges_before_advection',& + UNITS='Pa', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationEdge, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='PLE1_R4', & + LONG_NAME='pressure_at_layer_edges_after_advection', & + UNITS='Pa', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationEdge, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME = 'DryPLE0_R4', & + LONG_NAME = 'dry_pressure_at_layer_edges_before_advection',& + UNITS = 'Pa', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationEdge, & + RC=STATUS ) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME = 'DryPLE1_R4', & + LONG_NAME = 'dry_pressure_at_layer_edges_after_advection',& + UNITS = 'Pa', & + DIMS = MAPL_DimsHorzVert, & + VLOCATION = MAPL_VLocationEdge, & + RC=STATUS ) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='CX_R4', & + LONG_NAME='xward_accumulated_courant_number', & + UNITS='', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationCenter, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='CY_F4', & + LONG_NAME='yward_accumulated_courant_number', & + UNITS='', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationCenter, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='MFX_F4', & + LONG_NAME='pressure_weighted_accumulated_xward_mass_flux', & + UNITS='Pa m+2 s-1', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationCenter, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='MFY_R4', & + LONG_NAME='pressure_weighted_accumulated_yward_mass_flux', & + UNITS='Pa m+2 s-1', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationCenter, & + RC=STATUS) + _VERIFY(STATUS) + call MAPL_AddExportSpec(gc, & + SHORT_NAME='UpwardsMassFlux_R4', & + LONG_NAME='upward_mass_flux_of_air', & + UNITS='kg m-2 s-1', & + DIMS=MAPL_DimsHorzVert, & + VLOCATION=MAPL_VLocationEdge, & + RC=STATUS) + _VERIFY(STATUS) + ! Set profiling timers !------------------------- call lgr%debug('Adding timers') @@ -630,6 +713,12 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) real(r8), pointer, dimension(:,:,:) :: DryPLE0_EXPORT => null() real(r8), pointer, dimension(:,:,:) :: DryPLE1_EXPORT => null() + ! R4 exports used for diagnostics + real(r4), pointer, dimension(:,:,:) :: PLE0_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: PLE1_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: DryPLE0_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: DryPLE1_R4_EXPORT => null() + !================================ ! prepare_ple_exports starts here !================================ @@ -683,6 +772,8 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) PLE1_EXPORT = 100.0d0 * PLE1_EXPORT PLE1_EXPORT = PLE1_EXPORT(:,:,LM:0:-1) + ! Set R4 diagnostics + ! Also compute dry pressures if using dry pressure in advection if ( use_total_air_pressure_in_advection < 1 ) then @@ -704,8 +795,20 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) DryPLE1_EXPORT = 100.0d0 * DryPLE1_EXPORT DryPLE1_EXPORT = DryPLE1_EXPORT(:,:,LM:0:-1) + ! Set DryPLE R4 exports for diagnostics + call MAPL_GetPointer(EXPORT, DryPLE0_R4_EXPORT, 'DryPLE0_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(DryPLE0_R4_EXPORT) ) DryPLE0_R4_EXPORT = DryPLE0_EXPORT + call MAPL_GetPointer(EXPORT, DryPLE1_R4_EXPORT, 'DryPLE1_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(DryPLE1_R4_EXPORT) ) DryPLE1_R4_EXPORT = DryPLE1_EXPORT + endif + ! Set PLE R4 exports for diagnostics + call MAPL_GetPointer(EXPORT, PLE0_R4_EXPORT, 'PLE0_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(PLE0_R4_EXPORT) ) PLE0_R4_EXPORT = PLE0_EXPORT + call MAPL_GetPointer(EXPORT, PLE1_R4_EXPORT, 'PLE1_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(PLE1_R4_EXPORT) ) PLE1_R4_EXPORT = PLE1_EXPORT + ! Set PLE output which will be used to compute mass fluxes in FV3 if ( use_total_air_pressure_in_advection > 0 ) then PLE => PLE0_EXPORT @@ -748,6 +851,7 @@ subroutine prepare_sphu_export(IMPORT, EXPORT, RC) integer :: STATUS real, pointer, dimension(:,:,:) :: SPHU1_IMPORT => null() real(r8), pointer, dimension(:,:,:) :: SPHU0_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: SPHU0_R4_EXPORT => null() !================================ ! prepare_sphu_export starts here @@ -777,6 +881,10 @@ subroutine prepare_sphu_export(IMPORT, EXPORT, RC) SPHU0_EXPORT(:,:,:) = dble(SPHU1_IMPORT(:,:,LM:1:-1)) end if + ! R4 exports for diagnostics + call MAPL_GetPointer(EXPORT, SPHU0_R4_EXPORT, 'SPHU0_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(SPHU0_R4_EXPORT) ) SPHU0_R4_EXPORT = SPHU0_EXPORT + _RETURN(ESMF_SUCCESS) end subroutine prepare_sphu_export @@ -825,6 +933,12 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) real(r8), pointer, dimension(:,:,:) :: CY_EXPORT => null() real(r8), pointer, dimension(:,:,:) :: SPHU0_EXPORT => null() + ! Pointers to R4 exports for diagnostics + real(r4), pointer, dimension(:,:,:) :: MFX_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: MFY_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: CX_R4_EXPORT => null() + real(r4), pointer, dimension(:,:,:) :: CY_R4_EXPORT => null() + ! Pointers to imports real, pointer, dimension(:,:,:) :: MFX_IMPORT => null() real, pointer, dimension(:,:,:) :: MFY_IMPORT => null() @@ -835,6 +949,7 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) ! Pointer to diagnostic export real(r8), pointer, dimension(:,:,:) :: UpwardsMassFlux => null() + real(r4), pointer, dimension(:,:,:) :: UpwardsMassFlux_R4 => null() ! Pointers to local arrays real, pointer, dimension(:,:,:) :: UC => null() @@ -901,6 +1016,16 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) MFY_EXPORT = MFY_EXPORT / ( 1.d0 - SPHU0_EXPORT ) endif + ! Set R4 exports for diagnostics + call MAPL_GetPointer(EXPORT, MFX_R4_EXPORT, 'MFX_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(MFX_R4_EXPORT) ) MFX_R4_EXPORT = MFX_EXPORT + call MAPL_GetPointer(EXPORT, MFY_R4_EXPORT, 'MFY_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(MFY_R4_EXPORT) ) MFY_R4_EXPORT = MFY_EXPORT + call MAPL_GetPointer(EXPORT, CX_R4_EXPORT, 'CX_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(CX_R4_EXPORT) ) CX_R4_EXPORT = CX_IMPORT + call MAPL_GetPointer(EXPORT, CY_R4_EXPORT, 'CY_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(CY_R4_EXPORT) ) CY_R4_EXPORT = CY_IMPORT + else ! Get wind imports (real4, A-grid) @@ -988,6 +1113,12 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) UCr8 => null() VCr8 => null() + ! Nullify R4 exports used for diagnostics + MFX_R4_EXPORT => null() + MFY_R4_EXPORT => null() + CX_R4_EXPORT => null() + CY_R4_EXPORT => null() + _RETURN(ESMF_SUCCESS) end subroutine prepare_massflux_exports From d91f16625b33b3fb2d70a69e0e58c61ecca9e595 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Tue, 24 Jun 2025 15:14:57 -0400 Subject: [PATCH 013/102] Set mass flux and courant number exports even if using wind in advection Signed-off-by: Lizzie Lundgren --- .../GCHPctmEnv_GridCompMod.F90 | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 index bd1cb8d0a..2fdae7216 100644 --- a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 @@ -392,7 +392,7 @@ subroutine SetServices(GC, RC) RC=STATUS) _VERIFY(STATUS) call MAPL_AddExportSpec(gc, & - SHORT_NAME='CY_F4', & + SHORT_NAME='CY_R4', & LONG_NAME='yward_accumulated_courant_number', & UNITS='', & DIMS=MAPL_DimsHorzVert, & @@ -400,7 +400,7 @@ subroutine SetServices(GC, RC) RC=STATUS) _VERIFY(STATUS) call MAPL_AddExportSpec(gc, & - SHORT_NAME='MFX_F4', & + SHORT_NAME='MFX_R4', & LONG_NAME='pressure_weighted_accumulated_xward_mass_flux', & UNITS='Pa m+2 s-1', & DIMS=MAPL_DimsHorzVert, & @@ -1016,16 +1016,6 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) MFY_EXPORT = MFY_EXPORT / ( 1.d0 - SPHU0_EXPORT ) endif - ! Set R4 exports for diagnostics - call MAPL_GetPointer(EXPORT, MFX_R4_EXPORT, 'MFX_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(MFX_R4_EXPORT) ) MFX_R4_EXPORT = MFX_EXPORT - call MAPL_GetPointer(EXPORT, MFY_R4_EXPORT, 'MFY_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(MFY_R4_EXPORT) ) MFY_R4_EXPORT = MFY_EXPORT - call MAPL_GetPointer(EXPORT, CX_R4_EXPORT, 'CX_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(CX_R4_EXPORT) ) CX_R4_EXPORT = CX_IMPORT - call MAPL_GetPointer(EXPORT, CY_R4_EXPORT, 'CY_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(CY_R4_EXPORT) ) CY_R4_EXPORT = CY_IMPORT - else ! Get wind imports (real4, A-grid) @@ -1074,12 +1064,22 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) endif firstRun = .false. #endif - + ! Deallocate local arrays DEALLOCATE(UC, VC, UCr8, VCr8) end if + ! Set R4 exports for diagnostics + call MAPL_GetPointer(EXPORT, MFX_R4_EXPORT, 'MFX_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(MFX_R4_EXPORT) ) MFX_R4_EXPORT = MFX_EXPORT + call MAPL_GetPointer(EXPORT, MFY_R4_EXPORT, 'MFY_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(MFY_R4_EXPORT) ) MFY_R4_EXPORT = MFY_EXPORT + call MAPL_GetPointer(EXPORT, CX_R4_EXPORT, 'CX_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(CX_R4_EXPORT) ) CX_R4_EXPORT = CX_IMPORT + call MAPL_GetPointer(EXPORT, CY_R4_EXPORT, 'CY_R4', NotFoundOK=.TRUE., _RC) + IF ( ASSOCIATED(CY_R4_EXPORT) ) CY_R4_EXPORT = CY_IMPORT + ! Set vertical motion diagnostic if enabled in HISTORY.rc call MAPL_GetPointer(EXPORT, UpwardsMassFlux, 'UpwardsMassFlux', & NotFoundOK=.TRUE., RC=STATUS) From a5981a100f86263cb0dac9d4314a1422af9f0bf5 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 25 Jun 2025 11:16:15 -0400 Subject: [PATCH 014/102] Update minimum version of ESMF specified in ReadTheDocs Signed-off-by: Lizzie Lundgren --- docs/source/getting-started/requirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/getting-started/requirements.rst b/docs/source/getting-started/requirements.rst index 745d13ef1..4836e62a6 100644 --- a/docs/source/getting-started/requirements.rst +++ b/docs/source/getting-started/requirements.rst @@ -31,7 +31,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. From 3e522590d1c24563528023d63e199d0565a6a2cf Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Fri, 27 Jun 2025 12:15:23 -0400 Subject: [PATCH 015/102] Fix bug in Courant number array copied to new R4 diagnostics Signed-off-by: Lizzie Lundgren --- .../GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 index 2fdae7216..f5b3f198a 100644 --- a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 @@ -1076,9 +1076,9 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) call MAPL_GetPointer(EXPORT, MFY_R4_EXPORT, 'MFY_R4', NotFoundOK=.TRUE., _RC) IF ( ASSOCIATED(MFY_R4_EXPORT) ) MFY_R4_EXPORT = MFY_EXPORT call MAPL_GetPointer(EXPORT, CX_R4_EXPORT, 'CX_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(CX_R4_EXPORT) ) CX_R4_EXPORT = CX_IMPORT + IF ( ASSOCIATED(CX_R4_EXPORT) ) CX_R4_EXPORT = CX_EXPORT call MAPL_GetPointer(EXPORT, CY_R4_EXPORT, 'CY_R4', NotFoundOK=.TRUE., _RC) - IF ( ASSOCIATED(CY_R4_EXPORT) ) CY_R4_EXPORT = CY_IMPORT + IF ( ASSOCIATED(CY_R4_EXPORT) ) CY_R4_EXPORT = CY_EXPORT ! Set vertical motion diagnostic if enabled in HISTORY.rc call MAPL_GetPointer(EXPORT, UpwardsMassFlux, 'UpwardsMassFlux', & From c592f09432691f3ba4d30f68830119b99af5d00c Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Mon, 7 Jul 2025 14:24:46 -0400 Subject: [PATCH 016/102] Update GCHP docs to indicate timing info now printed to allPEs.log Signed-off-by: Lizzie Lundgren --- docs/source/user-guide/config-files/CAP_rc.rst | 2 +- docs/source/user-guide/debugging.rst | 2 +- docs/source/user-guide/output_files.rst | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/source/user-guide/config-files/CAP_rc.rst b/docs/source/user-guide/config-files/CAP_rc.rst index e0ad73e65..e37164dff 100644 --- a/docs/source/user-guide/config-files/CAP_rc.rst +++ b/docs/source/user-guide/config-files/CAP_rc.rst @@ -62,7 +62,7 @@ configures the exact dates for the next GCHP run. Toggles printed output of runtime MAPL timing profilers. This is set to :literal:`YES`. Timing profiles are output at the end of - every GCHP run. + every GCHP run in output log file :literal:`allPEs.log`. .. option:: MAPL_ENABLE_MEMUTILS diff --git a/docs/source/user-guide/debugging.rst b/docs/source/user-guide/debugging.rst index d70771597..f94bbc010 100644 --- a/docs/source/user-guide/debugging.rst +++ b/docs/source/user-guide/debugging.rst @@ -338,7 +338,7 @@ Inspecting timing ----------------- Model timing information is printed out at the end of each GCHP -run. Check the end of the GCHP log for a breakdown of component +run. Check the end of the log fille :literal:`allPEs.log` for a breakdown of component timing. See the :literal:`Timing` section of the `output files page `__ for instructions on how to read the timing information printed to log. diff --git a/docs/source/user-guide/output_files.rst b/docs/source/user-guide/output_files.rst index 90768564f..be7abb8ac 100644 --- a/docs/source/user-guide/output_files.rst +++ b/docs/source/user-guide/output_files.rst @@ -30,8 +30,11 @@ Below is a summary of all GCHP output files that you may encounter depending on .. option:: allPES.log - GCHP logging output based on configuration in `logging.yml `__. - Treat this file as a debugging tool to help diagnose problems in MAPL, particularly the ExtData component of the model which handles input reading and regridding. + GCHP logging output based on configuration in `logging.yml `__. + This file always prints timing information for the run. + Note that in GCHP versions prior to 14.7.0 this information was instead in the general GCHP log file. + Besides using this file for timing information, treat this file as a debugging tool to help diagnose problems in MAPL, particularly the ExtData component of the model which handles input reading and regridding. + You can maximize ExtData prints (the MAPL component for handling imports) by setting :literal:`root.level` in the :literal:`MAPL.ExtData` section to :literal:`DEBUG`. Be sure to set it back to :literal:`INFO` when you are done since debug prints in ExtData severely slow down the model. .. option:: logfile.000000.out @@ -85,7 +88,7 @@ These memory statistics are useful for assessing how much memory GCHP is using a Timing ------ -Timing of GCHP components is done using MAPL timers. A summary of all timing is printed to the GCHP log at the end of a run. Configuring timers from the run directory is not currently possible but will be an option in a future version. Until then a complete summary of timing will always be printed to the end of the log for a successful GCHP run. You can use this information to help diagnose timing issues in the model, such as extra slow file read due to system problems. +Timing of GCHP components is done using MAPL timers. A summary of all timing is printed to the GCHP log file :literal:`allPEs.log` at the end of a successful GCHP run. You can use this information to help diagnose timing issues in the model, such as extra slow file read due to system problems. The timing output written by MAPL is somewhat cryptic but you can use this guide to decipher it. Timing is broken in up into several sections. From e973f8d1b45ab1ef1a1c17aa3eb0b701c39659f6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 7 Aug 2025 11:51:20 -0400 Subject: [PATCH 017/102] GEOS-Chem update: Merge PR #2984 (Fix GCHP rst for Jacobian tracers) This commit informs the GCHPsuperproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e4dc17b14 Merge PR #2984 (Fix GCHP restart for Jacobian tracers) PR #2984 adds a logical flag of Is_JacobianTracer in species_database.yml. This allows GCHP perturbation runs to define species "CH4_nnnn", which will be initialized to the initial conditions from the "SPC_CH4" species in GCHP restart files. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 481b4fece..e4dc17b14 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 481b4fecec1d86fd08f0f0c59a0e7fe16ac82a0b +Subproject commit e4dc17b1464705eb4eedc3d70f77dad0d91b061b From 21a8eab2c39b2d28044f05e336aefdb1db834ae6 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Thu, 7 Aug 2025 13:23:04 -0400 Subject: [PATCH 018/102] Updated changelog Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca955f6fc..fde3ff26b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,19 @@ 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). +## [14.7.0] - 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 + +### Changed +- Changed minimum CMake version from 3.13 to 3.14 +- Changed minimum ESMF version from 8.4.2 to 8.6.1 +- Updated docs to indicate timing information now printed to allPEs.log + +### 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 @@ -49,9 +62,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Check if mass flux import is top-down and flip accordingly - Bumped `jinja2` to 3.1.6 in `docs/requirements.txt` (fixes a security issue id -### Added -- Added R4 exports in GCHPctmEnv for diagnostics since R8 to R4 conversion in MAPL 2.55 History is broken - ## [14.5.3] - 2025-03-05 ### Added - Updated RTD docs to state that users wishing not to open AWS account can use AWS CLI commands with `--no-sign-request` From f2e711a0d4633abd5720d8abedc5f65f3cccbb9b Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Thu, 7 Aug 2025 13:26:16 -0400 Subject: [PATCH 019/102] Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 2 +- CMakeLists.txt | 2 +- docs/source/getting-started/requirements.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fde3ff26b..fed3715f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Added submodule for GFE (Goddard-Fortran-Ecosystem) which includes GMAO libraries yafYaml, pFlogger, gFTL, gFTL-shared, fArgParse, and pFUnit as its own submodules ### Changed -- Changed minimum CMake version from 3.13 to 3.14 +- 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index ff2e65533..d1c436936 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.14) +cmake_minimum_required (VERSION 3.24) project (gchp_ctm VERSION 14.6.3 LANGUAGES Fortran CXX C diff --git a/docs/source/getting-started/requirements.rst b/docs/source/getting-started/requirements.rst index 4836e62a6..f5a256ccb 100644 --- a/docs/source/getting-started/requirements.rst +++ b/docs/source/getting-started/requirements.rst @@ -15,7 +15,7 @@ following software: * Git * Make (or GNUMake) -* CMake version ≥ 3.13 +* CMake version ≥ 3.24 * Compilers (C, C++, and Fortran): * Intel compilers versions 2019-2021, or From 03ca55241775306c76ea7e7778fb5574f0aa40a2 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 11 Aug 2025 16:43:39 -0400 Subject: [PATCH 020/102] GEOS-Chem update: Merge PR #2988 (Update Compute1 run script) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: bcb78036e Merge PR #2988 (Update Compute1 operation run script) PR #2988 Update operational run script sample for the WashU Compute1 cluster with necessary changes following a system update. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e4dc17b14..bcb78036e 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e4dc17b1464705eb4eedc3d70f77dad0d91b061b +Subproject commit bcb78036e3f1f794288922eb0a4107e2def65723 From 3bacbe96b986452dab86c9ec637075fa27bfc846 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 12 Aug 2025 10:15:07 -0400 Subject: [PATCH 021/102] GEOS-Chem update: Merge PR #2989 (GCHP run scripts for Compute2) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: bcbfb3dd7 Merge PR #2989 (Add operational run scripts for WashU Compute2) PR #2989 adds operational GCHP run scripts for the WashU Compute2 cluster. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index bcb78036e..bcbfb3dd7 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit bcb78036e3f1f794288922eb0a4107e2def65723 +Subproject commit bcbfb3dd7268a2b3fb70ef0694b492e712c07d80 From 0fb5f05cfaf340afd551b78d22243de86790e738 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 12 Aug 2025 10:32:26 -0400 Subject: [PATCH 022/102] GEOS-Chem update: Merge PR #2990 (Update GCHP AWS EFA run scripts) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 8bb85739d Merge PR #2990 (Update GCHP AWS EFA run scripts to avoid crashes) PR #2990 Update GCHP AWS EFA operational run script examples to avoid crashes at large core counts. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index bcbfb3dd7..8bb85739d 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit bcbfb3dd7268a2b3fb70ef0694b492e712c07d80 +Subproject commit 8bb85739dc0863335be224a698ccfa59b3aecdec From f525b9e49edb57b32197dd202b73c561f209e7b5 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 13 Aug 2025 12:12:35 -0400 Subject: [PATCH 023/102] Submodule updates for MAPL 2.59 src/GCHP_GridComp/FVDycoreCubed_GridComp - Updated to: 35da079 Merge pull request #9 from geoschem/bugfix/add_R4_exports_for_compatibility_with_mapl_2.55 src/GCHP_GridComp/GEOSChem_GridComp/geos-chem - Updated to: b7e60f96f Merge PR #2885 (Update for MAPL 2.59 compatibility) src/MAPL - Updated to: d1d528e5 Merge pull request #39 from geoschem/feature/mapl_2.55.0 Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/FVdycoreCubed_GridComp | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- src/MAPL | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/GCHP_GridComp/FVdycoreCubed_GridComp b/src/GCHP_GridComp/FVdycoreCubed_GridComp index af424623f..35da079f8 160000 --- a/src/GCHP_GridComp/FVdycoreCubed_GridComp +++ b/src/GCHP_GridComp/FVdycoreCubed_GridComp @@ -1 +1 @@ -Subproject commit af424623fd01be0e640a655414e7709f6fc45f6a +Subproject commit 35da079f80bd238d0f3539148771ae1705fb1c68 diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index d027524ef..b7e60f96f 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit d027524ef74811633e49a5c9235a05b2d9384215 +Subproject commit b7e60f96fe3e391af9fe2f78bdd3b0e1372000fd diff --git a/src/MAPL b/src/MAPL index 6207fd00b..d1d528e51 160000 --- a/src/MAPL +++ b/src/MAPL @@ -1 +1 @@ -Subproject commit 6207fd00b5bea743e659e23ff5c5c3071657af60 +Subproject commit d1d528e519e0a3daccd9e3970034db5c9b28f983 From 811b7a9a7a984c1c1840655b85f22e9e47f64ff2 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 13 Aug 2025 15:36:36 -0400 Subject: [PATCH 024/102] ReadTheDocs updates for udunits2 requirement and stretched grid edits Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 1 + docs/source/getting-started/requirements.rst | 1 + docs/source/supplement/stretched-grid.rst | 37 ++++++++++++++------ 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fed3715f4..14515e3da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - 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 ### Removed - Removed individual submodules for yafYaml, pFlogger, and gFTL-shared since now located in new submodule GFE diff --git a/docs/source/getting-started/requirements.rst b/docs/source/getting-started/requirements.rst index f5a256ccb..18844b127 100644 --- a/docs/source/getting-started/requirements.rst +++ b/docs/source/getting-started/requirements.rst @@ -16,6 +16,7 @@ following software: * Git * Make (or GNUMake) * CMake version ≥ 3.24 +* UDUNITS2 * Compilers (C, C++, and Fortran): * Intel compilers versions 2019-2021, or diff --git a/docs/source/supplement/stretched-grid.rst b/docs/source/supplement/stretched-grid.rst index b631b7b42..c85cefd60 100644 --- a/docs/source/supplement/stretched-grid.rst +++ b/docs/source/supplement/stretched-grid.rst @@ -1,3 +1,4 @@ + .. _stretched-grid: ######################### @@ -78,14 +79,17 @@ simulation. For example, a C180 simulation requires a restart file with a C180 grid. Likewise, a stretched-grid simulation needs a restart file with the same stretched-grid (i.e., an identical cubed-sphere size, stretch-factor, target longitude, and target -latitude). +latitude). It also requires that the file contain global attributes +specifying the stretch parameters as floating point. These attributes +should be named :literal:`TARGET_LAT`, :literal:`TARGET_LON`, and +:literal:`STRETCH_FACTOR`. You can regrid an existing restart file to a stretched-grid using the GEOS-Chem python package GCPy. See the `Regridding `_ section of -the GCPy documentation for instructions. Once you have created a -restart file for your simulation, you can move on to updating your -simulation's configuration files. +the GCPy documentation for instructions. Inspect your restart file +to make sure the global attributes for stretch parameters are as you +expect them to be. .. note:: @@ -95,15 +99,17 @@ simulation's configuration files. `_ directory in the GEOS-Chem data repository. - Configure run directory ^^^^^^^^^^^^^^^^^^^^^^^ +Once you have created a restart file for your simulation, you can move on to updating your +simulation's configuration files. Modify the section of :file:`setCommonRunSettings.sh` that controls the simulation grid. Turn :envvar:`STRETCH_GRID` to :literal:`ON` and update :envvar:`CS_RES`, :envvar:`STRETCH_FACTOR`, :envvar:`TARGET_LAT`, and :envvar:`TARGET_LON` for your specific -grid. +grid. The values must exactly match those of the global attrbiutes in your +restart file. .. code-block:: bash @@ -119,11 +125,13 @@ grid. # Turn stretched grid ON/OFF. Follow these rules if ON: # (1) Minimum STRETCH_FACTOR value is 1.0001 # (2) TARGET_LAT and TARGET_LON are floats containing decimal - # (3) TARGET_LON in range [0,360) + # (3) STRETCH_FACTOR, TARGET_LAT, and TARGET_LON are global + # attributes in your restart file with exactly the same + # values as floating point STRETCH_GRID=OFF STRETCH_FACTOR=3.0 TARGET_LAT=40.0 - TARGET_LON=260.0 + TARGET_LON=-95.0 Execute :program:`./setCommonRunSettings.sh` to update your run directory's configuration files. @@ -151,6 +159,15 @@ grid restart file. :file:`setCommonRunSettings.sh`. This is also included as pre-run step in all example run scripts provided in :file:`runScriptSamples`. +Output Files +^^^^^^^^^^^^ + +GCHP diagnostics files that are output on a stretched grid will contain global +attributes specifying the stretch parameters. Output checkpoint files +will also contain these parameters. Beware the output filenames, including +restart filenames, will not contain stretch parameter information. When in doubt, +always check the global attributes of the file. + =============================== Tutorial: Eastern United States =============================== @@ -234,7 +251,7 @@ create a GCHP stretched grid restart file in the `GCPy documentation tutorial regrid the c48 fullchem restart file for July 1, 2019 that comes with a GCHP fullchem run directory (:file:`GEOSChem.Restart.20190701_0000z.c48.nc4`). Grid resolution is -60, stretch factor is 3.6, target longitude is 275, and target +60, stretch factor is 3.6, target longitude is -95, and target latitude is 37. Name the output file :file:`initial_GEOSChem_rst.EasternUS_SG_fullchem.c60.s3.6_37N_275E.nc`. @@ -253,7 +270,7 @@ Make the following modifications to :file:`setCommonRunSettings.sh`: * Change :literal:`STRETCH_GRID` to :literal:`ON` * Change :literal:`STRETCH_FACTOR` to :literal:`3.6` * Change :literal:`TARGET_LAT` to :literal:`37.0` -* Change :literal:`TARGET_LON` to :literal:`275.0` +* Change :literal:`TARGET_LON` to :literal:`-95.0` .. note:: In our tests this simulation took approximately 7 hours to run From 11b19e08e38bf8e6b10d7c34c14a325117965136 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 25 Aug 2025 15:21:44 -0400 Subject: [PATCH 025/102] GEOS-Chem update: Merge PR #2996 (Update GFEIv3 files) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 90799084d Merge PR #2996 (Update GFEIv3 files, from peer review) PR #2996 fixes an issue in the original GFEIv3 files. The files were corrected in July 2025 and redownloaded and processed for use in GEOS-Chem. The corrected files can now be found in ExtData/HEMCO/CH4/v2025-08/GFEIv3/. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 8bb85739d..90799084d 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 8bb85739dc0863335be224a698ccfa59b3aecdec +Subproject commit 90799084ded7e241919217a14f6147eff7a0d8f0 From de063a69c24372156ee91226a5b6afe638fb92d1 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 25 Aug 2025 16:44:57 -0400 Subject: [PATCH 026/102] GEOS-Chem update: Merge PR #2997 (Pass seconds to Accept_External_Date_Time) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 8db991a59 Merge PR #2997 (Pass seconds to Accept_External_Date_Time) PR #2997 fixes a bug in WRF-GC by making sure that seconds are passed into the routine Accept_External_Date_Time. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index b7e60f96f..8db991a59 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit b7e60f96fe3e391af9fe2f78bdd3b0e1372000fd +Subproject commit 8db991a590899e408cefc75bd1c8546feca827ec From 5d51f30a64dd804e9fc370a6aaf899c0fc8c0c81 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 26 Aug 2025 11:07:38 -0400 Subject: [PATCH 027/102] GEOS-Chem update: Merge PR #3000 (FIx OM/OC ratio for OCPO) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: aa5e27260 Merge PR #3000 (Fixed OM/OC ratio for OCPO in SimpleSOA) PR #3000 changes the OM/OC ratio for OCPO in SimpleSOA to 1.4 (instead of 2.1). Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 8db991a59..aa5e27260 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 8db991a590899e408cefc75bd1c8546feca827ec +Subproject commit aa5e272605e112ad3fae1c9c454829e3b56eee08 From c37c937d00697dacc596cd94fc0c236d0fa34cec Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 26 Aug 2025 16:07:32 -0400 Subject: [PATCH 028/102] Update geos-chem-shared-docs to 331f989 This commit informs the GCClassic superproject about the following commits that were pushed to the geos-chem-shared-docs submodule: 331f989 Update ESMF version in spack/packages.yaml to 8.6.1 4679349 Mention that the aerosol-only sim cannot simulate NH4-NO3-SO4 aerosols Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 3887938a1..331f98934 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 3887938a14f933607b597e04436e1741f102d017 +Subproject commit 331f989340c047ad67d41830cea810790ee246e1 From 422e6c9e57c5c02b58f601f397d05b66dfaccc71 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 2 Sep 2025 10:01:46 -0400 Subject: [PATCH 029/102] GEOS-Chem update: Merge PR #3001 (Update conv washout) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 2311ed93a Merge PR #3001 (Update conv washout for G-F and Luo wetdep) PR #3001 does the following: 1. In GF, remove convective washout for default scheme but keep it for LUO_WETDEP based on suggestion from @viral211 2. Adapt Luo2023 WetDep for GF convection. 3. Fix precipitation formation rate unit in Luo2023 convective washout. 4. Update timestep scaling for convective precipitation areal fraction. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index aa5e27260..2311ed93a 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit aa5e272605e112ad3fae1c9c454829e3b56eee08 +Subproject commit 2311ed93a0bcfc6a13cc7813023cc560f3df2365 From 7dbafe34ee0388278bc249d5b809f93d5ef22953 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 2 Sep 2025 10:33:14 -0400 Subject: [PATCH 030/102] geos-chem-shared-docs submod update to cdc2304 (TransportTracers doc) This commit informs the GCHP superproject about the following commits that were pushed to the geos-chem-shared-docs submodule: cdc2304 Update TransportTracers simulation page Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 331f98934..cdc23040b 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 331f989340c047ad67d41830cea810790ee246e1 +Subproject commit cdc23040b0c18fc81841e758a655c7f9627030c3 From eebcaaffe700269c6a40da4f7f32133453b1061c Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 8 Sep 2025 15:52:04 -0400 Subject: [PATCH 031/102] Add supplemental guides for GCHP horizontal & vertical grids docs/source/supplement/horizontal-grids - Supplemental guide for GCHP horizontal grids docs/source/supplement/vertical-grids - Supplemental guide for GCHP vertical grids docs/source/index.rst - Add horizontal-grids.rst and vertical-grids-rst to the supplemental guides toctree docs/source/geos-chem-shared-docs - Submod update to 280e8e4 (List tables in history-guide.rst) CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca --- CHANGELOG.md | 4 + docs/source/geos-chem-shared-docs | 2 +- docs/source/index.rst | 2 + docs/source/supplement/horizontal-grids.rst | 76 +++ docs/source/supplement/vertical-grids.rst | 566 ++++++++++++++++++++ 5 files changed, 649 insertions(+), 1 deletion(-) create mode 100644 docs/source/supplement/horizontal-grids.rst create mode 100644 docs/source/supplement/vertical-grids.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c758356..8375d9383 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ 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 supplemental guides for GCHP horizontal and vertical grids to ReadTheDocs + ## [14.6.3] - 2025-07-28 ### Added - Added `-DSANITIZE` option for use with GNU Fortran compiler to check for memory leaks diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index cdc23040b..280e8e486 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit cdc23040b0c18fc81841e758a655c7f9627030c3 +Subproject commit 280e8e486520a3a11dc21a3dedf0c8053c68988c diff --git a/docs/source/index.rst b/docs/source/index.rst index 431c06a59..c26d834fd 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -84,6 +84,8 @@ use Spack to install GCHP's dependencies if needed. :maxdepth: 1 :caption: Supplemental Guides + supplement/horizontal-grids.rst + supplement/vertical-grids.rst geos-chem-shared-docs/supplemental-guides/load-libraries-guide.rst geos-chem-shared-docs/supplemental-guides/spack-guide.rst supplement/setting-up-aws-parallelcluster.rst diff --git a/docs/source/supplement/horizontal-grids.rst b/docs/source/supplement/horizontal-grids.rst new file mode 100644 index 000000000..879d036b4 --- /dev/null +++ b/docs/source/supplement/horizontal-grids.rst @@ -0,0 +1,76 @@ +.. _gchp_hgrids: + +##################### +GCHP horizontal grids +##################### + +GCHP uses cubed-sphere horizontal grids instead of the traditional +cartesian grids. For a good general description of cubed sphere +grids, please see our `Cubed-sphere grid illustrations +`_ page at `geos-chem.org +`_. + +Cubed-sphere grid resolutions are denoted using the number of grid +cells along each face, which must be divisible by 6. At present GCHP +uses :ref:`grids with 72 vertical layers `, but this may +increase to 132 layers in the near future. + +The table below shows some common cubed-sphere configurations. + +.. list-table:: + :header-rows: 1 + + * - Grid + - # cells per face + - # cells at surface + - # layers + - # cells total + - # Equiv. lat-lon grid + * - C24 + - 24 + - 3456 + - 72 + - 248,832 + - 4° x 5° + * - C30 + - 30 + - 5400 + - 72 + - 388,800 + - 4° x 5° + * - C48 + - 48 + - 13,824 + - 72 + - 995,328 + - 2° x 2.5° + * - C90 + - 90 + - 48,600 + - 72 + - 3,499,200 + - 1° x 1.25° + * - C180 + - 180 + - 194,400 + - 72 + - 13,996,800 + - 0.5° x 0.625° + * - C360 + - 360 + - 777,600 + - 72 + - 55,987,200 + - 0.25° x 0.3125° + * - C720 + - 720 + - 3,110,400 + - 72 + - 223,948,800 + - 0.125° x 0.15625° + +See our :ref:`stretched-grid` chapter for information about how +you can stretch one of the grid faces to achieve extra-fine resolution +over a target location. + +**Reference**: :cite:t:`Eastham_et_al._2018` diff --git a/docs/source/supplement/vertical-grids.rst b/docs/source/supplement/vertical-grids.rst new file mode 100644 index 000000000..fed5a48f4 --- /dev/null +++ b/docs/source/supplement/vertical-grids.rst @@ -0,0 +1,566 @@ +.. _gchp-vgrids: + +################### +GCHP vertical grids +################### + +On this page we provide information about the vertical grid used by GCHP. + +.. _gchp-grids-hybrid: + +====================== +Hybrid grid definition +====================== + +A hybrid sigma-pressure grid (aka :math:`\eta` grid) uses a +terrain-following coordinate near the surface, which then transitions +to a purely fixed-pressure coordinate. + +The pressure at the bottom edge of grid box :math:`(I,J,L)` of a +hybrid grid may be defined as: + +.. math:: + + P_{edge}(I,J,L) = A_p(L) + B_p(L) \times P_{surface}(I,J) + +where + +- :math:`(I,J,L)` are the lon, lat, and level indices of the grid box; +- :math:`P_{surface}(I,J)` is the "true" surface pressure at lon,lat + location :math:`(I,J)`; +- :math:`A_p(L)` are constants in surface pressure units (Pa or hPa), defined at level edges; +- :math:`B_p(L)` are unitless constants, defined at level edges. + +The values of :math:`A_p(L)` and :math:`B_p(L)` specify the vertical +properties of the grid. In GEOS-Chem, you may find these values in +source code file :file:`GeosUtil/pressure_mod.F90`. + +The pressure at the vertical midpoint of grid box :math:`(I,J,L)` is +computed as the average of the pressures at successive vertical edges: + +.. math:: + + P_{midpoint}(I,J,L) = \frac{P_{edge}(I,J,L) + P_{edge}(I,J,L+1)}{2} + +An :math:`\eta` coordinate can be constructed from +:math:`P_{edge}(I,J,L)` and :math:`P_{midpoint}(I,J,L)` as follows: + +.. math:: + + \eta_{edge}(I,J,L) = \frac{P_{edge}(I,J,L) - P_{top}}{P_{surface}(I,J) - P_{top}} + +.. math:: + + \eta_{midpoint}(I,J,L) = \frac{P_{midpoint}(I,J,L) - P_{top}}{P_{surface}(I,J) - P_{top}} + +where :math:`P_{top}` is pressure at the top level of the vertical +grid. + + +Specifics for GMAO vertical grids +--------------------------------- + +The the :math:`P_{edge}(I,J,L)` and :math:`P_{midpoint}(I,J,L)` values +in GMAO meteorological products vary with the topography up to 170 +hPa. Skyward of 170 hPa, :math:`P_{edge}(I,J,L)` and +:math:`P_{midpoint}(I,J,L)` remain constant for all longitudes and +latitudes :math:`(I,J)`. GMAO meteorological products use a model top +of 0.01 hPa. + +.. _gchp-vgrids_gmao: + +=================================== +Vertical grids for GMAO meteorology +=================================== + +.. _gchp-vgrids-gmao-72: + +72-level vertical grid +---------------------- + +This grid is used by the `GEOS-FP +`_, +`GEOS-IT +`_, +and `MERRA-2 +`_ +meteorological field products from NASA GMAO. It has 72 vertical +levels and 73 edges. + +.. _gchp-vgrids-gmao-72-ind: + +Indexing +~~~~~~~~ + +GCHP assumes :literal:`positive:down` indexing, where the surface is +denoted as level 72 and top-of-atmosphere is denoted as level 1. The +GCHP infrastructure flips input data in the vertical dimension before +passing it to the GEOS-Chem science routines (which assume +:literal:`positive:up` indexing). + +.. _gchp-vgrids-gmao-72-ab: + +:math:`A_p` and :math:`B_p` +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The table below lists the :math:`A_p` and :math:`B_p` parameters that +define the 72-level vertical grid. + +.. list-table:: + :header-rows: 1 + + * - :literal:`positive:down` level edge index + - :literal:`positive:up` level edge index + - :math:`A_p` (hPa) + - :math:`B_p` (unitless) + * - 73 + - 1 + - 0.0 + - 1.0 + * - 72 + - 2 + - 0.04804826 + - 0.984952 + * - 71 + - 3 + - 6.593752 + - 0.963406 + * - 70 + - 4 + - 13.1348 + - 0.941865 + * - 69 + - 5 + - 19.61311 + - 0.920387 + * - 68 + - 6 + - 26.09201 + - 0.898908 + * - 67 + - 7 + - 32.57081 + - 0.877429 + * - 66 + - 8 + - 38.98201 + - 0.856018 + * - 65 + - 9 + - 45.33901 + - 0.8346609 + * - 64 + - 10 + - 51.69611 + - 0.8133039 + * - 63 + - 11 + - 58.05321 + - 0.7919469 + * - 62 + - 12 + - 64.36264 + - 0.7706375 + * - 61 + - 13 + - 70.62198 + - 0.7493782 + * - 60 + - 14 + - 78.83422 + - 0.721166 + * - 59 + - 15 + - 89.09992 + - 0.6858999 + * - 58 + - 16 + - 99.36521 + - 0.6506349 + * - 57 + - 17 + - 109.1817 + - 0.6158184 + * - 56 + - 18 + - 118.9586 + - 0.5810415 + * - 55 + - 19 + - 128.6959 + - 0.5463042 + * - 54 + - 20 + - 142.91 + - 0.4945902 + * - 53 + - 21 + - 156.26 + - 0.4437402 + * - 52 + - 22 + - 169.609 + - 0.3928911 + * - 51 + - 23 + - 181.619 + - 0.3433811 + * - 50 + - 24 + - 193.097 + - 0.2944031 + * - 49 + - 25 + - 203.259 + - 0.2467411 + * - 48 + - 26 + - 212.15 + - 0.2003501 + * - 47 + - 27 + - 218.776 + - 0.1562241 + * - 46 + - 28 + - 223.898 + - 0.1136021 + * - 45 + - 29 + - 224.363 + - 0.06372006 + * - 44 + - 30 + - 216.865 + - 0.02801004 + * - 43 + - 31 + - 201.192 + - 0.006960025 + * - 42 + - 32 + - 176.93 + - 8.175413e-09 + * - 41 + - 33 + - 150.393 + - 0.0 + * - 40 + - 34 + - 127.837 + - 0.0 + * - 39 + - 35 + - 108.663 + - 0.0 + * - 38 + - 36 + - 92.36572 + - 0.0 + * - 37 + - 37 + - 78.51231 + - 0.0 + * - 36 + - 38 + - 66.60341 + - 0.0 + * - 35 + - 39 + - 56.38791 + - 0.0 + * - 34 + - 40 + - 47.64391 + - 0.0 + * - 33 + - 41 + - 40.17541 + - 0.0 + * - 32 + - 42 + - 33.81001 + - 0.0 + * - 31 + - 43 + - 28.36781 + - 0.0 + * - 30 + - 44 + - 23.73041 + - 0.0 + * - 29 + - 45 + - 19.7916 + - 0.0 + * - 28 + - 46 + - 16.4571 + - 0.0 + * - 27 + - 47 + - 13.6434 + - 0.0 + * - 26 + - 48 + - 11.2769 + - 0.0 + * - 25 + - 49 + - 9.292942 + - 0.0 + * - 24 + - 50 + - 7.619842 + - 0.0 + * - 23 + - 51 + - 6.216801 + - 0.0 + * - 22 + - 52 + - 5.046801 + - 0.0 + * - 21 + - 53 + - 4.076571 + - 0.0 + * - 20 + - 54 + - 3.276431 + - 0.0 + * - 19 + - 55 + - 2.620211 + - 0.0 + * - 18 + - 56 + - 2.08497 + - 0.0 + * - 17 + - 57 + - 1.65079 + - 0.0 + * - 16 + - 58 + - 1.30051 + - 0.0 + * - 15 + - 59 + - 1.01944 + - 0.0 + * - 14 + - 60 + - 0.7951341 + - 0.0 + * - 13 + - 61 + - 0.6167791 + - 0.0 + * - 12 + - 62 + - 0.4758061 + - 0.0 + * - 11 + - 63 + - 0.3650411 + - 0.0 + * - 10 + - 64 + - 0.2785261 + - 0.0 + * - 9 + - 65 + - 0.211349 + - 0.0 + * - 8 + - 66 + - 0.159495 + - 0.0 + * - 7 + - 67 + - 0.119703 + - 0.0 + * - 6 + - 68 + - 0.08934502 + - 0.0 + * - 5 + - 69 + - 0.06600001 + - 0.0 + * - 4 + - 70 + - 0.04758501 + - 0.0 + * - 3 + - 71 + - 0.0327 + - 0.0 + * - 2 + - 72 + - 0.02 + - 0.0 + * - 1 + - 73 + - 0.01 + - 0.0 + +.. _gchp-vgrids-gmao-72-prs-alt: + +Pressures and altitudes +~~~~~~~~~~~~~~~~~~~~~~~ + +The table below lists pressures and altitudes of the 72 layer grid for +a column at atmospheric sea level. + +.. code-block:: text + + L L Eta Edge Eta Mid Altitude Pressure + down up (unitless) (unitless) (km) (hPa) + =================================================================== + 0.000000 80.581 0.010 + 1 72 0.000005 78.146 0.015 + 0.000010 76.357 0.020 + 2 71 0.000016 74.594 0.026 + 0.000022 73.180 0.033 + 3 70 0.000030 71.812 0.040 + 0.000037 70.657 0.048 + 4 69 0.000046 69.440 0.057 + 0.000055 68.392 0.066 + 5 68 0.000067 67.243 0.078 + 0.000078 66.245 0.089 + 6 67 0.000093 65.115 0.105 + 0.000108 64.130 0.120 + 7 66 0.000128 63.004 0.140 + 0.000148 62.021 0.159 + 8 65 0.000173 60.902 0.185 + 0.000199 59.924 0.211 + 9 64 0.000232 58.816 0.245 + 0.000265 57.846 0.279 + 10 63 0.000308 56.752 0.322 + 0.000350 55.794 0.365 + 11 62 0.000405 54.717 0.420 + 0.000460 53.773 0.476 + 12 61 0.000529 52.716 0.546 + 0.000599 51.788 0.617 + 13 60 0.000687 50.754 0.706 + 0.000775 49.844 0.795 + 14 59 0.000886 48.835 0.907 + 0.000996 47.946 1.019 + 15 58 0.001135 46.962 1.160 + 0.001274 46.092 1.301 + 16 57 0.001446 45.134 1.476 + 0.001619 44.286 1.651 + 17 56 0.001834 43.355 1.868 + 0.002048 42.529 2.085 + 18 55 0.002312 41.627 2.353 + 0.002576 40.825 2.620 + 19 54 0.002900 39.951 2.948 + 0.003224 39.173 3.276 + 20 53 0.003619 38.328 3.677 + 0.004013 37.574 4.077 + 21 52 0.004492 36.759 4.562 + 0.004971 36.030 5.047 + 22 51 0.005548 35.244 5.632 + 0.006126 34.539 6.217 + 23 50 0.006818 33.782 6.918 + 0.007510 33.101 7.620 + 24 49 0.008336 32.372 8.456 + 0.009162 31.716 9.293 + 25 48 0.010141 31.015 10.285 + 0.011120 30.382 11.277 + 26 47 0.012287 29.701 12.460 + 0.013455 29.085 13.643 + 27 46 0.014844 28.423 15.050 + 0.016232 27.824 16.457 + 28 45 0.017878 27.180 18.124 + 0.019523 26.596 19.792 + 29 44 0.021467 25.971 21.761 + 0.023410 25.402 23.730 + 30 43 0.025699 24.794 26.049 + 0.027987 24.240 28.368 + 31 42 0.030673 23.648 31.089 + 0.033358 23.108 33.810 + 32 41 0.036499 22.531 36.993 + 0.039641 22.004 40.175 + 33 40 0.043326 21.438 43.910 + 0.047011 20.920 47.644 + 34 39 0.051326 20.364 52.016 + 0.055641 19.855 56.388 + 35 38 0.060682 19.309 61.496 + 0.065723 18.807 66.603 + 36 37 0.071600 18.269 72.558 + 0.077477 17.773 78.512 + 37 36 0.084313 17.243 85.439 + 0.091149 16.753 92.366 + 38 35 0.099191 16.222 100.514 + 0.107233 15.731 108.663 + 39 34 0.116695 15.198 118.250 + 0.126157 14.706 127.837 + 40 33 0.137287 14.170 139.115 + 0.148418 13.674 150.393 + 41 32 0.161513 13.134 163.661 + 0.174608 12.633 176.930 + 42 31 0.190061 12.086 192.587 + 0.205513 11.578 208.244 + 43 30 0.223772 11.021 226.745 + 0.242032 10.504 245.246 + 44 29 0.263587 9.936 267.087 + 0.285142 9.409 288.927 + 45 28 0.309854 8.846 313.966 + 0.334566 8.320 339.005 + 46 27 0.353349 7.943 358.038 + 0.372133 7.582 377.070 + 47 26 0.390927 7.237 396.112 + 0.409720 6.905 415.155 + 48 25 0.428528 6.585 434.212 + 0.447337 6.277 453.269 + 49 24 0.466153 5.980 472.335 + 0.484970 5.692 491.401 + 50 23 0.503795 5.413 510.475 + 0.522620 5.142 529.550 + 51 22 0.541449 4.879 548.628 + 0.560278 4.623 567.706 + 52 21 0.579115 4.375 586.793 + 0.597953 4.132 605.880 + 53 20 0.616790 3.896 624.967 + 0.635628 3.665 644.054 + 54 19 0.654471 3.439 663.146 + 0.673314 3.219 682.239 + 55 18 0.685878 3.074 694.969 + 0.698442 2.932 707.699 + 56 17 0.711006 2.792 720.429 + 0.723570 2.654 733.160 + 57 16 0.736134 2.517 745.890 + 0.748698 2.382 758.621 + 58 15 0.761265 2.249 771.354 + 0.773832 2.118 784.088 + 59 14 0.786400 1.988 796.822 + 0.798967 1.860 809.556 + 60 13 0.809021 1.759 819.743 + 0.819075 1.659 829.929 + 61 12 0.826616 1.584 837.570 + 0.834157 1.510 845.211 + 62 11 0.841698 1.436 852.852 + 0.849239 1.363 860.493 + 63 10 0.856781 1.290 868.135 + 0.864323 1.218 875.776 + 64 9 0.871864 1.146 883.418 + 0.879406 1.075 891.059 + 65 8 0.886948 1.004 898.701 + 0.894489 0.934 906.342 + 66 7 0.902031 0.864 913.984 + 0.909573 0.795 921.626 + 67 6 0.917116 0.726 929.268 + 0.924658 0.657 936.911 + 68 5 0.932200 0.589 944.553 + 0.939743 0.521 952.195 + 69 4 0.947285 0.454 959.837 + 0.954828 0.387 967.480 + 70 3 0.962370 0.320 975.122 + 0.969913 0.254 982.765 + 71 2 0.977456 0.189 990.408 + 0.984999 0.123 998.051 + 72 1 0.992500 0.058 1005.650 + 1.000000 -0.006 1013.250 From c6060e73b38ac70a1e04bb455d7471b1cc0b5758 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 8 Sep 2025 16:32:51 -0400 Subject: [PATCH 032/102] GEOS-Chem update: Merge PR #3014 (Conserve init rst file mass in GCC) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 2dbd206ad Merge PR #3014 (Conserve initial restart file mass in GC-Classic) PR #3014 changes where GC-Classic restart file species concentrations are scaled by pressure for mass conservation, and fixes a problem where mass was not conserved if restart file meteorology did not match run-time meteorology in first timestep. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 2311ed93a..2dbd206ad 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 2311ed93a0bcfc6a13cc7813023cc560f3df2365 +Subproject commit 2dbd206ad2eedc92fcc60467d7a37302a499ec9a From 9538df153c3f8398f06c8bda1094d4634829b03f Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 9 Sep 2025 12:14:14 -0400 Subject: [PATCH 033/102] GEOS-Chem update: Merge PR #3019 (Fix parallel error from PR #3014) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: f0e5424cc Merge PR #3019 (Fixed parallelization error in PR #3014) PR #3019 fixes a parallelization error that was inadvertently introduced in PR #3014. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 2dbd206ad..f0e5424cc 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 2dbd206ad2eedc92fcc60467d7a37302a499ec9a +Subproject commit f0e5424ccb8593f1ff576e9ba46ff5b823bad6c5 From 990654e209db8e753e4892b597f93c6e870e00cc Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 9 Sep 2025 12:21:54 -0400 Subject: [PATCH 034/102] GEOS-Chem update: Merge PR #3016 (Update MF & CN scalings for MAPL 2.59) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: dcb1314de Merge PR #3016 (Update mass flux & CN scalings for MAPL 2.59) PR #3016 updates the GCHP mass flux and Courant number import scaling calculation done in setCommonRunSettings.sh for use in ExtData.rc with MAPL 2.59. It only impacts GCHP runs that import mass flux rather than use winds in advection. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index f0e5424cc..dcb1314de 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit f0e5424ccb8593f1ff576e9ba46ff5b823bad6c5 +Subproject commit dcb1314dee998fd4ed7647c1e9ba7353182a73f1 From 1310e85dcb3ab34080e638ee86561e0875dc595b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 9 Sep 2025 15:30:06 -0400 Subject: [PATCH 035/102] GEOS-Chem update: Merge PR #3010 (Add LPJ_MERRA2 CH4 inventory ) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: a0d32f663 Merge PR #3010 (Add optional LPJ_MERRA2 wetland CH4 emissions) PR #3010 introduces the LPJ_MERRA2 inventory as an option (off by default) so that IMI/CH4 users can more easily utilize the dataset. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 90799084d..a0d32f663 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 90799084ded7e241919217a14f6147eff7a0d8f0 +Subproject commit a0d32f66329415d6619e3e5f513e16bff43c5f78 From dbee343aa86814c07abd695d510c27d2da35fbc4 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 9 Sep 2025 17:49:54 -0400 Subject: [PATCH 036/102] geos-chem-shared-docs submod update to 8094cc68 docs/source/geos-chem-shared-docs - Updated to 804cc68 (Update nested grid info...) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 280e8e486..804cc68eb 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 280e8e486520a3a11dc21a3dedf0c8053c68988c +Subproject commit 804cc68eb868d0c58c8bdf49686ad0aae93fd117 From 5a968c74e013cb8b1f837bfd72a20f0d164b3131 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 12 Sep 2025 14:32:35 -0400 Subject: [PATCH 037/102] GEOS-Chem update: Merge PR #3029 (Fix parallel error in convection) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 4be45c88d Merge PR #3029 (Fix parallel error in convection_mod.F90) PR #3029 initializes the AER and KIN logicals to TRUE before calling routine WASHOUT in GeosCore/convection_mod.F90. This ensures that these variables are defined even when WASHOUT is not called, avoiding potential parallelization errors. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index dcb1314de..4be45c88d 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit dcb1314dee998fd4ed7647c1e9ba7353182a73f1 +Subproject commit 4be45c88d8fb797cfe9bb2e50c9720513af512a0 From 3a8530b1fee265c6c25f7e84f4b67c7ecdedebfb Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 12 Sep 2025 15:05:17 -0400 Subject: [PATCH 038/102] Added "Particulate matter in GEOS-Chem" supplemental guide docs/source/geos-chem-shared-docs - Submod update to 79a1e38 (Added PM2.5 and PM10 supplemental guide) docs/source/index.rst - Added pm25-pm10-guide.rst to the supplemental guides toctree CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca --- CHANGELOG.md | 1 + docs/source/geos-chem-shared-docs | 2 +- docs/source/index.rst | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8375d9383..bf17ef234 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] - TBD ### Added - Added supplemental guides for GCHP horizontal and vertical grids to ReadTheDocs +- Added "Particulate matter in GEOS-Chem" supplemental guide to ReadTheDocs ## [14.6.3] - 2025-07-28 ### Added diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 804cc68eb..79a1e38d0 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 804cc68eb868d0c58c8bdf49686ad0aae93fd117 +Subproject commit 79a1e38d0aa6f095278907bd8e7d92478f51592d diff --git a/docs/source/index.rst b/docs/source/index.rst index c26d834fd..2eaf75239 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -104,6 +104,7 @@ use Spack to install GCHP's dependencies if needed. geos-chem-shared-docs/supplemental-guides/species-guide.rst geos-chem-shared-docs/supplemental-guides/using-kpp-with-gc.rst geos-chem-shared-docs/supplemental-guides/using-kpp-standalone.rst + geos-chem-shared-docs/supplemental-guides/pm25-pm10-guide.rst geos-chem-shared-docs/supplemental-guides/related-docs.rst .. toctree:: From fd657c612a4062ca526640568d8db62ab1921dec Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 12 Sep 2025 15:14:39 -0400 Subject: [PATCH 039/102] geos-chem submod submod update: Fix typos in PM2.5 and PM10 docs docs/source/geos-chem-shared-docs - Submod update to 8f21a5c Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 79a1e38d0..8f21a5c96 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 79a1e38d0aa6f095278907bd8e7d92478f51592d +Subproject commit 8f21a5c9643a624d79388297b05ceeb5e1370ce5 From 57e8c04959e2342b9de38d03e03d7cf011ee195a Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 30 Sep 2025 14:22:33 -0400 Subject: [PATCH 040/102] GEOS-Chem update: Merge PR #3027 (Remove Is_Advected tags) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 7219410db Merge PR #3027 (Remove Is_Advected tags from species database) As described in issue #3024, the Is_Advected species database tag is redundant. PR #3027 removes all Is_Advected:true tags from: run/shared/species_database.yml run/shared/species_database_apm.yml run/shared/species_database_hg.yml run/shared/species_database_tomas.yml Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index f82e547b0..7219410db 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit f82e547b079724f0706a986a372fe1cf6bbd6414 +Subproject commit 7219410db8645ed585d3e9278bea50febdd667bd From 4c779f98699040e4d5b7a08c469622f919c6187d Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 30 Sep 2025 15:30:41 -0400 Subject: [PATCH 041/102] geos-chem-shared-docs submod update to c9dcd33 (Remove Is_Advected) This commit informs the GCHP superproject about the following commits that were made to the geos-chem-shared-docs submodule: c9dcd33 Remove Is_Advected from species-guide.rst Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 8f21a5c96..c9dcd3332 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 8f21a5c9643a624d79388297b05ceeb5e1370ce5 +Subproject commit c9dcd3332e4c3b8fa69703686d1b6f72830c6278 From 8f8a18395981ba02d7217708c62b54353bee3192 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 30 Sep 2025 15:48:09 -0400 Subject: [PATCH 042/102] GEOS-Chem update: Merge PR #3020 (Unhide direct GC-Classic rst read) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e256ad747 Merge PR #3020 (Unhide feature to read GC-Classic rst file w/o HEMCO) PR #3020 update adds the option to use GEOS-Chem to read the GC-Classic restart file and therefore preserve native precision stored in the file. This option has been present since 14.6.3 but it was not visible in the geoschem_config.yml files as an option. The default is currently false. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 7219410db..e256ad747 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 7219410db8645ed585d3e9278bea50febdd667bd +Subproject commit e256ad747216736a4864e8ae22be9b8e1a10642d From d3f8e669aed5f8f67b6f1c4d0bf242c71cfe3e2a Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 1 Oct 2025 14:50:46 -0400 Subject: [PATCH 043/102] GEOS-Chem update: Merge PR #3055 (Fixed download_data.py) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 5b1ac965f Merge PR #3055 (Fixed issues in download_data.py) PR #3055 does the following: 1. Replaces // in all file paths to /. 2. Now checks for the 0.125 x 0.15625 grid. 3. Now will properly determine the nested-grid suffix for all pre-defined nested grids. 4. Condensed several instances of repeated code by creating internal subroutine write_linked_gmi_files_to_script. 5. Updated Pydoc headers and comments for brevity 6. Trimmed trailing whitespace. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e256ad747..5b1ac965f 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e256ad747216736a4864e8ae22be9b8e1a10642d +Subproject commit 5b1ac965f08e48f086d8fce2647540d59f9e1687 From 64e977bd72cae83482504b4f60521746d377b3e7 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Fri, 3 Oct 2025 14:56:00 -0400 Subject: [PATCH 044/102] Add connectivity from GEOS-Chem to dynamics to pass restart delta pressure Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 1 + src/GCHP_GridComp/GCHP_GridCompMod.F90 | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c120deda..93ee37237 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### 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 diff --git a/src/GCHP_GridComp/GCHP_GridCompMod.F90 b/src/GCHP_GridComp/GCHP_GridCompMod.F90 index 8685f3f9c..791553059 100644 --- a/src/GCHP_GridComp/GCHP_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHP_GridCompMod.F90 @@ -219,6 +219,12 @@ subroutine SetServices ( GC, RC ) SRC_ID = ADV, & __RC__ ) + CALL MAPL_AddConnectivity ( GC, & + SHORT_NAME = (/ 'DELPDRY' /), & + DST_ID = ADV, & + SRC_ID = CHEM, & + __RC__ ) + CALL MAPL_TerminateImport ( GC, & SHORT_NAME = (/'TRADV'/), & CHILD = ADV, & From 7e0d5e6a80e74c53f5e0829b1648afe2fa3e89ab Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 6 Oct 2025 13:00:45 -0400 Subject: [PATCH 045/102] geos-chem-shared-docs submod update to 3a38902 This commit informs the HEMCO superproject about the following commits that were pushed to the geos-chem-shared-docs submodule: 3a38902 Make clear that nested grid & GCAP2 data are on different portals Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index c9dcd3332..3a3890277 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit c9dcd3332e4c3b8fa69703686d1b6f72830c6278 +Subproject commit 3a38902771fbbfe9f8aff0facf52c2d3da81b109 From 96ba22531ae3dd1414f627966bb154b5ffb72b59 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 6 Oct 2025 14:57:48 -0400 Subject: [PATCH 046/102] GEOS-Chem update: Merge PR #3050 (Fix precision of area from FV3) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 3d8a03ceb (HEAD -> dev/14.7.0) Merge PR #3050 (Fix precision of GCHP import of area from FV3) and to the GitHub geoschem/FVdycoreCubed_GridComp repository: aeec506 Merge PR #10 (Export area as REAL8) PR #3050 fixes a bug in GCHP where area was stored in the State_Grid object as REAL*8 but was imported from FV3 advection as REAL*4. The area computed in FV3 is REAL*8 so there is no reason to truncate to REAL*4 for the import. (Requires companion PR geoschem/FVdycoreCubed_GridComp#10.) Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/FVdycoreCubed_GridComp | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GCHP_GridComp/FVdycoreCubed_GridComp b/src/GCHP_GridComp/FVdycoreCubed_GridComp index 35da079f8..aeec506c8 160000 --- a/src/GCHP_GridComp/FVdycoreCubed_GridComp +++ b/src/GCHP_GridComp/FVdycoreCubed_GridComp @@ -1 +1 @@ -Subproject commit 35da079f80bd238d0f3539148771ae1705fb1c68 +Subproject commit aeec506c84ddb2b0f64f45b9ceccbedaff838640 diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 5b1ac965f..3d8a03ceb 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 5b1ac965f08e48f086d8fce2647540d59f9e1687 +Subproject commit 3d8a03ceb659603830689cb9e12f26f581ac8d11 From bbd8900f0b2609ace553fe0628d72f23d6448b4e Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 7 Oct 2025 14:10:47 -0400 Subject: [PATCH 047/102] GEOS-Chem update: Merge PR #3062 (Updates for GCHP mass cons.) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e4a4cf370 Merge PR #3062 (Updates for GCHP conservation of rst file species mass) PR #3062 adds a new export to the GCHPchem gridded component of GCHP. The new export DELPDRY is set equal to the internal state value of DELP_DRY during initialize, for use in restart species mass conservation in dynamics prior to running offline advection in the first timestep. In addition, an existing print option in advection, to print proxy mass for air and species, is now a run-time option in config file GCHP.rc. There are two companion PRs required with this update: 1. geoschem/FVdycoreCubed_Grid 2. geoschem/GCHP#515 Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 3d8a03ceb..e4a4cf370 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 3d8a03ceb659603830689cb9e12f26f581ac8d11 +Subproject commit e4a4cf370998b9e727eaa9d9badfca25c54b4391 From da3e5990238f3a7e256657015ee867b6d7e3fd81 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 7 Oct 2025 14:24:03 -0400 Subject: [PATCH 048/102] FVDycore submod update: Merge PR #11 (Scale tracers by pressure ratio) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub FVdycoreCubed_GridComp repository: 348620f Merge PR #11 (Scale tracers by pressure ratio in first timestep) Signed-off-by: Bob Yantosca FVDycore submod update: Merge PR #11 (Scale tracers by pressure ratio) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub FVdycoreCubed_GridComp repository: 348620f Merge PR #11 (Scale tracers by pressure ratio in first timestep) Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/FVdycoreCubed_GridComp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/FVdycoreCubed_GridComp b/src/GCHP_GridComp/FVdycoreCubed_GridComp index aeec506c8..348620fbc 160000 --- a/src/GCHP_GridComp/FVdycoreCubed_GridComp +++ b/src/GCHP_GridComp/FVdycoreCubed_GridComp @@ -1 +1 @@ -Subproject commit aeec506c84ddb2b0f64f45b9ceccbedaff838640 +Subproject commit 348620fbcf42d7c2cef391f146248c1e6df1636a From 47b0536bdcdb0a21de9d596f4bd288a186039a21 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 8 Oct 2025 10:44:40 -0400 Subject: [PATCH 049/102] GEOS-Chem update: Merge PR #3066 (Read rst as REAL*8 for bmk sims) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: d4f100a61 Merge PR #3066 (Toggle "read_restart_as_real8" to true for benchmark sims) PR #3066 adds a call to bash function replace_colon_sep_val to change YAML tag "read_restart_as_real8" from false to true in the geoschem_config.yml file that is placed into fullchem benchmark run directories. PR #3066 also sets "read_restart_as_real8: true" by default in the template file geoschem_config.yml.TransportTracers. This is required for mass conservation in 1-yr or 10-yr TransportTracers benchmarks. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e4a4cf370..d4f100a61 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e4a4cf370998b9e727eaa9d9badfca25c54b4391 +Subproject commit d4f100a613de4356a25c5f0446c8979ba1b3bc22 From ef8f110b8106c5fbf8301badd82bb5d560f66aa6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 8 Oct 2025 11:34:02 -0400 Subject: [PATCH 050/102] GEOS-Chem update: Merge PR #3011 (Disable PARANOx at 0.25 or finer) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 6b104bc2f Merge PR #3011 (Disable PARANOx at 0.25 deg resolution or finer) PR #3011 disables the PARANOx extension when running GC-Classic fullchem nested-grid simulatiions at 0.25 x 0.3125 and 0.125 x 0.15625 degree resolution, based on the findings of @eamarais. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index d4f100a61..6b104bc2f 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit d4f100a613de4356a25c5f0446c8979ba1b3bc22 +Subproject commit 6b104bc2ff782952b37e83fc45dc87d3d1901afb From 98e74bed1997b7bdce7084a78825a32cce8ab279 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 8 Oct 2025 15:23:20 -0400 Subject: [PATCH 051/102] GEOS-Chem and HEMCO updates: Merge PR #2893 and HEMCO PR #330 This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 5c9935bdd Merge PR #2893 (Fix for emission config for carbon sims) and to the GitHub geoschem/HEMCO repository: a7df90f Merge PR #330 (Select gridded scale facs based on mask ID) These PRs add functionality for the Integrated Methane Inversion (IMI) with GCHP. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index 8dbae833a..a7df90f01 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit 8dbae833a397da191288c799aa45aaaa3d619324 +Subproject commit a7df90f01c93f02cc6c97e859ec22511d366646e diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 6b104bc2f..5c9935bdd 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 6b104bc2ff782952b37e83fc45dc87d3d1901afb +Subproject commit 5c9935bdd2111d4869ac98ab7954ed866b0f75c2 From a1208e39dac6cdb12e8ee5e2cc0781f73f4b3e47 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 9 Oct 2025 17:03:13 -0400 Subject: [PATCH 052/102] geos-chem-shared-doc submod update to 59850be The docs/source/geos-chem-shared-docs repo now points to commit 59850be ("Updated doc/geoschem-config.rst" and "doc/spec-db.rst") Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 3a3890277..59850bef7 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 3a38902771fbbfe9f8aff0facf52c2d3da81b109 +Subproject commit 59850bef7a33911b2ed49652121e27111cb62202 From 0e3272f3db5609092659d0a752c9653588a7638c Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 10 Oct 2025 16:06:34 -0400 Subject: [PATCH 053/102] geos-chem-shared-doc submod update to 1714833 The docs/source/geos-chem-shared-docs repo now points to commit 1714833 (Update "Build required software with spack" guide") Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 59850bef7..17148337b 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 59850bef7a33911b2ed49652121e27111cb62202 +Subproject commit 17148337b6083e561bbc69ea27aeff765e9cec5f From 66ee4db18350e86736951dde24cfa8fca248b0ad Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 16 Oct 2025 10:24:59 -0400 Subject: [PATCH 054/102] GEOS-Chem update: Merge PR #3074 (Fix error in carbon sim) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 89336ce92 Merge PR #3074 (Fix typos causing carbon simulations to crash) PR #3074 fixes an out-of-bounds error in KPP/carbon/carbon_Funcs.F90 when the Carbon diagnostic collection is enabled. The Carbon collection is now also turned on by default so as to allow our integration tests to catch similar errors. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 5c9935bdd..89336ce92 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 5c9935bdd2111d4869ac98ab7954ed866b0f75c2 +Subproject commit 89336ce92bbfa47672763aa893b6a63a783726f6 From ac26ee2d75848420ade9f9ae7f681e04d2f6ee91 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 16 Oct 2025 11:22:08 -0400 Subject: [PATCH 055/102] GEOS-Chem update: Merge PR #3073 (Fix typo in GCHP run script) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 6b8455bb7 Merge PR #3073 (Fix typo in GCHP operational run script) PR #3073 fixes an search error in e Harvard example script gchp.submit_consecutive_jobs.sh. It was searching for "DURATION" but should have searched for "Run_Duration", Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 89336ce92..6b8455bb7 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 89336ce92bbfa47672763aa893b6a63a783726f6 +Subproject commit 6b8455bb77bd95c7a18a52612fd35f50269f65e5 From ef9fe1b629411d5717e0553ea020256371e4cdef Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Thu, 16 Oct 2025 17:12:11 -0400 Subject: [PATCH 056/102] Submodule update: ESMF_cmake PR #8 Submodule ESMA_cmake ad5deba..bd401dc: > Merge pull request #8 from yuanjianz/gchp/main Signed-off-by: Lizzie Lundgren --- ESMA_cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ESMA_cmake b/ESMA_cmake index ad5deba58..bd401dc62 160000 --- a/ESMA_cmake +++ b/ESMA_cmake @@ -1 +1 @@ -Subproject commit ad5deba58b9b1f42e1c50de64627e69c4a9729ee +Subproject commit bd401dc6240fabe13510748fdf98de7c1cbbad4c From 9631c71e72ed14aaf2898e6a87b803a9fdc078ed Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Thu, 16 Oct 2025 17:21:08 -0400 Subject: [PATCH 057/102] Updated changelog Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93ee37237..7382165b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - 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 From 01fc78173e68172aff7181543c34699cdcc70c33 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 20 Oct 2025 11:44:53 -0400 Subject: [PATCH 058/102] geos-chem-submod update to 8cc346e (Add doc about restart file) docs/source/geos-chem-shared-docs - Submod has been updated to 8cc346e. Documentation has been added to doc/hemco-config.rst to make it more clear that users need to change the time cycle flag if the run dies due to restart. Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 17148337b..8cc346ebf 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 17148337b6083e561bbc69ea27aeff765e9cec5f +Subproject commit 8cc346ebfe16182d5cd12ade2681da84ee48a5a3 From 1fd4effebba7351e070124daa001de699b5497f9 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 23 Oct 2025 14:22:39 -0400 Subject: [PATCH 059/102] GEOS-Chem update: Merge PR #3087 (Fix bug in ObsPack sampling) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 65ae1f305 Merge PR #3087 (Fix bug in ObsPack sampling) PR #3087 updates the logic so that ObsPack data points that are instantaneously-sampled (i.e. having CT_sampling_strategy = 4) and that lie within 1/2 model timestep of the end of the day will be included in the sampling. This fixes a bug in #3084 that was reported by @mattloman. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 6b8455bb7..65ae1f305 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 6b8455bb77bd95c7a18a52612fd35f50269f65e5 +Subproject commit 65ae1f3050f928c1e4dec968b67495d3b2251997 From 2c3e0e2d8f6d26936453189bcae81864d97ba2ae Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 23 Oct 2025 15:04:46 -0400 Subject: [PATCH 060/102] GEOS-Chem update: Merge PR #3086 (Fix LPJ path in ExtData.rc) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: b4225f205 Merge PR #3086 (Fix LPJ wetland path in ExtData.rc) PR #3086 changes the path for LPJ wetlands emissions in the GCHP carbon-simulation ExtData.rc to use the HEMCO data directory. Previously the path was local on the Harvard Cannon compute cluster. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 65ae1f305..b4225f205 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 65ae1f3050f928c1e4dec968b67495d3b2251997 +Subproject commit b4225f205a11da6fe01a368c6ad3e1a8e3773562 From 533b7cc94007bce21ec23cd9a2bc8730b7abd94b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 28 Oct 2025 10:50:22 -0400 Subject: [PATCH 061/102] HEMCO update: Merge PR #345 (Rewrite error message for clarity) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/HEMCO repository: 12da969 Merge PR #345 (Rewrite the "cannot find field for current time" error msg) PR #345 This PR seeks to reduce the confusion among GEOS-Chem Classic by rewriting the "Cannot find file for current simulation time" error with specific steps that the user can take to get past the error. It also adds word-wrap functionality into src/Core/hco_chartools_mod.F90 so that error messages can be wrapped at 78 characters for better readability. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index a7df90f01..12da96925 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit a7df90f01c93f02cc6c97e859ec22511d366646e +Subproject commit 12da96925cbfcb3f22e8b008a798442a15e0dfaf From 45ee8c70557c870330e097278b12a04155254756 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 29 Oct 2025 13:35:38 -0400 Subject: [PATCH 062/102] GEOS-Chem update: Merge PR #3095 (Fix carbon sim diagnostic error) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: c39a8f9a3 Merge PR #3095 (Fix diagnostic error for CO2-only or OCS-only sims) PR #3095 fixes an out-of-bounds error that can occur in the CO2-only and OCS-only carbon simulations when the State_Diag%OHconcAfterChem diagnostic is selected to be archived, but when the OHdiurnalFac array is not allocated. To fix the error we enclose the IF block where the diagnostic is updated with in the IF ( id_CH4_adv > 0 .or. id_CO_adv > 0 ) block. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index b4225f205..c39a8f9a3 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit b4225f205a11da6fe01a368c6ad3e1a8e3773562 +Subproject commit c39a8f9a3889b5b505b03ef357ec4c9c50b264be From 28bb34264b402ac5d35f141d92c716449081094d Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 30 Oct 2025 13:23:54 -0400 Subject: [PATCH 063/102] geos-chem-shared-docs update: Update dust species for 14.7.0 docs/source/geos-chem-shared-docs - Submodule update to 1e39c0a (Update list of dust species for 14.7.0) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 8cc346ebf..1e39c0a49 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 8cc346ebfe16182d5cd12ade2681da84ee48a5a3 +Subproject commit 1e39c0a499fd93d1d631a0270ec1aa63ea98ac4d From c3dbf6039a75240652b81e926d9db30b7d4e7021 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 17 Nov 2025 10:10:49 -0500 Subject: [PATCH 064/102] GEOS-Chem update: Merge PR #2685 (Retire CO2, CH4, tagCO sims) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: a52cb2407 Merge PR #2685 (Retire CO2, CH4, and tagged CO simulations) PR #2685 removes source code and configuration files for the individual CH4, CO2, and tagCO simulations, as these are now superseded by the carbon simulation. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index c39a8f9a3..a52cb2407 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit c39a8f9a3889b5b505b03ef357ec4c9c50b264be +Subproject commit a52cb240771f71f73ba1198afa43fb4f0d427b15 From 71b51a97c316e083c0a7138aae01fdaaf0b76e2b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 19 Nov 2025 15:07:54 -0500 Subject: [PATCH 065/102] HEMCO update: Merge PR #346 (Use gcc 15 in "Mac" GitHub action) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/HEMCO repository: 43ad195 Merge PR #346 (Replace gcc 12 w/ gcc 15 in Mac GitHub Action ) PR #346 removes GNU Compiler Collection 12 and replaces it with version 15 in the "Mac" GitHub Action, which tries to build HEMCO on MacOS. GCC 12 evidently has been "delisted" from the Mac "HomeBrew" package manager, and this causes the compilation test with GCC 12 to fail. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index 12da96925..43ad1958b 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit 12da96925cbfcb3f22e8b008a798442a15e0dfaf +Subproject commit 43ad1958b490b9e233c7f222891d9966d8227f1f From dd1c7da3777b8226047faf50b89cd76ab2b0642f Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 19 Nov 2025 16:56:36 -0500 Subject: [PATCH 066/102] geos-chem-shared-docs update: Update doc for config files in 14.7.0 docs/source/geos-chem-shared-docs - Submodule update to 325a105 (Update RTD pages...) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 1e39c0a49..325a105a7 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 1e39c0a499fd93d1d631a0270ec1aa63ea98ac4d +Subproject commit 325a105a7b03365ab50103e8aa8210100f7648c2 From 2acb8d41eb753127c690831d5927cbcd9ed61098 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:20:50 -0600 Subject: [PATCH 067/102] create new gchp doc --- .DS_Store | Bin 0 -> 6148 bytes docs/.DS_Store | Bin 0 -> 6148 bytes docs/source/.DS_Store | Bin 0 -> 6148 bytes docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst | 47 ++++++++++++++++++ .../RUN-GUIDE-AWS-2025/Set-up-pcluster.rst | 3 ++ 5 files changed, 50 insertions(+) create mode 100644 .DS_Store create mode 100644 docs/.DS_Store create mode 100644 docs/source/.DS_Store create mode 100644 docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst create mode 100644 docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2e3b87afd9e99f3e8e845bcd6617af1bacb77ec2 GIT binary patch literal 6148 zcmeHK%Z?I36umVx^3suoCbKc=#4Q;a9Ul`nz(7V4b<8xQ3pGds(GE;Ep+QUt32Xfa zf5EL^;=j1kbE|4hcLQ6ZrY@Xb3y_H9{#`ry_72DA@ zOct_@Q#vDu_Gv<&R?w!xC}0%$+Z5n$w?I`orxrb-==VEm4uh^c3|t@>RYltWB@HE_ zt8@%Tm7dcHHRvh0C;0L&sF&b>c^4dRsy+;9-b*A+V?2Lz7p!)B{4ej zCBeN8?kUFB!j9CWnw(!#j&;o##m@xWq8A@t)7gJuaWpDV9lCXg$7i2 zkgHQ6v2MiC5oP7DUJbNWM{mqoi6(y}*yZnbx|IvLa$PqKJj~?Q;~z+hz@7I1FejrXwL+*h+7v6Qh7p z;9pXJ_Xit^eMS4F@^b4yCa(bS7OJJ8%zqY`V{2d0eyKd(z=Wd0E2_{}458?#w>7S! z{Ze^FC!sGNLia564MoV_(Y`I=Br3|A+$dlah%1m%k3~NJ8=LR{agup53K#|cD+PpA zcj`4vNuRANljF12MtXOl7dVh$Fjgj@g9;iytBCgU(tT4JZfO(kARfHWJZCl GD)1YHvi+q1 literal 0 HcmV?d00001 diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fd6c6ed4ffb5234dce62fbb8b01115ad2f998ec0 GIT binary patch literal 6148 zcmeHKL2uJA6n^eXn`lDH0i<1!EbUs2mcb;%C6saCz-2*j092ASK(sX8l9VDUe|g0)L|dymlT7#jHe&mZ=Yxx~86|ze@ULQ+*{v9`&Rj0P!ugPhi zRdv6AE?QgdYn^V_?{0TrNAJ}vs^fZE4de19KRr__PnPvKd7h=SQE=mtD(W~Z(o!d6 z;}n!vFS25+WU-abs{+)hL-rYY~EPU_g?(GLh zqmz76s89I)FoFM%w(Ay`!1G&~|A(k7a#g%Te3`T4I&=y+1)Ks`Rlx2a-u6`!9M37> z6!>ox;Qc|u8AFSWLA`aL&{qIp8)0pz^Cu(cNQ-+y|l6!IrI0gPG1w{KW zIviq3_H5ml9G|rk{szv*yvE@76jbz43@#tVJ8*4?ORfMzi;Y1rcVod5s; literal 0 HcmV?d00001 diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..45a041fede1aa4365332828683db87fe6362e954 GIT binary patch literal 6148 zcmeHK!EVz)5S>i}iBlmWM5SJkEOAXsT3Vpul7>{M7Y;Sh1E65XZfn)CBikXMC{oVw z5BvgGzJ!0_1aEe?RqTM&6GGLFH2Y?~`^M|HYp<7xM0f0O5jBaZ4ri=3Q2fEToqfqF z`pPO$$Q(I^G&qcsffp_HHW!QnMuGoL0e*LD)TfMca^aWnZ{neaKMVWt&0o?Gaqj^o z6w?W9(uh8(xBasBw^HvlI;8;pGui;}4Dk?AhRCH9H6Jw}?E}h+nZ&(PrrR=8F2@)n z<}5ts6eaSM*k4L)3r`l~P62(yxKrkq7(bU7JiZe+V~i07MMmYc#JEF8^om|!WY2+z z)T0B$`*chWaGToj-C_=@?$-r%uav`^WFs$*!5nA!KB~3`z(obH;jW+5<)*fm$%1Z>?f0MGLHRBavjxR zS#_)5T%S&Ncb>HDt-Z&ymOb6uZnx~6hmU46tG;&s!PBGuc{GfZ&(H=YurElvrSSrI zey;SaADlFfl9;vTTn)_J80&6C5oTp5XQnih#A|R-(*_usoW~8Un=w`b)RW5G^pF zs6a&(`iLPE9oKE$ucL9UP|-=~!-vp!7W#xD-v1B& ze*Q0#OwA}@6u4Fjh-%O2b@51gZ(Vvg-fM06dpH~Sn=6zQ6nZIRJJv U&K2Sc%=`#Q8BAdm_@@f|2Hud-?EnA( literal 0 HcmV?d00001 diff --git a/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst b/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst new file mode 100644 index 000000000..19b2511d8 --- /dev/null +++ b/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst @@ -0,0 +1,47 @@ +.. _gchp-2025: + +######################################## +Running GCHP on AWS ParallelCluster 2025 +######################################## +This page outlines the high-level steps required to deploy an AWS ParallelCluster, prepare the environment, and execute a GCHP simulation. Each steps links to a detailed guide for execution. + +============= +Prerequisites +============= +Before you start, ensure you have the following ready on your local machine: +1. An AWS account with administrative access. Please ask your administrator for access (needed for creating pcluster, FSx, etc) +2. Python version>=3 installed +3. AWS CLI(Command-Line Interface) installed and configured. Refer to `Installing AWS CLI `_ for more details. +4. :ref:`AWS ParallelCluster CLI ` installed. + +==================================== +Cluster Configuration and Deployment +==================================== +On your local machine, define and launch pcluster on AWS. +1. :ref:`Create an AWS FSx for Lustre file system `: Fast, parallel, mounted storage in pcluster for input data. +1. Create Configuration File: Define your cluster settings (VPC, subnets, FSx for Lustre storage, instance types, and Slurm queues) in a gchp-cluster.yaml file. +2. Deploy Cluster: Use the configuration file to launch the entire stack. + +======================= +Environment Preparation +======================= + +SSH into the pcluster head node first. + +..code-block:: console + + $ ssh -i /path/to/.pem/pem ec2-user@public-IPv4 + +We need to install the required software dependencies and download GCHP files. +1. Install dependencies: Install required libraries on the head node. +2. Download GCHP Code: Place the GCHP source code into the shared file system. +3. Download External Data: Download necessary input data and configure symbolic links. + +=========================== +Model Setup & Job Execution +=========================== + +Set up the specific run instance and compile the executable. +1. Model Setup: Create run directory, edit configuration files, and compile GCHP. +2. Use slurm to submit job: write a slurm script to define job parameters and use mpi to execute. +3. Monitor Output: Set checkpoint files, check job status, and clean up. \ No newline at end of file diff --git a/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst b/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst new file mode 100644 index 000000000..ea8080796 --- /dev/null +++ b/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst @@ -0,0 +1,3 @@ +.. _set_up_pcluster: + + From 13f2cb903bd7d1a5a926b5f83c9adfc491b25b33 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:23:07 -0600 Subject: [PATCH 068/102] Create Create-fsx.rst --- docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst diff --git a/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst b/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst new file mode 100644 index 000000000..518290fe6 --- /dev/null +++ b/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst @@ -0,0 +1 @@ +.. _create-fsx: From cf8af625f9b36652d230018b3b6c3ca618328004 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:53:55 -0600 Subject: [PATCH 069/102] Update Set-up-pcluster.rst --- .../RUN-GUIDE-AWS-2025/Set-up-pcluster.rst | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst b/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst index ea8080796..baa8cbd32 100644 --- a/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst +++ b/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst @@ -1,3 +1,51 @@ .. _set_up_pcluster: +###################### +Set up ParallelCluster +###################### + +AWS ParallelCluster provides a scalable HPC environment enabling users to run across multiple cores and manage scheduling. It suits GCHP to execute large-scale simulations effectively. +====================================== +Installing the AWS ParallelCluster CLI +====================================== + +The AWS ParallelCluster CLI is a Python package and needs to be installed using pip: + +.. code-block:: console + $ pip install --upgrade aws-parallelcluster + +Verify that the CLI is working and check the version: + +.. code-block:: console + $ pcluster version + +.. note:: + It is recommended to use the latest stable version of the ParallelCluster CLI (currently 3.14.0) as it uses a simpler YAML configuration file. + If you are using a custom AMI, make sure you install the matching version. Check :ref:`the AMI list ` in advance. + +############### +Create Key Pair +############### + +A key pair is needed as your secure identity credential to access your cluster's head node. You can create the key pair using the AWS Management Console or the AWS CLI: + +.. code-block:: console + $ aws ec2 create-key-pair --key-name your-ec2-keypair-name --query 'KeyMaterial' --output text > your-keypair-name.pem + +Replace Key-name, your-keypair-name with your desired names. + +Store your :code:`.pem` key in a secure location. It is only accessible at creation and cannot be recovered later. If you lose the private key, you will need to create a new key pair. Set strict permission to your keypair +.. code-block:: console + chmod 400 your-keypair-name.pem + +########################### +Create GCHP ParallelCluster +########################### + +Use :code:`pcluster` command to perform actions including creating a cluster, temporarily pausing it, or destroying it. + +First, create a cluster configuration file by running :code:`pcluster configure` command. + + + From a3d2341f17610aeee003e106dc33e24b94f68d9a Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:58:00 -0600 Subject: [PATCH 070/102] Update requirements.rst --- docs/source/getting-started/requirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/getting-started/requirements.rst b/docs/source/getting-started/requirements.rst index 745d13ef1..9f06ed5e5 100644 --- a/docs/source/getting-started/requirements.rst +++ b/docs/source/getting-started/requirements.rst @@ -304,4 +304,4 @@ General Hardware and Software Recommendations enabling the MAPL o-server functionality for writing restart files, thereby speeding up the model. This is set automatically when executing :file:`setCommonRunSettings.sh` if using over 1000 - cores. You can also toggle whether to use it manually in that file. + cores. You can also toggle whether to use it manually in that file.. From 97b4e303980362900a81cdc3d76c4212bf22dde9 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 20 Nov 2025 17:22:36 -0500 Subject: [PATCH 071/102] geos-chem-shared-docs update: Update lists of species Updated the geos-chem-shared-docs submodule to cb1d355, which includes these commits: cb1d355 Update list of species for carbon and Hg simulations 1d5eed5 Remove TDST from list of species in fullchem.rst Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 325a105a7..cb1d35531 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 325a105a7b03365ab50103e8aa8210100f7648c2 +Subproject commit cb1d35531c5af8ff353b9328e48c53f97720adeb From 2b61927f2cd53a05f41641600f5300efcb6047e6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 21 Nov 2025 10:30:51 -0500 Subject: [PATCH 072/102] GEOS-Chem update: Merge PR #3115 (Fix prod/loss diagnostic mapping) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e1bf9abcb Merge PR #3115 (Fix prod/loss diagnostic species mapping) PR #3115 passes the TaggedDiag_List to Init_State_Chm (and other internal routines) so that we can determine if a prod/loss species or wildcard has been requested for diagnostic archiveal before attempting to populate mapping arrays. This fixes the error raised by @eamarais in #3106. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index a52cb2407..e1bf9abcb 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit a52cb240771f71f73ba1198afa43fb4f0d427b15 +Subproject commit e1bf9abcb5eff8e829293f1a1384ac51cf4afd1b From a6a4c8d372fe3cb3cfd66f6df4061583e2c47e93 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 21 Nov 2025 14:41:40 -0500 Subject: [PATCH 073/102] GEOS-Chem update: Merge PR #3104 (Remove div by TS_EMIS in aer-only code) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e43a5a01d Merge PR 3104 (Do not divide PH2O2m by TS_EMIS in aer-only code) PR #3104 removes an extraneous division by the emissions timestep in the aerosol-only simulation. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e1bf9abcb..e43a5a01d 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e1bf9abcb5eff8e829293f1a1384ac51cf4afd1b +Subproject commit e43a5a01deb79f11cf6aea238f4f908ae6ee6f2d From 342817eb3d412e17f3f3d0b7cd319c888c30811c Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 21 Nov 2025 17:23:28 -0500 Subject: [PATCH 074/102] geos-chem-submod-update to f5f39e7 (Updated "editing-these-docs.rst") docs/source/geos-chem-shared-docs - Submod update to f5f39e7 (Updated the "Editing this User Gude documentation") Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index cb1d35531..f5f39e763 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit cb1d35531c5af8ff353b9328e48c53f97720adeb +Subproject commit f5f39e7639b3c8abcdf494d03150703995e958e0 From 93b2b3b731ac87f0f120e096d765602516470dd6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 24 Nov 2025 11:38:32 -0500 Subject: [PATCH 075/102] Added "read_the_docs_environment.yml" for creating a RTD conda env docs/read_the_docs_environment.yml - Added this environment file with the proper specifications to create the "rtd_env" Conda environment containing Sphinx + dependencies docs/source/geos-chem-shared-docs - Updated "editing_these_docs.rst" with instructions on how to install Sphinx via Conda and build the docs from within the rtd_env Conda environment CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca --- CHANGELOG.md | 4 ++++ docs/read_the_docs_environment.yml | 24 ++++++++++++++++++++++++ docs/source/geos-chem-shared-docs | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 docs/read_the_docs_environment.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index bf17ef234..1e3a05d2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Added - Added supplemental guides for GCHP horizontal and vertical grids to ReadTheDocs - Added "Particulate matter in GEOS-Chem" supplemental guide to ReadTheDocs +- Added `docs/read_the_docs_environment.yml` Conda environment file +### Changed +- Updated `geos-chem-shared-docs/editing_these_docs.rst` with instructions for using a Conda environment to build RTD doc + ## [14.6.3] - 2025-07-28 ### Added - Added `-DSANITIZE` option for use with GNU Fortran compiler to check for memory leaks diff --git a/docs/read_the_docs_environment.yml b/docs/read_the_docs_environment.yml new file mode 100644 index 000000000..5aefcac13 --- /dev/null +++ b/docs/read_the_docs_environment.yml @@ -0,0 +1,24 @@ +--- +# ====================================================================== +# ReadTheDocs environment file +# +# If you wish to build a Mamba/Conda environment with the dependencies +# needed for building the ReadTheDocs documentation, use: +# +# $ mamba env create -n rtd_env --file=read_the_docs_environment.yml +# ====================================================================== +name: rtd_env +channels: + - conda-forge + - nodefaults +dependencies: + - python==3.12.0 + - sphinx==7.2.6 + - sphinx_rtd_theme==2.0.0 + - sphinxcontrib-bibtex==2.6.2 + - sphinx-autobuild==2021.3.14 + - recommonmark==0.7.1 + - docutils==0.20.1 + - jinja2==3.1.6 + + diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index f5f39e763..5d58359fd 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit f5f39e7639b3c8abcdf494d03150703995e958e0 +Subproject commit 5d58359fdc0d81634ef37c702f3a3c7a39dfdb10 From 30ab06764e721a4159291c8f2e6ceaa30f41c012 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 24 Nov 2025 16:14:34 -0500 Subject: [PATCH 076/102] geos-chem-shared-docs update: Fixed species list in fullchem.rst This commit informs the GCClassic superproject about the following commits that were pushed to the geos-chem-shared-docs submodule. 81560a7 Added fixes to species list in simulations/fullchem.rst 5d58359 Updated "editing_these_docs.rst"; now use a Conda env to build RTD Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 5d58359fd..81560a7ee 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 5d58359fdc0d81634ef37c702f3a3c7a39dfdb10 +Subproject commit 81560a7ee2115dab8238d5d4bf3caaac18e200d3 From b044857232a6e695f6ae81ba6bb374b344a0c727 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 24 Nov 2025 16:39:14 -0500 Subject: [PATCH 077/102] geos-chem-shared-docs update: Fix incorrect info in editing_these_docs.rst docs/source/geos-chem-shared-docs - Update workflow in editing_these_docs.rst so that the "make clean" commands are issued while sphinx-autobuild is running. Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 81560a7ee..5289c7d6c 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 81560a7ee2115dab8238d5d4bf3caaac18e200d3 +Subproject commit 5289c7d6caac428da8f61439a8532fe3899a36b0 From 40992492c1ddd5c43b763eb473837ffef82c12f0 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 25 Nov 2025 18:34:02 -0500 Subject: [PATCH 078/102] geos-chem-submod update to 5b56a42 docs/source/geos-chem-shared-docs - Updated to 5b56a42 (Update supplemental guides for dust species etc. in 14.7.0) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 5289c7d6c..5b56a4297 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 5289c7d6caac428da8f61439a8532fe3899a36b0 +Subproject commit 5b56a429783c287247e9d320a0182522b650d015 From 1056d08af74dba8cce7c6ab8e072eed148104613 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 1 Dec 2025 11:50:16 -0500 Subject: [PATCH 079/102] geos-chem-shared-docs submod update to 1ba5a65 docs/source/geos-chem-shared-docs - Updated to 1ba5a65 (Replace refs to GC-Classic Horizontal Grids with links) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 5b56a4297..1ba5a650f 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 5b56a429783c287247e9d320a0182522b650d015 +Subproject commit 1ba5a650f3fe0a7a25cbb7c5c44993e185f9a494 From 6a530edaca71dfba41bbbc7cca1117644f2cbd08 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 1 Dec 2025 13:43:23 -0500 Subject: [PATCH 080/102] GEOS-Chem update: Merge PR #3113 (Consolidate Hg metadata) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e852c244d Merge PR #3113 (Consolidate Hg metadata into species_database.yml) PR #3113 does the following: 1. Consolidates all metadata for Hg species (currently present in run/shared/species_database_hg.yml) into the run/shared/species_database.yml. 2. Removes metadata for obsolete tagged Hg species. 3. Updates run/GCClassic/createRunDir.sh accordingly so that we just copy run/shared/species_database.yml to the run directory. 4. Adds IUPAC names for Hg species in under the FullName tag of species_database.yml. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e43a5a01d..e852c244d 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e43a5a01deb79f11cf6aea238f4f908ae6ee6f2d +Subproject commit e852c244d5a9b231dd5452a3153f95e3abd3edb3 From 44e5145603abcd0f005f69806c9cdcc9e032a41b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 1 Dec 2025 15:42:22 -0500 Subject: [PATCH 081/102] GEOS-Chem update: Merge PR #3121 (Add int test straddling 00 UTC) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 3236dc5a7 Merge PR #3121 (Add GC-Classic int test straddling 00 UTC) PR #3121 introduces a new GEOS-Chem Classic integration test (based on gc_4x5_merra2_carbon_CH4) that straddles a UTC date boundary. The test starts at 20190101T18:00:00 UTC and ends on 20190102T01:00:00 UTC. This is one of the "wish list" integration tests described in #714. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index e852c244d..3236dc5a7 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit e852c244d5a9b231dd5452a3153f95e3abd3edb3 +Subproject commit 3236dc5a7e2c22dbf7480af68675c23dd331895b From a6194ff8883dbffb9e1e95e46c825bf189240c1b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 2 Dec 2025 18:26:07 -0500 Subject: [PATCH 082/102] geos-chem-shared-docs update to d857e27 (species-guide.rst updates) docs/source/geos-chem-shared-docs - Submod update to d857e27 (Add more list tables to species-guide.rst) Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index 1ba5a650f..d857e2747 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit 1ba5a650f3fe0a7a25cbb7c5c44993e185f9a494 +Subproject commit d857e27470c3a48a5f4ae945b037d2da654a798b From c401e2b9eb0cc0190c37306b4d36b3c0eb53752e Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 9 Dec 2025 15:44:36 -0500 Subject: [PATCH 083/102] GEOS-Chem update: Merge PR #3118 (Fix error in DryDepChm diag) This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 34042ced5 Merge PR #3118 (Fix OOB errors in DryDepChm diagnostic) PR #3118 fixes an out-of-bounds error in the dry deposition diagnostics that was responsible for creating striped patterns in diagnostic output as first reported by @yc-chan. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 3236dc5a7..34042ced5 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 3236dc5a7e2c22dbf7480af68675c23dd331895b +Subproject commit 34042ced58cc407896ee29056346af428f0545b9 From 345f347204e12681ced33fb61a4ab201d76be67c Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 3 Dec 2025 16:59:23 -0500 Subject: [PATCH 084/102] Incorporate new GCHP.rc entries into GCHPctmEnv to fix vertical flip issue This update requires a submodule update for GEOS-Chem. The issue only affected usage of GEOS-FP C720 files (top-down) with processed met fields (bottom-up). Signed-off-by: Lizzie Lundgren --- CHANGELOG.md | 1 + .../GCHPctmEnv_GridCompMod.F90 | 46 +++++++++++++------ 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7382165b7..347a48553 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Fixed - Fixed security issues in GitHub Actions that caused the `lint-ci-workflows` action to fail +- Fixed vertical flipping bug in GCHPctmEnv when using C720 fields with GEOS-FP processed data ### Removed - Removed individual submodules for yafYaml, pFlogger, and gFTL-shared since now located in new submodule GFE diff --git a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 index f5b3f198a..2fefebf4f 100644 --- a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 @@ -48,7 +48,8 @@ module GCHPctmEnv_GridComp integer, parameter :: r8 = 8 integer, parameter :: r4 = 4 - logical :: meteorology_vertical_index_is_top_down + logical :: adv_meteorology_flux_is_top_down + logical :: adv_meteorology_humidity_is_top_down integer :: use_total_air_pressure_in_advection integer :: correct_mass_flux_for_humidity @@ -519,18 +520,35 @@ subroutine Initialize(GC, IMPORT, EXPORT, CLOCK, RC) ! Get whether meteorology vertical index is top down (native fields) ! or bottom up (GEOS-Chem processed fields) ! ----------------------------------------------------------------- + ! Flux (wind or mass flux) call ESMF_ConfigGetAttribute( & - CF, & - value=meteorology_vertical_index_is_top_down, & - label='METEOROLOGY_VERTICAL_INDEX_IS_TOP_DOWN:',& - Default=.false., & - __RC__ ) - if (meteorology_vertical_index_is_top_down) then + CF, & + value=adv_meteorology_flux_is_top_down, & + label='MET_ADVECTION_FLUX_IS_TOP_DOWN:', & + Default=.false., & + __RC__ ) + if (adv_meteorology_flux_is_top_down) then + msg='Configured to expect ''top-down'' meteorological data'// & + ' from ''ExtData'' for flux used in advection (wind or mass flux)' + else + msg='Configured to expect ''bottom-up'' meteorological'// & + ' data from ''ExtData'' for flux used in advection (wind or mass flux)' + end if + call lgr%info(trim(msg)) + + ! Humidity + call ESMF_ConfigGetAttribute( & + CF, & + value=adv_meteorology_humidity_is_top_down, & + label='MET_HUMIDITY_IS_TOP_DOWN:', & + Default=.false., & + __RC__ ) + if (adv_meteorology_humidity_is_top_down) then msg='Configured to expect ''top-down'' meteorological data'// & - ' from ''ExtData''' + ' from ''ExtData'' for humidity used in advection' else msg='Configured to expect ''bottom-up'' meteorological'// & - ' data from ''ExtData''' + ' data from ''ExtData'' for humidity used in advection' end if call lgr%info(trim(msg)) @@ -781,7 +799,7 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) PS=PS1_IMPORT, & PLE=DryPLE0_EXPORT, & SPHU=SPHU1_IMPORT, & - topDownMet=meteorology_vertical_index_is_top_down ) + topDownMet=adv_meteorology_humidity_is_top_down ) DryPLE0_EXPORT = 100.0d0 * DryPLE0_EXPORT DryPLE0_EXPORT = DryPLE0_EXPORT(:,:,LM:0:-1) @@ -790,7 +808,7 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) PS=PS2_IMPORT, & PLE=DryPLE1_EXPORT, & SPHU=SPHU2_IMPORT, & - topDownMet=meteorology_vertical_index_is_top_down ) + topDownMet=adv_meteorology_humidity_is_top_down ) DryPLE1_EXPORT = 100.0d0 * DryPLE1_EXPORT DryPLE1_EXPORT = DryPLE1_EXPORT(:,:,LM:0:-1) @@ -875,7 +893,7 @@ subroutine prepare_sphu_export(IMPORT, EXPORT, RC) ! Set export as copy of import casted to real8 and set vertical index ! as top-down (level 1 corresponds to TOA) - if (meteorology_vertical_index_is_top_down) then + if (adv_meteorology_humidity_is_top_down) then SPHU0_EXPORT = dble(SPHU1_IMPORT) else SPHU0_EXPORT(:,:,:) = dble(SPHU1_IMPORT(:,:,LM:1:-1)) @@ -999,7 +1017,7 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) call MAPL_GetPointer(IMPORT, CY_IMPORT, 'CYC', RC=STATUS) _VERIFY(STATUS) - if (meteorology_vertical_index_is_top_down) then + if (adv_meteorology_flux_is_top_down) then MFX_EXPORT = dble(MFX_IMPORT(:,:,:)) MFY_EXPORT = dble(MFY_IMPORT(:,:,:)) CX_EXPORT = dble(CX_IMPORT(:,:,:)) @@ -1035,7 +1053,7 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) _VERIFY(STATUS) ! Copy imports to local arrays so that vertical index is top down - if (meteorology_vertical_index_is_top_down) then + if (adv_meteorology_flux_is_top_down) then UC(:,:,:) = UA_IMPORT(:,:,:) VC(:,:,:) = VA_IMPORT(:,:,:) else From d589c42b22144c09c9705f0e53df3a3fc9e1d196 Mon Sep 17 00:00:00 2001 From: Lizzie Lundgren Date: Wed, 10 Dec 2025 13:45:39 -0500 Subject: [PATCH 085/102] Split met flux vert direction into separate logicals for wind and mass flux Signed-off-by: Lizzie Lundgren --- .../GCHPctmEnv_GridCompMod.F90 | 116 +++++++++--------- 1 file changed, 56 insertions(+), 60 deletions(-) diff --git a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 index 2fefebf4f..f183e6764 100644 --- a/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 +++ b/src/GCHP_GridComp/GCHPctmEnv_GridComp/GCHPctmEnv_GridCompMod.F90 @@ -48,8 +48,9 @@ module GCHPctmEnv_GridComp integer, parameter :: r8 = 8 integer, parameter :: r4 = 4 - logical :: adv_meteorology_flux_is_top_down - logical :: adv_meteorology_humidity_is_top_down + logical :: met_mass_flux_is_top_down + logical :: met_wind_is_top_down + logical :: met_humidity_is_top_down integer :: use_total_air_pressure_in_advection integer :: correct_mass_flux_for_humidity @@ -162,14 +163,6 @@ subroutine SetServices(GC, RC) VLOCATION=MAPL_VLocationEdge, & RC=STATUS) _VERIFY(STATUS) - call MAPL_AddImportSpec(gc, & - SHORT_NAME='PS2', & - LONG_NAME='pressure_at_surface_after_advection', & - UNITS='hPa', & - DIMS=MAPL_DimsHorzOnly, & - VLOCATION=MAPL_VLocationEdge, & - RC=STATUS) - _VERIFY(STATUS) call MAPL_AddImportSpec(gc, & SHORT_NAME='SPHU1', & LONG_NAME='specific_humidity_before_advection', & @@ -520,46 +513,55 @@ subroutine Initialize(GC, IMPORT, EXPORT, CLOCK, RC) ! Get whether meteorology vertical index is top down (native fields) ! or bottom up (GEOS-Chem processed fields) ! ----------------------------------------------------------------- - ! Flux (wind or mass flux) - call ESMF_ConfigGetAttribute( & - CF, & - value=adv_meteorology_flux_is_top_down, & - label='MET_ADVECTION_FLUX_IS_TOP_DOWN:', & - Default=.false., & - __RC__ ) - if (adv_meteorology_flux_is_top_down) then - msg='Configured to expect ''top-down'' meteorological data'// & - ' from ''ExtData'' for flux used in advection (wind or mass flux)' + + ! Get vertical direction of flux that will be used + if ( import_mass_flux_from_extdata) then + + ! Get vertical direction of mass flux import + call ESMF_ConfigGetAttribute( CF, & + value=met_mass_flux_is_top_down, & + label='MET_MASS_FLUX_IS_TOP_DOWN:', & + Default=.true., __RC__ ) + if (met_mass_flux_is_top_down) then + msg='Configured to expect ''top-down'' mass flux data from ''ExtData''' + else + msg='Configured to expect ''bottom-up'' mass flux data data from ''ExtData''' + end if + else - msg='Configured to expect ''bottom-up'' meteorological'// & - ' data from ''ExtData'' for flux used in advection (wind or mass flux)' - end if + + ! Get vertical direction of wind import + call ESMF_ConfigGetAttribute( CF, & + value=met_wind_is_top_down, & + label='MET_WIND_IS_TOP_DOWN:', & + Default=.false., __RC__ ) + if (met_wind_is_top_down) then + msg='Configured to expect ''top-down'' wind data from ''ExtData''' + else + msg='Configured to expect ''bottom-up'' wind data from ''ExtData''' + end if + call lgr%info(trim(msg)) + + endif call lgr%info(trim(msg)) - ! Humidity - call ESMF_ConfigGetAttribute( & - CF, & - value=adv_meteorology_humidity_is_top_down, & - label='MET_HUMIDITY_IS_TOP_DOWN:', & - Default=.false., & - __RC__ ) - if (adv_meteorology_humidity_is_top_down) then - msg='Configured to expect ''top-down'' meteorological data'// & - ' from ''ExtData'' for humidity used in advection' + ! Get vertical direction of humidity + call ESMF_ConfigGetAttribute( CF, & + value=met_humidity_is_top_down, & + label='MET_HUMIDITY_IS_TOP_DOWN:', & + Default=.false., __RC__ ) + if (met_humidity_is_top_down) then + msg='Configured to expect ''top-down'' humidity data from ''ExtData''' else - msg='Configured to expect ''bottom-up'' meteorological'// & - ' data from ''ExtData'' for humidity used in advection' + msg='Configured to expect ''bottom-up'' humidity data from ''ExtData''' end if call lgr%info(trim(msg)) ! Get whether to use total or dry air pressure in advection - ! ----------------------------------------------------------------- - call ESMF_ConfigGetAttribute( & - CF, & - value=use_total_air_pressure_in_advection, & - label='USE_TOTAL_AIR_PRESSURE_IN_ADVECTION:', & - Default=0, & - __RC__ ) + call ESMF_ConfigGetAttribute( CF, & + value=use_total_air_pressure_in_advection, & + label='USE_TOTAL_AIR_PRESSURE_IN_ADVECTION:', & + Default=0, __RC__ ) if ( use_total_air_pressure_in_advection > 0 ) then msg='Configured to use total air pressure in advection' else @@ -568,13 +570,10 @@ subroutine Initialize(GC, IMPORT, EXPORT, CLOCK, RC) call lgr%info(trim(msg)) ! Get whether to correct mass flux for humidity (convert total to dry) - ! ----------------------------------------------------------------- - call ESMF_ConfigGetAttribute( & - CF, & - value=correct_mass_flux_for_humidity, & - label='CORRECT_MASS_FLUX_FOR_HUMIDITY:', & - Default=1, & - __RC__ ) + call ESMF_ConfigGetAttribute( CF, & + value=correct_mass_flux_for_humidity, & + label='CORRECT_MASS_FLUX_FOR_HUMIDITY:', & + Default=1, __RC__ ) if ( correct_mass_flux_for_humidity > 0 ) then msg='Configured to correct native mass flux (if using) for humidity' else @@ -798,8 +797,7 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) call calculate_ple( & PS=PS1_IMPORT, & PLE=DryPLE0_EXPORT, & - SPHU=SPHU1_IMPORT, & - topDownMet=adv_meteorology_humidity_is_top_down ) + SPHU=SPHU1_IMPORT ) DryPLE0_EXPORT = 100.0d0 * DryPLE0_EXPORT DryPLE0_EXPORT = DryPLE0_EXPORT(:,:,LM:0:-1) @@ -807,8 +805,7 @@ subroutine prepare_ple_exports(IMPORT, EXPORT, PLE, RC) call calculate_ple( & PS=PS2_IMPORT, & PLE=DryPLE1_EXPORT, & - SPHU=SPHU2_IMPORT, & - topDownMet=adv_meteorology_humidity_is_top_down ) + SPHU=SPHU2_IMPORT ) DryPLE1_EXPORT = 100.0d0 * DryPLE1_EXPORT DryPLE1_EXPORT = DryPLE1_EXPORT(:,:,LM:0:-1) @@ -893,7 +890,7 @@ subroutine prepare_sphu_export(IMPORT, EXPORT, RC) ! Set export as copy of import casted to real8 and set vertical index ! as top-down (level 1 corresponds to TOA) - if (adv_meteorology_humidity_is_top_down) then + if (met_humidity_is_top_down) then SPHU0_EXPORT = dble(SPHU1_IMPORT) else SPHU0_EXPORT(:,:,:) = dble(SPHU1_IMPORT(:,:,LM:1:-1)) @@ -1017,7 +1014,7 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) call MAPL_GetPointer(IMPORT, CY_IMPORT, 'CYC', RC=STATUS) _VERIFY(STATUS) - if (adv_meteorology_flux_is_top_down) then + if (met_mass_flux_is_top_down) then MFX_EXPORT = dble(MFX_IMPORT(:,:,:)) MFY_EXPORT = dble(MFY_IMPORT(:,:,:)) CX_EXPORT = dble(CX_IMPORT(:,:,:)) @@ -1053,7 +1050,7 @@ subroutine prepare_massflux_exports(IMPORT, EXPORT, PLE, dt, RC) _VERIFY(STATUS) ! Copy imports to local arrays so that vertical index is top down - if (adv_meteorology_flux_is_top_down) then + if (met_wind_is_top_down) then UC(:,:,:) = UA_IMPORT(:,:,:) VC(:,:,:) = VA_IMPORT(:,:,:) else @@ -1148,13 +1145,12 @@ end subroutine prepare_massflux_exports ! ! !INTERFACE: ! - subroutine calculate_ple(PS, PLE, SPHU, topDownMet ) + subroutine calculate_ple(PS, PLE, SPHU ) ! ! !INPUT PARAMETERS: ! real(r4), intent(in) :: PS(:,:) ! Surface pressure [hPa] real(r4), intent(in), OPTIONAL :: SPHU(:,:,:) ! Specific humidity [kg/kg] - logical, intent(in), OPTIONAL :: topDownMet ! True if meteorology level 1 is TOA ! ! !INPUT PARAMETERS: ! @@ -1247,7 +1243,7 @@ subroutine calculate_ple(PS, PLE, SPHU, topDownMet ) je = ubound(PS,2) LM = size (SPHU,3) - if ( topDownMet ) then + if ( met_humidity_is_top_down ) then do J=js,je do I=is,ie @@ -1256,7 +1252,7 @@ subroutine calculate_ple(PS, PLE, SPHU, topDownMet ) PSDry = AP(LM+1) ! Stack up dry delta-P to get surface dry pressure - ! Vertically flip humidity if using top-down meteorology (raw GMAO files) + ! Vertically flip humidity if SPHU import vertical direction is down do L=1,LM PEdge_Bot = AP(L ) + ( BP(L ) * dble(PS(I,J)) ) PEdge_Top = AP(L+1) + ( BP(L+1) * dble(PS(I,J)) ) From 3e927e5c311f43f4c8ca943ac3ff4f5f21ee3b4b Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 11 Dec 2025 16:28:53 -0500 Subject: [PATCH 086/102] GEOS-Chem update: Merge PR #3131 (Fix vertical flipping for C720) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: a3a795878 Merge PR #3131 (Fix vertical flipping of GEOS-FP C720 met fields) PR #3131 is the companion PR to geoschem/GCHP#529. These PRs fix a bug by splitting the single category for vertical direction of imports into 4 categories (mass flux, wind, humidity, and everything else), which is needed for GCHP C720. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index 34042ced5..a3a795878 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit 34042ced58cc407896ee29056346af428f0545b9 +Subproject commit a3a7958789be9c66f13365991216c5b052828b8e From eb66a426f7b83b883fe3d978760f067fe1e5c846 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 15 Dec 2025 14:52:50 -0500 Subject: [PATCH 087/102] GEOS-Chem & HEMCO updates: Merge PR #2946 & PR #336 (7 dust bins ) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: d65b73ff5 Merge PR #2946 (Add 7 dust bins in GEOS-Chem) f4715d0 Merge PR #336 (Add 7 dust bins in HEMCO) GEOS-Chem PR #2946 and HEMCO PR #336 add the DustL23M extension from @1Dandan, and replace DST{1..4} species with DSTbin{1..7}. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index 43ad1958b..f4715d013 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit 43ad1958b490b9e233c7f222891d9966d8227f1f +Subproject commit f4715d0138fe1c48cbb914cfe742fc471aed40e4 diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index a3a795878..d65b73ff5 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit a3a7958789be9c66f13365991216c5b052828b8e +Subproject commit d65b73ff57871751ec97a764be0a06fdb1fa1587 From f4855278622bb94aeea083c4165be2c74b3db81e Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 15 Dec 2025 16:59:49 -0500 Subject: [PATCH 088/102] geos-chem-shared-docs update to f8fe324 (StateMetLevEdge warning box) docs/source/geos-chem-shared-docs - Submod update to f8fe324 (Warn that LevelEdgeDiags is renamed to StateMetLevEdge) Signed-off-by: Bob Yantosca cd --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index d857e2747..f8fe32426 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit d857e27470c3a48a5f4ae945b037d2da654a798b +Subproject commit f8fe32426c5e2bee7ec93079a813d56f9bc1a728 From 303633b2d16ccea05ada657c47ca68ede4d0f664 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 19 Dec 2025 16:25:28 -0500 Subject: [PATCH 089/102] geos-chem-shared-docs update to 03078d4 (PM2.5, PM10 in older versions) geos-chem-shared-docs - Submod update to 03078d4, add new documentation for PM2.5 and PM10 in versions prior to 14.7.0 Signed-off-by: Bob Yantosca --- docs/source/geos-chem-shared-docs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index f8fe32426..03078d470 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit f8fe32426c5e2bee7ec93079a813d56f9bc1a728 +Subproject commit 03078d47075177a7c2684664a6afe15024272234 From 69d54ede6ac3e0f9a60d60ed3bbb5dba908e702b Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 15 Jan 2026 00:38:51 -0600 Subject: [PATCH 090/102] initial commit for gchp doc --- .DS_Store | Bin 6148 -> 6148 bytes docs/.DS_Store | Bin 6148 -> 6148 bytes docs/source/.DS_Store | Bin 6148 -> 8196 bytes .../setting-up-aws-parallelcluster.rst | 14 +++++++++++--- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.DS_Store b/.DS_Store index 2e3b87afd9e99f3e8e845bcd6617af1bacb77ec2..ec5c55e613b726a1bf2a0ae8306e73a92bafdac9 100644 GIT binary patch delta 20 bcmZoMXffDunU&q#Ku5vM&}8#1RxKd_MS%ts delta 20 bcmZoMXffDunU&qdLPx>S(tPtRRxKd_Mb`!& diff --git a/docs/.DS_Store b/docs/.DS_Store index fd6c6ed4ffb5234dce62fbb8b01115ad2f998ec0..0f17d521107bbfbe74ce76c45c4ac94e343e2a44 100644 GIT binary patch delta 157 zcmZoMXfc=|#>B!ku~2NHo+2ar#(>?7iytsEF|tqQVM_LvWhi1uWk_U5VTflaVaNco zB)qu~2NHo+2aL#(>?7jBJy6Sdu57WckTqXlkaTU}$K(`4p=y)5eA< irp@de{2V~_n*}+(Gf(ChapYhC0!9V~mdz0&YnTCI#S@PJ diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store index 45a041fede1aa4365332828683db87fe6362e954..56312b1075f764819d689cf90ac277caca5f766e 100644 GIT binary patch delta 340 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$iFdQH}hr%jz7$c**Q2SHn1@A zPv&7+IXRm}d-4I+Ms{-p9R)K(lgS=z_8>8yvf!e;ocz3Wkg=OLvHW7JFDOa!DJ?E3 z0*bgZ1T$1J6f=}Cq%!0(=re>diRnI#33rHlHCGsy7d)3#8wjArr{*0E#AodCow#bO4Z<0#*!CQVe930u4?E z88UeWs|E+qeSRSKfjA(%c@0}M`_. -These images contain pre-built GCHP source code and the tools for creating a GCHP run directory. +We offer up-to-date Amazon Machine Images (AMIs) with GCHP's built dependencies. See the available AMIs below: + +========================= ============ =================== =================== +AMI ID OS architecture pcluster version +========================= ============ =================== =================== +ami-061ca4ddb4e1ebd63 alinux2023 x86_64 3.13.0 +========================= ============ =================== =================== + + +The images contain pre-built tools for creating a GCHP run directory and compiling GCHP. This page has instructions on using the AMIs to create your own ParallelCluster. You can also choose to set up AWS ParallelCluster for running GCHP simulations yourself, and the other GCHP documentation like :ref:`Build GCHP's dependencies `, :ref:`downloading_gchp`, :ref:`building_gchp`, :ref:`downloading_input_data`, and :ref:`running_gchp` is appropriate for using GCHP on AWS ParallelCluster. @@ -29,7 +37,7 @@ The workflow for getting started with GCHP simulations using AWS ParallelCluster #. Running GCHP on ParallelCluster (:ref:`described on this page `) -These instructions were written using AWS ParallelCluster 3.7.0. +These instructions were written using AWS ParallelCluster 3.13.0. .. _create_fsx_for_lustre: From e8b4e1538e889d04d9e279787007e7189846360e Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Wed, 21 Jan 2026 14:06:04 -0500 Subject: [PATCH 091/102] HEMCO update: Merge PR #349 (Sum Met_DELPDRY when vertically regridding) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: 16b499b Merge PR #349 (Now sum DELPDRY when regridding from 72 -> 47 layers) PR #349 adds a fix so that the Met_DELPDRY restart file variable is summed in the vertical instead of averaged when regridding from 72 levels to 47 levels. This fixes an issue first raised by @ltmurray in https://github.com/geoschem/geos-chem/issues/3170. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index f4715d013..16b499b6f 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit f4715d0138fe1c48cbb914cfe742fc471aed40e4 +Subproject commit 16b499b6fc46a1d6f4b3ab8a80ce876fc848d005 From 5647ec00a3ed54b09bc0bcf3b3c675b0bb38514a Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:39:22 -0600 Subject: [PATCH 092/102] update aws-parallelcluster --- docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst | 1 - docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst | 47 ---------- .../RUN-GUIDE-AWS-2025/Set-up-pcluster.rst | 51 ----------- .../setting-up-aws-parallelcluster.rst | 87 +++++++++++-------- 4 files changed, 51 insertions(+), 135 deletions(-) delete mode 100644 docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst delete mode 100644 docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst delete mode 100644 docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst diff --git a/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst b/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst deleted file mode 100644 index 518290fe6..000000000 --- a/docs/source/RUN-GUIDE-AWS-2025/Create-fsx.rst +++ /dev/null @@ -1 +0,0 @@ -.. _create-fsx: diff --git a/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst b/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst deleted file mode 100644 index 19b2511d8..000000000 --- a/docs/source/RUN-GUIDE-AWS-2025/Run-gchp.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. _gchp-2025: - -######################################## -Running GCHP on AWS ParallelCluster 2025 -######################################## -This page outlines the high-level steps required to deploy an AWS ParallelCluster, prepare the environment, and execute a GCHP simulation. Each steps links to a detailed guide for execution. - -============= -Prerequisites -============= -Before you start, ensure you have the following ready on your local machine: -1. An AWS account with administrative access. Please ask your administrator for access (needed for creating pcluster, FSx, etc) -2. Python version>=3 installed -3. AWS CLI(Command-Line Interface) installed and configured. Refer to `Installing AWS CLI `_ for more details. -4. :ref:`AWS ParallelCluster CLI ` installed. - -==================================== -Cluster Configuration and Deployment -==================================== -On your local machine, define and launch pcluster on AWS. -1. :ref:`Create an AWS FSx for Lustre file system `: Fast, parallel, mounted storage in pcluster for input data. -1. Create Configuration File: Define your cluster settings (VPC, subnets, FSx for Lustre storage, instance types, and Slurm queues) in a gchp-cluster.yaml file. -2. Deploy Cluster: Use the configuration file to launch the entire stack. - -======================= -Environment Preparation -======================= - -SSH into the pcluster head node first. - -..code-block:: console - - $ ssh -i /path/to/.pem/pem ec2-user@public-IPv4 - -We need to install the required software dependencies and download GCHP files. -1. Install dependencies: Install required libraries on the head node. -2. Download GCHP Code: Place the GCHP source code into the shared file system. -3. Download External Data: Download necessary input data and configure symbolic links. - -=========================== -Model Setup & Job Execution -=========================== - -Set up the specific run instance and compile the executable. -1. Model Setup: Create run directory, edit configuration files, and compile GCHP. -2. Use slurm to submit job: write a slurm script to define job parameters and use mpi to execute. -3. Monitor Output: Set checkpoint files, check job status, and clean up. \ No newline at end of file diff --git a/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst b/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst deleted file mode 100644 index baa8cbd32..000000000 --- a/docs/source/RUN-GUIDE-AWS-2025/Set-up-pcluster.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. _set_up_pcluster: - -###################### -Set up ParallelCluster -###################### - -AWS ParallelCluster provides a scalable HPC environment enabling users to run across multiple cores and manage scheduling. It suits GCHP to execute large-scale simulations effectively. -====================================== -Installing the AWS ParallelCluster CLI -====================================== - -The AWS ParallelCluster CLI is a Python package and needs to be installed using pip: - -.. code-block:: console - $ pip install --upgrade aws-parallelcluster - -Verify that the CLI is working and check the version: - -.. code-block:: console - $ pcluster version - -.. note:: - It is recommended to use the latest stable version of the ParallelCluster CLI (currently 3.14.0) as it uses a simpler YAML configuration file. - If you are using a custom AMI, make sure you install the matching version. Check :ref:`the AMI list ` in advance. - -############### -Create Key Pair -############### - -A key pair is needed as your secure identity credential to access your cluster's head node. You can create the key pair using the AWS Management Console or the AWS CLI: - -.. code-block:: console - $ aws ec2 create-key-pair --key-name your-ec2-keypair-name --query 'KeyMaterial' --output text > your-keypair-name.pem - -Replace Key-name, your-keypair-name with your desired names. - -Store your :code:`.pem` key in a secure location. It is only accessible at creation and cannot be recovered later. If you lose the private key, you will need to create a new key pair. Set strict permission to your keypair -.. code-block:: console - chmod 400 your-keypair-name.pem - -########################### -Create GCHP ParallelCluster -########################### - -Use :code:`pcluster` command to perform actions including creating a cluster, temporarily pausing it, or destroying it. - -First, create a cluster configuration file by running :code:`pcluster configure` command. - - - - diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index 219d5283f..eb1c90946 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -5,13 +5,13 @@ Set up AWS ParallelCluster .. important:: - AWS ParallelCluster and FSx for Lustre costs hundreds or thousands of dollars per month to use. - See `FSx for Lustre Pricing `_ and + AWS ParallelCluster and FSx for Lustre costs hundreds or thousands of dollars per month. + Please review `FSx for Lustre Pricing `_ and `EC2 Pricing `_ for details. -AWS ParallelCluster is a service that lets you create your own HPC cluster. Using GCHP on AWS ParallelCluster is similar to using GCHP on any other HPC. -We offer up-to-date Amazon Machine Images (AMIs) with GCHP's built dependencies. See the available AMIs below: +AWS ParallelCluster is a service that allows you to deploy and manage your own HPC cluster in the cloud. Running GCHP on AWS ParallelCluster is similar to using GCHP on any other HPC. +We offer up-to-date Amazon Machine Images (AMIs) with GCHP's built dependencies. The available AMIs are listed below: ========================= ============ =================== =================== AMI ID OS architecture pcluster version @@ -20,24 +20,24 @@ ami-061ca4ddb4e1ebd63 alinux2023 x86_64 3.13.0 ========================= ============ =================== =================== -The images contain pre-built tools for creating a GCHP run directory and compiling GCHP. +The images contain pre-built tools for creating a GCHP run directory and compiling the model. This page has instructions on using the AMIs to create your own ParallelCluster. -You can also choose to set up AWS ParallelCluster for running GCHP simulations yourself, and the other GCHP documentation like :ref:`Build GCHP's dependencies `, :ref:`downloading_gchp`, :ref:`building_gchp`, :ref:`downloading_input_data`, and :ref:`running_gchp` is appropriate for using GCHP on AWS ParallelCluster. +You may also choose to set up AWS ParallelCluster manually, and the other GCHP documentation like :ref:`Build GCHP's dependencies `, :ref:`downloading_gchp`, :ref:`building_gchp`, :ref:`downloading_input_data`, and :ref:`running_gchp` is applicable for using GCHP on AWS ParallelCluster. -The workflow for getting started with GCHP simulations using AWS ParallelCluster based on our public AMIs is +**Workflow for getting started with GCHP simulations on AWS ParallelCluster using our public AMIs:** #. Create an FSx for Lustre file system for input data (:ref:`described on this page `) -#. Configure AWS CLI (:ref:`described on this page `) -#. Configure AWS ParallelCluster (:ref:`described on this page `) -#. Create AWS ParallelCluster with GCHP public AMIs (:ref:`described on this page `) +#. Configure AWS CLI (:ref:`described here `) +#. Configure AWS ParallelCluster (:ref:`described here `) +#. Create AWS ParallelCluster with GCHP public AMIs (:ref:`described here `) #. Follow the normal GCHP User Guide a. :ref:`creating_a_run_directory` #. :ref:`downloading_input_data` -#. Running GCHP on ParallelCluster (:ref:`described on this page `) +#. Running GCHP on ParallelCluster (:ref:`described here `) -These instructions were written using AWS ParallelCluster 3.13.0. +These instructions were tested using AWS ParallelCluster 3.13.0. .. _create_fsx_for_lustre: @@ -46,13 +46,13 @@ These instructions were written using AWS ParallelCluster 3.13.0. Start by creating an FSx for Lustre file system. This is persistent storage that will be mounted to your AWS ParallelCluster cluster. -This file system will be used for storing GEOS-Chem input data and for housing your GEOS-Chem run directories. +This file system will be used for storing GEOS-Chem input data as well as housing your GEOS-Chem run directories. Refer to the official `FSx for Lustre Instructions `_ for instructions on creating the file system. Only Step 1, *Create your Amazon FSx for Lustre file system*, is necessary. Step 2, *Install the Lustre client*, and subsequent steps have instructions for mounting your file system to EC2 instances, but AWS ParallelCluster automates this for us. -In subsequent steps you will need the following information about your FSx for Lustre file system: +Record the following details about your new file system for later steps: * its ID (:literal:`fs-XXXXXXXXXXXXXXXXX`) * its subnet (:literal:`subnet-YYYYYYYYYYYYYYYYY`) @@ -65,7 +65,7 @@ Once you have created the file system, proceed with :ref:`aws_cli_setup`. 2. AWS CLI Installation and First-Time Setup -------------------------------------------- -Next you need to make sure you have the AWS CLI installed and configured. +Ensure you have the AWS CLI installed and configured. The AWS CLI is a terminal command, :literal:`aws`, for working with AWS services. If you have already installed and configured the AWS CLI previously, continue to :ref:`creating_your_pcluster`. @@ -84,20 +84,36 @@ For instructions on :literal:`aws configure`, refer to the `Official AWS Instruc ---------------------------------- .. note:: - You should also refer to the offical AWS documentation on `Configuring AWS ParallelCluster `_. + We recommend referring to the official AWS documentation on `Configuring AWS ParallelCluster `_. Those instructions will have the latest information on using AWS ParallelCluster. The instructions on this page are meant to supplement the official instructions, and point out the important parts of the configuration for use with GCHP. -Next, install `AWS ParallelCluster `_ with :literal:`pip`. This requires Python 3. +**Step 3a: Create a Key Pair** +Make sure you already have a key pair before moving on. +A key pair is needed as your secure identity credential to access your cluster's head node. +You can create the key pair using the AWS Management Console or the AWS CLI: + +.. code-block:: console + + $ aws ec2 create-key-pair --key-name --query 'KeyMaterial' --output text > .pem + +If you lose the private key, you will need to create a new key pair. Set strict permissions for your keypair: + +.. code-block:: console + + chmod 400 .pem + +**Step 3b Install `AWS ParallelCluster** +Install `AWS ParallelCluster `_ using :literal:`pip` (requires Python 3): .. code-block:: console $ pip install aws-parallelcluster -Now you should have the :literal:`pcluster` command. -You will use this command to performs actions like: creating a cluster, shutting your cluster down (temporarily), destroying a cluster, etc. +You can use the :literal:`pcluster` command to performs actions like: creating a cluster, shutting your cluster down (temporarily), destroying a cluster, etc. -Create a cluster config file by running the :command:`pcluster configure` command: +**Step 3c: Configure Your Cluster** +Generate a configuration file: .. code-block:: console @@ -105,31 +121,29 @@ Create a cluster config file by running the :command:`pcluster configure` comman For instructions on :literal:`pcluster configure`, refer to the official instructions `Configuring AWS ParallelCluster `_. -The following settings are recommended: +When prompted, we recommend the following settings: -* Scheduler: slurm -* Operating System: alinux2 -* Head node instance type: c5n.large -* Number of queues: 1 -* Compute instance type: c5n.18xlarge -* Maximum instance count: Your choice. - This is the maximum number execution nodes that can run concurrently. +* **Scheduler:** slurm +* **Operating System:** alinux2023 +* **Head node instance type:** c5n.large +* **Number of queues:** 1 +* **Compute instance type:** c5n.18xlarge +* **Maximum instance count:** [Your Choice] (This sets the limit for concurrent execution nodes). Execution nodes automatically spinup and shutdown according when there are jobs in your queue. +**Step 3d: Customize Configuration** Now you should have a file name :file:`cluster-config.yaml`. This is the configuration file with setting for a cluster. -Before starting your cluster with the :command:`pcluster create-cluster` command, you can modify :file:`cluster-config.yaml` to create cluster based on our AMIs. We provide the available AMI ID through `AMI list `_. - -You also need to modify :file:`cluster-config.yaml` so that your FSx for Lustre file system is mounted to your cluster. -Use the following :file:`cluster-config.yaml` as a template for these changes. +Modify the generated :file:`cluster-config.yaml` to use the GCHP AMI and mount your FSx for Lustre file system. +Use the template below, ensuring you replace the placeholder values (e.g., `subnet-YYYY...`) with your specific IDs from Step 1. .. code-block:: yaml Region: us-east-1 # [replace with] the region with your FSx for Lustre file system Image: - Os: alinux2 - CustomAmi: ami-AAAAAAAAAAAAAAAAA # [replace with] the AMI ID you want to use + Os: alinux2023 + CustomAmi: ami-061ca4ddb4e1ebd63 # [replace with] the AMI ID you want to use HeadNode: InstanceType: c5n.large # smallest c5n node to minimize costs when head-node is up Networking: @@ -138,7 +152,7 @@ Use the following :file:`cluster-config.yaml` as a template for these changes. - sg-ZZZZZZZZZZZZZZZZZ # [replace with] the security group with inbound rules for your FSx for Lustre file system LocalStorage: RootVolume: - VolumeType: io2 + VolumeType: gp3 Ssh: KeyName: AAAAAAAAAA # [replace with] the name of your ssh key name for AWS CLI SharedStorage: @@ -169,8 +183,9 @@ Use the following :file:`cluster-config.yaml` as a template for these changes. ComputeSettings: LocalStorage: RootVolume: - VolumeType: io2 + VolumeType: gp3 +**Step 3e: Create the Cluster** When you are ready, run the :command:`pcluster create-cluster` command. .. code-block:: console From 7f44b772c98ab1b60061969e0feadb8fd3024f03 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:50:10 -0600 Subject: [PATCH 093/102] Update setting-up-aws-parallelcluster.rst --- .../supplement/setting-up-aws-parallelcluster.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index eb1c90946..64c8410ac 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -89,6 +89,7 @@ For instructions on :literal:`aws configure`, refer to the `Official AWS Instruc The instructions on this page are meant to supplement the official instructions, and point out the important parts of the configuration for use with GCHP. **Step 3a: Create a Key Pair** + Make sure you already have a key pair before moving on. A key pair is needed as your secure identity credential to access your cluster's head node. You can create the key pair using the AWS Management Console or the AWS CLI: @@ -104,15 +105,18 @@ If you lose the private key, you will need to create a new key pair. Set strict chmod 400 .pem **Step 3b Install `AWS ParallelCluster** -Install `AWS ParallelCluster `_ using :literal:`pip` (requires Python 3): + +Install `AWS ParallelCluster `_ using :literal:`pip` (requires Python 3). +If you are using an AMI, make sure the parallelcluster version matches your AMI. .. code-block:: console - $ pip install aws-parallelcluster + $ pip install "aws-parallelcluster==3.13.0" You can use the :literal:`pcluster` command to performs actions like: creating a cluster, shutting your cluster down (temporarily), destroying a cluster, etc. **Step 3c: Configure Your Cluster** + Generate a configuration file: .. code-block:: console @@ -132,6 +136,7 @@ When prompted, we recommend the following settings: Execution nodes automatically spinup and shutdown according when there are jobs in your queue. **Step 3d: Customize Configuration** + Now you should have a file name :file:`cluster-config.yaml`. This is the configuration file with setting for a cluster. @@ -186,6 +191,7 @@ Use the template below, ensuring you replace the placeholder values (e.g., `subn VolumeType: gp3 **Step 3e: Create the Cluster** + When you are ready, run the :command:`pcluster create-cluster` command. .. code-block:: console From 6ca5b98d7ca42378b5069fe7bd17ba2d50e58ba1 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 15:18:20 -0600 Subject: [PATCH 094/102] a typo --- docs/source/.DS_Store | Bin 8196 -> 6148 bytes .../setting-up-aws-parallelcluster.rst | 46 +++++++++--------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store index 56312b1075f764819d689cf90ac277caca5f766e..ae60ee2fd4a316e83114a1667c192f3ff5fa0794 100644 GIT binary patch delta 191 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jGxXU^g=(&t@Kha;C|QqGpqs zMTL2i%8Lt{kLIhbK{JkK0v0O5Biy#N3J delta 586 zcma)4K}!Nb7=7z*?SO(A5gzScsZo@tvJw+YC9#g-uA;)`mhKjINCp3Z3|+hQ3&cy% zpXpz83F__U!Ar0M-+XW0eDBSC!;Dkoqc{NN*sZ4l4+@5tSHhF~^~v^z5}lSm)LBA& zt8cmxlcAS0k!& z-9Xo8`>g1bwef@&ag#e`_ and `EC2 Pricing `_ for details. -AWS ParallelCluster is a service that allows you to deploy and manage your own HPC cluster in the cloud. Running GCHP on AWS ParallelCluster is similar to using GCHP on any other HPC. +AWS ParallelCluster is a service that allows you to deploy and manage your own HPC cluster in the cloud. Running GCHP on AWS ParallelCluster is similar to using GCHP on any other HPC. We offer up-to-date Amazon Machine Images (AMIs) with GCHP's built dependencies. The available AMIs are listed below: ========================= ============ =================== =================== @@ -21,7 +21,7 @@ ami-061ca4ddb4e1ebd63 alinux2023 x86_64 3.13.0 The images contain pre-built tools for creating a GCHP run directory and compiling the model. -This page has instructions on using the AMIs to create your own ParallelCluster. +This page has instructions on using the AMIs to create your own ParallelCluster. You may also choose to set up AWS ParallelCluster manually, and the other GCHP documentation like :ref:`Build GCHP's dependencies `, :ref:`downloading_gchp`, :ref:`building_gchp`, :ref:`downloading_input_data`, and :ref:`running_gchp` is applicable for using GCHP on AWS ParallelCluster. **Workflow for getting started with GCHP simulations on AWS ParallelCluster using our public AMIs:** @@ -34,22 +34,22 @@ You may also choose to set up AWS ParallelCluster manually, and the other GCHP d a. :ref:`creating_a_run_directory` #. :ref:`downloading_input_data` - + #. Running GCHP on ParallelCluster (:ref:`described here `) -These instructions were tested using AWS ParallelCluster 3.13.0. +These instructions were tested using AWS ParallelCluster 3.13.0. .. _create_fsx_for_lustre: 1. Create an FSx for Lustre file system --------------------------------------- -Start by creating an FSx for Lustre file system. +Start by creating an FSx for Lustre file system. This is persistent storage that will be mounted to your AWS ParallelCluster cluster. This file system will be used for storing GEOS-Chem input data as well as housing your GEOS-Chem run directories. Refer to the official `FSx for Lustre Instructions `_ for instructions on creating the file system. -Only Step 1, *Create your Amazon FSx for Lustre file system*, is necessary. +Only Step 1, *Create your Amazon FSx for Lustre file system*, is necessary. Step 2, *Install the Lustre client*, and subsequent steps have instructions for mounting your file system to EC2 instances, but AWS ParallelCluster automates this for us. Record the following details about your new file system for later steps: @@ -69,7 +69,7 @@ Ensure you have the AWS CLI installed and configured. The AWS CLI is a terminal command, :literal:`aws`, for working with AWS services. If you have already installed and configured the AWS CLI previously, continue to :ref:`creating_your_pcluster`. -Install the :literal:`aws` command: `Official AWS CLI Install Instructions `_. +Install the :literal:`aws` command: `Official AWS CLI Install Instructions `_. Once you have installed the :literal:`aws` command, you need to configure it with the credentials for your AWS account: .. code-block:: console @@ -80,7 +80,7 @@ For instructions on :literal:`aws configure`, refer to the `Official AWS Instruc .. _creating_your_pcluster: -3. Create your AWS ParallelCluster +3. Create your AWS ParallelCluster ---------------------------------- .. note:: @@ -91,7 +91,7 @@ For instructions on :literal:`aws configure`, refer to the `Official AWS Instruc **Step 3a: Create a Key Pair** Make sure you already have a key pair before moving on. -A key pair is needed as your secure identity credential to access your cluster's head node. +A key pair is needed as your secure identity credential to access your cluster's head node. You can create the key pair using the AWS Management Console or the AWS CLI: .. code-block:: console @@ -100,14 +100,14 @@ You can create the key pair using the AWS Management Console or the AWS CLI: If you lose the private key, you will need to create a new key pair. Set strict permissions for your keypair: -.. code-block:: console +.. code-block:: console chmod 400 .pem -**Step 3b Install `AWS ParallelCluster** +**Step 3b Install AWS ParallelCluster** Install `AWS ParallelCluster `_ using :literal:`pip` (requires Python 3). -If you are using an AMI, make sure the parallelcluster version matches your AMI. +If you are using an AMI, make sure the parallelcluster version matches your AMI. .. code-block:: console @@ -137,10 +137,10 @@ When prompted, we recommend the following settings: **Step 3d: Customize Configuration** -Now you should have a file name :file:`cluster-config.yaml`. -This is the configuration file with setting for a cluster. +Now you should have a file name :file:`cluster-config.yaml`. +This is the configuration file with setting for a cluster. -Modify the generated :file:`cluster-config.yaml` to use the GCHP AMI and mount your FSx for Lustre file system. +Modify the generated :file:`cluster-config.yaml` to use the GCHP AMI and mount your FSx for Lustre file system. Use the template below, ensuring you replace the placeholder values (e.g., `subnet-YYYY...`) with your specific IDs from Step 1. .. code-block:: yaml @@ -198,13 +198,13 @@ When you are ready, run the :command:`pcluster create-cluster` command. $ pcluster create-cluster --cluster-name pcluster --cluster-configuration cluster-config.yaml -It may take several minutes up to an hour for your cluster's status to change to :literal:`CREATE_COMPLETE`. +It may take several minutes up to an hour for your cluster's status to change to :literal:`CREATE_COMPLETE`. You can check the status of you cluster with the following command. .. code-block:: console $ pcluster describe-cluster --cluster-name pcluster - + Once your cluster's status is :literal:`CREATE_COMPLETE`, run the :command:`pcluster ssh` command to ssh into it. .. code-block:: console @@ -212,7 +212,7 @@ Once your cluster's status is :literal:`CREATE_COMPLETE`, run the :command:`pclu $ pcluster ssh --cluster-name pcluster -i ~/path/to/keyfile.pem -At this point, your cluster is set up and you can use it like any other HPC. +At this point, your cluster is set up and you can use it like any other HPC. Now you can create a run directory by running the :literal:`createRunDir.sh` command. Your next steps will be following the normal instructions found in the User Guide. .. _running_gchp_on_parallelcluster: @@ -220,8 +220,8 @@ Now you can create a run directory by running the :literal:`createRunDir.sh` com 4. Running GCHP on ParallelCluster -------------------------------------------- -AWS ParallelCluster supports Slurm and AWS Batch job schedulers. Your cluster is set to use Slurm scheduler according to the configuration file. -It might require the root permission to run Slurm commands or restart Slurm. -Before you submit your job, you can start a shell as superuser by running :literal:`sudo -s`. +AWS ParallelCluster supports Slurm and AWS Batch job schedulers. Your cluster is set to use Slurm scheduler according to the configuration file. +It might require the root permission to run Slurm commands or restart Slurm. +Before you submit your job, you can start a shell as superuser by running :literal:`sudo -s`. -You can follow :ref:`running_gchp` to run GCHP with Slurm scheduler. \ No newline at end of file +You can follow :ref:`running_gchp` to run GCHP with Slurm scheduler. From bbb4652d380d69023a927374bcc7eea2a84087f3 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 15:49:55 -0600 Subject: [PATCH 095/102] typo --- docs/source/.DS_Store | Bin 6148 -> 6148 bytes .../setting-up-aws-parallelcluster.rst | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/.DS_Store b/docs/source/.DS_Store index ae60ee2fd4a316e83114a1667c192f3ff5fa0794..06bdd076bf73759bf6409fcd2a40636c5981edb3 100644 GIT binary patch delta 73 zcmZoMXffDuosDtlH?T=eUd|r3nVsV=KLAva7Rdkr delta 67 zcmZoMXffDuosDt(;)D diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index dff8a626b..02f045498 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -26,7 +26,7 @@ You may also choose to set up AWS ParallelCluster manually, and the other GCHP d **Workflow for getting started with GCHP simulations on AWS ParallelCluster using our public AMIs:** -#. Create an FSx for Lustre file system for input data (:ref:`described on this page `) +#. Create an FSx for Lustre file system for input data (:ref:`described here `) #. Configure AWS CLI (:ref:`described here `) #. Configure AWS ParallelCluster (:ref:`described here `) #. Create AWS ParallelCluster with GCHP public AMIs (:ref:`described here `) @@ -102,9 +102,9 @@ If you lose the private key, you will need to create a new key pair. Set strict .. code-block:: console - chmod 400 .pem + $ chmod 400 .pem -**Step 3b Install AWS ParallelCluster** +**Step 3b: Install AWS ParallelCluster** Install `AWS ParallelCluster `_ using :literal:`pip` (requires Python 3). If you are using an AMI, make sure the parallelcluster version matches your AMI. From c6cd3ef2249334c72ff22fcf7477f16e7a0edd5a Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:21:27 -0600 Subject: [PATCH 096/102] Update setting-up-aws-parallelcluster.rst --- .../supplement/setting-up-aws-parallelcluster.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index 02f045498..190c463d4 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -20,7 +20,19 @@ ami-061ca4ddb4e1ebd63 alinux2023 x86_64 3.13.0 ========================= ============ =================== =================== -The images contain pre-built tools for creating a GCHP run directory and compiling the model. +The image contains pre-built tools for creating a GCHP run directory and compiling the model. + +.. important:: + + **Spack Environment Required** + + This AMI uses Spack to manage software dependencies. You must activate the GCHP environment + before compiling or running the model: + + .. code-block:: console + + $ spack env activate gchp + This page has instructions on using the AMIs to create your own ParallelCluster. You may also choose to set up AWS ParallelCluster manually, and the other GCHP documentation like :ref:`Build GCHP's dependencies `, :ref:`downloading_gchp`, :ref:`building_gchp`, :ref:`downloading_input_data`, and :ref:`running_gchp` is applicable for using GCHP on AWS ParallelCluster. From 77dabc72d42b283c71d76636b3434af63b1f3eee Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:27:30 -0600 Subject: [PATCH 097/102] Update setting-up-aws-parallelcluster.rst --- docs/source/supplement/setting-up-aws-parallelcluster.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index 190c463d4..ba40d69b9 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -236,4 +236,6 @@ AWS ParallelCluster supports Slurm and AWS Batch job schedulers. Your cluster is It might require the root permission to run Slurm commands or restart Slurm. Before you submit your job, you can start a shell as superuser by running :literal:`sudo -s`. -You can follow :ref:`running_gchp` to run GCHP with Slurm scheduler. +You can follow :ref:`running_gchp` to run GCHP with Slurm scheduler. + +Sample run scripts can also be found at your **GCHP_source_dir/run/runScriptSamples/operational_examples/aws_pcluster**. \ No newline at end of file From b8840a6896b80ed48c3f8f4586887c3acdfe6988 Mon Sep 17 00:00:00 2001 From: yuyao-cyber <64072369+yuyao-cyber@users.noreply.github.com> Date: Thu, 22 Jan 2026 18:28:51 -0600 Subject: [PATCH 098/102] Update setting-up-aws-parallelcluster.rst --- docs/source/supplement/setting-up-aws-parallelcluster.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/supplement/setting-up-aws-parallelcluster.rst b/docs/source/supplement/setting-up-aws-parallelcluster.rst index ba40d69b9..376510904 100644 --- a/docs/source/supplement/setting-up-aws-parallelcluster.rst +++ b/docs/source/supplement/setting-up-aws-parallelcluster.rst @@ -238,4 +238,4 @@ Before you submit your job, you can start a shell as superuser by running :liter You can follow :ref:`running_gchp` to run GCHP with Slurm scheduler. -Sample run scripts can also be found at your **GCHP_source_dir/run/runScriptSamples/operational_examples/aws_pcluster**. \ No newline at end of file +Sample run scripts can also be found at your **/run/runScriptSamples/operational_examples/aws_pcluster**. \ No newline at end of file From aab52ee1abe91765afc928ae06d2eb58953b2729 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 30 Jan 2026 12:41:04 -0500 Subject: [PATCH 099/102] GEOS-Chem update: Merge PR #3187 (Fix typo in GCC rundir creation w/ GEOS-FP) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: f3ef58547 Merge PR #3187 (Fix typo in GCClassic rundir creation w/ GEOS-FP) In pull request #3131, the GEOS-FP met settings file geosfp.preprocessed_ll.txt was renamed to geosfp.nonadv_preprocessed_ll.txt. This was not updated in GCClassic/createRunDir.sh so when creating a GEOS-FP run directory for GCClassic the met settings were not properly set. For example, in geoschem_config.rc it still listed met_field: ${RUNDIR_MET}. Fixing the filename corrects this issue. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index d65b73ff5..f3ef58547 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit d65b73ff57871751ec97a764be0a06fdb1fa1587 +Subproject commit f3ef585474d0b1a8a27e76669ea5054ba8be4d4e From 9a3dff5025bd115463bd36d5e8378a81760b9496 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 30 Jan 2026 17:22:08 -0500 Subject: [PATCH 100/102] GEOS-Chem update: Merge PR #3147 (Update path to carbon sim rst files) This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: dafdefa50 Merge PR #3147 (Update sample carbon sim restart file) PR #3147 updates "run/GCClassic/download_data.yml" and "run/GCHP/createRunDir.sh" to point to the GEOSCHEM_RESTARTS/GC_14.7.0 folder. This is where updated carbon simulation restart files (generated from a 10-year benchmark) are stored. Signed-off-by: Bob Yantosca --- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index f3ef58547..dafdefa50 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit f3ef585474d0b1a8a27e76669ea5054ba8be4d4e +Subproject commit dafdefa50adb77f01cab2c5ab3052bb02b218d2d From c35c62fb67dfcc94f1e8e656d9ed8114771d7fd6 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 6 Feb 2026 10:40:54 -0500 Subject: [PATCH 101/102] Updated version numbers to 14.7.0 In anticipation of the GCHP 14.7.0 release, we have updated version numbers to 14.7.0 in these files: - CHANGELOG.md - CMakeLists.txt - docs/source/conf.py Signed-off-by: Bob Yantosca --- CHANGELOG.md | 2 +- CMakeLists.txt | 2 +- docs/source/conf.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bb11a161..e69b3a3ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ 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 +## [14.7.0] - 2026-02-06 ### 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index d1c436936..a50737756 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required (VERSION 3.24) project (gchp_ctm - VERSION 14.6.3 + VERSION 14.7.0 LANGUAGES Fortran CXX C ) diff --git a/docs/source/conf.py b/docs/source/conf.py index f7b4b015a..0a97088b5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,7 +23,7 @@ author = 'GEOS-Chem Support Team' # The full version, including alpha/beta/rc tags -release = '14.6.3' +release = '14.7.0' # -- General configuration --------------------------------------------------- From 8c57a8d568938d73fd7a8f3ff50408522b8bf61f Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Fri, 6 Feb 2026 15:00:17 -0500 Subject: [PATCH 102/102] Update submodules for GCHP 14.7.0 release src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO - Now points to the HEMCO 3.12.0 release src/GCHP_GridComp/GEOSChem_GridComp/geos-chem - Now points to the GEOS-Chem 14.7.0 release ESMA_cmake - Now points to commit 01bbf2f (Merge PR #9) geos-chem-shared-docs - Now points to commit 03078d4 CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca --- CHANGELOG.md | 4 ++++ ESMA_cmake | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO | 2 +- src/GCHP_GridComp/GEOSChem_GridComp/geos-chem | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e69b3a3ff..ee0b717ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Updated submodule ESMA_cmake for GNU Fortran compiler compatibility with CPUs returning processor description INTEL - Updated `geos-chem-shared-docs/editing_these_docs.rst` with instructions for using a Conda environment to build RTD doc - Updated the ESMF version used in ReadTheDocs installation instructions from 8.4.2 to 8.6.1 +- Updated GEOS-Chem submodule to version 14.7.0 +- Updated HEMCO submodule to version 3.12.0 +- Updated ESMA_cmake submodule to commit 01bbf2f (Merge PR #9) +- Updated geos-chem-shared-docs submodule to commit 03078d4 ### Fixed - Fixed security issues in GitHub Actions that caused the `lint-ci-workflows` action to fail diff --git a/ESMA_cmake b/ESMA_cmake index bd401dc62..01bbf2fca 160000 --- a/ESMA_cmake +++ b/ESMA_cmake @@ -1 +1 @@ -Subproject commit bd401dc6240fabe13510748fdf98de7c1cbbad4c +Subproject commit 01bbf2fcad996692ecbb744b394e0fe1ae4e3379 diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO index 16b499b6f..e23c43b89 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO +++ b/src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO @@ -1 +1 @@ -Subproject commit 16b499b6fc46a1d6f4b3ab8a80ce876fc848d005 +Subproject commit e23c43b89a754668d25744fa9827f8cfd7fa181f diff --git a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem index dafdefa50..df4592e84 160000 --- a/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem +++ b/src/GCHP_GridComp/GEOSChem_GridComp/geos-chem @@ -1 +1 @@ -Subproject commit dafdefa50adb77f01cab2c5ab3052bb02b218d2d +Subproject commit df4592e84561d3400950250e6fb57cd5b4bc90e7