Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge GEOS-Chem 14.4.3 into the 14.5.0 development branch #2425

Merged
merged 40 commits into from
Aug 15, 2024
Merged

Conversation

yantosca
Copy link
Contributor

Name and Institution (Required)

Name: Bob Yantosca
Institution: Harvard + GCST

Describe the update

This PR seeks to merge the updates from the 14.4.3 release into the 14.5.0 development branch.

Expected changes

This is a no-diff-to-benchmark PR (i.e. the concentrations in the fullchem restart files are identical w/r/t 14.4.2) But some diagnostic outputs may differ due to the updates contained in these PRs:

Reference(s)

N/A

Related Github Issue

N/A

Tagging @msulprizio @lizziel

msulprizio and others added 30 commits July 19, 2024 11:40
We now run a 2x2.5 ModelE2.1 (aka GCAP 2.0) full-chemistry simulation in
the GCClassic integration tests. Only one scenario (SSP2-4.5) is evaluated
here simply to ensure these future scenario simulations compile and run
for 1 hour successfully. I will defer to @ltmurray for guidance on whether
additional simulations are needed.

The GCAP 2.0 integration test is passing off of 14.4.1, confirming that the
fixes in #2342 should have resolved
the issues of GCAP 2.0 not working in 14.0.0 (as reported by Lee Murray at
IGC11).

Sample integration test output:

```
==============================================================================
GEOS-Chem Classic: Execution Test Results

GCClassic #c49fcec Submod updates: Merge GEOS-Chem PR #2353 and Cloud-J PR #19
GEOS-Chem #7e4001658 Merge PR #2369 (Fix several issues with satellite diagnostics)
HEMCO     #2192e0e HEMCO 3.9.1 release

Using 24 OpenMP threads
Number of execution tests: 29

Submitted as SLURM job: 40462513
==============================================================================

Execution tests:
------------------------------------------------------------------------------
gc_05x0625_NA_47L_merra2_CH4........................Execute Simulation....PASS
gc_05x0625_NA_47L_merra2_fullchem...................Execute Simulation....PASS
gc_2x25_ModelE2.1_fullchem..........................Execute Simulation....PASS
```

Signed-off-by: Melissa Sulprizio <[email protected]>
…ur to 20 minutes

To speed up integration tests, we now run the ModelE2.1 (GCAP 2.0) simulation
for 20 minutes instead of 1 hour since these simulations run at 2x2.5 resolution.

Signed-off-by: Melissa Sulprizio <[email protected]>
…RY.rc to GCClassic integration tests

In order to evaluate all diagnostic collections, we now include a simulation
with all collections activated in HISTORY.rc. This is a copy of the
gc_4x5_merra2_fullchem_benchmark simulation with the comment character
removed from all collection names at the top of HISTORY.rc.

Signed-off-by: Melissa Sulprizio <[email protected]>
test/shared/commonFunctionsForTests.sh
- Also apply the sed command to change "00000100 000000" to
  "00000000 002000" for the GCAP2 ModelE2.1 int tests.  This makes
  the frequency & duration consistent with the simulation length.

Signed-off-by: Bob Yantosca <[email protected]>
This merge brings PR #2394 (Add ModelE2.1 (GCAP 2.0) simulation to
GCClassic integration tests, by @msulprizio) into the GEOS-Chem
"no-diff-to-benchmark" development stream.

This PR adds a full-chem integration test with ModelE2.1 met fields
in order to test for issues with that meteorology.

Signed-off-by: Bob Yantosca <[email protected]>
run/GCClassic/HISTORY.rc.fullchem
- Added missing fields for the UVFlux collection (frequency,
  duration, mode, fields).

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
test/shared/commonFunctionsForTests.sh
- Update SED_HISTORY_RC_1 and SED_HISTORY_RC_N to use regex wildcard
  characters for certain digits
- Update logic so that we first test on the resolution name before
  changing frequency & duration values to 20 mins (for nested-grid
  tests) or 1-hr (for other tests)

run/GCClassic/HISTORY.rc.templates/HISTORY.rc.fullchem
- Update frequency and duration of the TOMAS collection from "010000"
  to "00000100 000000", to be consistent with other collections

Signed-off-by: Bob Yantosca <[email protected]>
test/shared/commonFunctionsForTests.sh
- Add "print_submodule_head_commits" function to print the commit
  hash & description at the head of each submodule

test/integration/GCClassic/integrationTestCreate.sh
test/integration/GCClassic/integrationTestCompile.sh
test/integration/GCClassic/integrationTestExecute.sh
test/integration/GCHP/integrationTestCreate.sh
test/integration/GCHP/integrationTestCompile.sh
test/integration/GCHP/integrationTestExecute.sh
- Now call print_submodule_head_commits instead of using inlined code

Signed-off-by: Bob Yantosca <[email protected]>
test/shared/commonFunctionsForTests.sh
- Remove "_GridComp" from the "FVdycoreCubed" submodule display name
  in function print_submodule_head_commits

test/integration/GCHP/integrationTestCompile.sh
test/integration/GCHP/integrationTestCreate.sh
test/integration/GCHP/integrationTestExecute.sh
- Now use an offset of 14 characters for print_submodule_head_commits

Signed-off-by: Bob Yantosca <[email protected]>
test/integration/GCHP/integrationTestCreate.sh
- Removed "exit 1" statement that was leftover from debugging.

Signed-off-by: Bob Yantosca <[email protected]>
.github/workflows/stale.yml
- Add brackets around the list for `exempt-issue-labels`.  Verified
  this syntax with the YAML linter yamllint.com.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
test/integration/GCHP/integrationTestCreate.sh
- Create a gchp_merra2_fullchem_alldiags by copying the
  gchp_merra2_fullchem_benchmark run directory and:
- Disable RRTMG, Tomas, and DynHeating collections, as these are
  not enabled for fullchem_benchmark
- Print the path of the gchp_merra2_fullchem_alldiags directory

test/integration/GCClassic/integrationTestCreate.sh
- Print the path of the gc_4x5_merra2_fullchem_alldiags directory
- Also disable the DynHeating collection (if present)

Signed-off-by: Bob Yantosca <[email protected]>
GeosCore/planeflight_mod.F90
- Replace calls to GEOS_CHEM_STOP (which stops the run upon error)
  with calls to GC_Error + RETURN (to pass the error back to the main
  program).

run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.*
- Send planeflight diagnostic "plane.log" output to OutputDir
- Now use dummy input file for ObsPack -- facilitates testing

test/integration/GCClassic/integrationTestCreate.sh
- Define bash variables to hold paths to configuration files
  (and unset them at the end of the script)
- Navigate into the alldiags run directory to simplify bash commands
- Copy the dummy planeflight and obspack input files to the run
  directory for the "alldiags" integration test
- Call "toggle_geoschem_config_option" to turn on the planeflight
  and obspack diagnostics

test/shared/alldiags/Planeflight.dat.20190701
- Dummy input file for the planeflight diagnostic used in the
  "alldiags" integration tests

test/shared/commonFunctionsForTests.sh
- Add comments to "print_submodule_head_commits" function
- Add new function "toggle_geoschem_config_option" to toggle the
  "activate" value in the planeflight and obspack diagnostic menus
  in geoschem_config.yml

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
run/GCClassic/geoschem_config.yml.templates/geoschem_config.yml.*
- Change "obspack_dummy_input_for_testing.20190701.nc"
  to "obspack_input_for_testing.20190701.nc" in all GEOS-Chem
  Classic geoschem_config.yml templates.  This will avoid an issue
  where "mm" is confused with minutes.  Fix this issue later.

Signed-off-by: Bob Yantosca <[email protected]>
test/shared/commonFunctionsForTests.sh
- Add the current directory (.) to the list of submodules for which
  we will obtain Git commit hashes
- In the display name (y), replace "." with the basename of
  argument ${2}.  This is the name of the superproject.

Signed-off-by: Bob Yantosca <[email protected]>
test/integration/GCClassic/integrationTestCreate.sh
- Bug fix: We forgot to adjust the name of the sample ObsPack data file
  stored in the $obsPk variable.  This has now been corrected.

Signed-off-by: Bob Yantosca <[email protected]>
test/integration/GCClassic/integrationTestCreate.sh
- In the grep command used to define the extDataDir variable, we must
  use ${HOME} instead of ~.  Otherwise the grep fails.  This was
  causing the sample ObsPack data file not to be copied to the alldiags
  test folder.

Signed-off-by: Bob Yantosca <[email protected]>
run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem
- Now use SO4 instead of O3 for the Budget collection diagnostic fields.
  This will allow us to test The BudgetWetDep diagnostic, as SO4 is
  soluble and O3 is not.  Using O3 caused a runtime error, which should
  now be fixed.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
test/integration/GCHP/integrationTestExecute.sh
- Add an sed command to reset the cap_restart time to 000000 UTC.
  This will make sure that we restart the run from 0h UTC when we
  manually restart tests with utils/redoIntegrationTestExecute.sh.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
Headers/state_diag_mod.F90
- In routine "Get_UVFLux_Bin", make sure that tagName and
  UVFlux_Tag_Names(N) are both in uppercase before comparing them
  for equality.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
Interfaces/GCHP/gchp_historyexportsmod.F90
- Replace "informative message here" with a detailed error message.

run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem
- Uncomment the StratBM diagnostic entries

test/integration/GCHP/integrationTestExecute.sh
- Add a sed command to comment out the StratBM collection in the
  collections list of HISTORY.rc for the GCHP "alldiags" test

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem
- Fix typo (i.e. "DryDepACET" -> "DryDep_ACET") in the DryDep collection
  entries.  This was causing a GCHP runtime error.

test/integration/GCHP/integrationTestCreate.sh
- Reactivate the StratBM collection, this should be OK.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
run/GCHP/HISTORY.rc.fullchem
- Comment out (with `###` the Emissions diagnostic entries that are
  are also commented out in the corresponding HEMCO_Diagn.rc.fullchem
  template.  This will disable them in the GCHP "alldiags" test.

test/integration/GCClassic/integrationTestCreate.sh
test/integration/GCHP/integrationTestCreate.sh
- Disable the UVFlux collection in the "alldiags" integration test,
  as this is currently problematic.  Look to fix this later.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
run/GCHP/HISTORY.rc.templates/HISTORY.rc.fullchem
- Added an extra # (now '####') when commenting out the unused
  diagnostic entries in the Emissions collection.  This is needed
  for the "alldiags" test, which strips the first 3 '###' chars.

Signed-off-by: Bob Yantosca <[email protected]>
CHANGELOG.md
- Added "and GCHP" to the "Added simulation with all diagnostics..."
  sentence.

Signed-off-by: Bob Yantosca <[email protected]>
This merge brings PR #2399 (Add simulation with all diagnostics turned
to integration testing, by @msulprizio and @yantosca) into the GEOS-Chem
"no-diff-to-benchmark" development stream.

This PR adds GCHP and GCClassic integration tests (based on the
fullchem_benchmark test) with all diagnostics turned on.  Several minor
issues revealed by these tests have also been fixed.

Signed-off-by: Bob Yantosca <[email protected]>
This rebase brings the "feature/trop-prs-in-satdiagn" branch (which contains
an update by @eamarais to add tropopause pressure to the SatDiagn collection)
into the "dev/no-diff-to-benchmark" branch atop PR #2399.  The original update
was based off version 14.1.0.

This merge brings PR # ( , by @) into

Signed-off-by: Bob Yantosca <[email protected]>
CHANGELOG.md
- Added an note that we have added tropopause pressure to the
  satellite diagnostics (update from @eamarais)

Signed-off-by: Bob Yantosca <[email protected]>
This merge brings PR #2410 (Add tropopause pressure to the GEOS-Chem
Classic "SatDiagn" collection, by @yantosca on behalf of @eamarais) into
the GEOS-Chem "no-diff-to-benchmark" development stream.

This PR adds an extra field (TROPP) to the existing SatDiagn collection.

Signed-off-by: Bob Yantosca <[email protected]>
yantosca and others added 10 commits August 5, 2024 18:12
…-IT)

This merge brings PR # (Add GC-Classic transport tracer global half-degree
run option with GEOS-IT, by @lizziel) into the GEOS-Chem "no-diff-to-benchmark"
development stream.

This PR updates the GC-Classic create run directory script. It now offers
the option of a global 1/2-degree run using the transport tracer simulation
with GEOS-IT meteorology fields.

Signed-off-by: Bob Yantosca <[email protected]>
GeosCore/sulfate_mod.F90
- Remove XNUMOL_H2O2 / CMPERM3 from the equation for DH2O2.  This used
  to convert PH2O2 to molec/cm3/s, but with KPP, PH2O2 is already in
  molec/cm3/s.
- Add !$OMP COLLAPSE( 3 ) for efficiency
- Add !$OMP SCHEDULE( DYNAMIC, 8 ) for better load balancing
- Change e.g. 0.0e+0_fp to 0.0_fp for clarity

Signed-off-by: Bob Yantosca <[email protected]>
GeosCore/sulfate_mod.F90
- Fix typo "SCHEUDLE" -> "SCHEDULE"

Signed-off-by: Bob Yantosca <[email protected]>
Previously the run directory was configured to always use online biogenic
MOH values for the EmisMOH_Biogenic variable in HEMCO emissions.

Signed-off-by: Lizzie Lundgren <[email protected]>
…ig.rc

This update impacts only GCHP emissions for which we have both online and
offline sources, namely seasalt, soil NOx, biogenic, and dust emissions.
Previously HEMCO_Diagn.rc always specified offline emissions for use
in emissions diagnostic unless using the benchmark simulation. Now the
file is automatically updated at run-time to use online values instead
if the extension is turned on within HEMCO_Config.rc.

Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
This merge brings PR #2413 (Fix incorrect unit conversion for H2O2 in
the aerosol-only simulation, by @yantosca) into the GEOS-Chem
"no-diff-to-benchmark" development stream.

This PR fixes a longstanding unit conversion issue in the aerosol-only
simulation.

Signed-off-by: Bob Yantosca <[email protected]>
This merge brings PR # (Fixes for HEMCO diagnostic config file
HEMCO_Diagn.rc, by @lizziel) into the GEOS-Chem "no-diff-to-benchmark"
development stream.

This PR adds 2 fixes:

1. Use offline biogenic MOH emissions (except for the benchmark simulation,
   which uses online emissions by default)

2. Auto-set GCHP emissions sources in HEMCO_Diagn.rc based on HEMCO_Config.rc.

Signed-off-by: Bob Yantosca <[email protected]>
This merge brings the "no-diff-to-benchmark" updates into the main
branch in preparation for the GEOS-Chem 14.4.3 release.

Signed-off-by: Bob Yantosca <[email protected]>
Updated version numbers in:
- CHANGELOG.md

Signed-off-by: Bob Yantosca <[email protected]>
@yantosca yantosca added category: Feature Request New feature or request no-diff-to-benchmark This update will not change the results of fullchem benchmark simulations labels Aug 13, 2024
@yantosca yantosca added this to the 14.5.0 milestone Aug 13, 2024
@yantosca yantosca self-assigned this Aug 13, 2024
@yantosca
Copy link
Contributor Author

Integration tests are running

@yantosca
Copy link
Contributor Author

The GEOS-Chem "alldiags" integration test failed with this error:

Error termination. Backtrace:
At line 1183 of file /n/holyscratch01/jacob_lab/ryantosca/tests/14.5.0/gc2425/GCC_it/CodeDir/src/GEOS-Chem/GeosCore/diagnostics_mod.F90
Fortran runtime error: Index '264' of dimension 3 of array 'colmass' above upper bound of 237

All other tests passed. I am investigating.

@yantosca
Copy link
Contributor Author

The error in the "alldiags" test has been traced to the ALK4P species being listed in species_database.yml as an advected species, but omitted from the list of advected species in geoschem_config.yml. A fix will follow in PR #2318.

@yantosca
Copy link
Contributor Author

As mentioned above, all GEOS-Chem Classic integration tests (except "alldiags") passed. The issue with alldiags will be fixed in PR #2318, which will be merged into GEOS-Chem 14.5.0 after this PR.

==============================================================================
GEOS-Chem Classic: Execution Test Results

CodeDir   : c2a3236 Merge GEOS-Chem 14.4.3 back into the 14.5.0 development branch
GEOS-Chem : 000205c86 Merge GEOS-Chem 14.4.3 back into the 14.5.0 development branch
HEMCO     : 41605bd HEMCO 3.9.3 release
Cloud-J   : d20050f Update version to 7.7.3
HETP      : 2a99b24 Merge pull request #2 from geoschem/bugfix/initialize_local_variables

Using 24 OpenMP threads
Number of execution tests: 30

Submitted as SLURM job: 43708487
==============================================================================
...
gc_4x5_merra2_fullchem_alldiags.....................Execute Simulation....FAIL
...
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 29
Execution tests failed: 1
Execution tests not yet completed: 0

@yantosca
Copy link
Contributor Author

All GCHP integration tests passed:

==============================================================================
GCHP: Execution Test Results

CodeDir       : 46197b6 Merge GEOS-Chem 14.4.3 back into the 14.5.0 development branch
MAPL          : 231d53c Merge pull request #36 from geoschem/feature/improve_hflux_regridding
GMAO_Shared   : 4ddb3ec Merge pull request #2 from geoschem/feature/mapl-upgrade
ESMA_cmake    : ad5deba Added ecbuild as a submodule of ESMA_cmake
gFTL-shared   : 4b82492 Merge branch 'upstream_v1.5.0' into feature/v1.5.0
FMS           : 259759d Merge pull request #3 from geoschem/feature/update_gmao_libs
FVdycoreCubed : af42462 Merge PR #8 (Add PLEadv diagnostic for offline advection in GCHP)
geos-chem     : 000205c86 Merge GEOS-Chem 14.4.3 back into the 14.5.0 development branch
HEMCO         : 41605bd HEMCO 3.9.3 release
yaFyaml       : 19afe50 Merge branch 'upstream_v1.0.4' into feature/v1.0.4
pFlogger      : 2c4b724 Merge branch 'upstream_v1.9.1' into feature/v1.9.1
Cloud-J       : d20050f Update version to 7.7.3
HETP          : 2a99b24 Merge pull request #2 from geoschem/bugfix/initialize_local_variables

Number of execution tests: 12

Submitted as SLURM job: 43793675
==============================================================================
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  All execution tests passed!  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The reason why the "alldiags" test did not fail is because in GCHP we use only the SO4 species (which is advected, emitted, dry deposits, and wet deposits).

#==============================================================================
# Budget defined as species kg/s in the column (full, troposphere, or PBL)
# due to a single component (e.g. chemistry); default = SO4 only; add more
# species as needed (advected only)
#==============================================================================
  Budget.template:        '%y4%m2%d2_%h2%n2z.nc4',
  Budget.format:          'CFIO',
  Budget.timestampStart:  .true.
  Budget.monthly:         0
  Budget.frequency:       010000
  Budget.duration:        010000
  Budget.mode:            'time-averaged'
  Budget.fields:          'BudgetWetDepFull_SO4         ', 'GCHPchem',
                          'BudgetChemistryFull_SO4      ', 'GCHPchem',
                          'BudgetConvectionFull_SO4     ', 'GCHPchem',
                          'BudgetMixingFull_SO4         ', 'GCHPchem',
                          'BudgetEmisDryDepFull_SO4     ', 'GCHPchem',
                          #
                          'BudgetWetDepLevs1to35_SO4    ', 'GCHPchem',
                          'BudgetChemistryLevs1to35_SO4 ', 'GCHPchem',
                          'BudgetConvectionLevs1to35_SO4', 'GCHPchem',
                          'BudgetMixingLevs1to35_SO4    ', 'GCHPchem',
                          'BudgetEmisDryDepLevs1to35_SO4', 'GCHPchem',
                           #
                          'BudgetWetDepTrop_SO4         ', 'GCHPchem',
                          'BudgetChemistryTrop_SO4      ', 'GCHPchem',
                          'BudgetConvectionTrop_SO4     ', 'GCHPchem',
                          'BudgetMixingTrop_SO4         ', 'GCHPchem',
                          'BudgetEmisDryDepTrop_SO4     ', 'GCHPchem',
                           #
                          'BudgetWetDepPBL_SO4          ', 'GCHPchem',
                          'BudgetChemistryPBL_SO4       ', 'GCHPchem',
                          'BudgetConvectionPBL_SO4      ', 'GCHPchem',
                          'BudgetMixingPBL_SO4          ', 'GCHPchem',
                          'BudgetEmisDryDepPBL_SO4      ', 'GCHPchem',
::

The error in GCClassic is caused by the ALK4 species not being listed as an advected species, but being included in the Budget diagnostic.

@yantosca yantosca marked this pull request as ready for review August 15, 2024 13:50
Copy link
Contributor

@msulprizio msulprizio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These updates look good for merging after fixing potential ordering issues in CHANGELOG.md.

@@ -428,6 +449,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Removed State_Met%LWI and input meteorology LWI from carbon simulation run config files
- Removed function `CLEANUP_UCX`; deallocations are now done in `state_chm_mod.F90`

## [14.4.3] - 2024-08-13
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these lines so far down? Perhaps a merge issue? I think they need to be moved up.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Melissa, I can fix that in a post-merge fix.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I will approve then.

yantosca added a commit that referenced this pull request Aug 15, 2024
CHANGELOG.md
- The entry for "Tropopause pressure field..." for 14.4.3 was located
  much further down than it should have been.  We have moved it back to
  to the 14.4.3 section at the top of the file.

Signed-off-by: Bob Yantosca <[email protected]>
@yantosca yantosca merged commit 000205c into dev/14.5.0 Aug 15, 2024
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants