Skip to content

Update E3SM-GCAM use cases and GCAM submodule#8326

Open
aldivi wants to merge 28 commits into
masterfrom
origin/aldivi/ehc_pr_apr2026
Open

Update E3SM-GCAM use cases and GCAM submodule#8326
aldivi wants to merge 28 commits into
masterfrom
origin/aldivi/ehc_pr_apr2026

Conversation

@aldivi
Copy link
Copy Markdown
Contributor

@aldivi aldivi commented Apr 27, 2026

This update includes:
the addition of human component (EHC) use cases,
merging the EHC namelist files into one and adding some items,
incorporating support for multiple EHC resolutions (matched to land res),
adding namelist items for land conversion assumptions and scalar file source dir,
streamlining the configuration and run script for running the active EHC,
and some updates to make compilation more generalizable across machines.
There are also some updates to the CO2 diagnostics so that they work
with the new cflx_cpl_opt (the default of which is problematic, see issue 8201).
The E3SM-GCAM use cases are set up to use the original method (cflx_cpl_opt=1)
until this can be further diagnosed. The current default value for non E3SM-GCAM
runs is unchanged (cflx_cpl_opt=2).

This commit points to the newly updated use case commit of the giac master branch,
which points to the newly updated e3sm-integration branch in the new E3SM-Project
fork of the primary GCAM repo. This commit will work only with these updated
submodule commits.

[BFB]


The E3SM-GCAM use update code now passes the e3sm_developer suite.
The tests are all BFB with the 17 april 2026 master (morning), which is where
the code is currently rebased to.
Six elm tests have diffs because a problematic history variable
was removed from the h0 history file. The SEED_GRC history variable is a cumulative
diagnostic that is not stored in the restart file, so after a
restart it starts over and is not the same as if there were no
restart; it has been set to inactive as the default so that it
is not written to the h0 history file.

The E3SM-GCAM runs look good, and are not BFB with our previous
runs (but they appear to be within internal variability),
because this is the first time running
with these updates and configuration.

Alan Divittorio and others added 22 commits April 17, 2026 11:06
This has not been tested in v3 yet because some additional eam config changes are required.
This will be tested initially once the configuration is sorted out, and then again once
initial conditions are ready.
The submodule pointers to the human component and the gcam model should be
correct in this commit to ensure consistency across the repos related to this
update.
Updates compile flags so that the human component compiles on chrysalis.
Also updates the stream controls so that the model does not crash when
reading sea ice data forcing.

 Changes to be committed:
	modified:   cime_config/machines/cmake_macros/intel_chrysalis.cmake
	modified:   share/streams/shr_stream_mod.F90
…am dndebug

GCAM needs the DNDEBUG cxx flag to be set to eliminate deprecated code from
compiling. but we cannot set this for all cxx code. so a component dependent
compile flag has been set for intel compiles on three machines so that
GCAM compiles properly if DEBUG is set to true.
updated pointer to components/gcam/src repo (giac)
Resolved rebase conflict 1:

 Conflicts:
	components/elm/bld/namelist_files/namelist_defaults.xml
…surface solar radiation and link to the updated surface data
- Comment out restart directory existence check to prevent build failures
- Remove restart file copying logic when gcam_spinup = false
- Preserve gcam_spinup namelist reading functionality
- Skip all restart.* file handling regardless of gcam_spinup setting

This allows simulations to run without requiring restart files or restart
directory structure, while still respecting gcam_spinup namelist settings.
 Conflicts:
	components/eam/src/cpl/atm_comp_mct.F90
Updates to:
cime_config/machines/cmake_macros/intel_pm-cpu.cmake
Doing this before cherry picking a commit to test compiling
before doing the rebase.
This includes some co2 diags, some temporary atm diags for surface
flux timing, some ehc-specific compile flags, and compset config bugs.
Now the eam use cases for active EHC set the co2 diag tolerance
rather than setting it in the run script for user_nl_eam.
*********1*********2*********3*********4*********5*********6*********7**

This update adds EHC use cases and:
support for multiple EHC resolutios that match the land resolution
single EHC namelist with added items
updates that enable compiling on multiple machines (particularly
with the intel compiler)-these have been targeted to the EHC code
so that the rest of the components should not be affected by bit-
level differences
points to the most up-to-date commit in the main branches of the giac
repo (master) and the new gcam repo fork in e3sm-project.
The E3SM-GCAM use update code now passes the e3sm_developer suite.
The tests are all BFB with the 17 april 2026 master (morning).
Six elm tests have diffs because a problematic history variable
was removed. The SEED_GRC history variable is a cumulative
diagnostic that is not stored in the restart file, so after a
restart it starts over and is not the same as if there were no
restart; it has been set to inactive as the default so that it
is not written to the history file.

The E3SM-GCAM runs look good, and are not BFB with our previous
runs (but they appear to be withing internal variabilty),
 but this is fine because this is the first time running
with these updates and configuration.
@rljacob rljacob added GCAM EAM Fortran-based E3SM Atmosphere Model ELM land model labels Apr 27, 2026
@rljacob rljacob added the BFB PR leaves answers BFB label Apr 27, 2026
@rljacob rljacob changed the title Merge E3SM-GCAM use case update Update E3SM-GCAM use cases and GCAM submodule Apr 27, 2026
Copy link
Copy Markdown
Contributor

@bishtgautam bishtgautam left a comment

Choose a reason for hiding this comment

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

I only reviewed the ELM-related changes in this PR, and I approve it.

Copy link
Copy Markdown
Contributor

@beharrop beharrop left a comment

Choose a reason for hiding this comment

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

Having simply read through the changes, this looks sensible to me (evaluating only the atmospheric side of things).

Comment thread components/eam/src/cpl/atm_comp_mct.F90 Outdated
! Initialize mpicom_atm, allocate cam_in and cam_out and determine
! atm decomposition (needed to initialize gsmap)
! for an initial run, cam_in and cam_out are allocated in cam_initial
! for an initial run, cam_in and cam_out are allocated in is called the second time in atm_initial
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This appears to be a typo of some sort.

Copy link
Copy Markdown
Contributor Author

@aldivi aldivi May 6, 2026

Choose a reason for hiding this comment

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

type fixed

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For this and the other new use case file, it would be good to get an aerosol/chemistry expert to review that the files are correct (unless they are all identical to the default)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@beharrop Who would you suggest?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I suspect any of @kaizhangpnl, @tangq, or @mingxuanwupnnl would all be good choices :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

mingxuan reviewed our use cases

write(iulog,C_FF) 'Surface Emissions', gtc_flux_sfc, gtc_flux_sfc * dtime
write(iulog,C_FF) 'Aircraft Emissions', gtc_flux_air, gtc_flux_air * dtime

write(iulog, '(71("-"),"|",23("-"))')
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this be write(iulog, '(71("-"),"|",20("-"))') to match the other lines?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is how all three sets are set up for printing (timestep, monthly, full run). They should all probably be:
write(iulog, '(71("-"),"|",26("-"))')
I can update this, but it is not critical.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

i may also switch the order of the surface sum and the total sum because it is a bit confusing to have the surface breakdown between the total air/surface flux and the co2 mass change that it is compared to.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

these updates have been made

@aldivi aldivi requested a review from mingxuanwupnnl May 5, 2026 17:02
@rljacob rljacob added the 3.2beta Needed for the 3.2 tag. label May 5, 2026
Copy link
Copy Markdown
Contributor

@mingxuanwupnnl mingxuanwupnnl left a comment

Choose a reason for hiding this comment

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

aerosol gas emission input files look good to me

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we still need SSP370/245_eam_EHC.xml?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

it appears that we do not need these two .xml files anymore because they were configurations for an older version. I have removed these two files here (although they should still be accessible in an older hash if anyone is still trying to run it).

This commit adds an SMS and ERS test to the e3sm_developer suite.
These tests fully pass.
This commit also addresses some comments in PR#8326.

[BFB] - Bit-For-Bit
@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 6, 2026

I have pushed commit 76ce1a1 to address the comments above and to include SMS and ERS tests in e3sm_developer

Because i forget to do this.

[BFB] - Bit-For-Bit
@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 6, 2026

actually, i had to push one other commit: 63d7fa4

bishtgautam added a commit that referenced this pull request May 7, 2026
This update includes:
the addition of human component (EHC) use cases,
merging the EHC namelist files into one and adding some items,
incorporating support for multiple EHC resolutions (matched to land res),
adding namelist items for land conversion assumptions and scalar file source dir,
streamlining the configuration and run script for running the active EHC,
and some updates to make compilation more generalizable across machines.
There are also some updates to the CO2 diagnostics so that they work
with the new cflx_cpl_opt (the default of which is problematic, see issue 8201).
The E3SM-GCAM use cases are set up to use the original method (cflx_cpl_opt=1)
until this can be further diagnosed. The current default value for non E3SM-GCAM
runs is unchanged (cflx_cpl_opt=2).

This commit points to the newly updated use case commit of the giac master branch,
which points to the newly updated e3sm-integration branch in the new E3SM-Project
fork of the primary GCAM repo. This commit will work only with these updated
submodule commits.

[BFB]
bishtgautam added a commit that referenced this pull request May 8, 2026
@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 8, 2026

@jgfouca the fail above is with the master code, correct?
this commit addresses this issue, along with a couple of others, so that the tests work. see my comment in
#8379

@rljacob
Copy link
Copy Markdown
Member

rljacob commented May 8, 2026

The moab test is failing with.

2026-05-08 01:38:56: SETUP FAILED for test 'ERS_Vmoab.ne4pg2_oQU480.WCYCL1850NS.chrysalis_intel'.
Command: ./case.setup
Output: 
Setting up test for ERS in directory /lcrc/group/e3sm2/e3smtest/scratch/chrys/J/ERS_Vmoab.ne4pg2_oQU480.WCYCL1850NS.chrysalis_intel.C.JNextIntegration20260507_234007
ERROR: Entry IAC_NCPL was listed as type int but value '' is not valid int

Something must be missing from driver-moab/cime_config.

@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 9, 2026

@rljacob yep. <default_value>$ATM_NCPL</default_value> is missing from driver-moab/cime_config.
it should be between lines 664 and 665.
We didn't update anything moab. So it isn't surprising that the moab test failed.
should I add this line and commit it?

@rljacob
Copy link
Copy Markdown
Member

rljacob commented May 9, 2026

Yes please do.

This should enable the ERS_Vmoab.ne4pg2_oQU480.WCYCL1850NS.chrysalis_intel
test to run.

[BFB] - Bit-For-Bit
@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 9, 2026

@rljacob set IAC_NCPL default for moab commit has been pushed.

@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 11, 2026

current commit of E3SM-GCAM runs on compy. submitting a new run because previous one timed out due to wrong queue setting in our example run script.

compy, perlmutter, and chrysalis have different names for their
job queues. the script now sets these based on the designated
machine.

[BFB] - Bit-For-Bit
@aldivi
Copy link
Copy Markdown
Contributor Author

aldivi commented May 13, 2026

I have made successful E3SM-GCAM run completion with this current code base on compy, chryasalis, and perlmutter. and tested the updated example run script to do so.

aldivi added 2 commits May 14, 2026 11:43
In anticipation of the switch to moab as the default driver,
have added --driver mct to the create_newcase arguments,
becauise E3SM-GCAM is not yet supported with moab.

[BFB] - Bit-For-Bit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.2beta Needed for the 3.2 tag. BFB PR leaves answers BFB Coupled Model EAM Fortran-based E3SM Atmosphere Model ELM land model GCAM

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants