Skip to content

Add GCHP ctmEnv simulation run directory option#2742

Draft
lizziel wants to merge 151 commits intomainfrom
feature/gchp_ctmenv_only_simulation
Draft

Add GCHP ctmEnv simulation run directory option#2742
lizziel wants to merge 151 commits intomainfrom
feature/gchp_ctmenv_only_simulation

Conversation

@lizziel
Copy link
Contributor

@lizziel lizziel commented Feb 21, 2025

Name and Institution (Required)

Name: Lizzie Lundgren
Institution: Harvard University

Describe the update

This update introduces a new GCHP simulation option called ctmEnv that does not run GEOS-Chem or advection. The GCHPctmEnv gridded component, which is at the same hierarchical ESMF level as GEOS-Chem and FV3, is the only child gridded component of GCHP_GridComp that is run. The purpose of this is to experiment with producing 12 km lat-lon wind exports from c720 mass flux imports using MAPL but it can also be used for other purposes, such as debugging or investigating GCHP's version of MAPL and imports such as meteorology. This simulation does not require a restart file and can be run at very high resolution in a very short amount of time and with fewer resources than required if GEOS-Chem is on.

The ctmEnv simulation option is enabled by building with -DMODEL_CTMENV=y. There is an accompanying update in the GEOS-Chem repository for the option to create a a run directory for the ctmEnv simulation.

Important notes:

  • All of GCHP is compiled with the exception of code within #ifndef MODEL_CTMENV blocks.
  • Dynamics is both compiled and initialized. This avoids code dependency issues.
  • The simulation could be extended in the future to optionally include dynamics with a simple tracer.
  • The simulation does not use restart files. This enables it to be extremely lightweight and fast when run at high resolutions.

This update will require concurrent merge of geoschem/GCHP#477.

Expected changes

This is a no diff update, but does include some minor tweaks to the run directory of all GCHP simulations. The README is no longer markdown and it now includes simulation-specific build instructions, e.g. to compile with -DMODEL_CTMENV for the ctmEnv simulation.

Reference(s)

None

Related Github Issue

@lizziel lizziel added category: Feature Request New feature or request topic: GCHP Only Related to items that only affect GCHP labels Feb 21, 2025
@lizziel lizziel self-assigned this Feb 21, 2025
@lizziel lizziel changed the title Add GCHP ctmEnv-only simulation option Add GCHP ctmEnv-only simulation run directory option Feb 21, 2025
@lizziel lizziel changed the title Add GCHP ctmEnv-only simulation run directory option Add GCHP ctmEnv simulation run directory option Feb 21, 2025
@yantosca yantosca added no-diff-to-benchmark This update will not change the results of fullchem benchmark simulations topic: Run Directories Related to run directory issues and run directory creation labels May 1, 2025
@lizziel lizziel force-pushed the feature/gchp_ctmenv_only_simulation branch from e831fad to 61aff9a Compare June 10, 2025 20:57
ganluoasrc and others added 21 commits June 11, 2025 00:28
Updates for Luo2023
Updates for Luo2023
Updates for Luo2023
run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.*
run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.*
- Replaced header comments directing users to the GC wiki with comments
  directing users to hemco.readthedocs.io
- For aerosol, carbon, fullchem:
  - Added FINNv25 entries
  - Removed FINN extension entries (this is now obsolete)

run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.*
run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.*
- Replaced header comments directing users to the GC wiki with comments
  directing users to hemco.readthedocs.io
- Added header comments instructing users on the proper categories
  to use for offline biomass burning vs. GFED biomass burning

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
CHANGELOG.md
- Added a note under "Fixed" that the TMB emissions entries have
  been restored in the HEMCO_Config.rc.fullchem template files for
  GCClassic and GCHP.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
replace SQRT(2.D0/3.D0) into ROOT_TWO_THIRDS
changed 0.006 to 0.006d0 and 0.013 to 0.013d0
numeric constants are followed by d0
Changed 2.749064E-4 to 2.749064D-4
Added comments describing KINC, WUP, TKICE, NUMCD, ICESF, and RADCD
Replaced log(State_Met%RADCD(I,J,L)*2d0) by log2R
run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon
- Changed "EmisOCS_BioBurn" -> "EmisOCS_BiomassBurn" for consistency
  with the corresponding diagnostic in GCClassic, and to match the
  HEMCO_Diagn.rc.carbon template.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/GCHP/HISTORY.rc.templates/HISTORY.rc.carbon
- Moved EmisOCS_Total to the top of the list of EmisOCS diagnostic
  entries.  This is necessary in order to make the single-species
  OCS simulation diagnostics be created.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This merge brings PR # (Add FINN v2.5 biomass burning as an optional
inventory #2900, by @yantosca on behalf of @eamarais) into the GEOS-Chem
14.7.0 development stream.

This PR 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 <yantosca@seas.harvard.edu>
Changed grid box width at the center to grid box width at the southern, northern, western, eastern edges
Calculate grid box widths by using longitudes and latitudes at edges
Replaced grid box widths at center with grid box widths at edges
Changed DXS(NX,NY), DXN(NX,NY), DYW(NX,NY), and DYE(NX,NY) to DXSN(NX,NY+1) and DYWE(NX+1,NY).
Calculate DXSN_M and DYWE_M.
Using DXSN and DYWE to calculate KINC
Optimized the calculation of DXSN and DYWE
1Dandan and others added 24 commits October 7, 2025 14:41
Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
…sims)

This merge brings PR #3066 (Toggle "read_restart_as_real8" from false
to true for fullchem benchmark simulations, by @yantosca) into the
GEOS-Chem 14.7.0 development stream.

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 <yantosca@seas.harvard.edu>
This merge brings PR # (Turn off PARANOx for GEOS-Chem Classic
0.25 x 0.3125 and 0.125 x 0.15625 grids, by @yantosca and @eamarais)
into the GEOS-Chem 14.7.0 development stream.

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 <yantosca@seas.harvard.edu>
This merge brings PR # (Fix for emission configurations for carbon
simulations #2893, by @1Dandan) into the GEOS-Chem 14.7.0 development
stream.

PR #2893 is the companion to HEMCO PR #330, which adds functionality
for the Integrated Methane Inversion (IMI) with GCHP.  Configuration
files have been updated accordingly.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
…y retrieve the run duration string

The Harvard example script gchp.submit_consecutive_jobs.sh was grepping
setCommonRunSettings.sh for the string "DURATION=" to retrieve the run
duration. At some point this string should have been changed to "Run_Duration="
to match what is now in setCommonRunSettings.sh. This fix will once more
print to screen the run duration when executing gchp.submit_consecutive_jobs.sh
instead of returning a blank string.

Signed-off-by: Melissa Sulprizio <mpayer@seas.harvard.edu>
…ed to crash

When enabling the Carbon collection in HISTORY.rc, GEOS-Chem crashes with
an out-of-bounds error in KPP/carbon/carbon_Funcs.F90. This can be tracked
to the uses of incorrect ind_ variable names -- ind_COfromCH4 should be
ind_PCOfromCH4 and ind_COfromNMVOC should be ind_PCOfromNMVOC to reflect
the species name change introduced in pull request #2800.

We now also turn on the Carbon collection in HISTORY.rc by default to
catch potential bugs like this during integration tests.

Signed-off-by: Melissa Sulprizio <mpayer@seas.harvard.edu>
This merge brings PR #3074 (Fix typos causing carbon simulations
with the Carbon collection enabled to crash #3074, by @msulprizio)
into the GEOS-Chem 14.7.0 development stream.

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 <yantosca@seas.harvard.edu>
This merge brings PR # (Fix typo in GCHP operational run script for
Harvard Cannon to properly retrieve the run duration string,
by @msulprizio) into the 14.7.0 development stream.

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 <yantosca@seas.harvard.edu>
The previous path worked only on the Harvard Cannon cluster.

Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
ObsPack/obspack_mod.F90
- In routine ObsPack_Read_Input:
  - Define local variables tsDyn and halfTsDyn for convenience
- In routine ObsPack_Sample
  - Added endOfDay, tsDyn, halfTsDyn, Interval, Tomorrow variables
  - Now include instantaneous ObsPack data in the sampling if:
    (a) We are within 1 model timestamp of the end of the model date
    (b) The data timestamp is within 1/2 model timestep of the end of
        the model date

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This merge brings PR # (Bug fix: Include instantaneous ObsPack data
lying within 1/2 model timestep of the end of the model date
in the sampling, by @yantosca) into the GEOS-Chem 14.7.0
development stream.

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 <yantosca@seas.harvard.edu>
This merge brings PR # (Fix LPJ wetland path in GCHP carbon ExtData.rc
to use HEMCO directory, by @lizziel) into the GEOS-Chem 14.7.0
development stream.

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 <yantosca@seas.harvard.edu>
GeosCore/carbon_gases_mod.F90
- Moved the diagnostic archival of State_Diag%OHconcAfterChem
  to within the IF ( id_CH4_adv > 0 .or. id_CO_adv > 0 ) block
  to prevent an out-of-bounds error for CO2 or OCS simulations,
  in which OH is not used

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This merge brings PR #3095 (Do not reference OHdiurnalFac in
carbon_gases_mod.F90 for carbon simulations where OH is not used,
by @yantosca) into the GEOS-Chem 14.7.0 development stream.

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 <yantosca@seas.harvard.edu>
Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
README can be ascii

Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
…match

The run script is only in the operational run scripts folder for Harvard
for primary use by GCST.

Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
@lizziel lizziel force-pushed the feature/gchp_ctmenv_only_simulation branch from c31d020 to 7db8745 Compare October 29, 2025 18:41
@lizziel
Copy link
Contributor Author

lizziel commented Oct 29, 2025

This is now rebased on dev/14.7.0.

…ctmEnv

Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
Signed-off-by: Lizzie Lundgren <elundgren@seas.harvard.edu>
@yantosca yantosca changed the base branch from dev/14.7.0 to main January 30, 2026 17:21
@yantosca
Copy link
Contributor

FYI @lizziel: I changed the base to main so that this PR won't get closed once we merge dev/14.7.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: Feature Request New feature or request no-diff-to-benchmark This update will not change the results of fullchem benchmark simulations topic: GCHP Only Related to items that only affect GCHP topic: Run Directories Related to run directory issues and run directory creation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants