Update E3SM-GCAM use cases and GCAM submodule#8326
Conversation
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
…n the initial creation
…surface solar radiation and link to the updated surface data
Conflicts: components/gcam/src
- 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.
bishtgautam
left a comment
There was a problem hiding this comment.
I only reviewed the ELM-related changes in this PR, and I approve it.
beharrop
left a comment
There was a problem hiding this comment.
Having simply read through the changes, this looks sensible to me (evaluating only the atmospheric side of things).
| ! 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 |
There was a problem hiding this comment.
This appears to be a typo of some sort.
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
I suspect any of @kaizhangpnl, @tangq, or @mingxuanwupnnl would all be good choices :)
There was a problem hiding this comment.
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("-"))') |
There was a problem hiding this comment.
Should this be write(iulog, '(71("-"),"|",20("-"))') to match the other lines?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
these updates have been made
mingxuanwupnnl
left a comment
There was a problem hiding this comment.
aerosol gas emission input files look good to me
There was a problem hiding this comment.
Do we still need SSP370/245_eam_EHC.xml?
There was a problem hiding this comment.
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
|
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
|
actually, i had to push one other commit: 63d7fa4 |
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 moab test is failing with. Something must be missing from driver-moab/cime_config. |
|
@rljacob yep. <default_value>$ATM_NCPL</default_value> is missing from driver-moab/cime_config. |
|
Yes please do. |
This should enable the ERS_Vmoab.ne4pg2_oQU480.WCYCL1850NS.chrysalis_intel test to run. [BFB] - Bit-For-Bit
|
@rljacob set IAC_NCPL default for moab commit has been pushed. |
|
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
|
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. |
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
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.