Skip to content

ctsm5.4.051: Update Clm60 compsets to use dglc and Clm50/Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru - #4110

Open
ekluzek wants to merge 93 commits into
ESCOMP:masterfrom
ekluzek:update_compsets_to_use_dglc

Conversation

@ekluzek

@ekluzek ekluzek commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Description of changes

Update most of the CLM60 compsets to use DGLC%NOEVOLVE rather than stub glacier. I1Pt single point compsets are left alone.

Make single point tests and compsets all have RsGs at the end of the alias to specify stub ROF and stub GLC, and do this consistently in all compsets and tests.

Change FATES CLM60 tests to use RsGs compsets for single-point/regional and without it for global. And change Clm60FatesCru tests to Clm60FatesCrujra. Make FATES tests (other than single-point) run with MOSART and DGLC.

Make single point tests all consistently use Qian forcing compsets for consistency and speed. Remove most of the Cru tests except for one with Clm50.

Also since I'm messing with compsets and tests, and removing compsets and tests for several things we've decided to deprecate: clm4_5, BGCDV, %BGC%NWP, and VIC.

Specific notes

Contributors other than yourself, if any:

CTSM issues resolved or otherwise addressed, if any:

If answers are expected to change, describe (delete this line otherwise): Yes
Definition of many Clm60 compsets change so that DGLC is used

Any user interface changes (namelist or namelist defaults changes)?
Change in compset definition for many Clm60 compsets

Testing planned or performed, if any:

  • aux_clm Derecho
  • aux_clm Izumi
  • fates Derecho
  • fates Izumi
  • ctsm_sci Derecho
  • decomp_init Derecho
  • uhr_decomp_init Derecho

Requirements before merge:

  • The code in this PR branch builds with no errors.
  • The code in this PR branch runs with no errors. Briefly describe tested configuration(s):
  • This either (a) does not change answers, (b) it only changes answers at roundoff level, or (c) I have performed a scientific evaluation of the answer changes. Which?: c
  • It changes answers beyond roundoff as the compset definitions change. But, it's just now using DGLC in places it wasn't. So answers will be different over Greenland, in a way consistent with using DGLC. The scientific evaluation was already done to validation that DGLC is running correctly.
  • I have reviewed relevant parts of the CLM documentation Tech Note or User's Guide to determine if anything needs to be changed or added. If it does, describe: Yes, some changes to the Glacier chapter
  • This PR either (a) does not create a need to update the documentation or (b) includes required documentation updates (see guidelines for contributing documentation). Which?: b

ekluzek added 3 commits July 7, 2026 10:21
…/regional cases, and without that for global tests, and change Clm60FatesCru tests to Clm60FatesCrujra
@ekluzek ekluzek added the enhancement new capability or improved behavior of existing capability label Jul 7, 2026
@ekluzek ekluzek added priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations testing additions or changes to tests science Enhancement to or bug impacting science non-b4b Changes answers (incl. adding tests) size: small labels Jul 7, 2026
@github-project-automation github-project-automation Bot moved this to Ready to start (or start again) in CTSM: Upcoming tags Jul 7, 2026
@ekluzek ekluzek self-assigned this Jul 7, 2026
@ekluzek ekluzek moved this from Ready to start (or start again) to In progress - master in CTSM: Upcoming tags Jul 7, 2026
@ekluzek ekluzek changed the title Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru ctsm5.4.047: Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru Jul 7, 2026
ekluzek added 6 commits July 8, 2026 10:37
…e-point/regional tests and not having just Rs, this fixes the lack of I2000Clm60FatesRsGs compset that was needed for a test on Izumi
…, now that distinction is done in the compset by either using CISM or DGLC, make a first pass at clarifying this in the tech-note
…es add the right one) and that the compsets for single point cases have stub ROF and stub Glacier
@ekluzek ekluzek changed the title ctsm5.4.047: Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru ctsm5.4.048: Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru Jul 9, 2026
@wwieder wwieder changed the title ctsm5.4.048: Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru ctsm5.4.049: Update Clm60 compsets to use dglc and Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru Jul 9, 2026
ekluzek added 2 commits July 9, 2026 16:19
… MOSART_MODE to null if so. Otherwise don't do anything so that tests with Stub ROF can be done
@ekluzek ekluzek moved this from Todo to In Progress in LMWG: Sprint Planning Board Jul 14, 2026
In typical runs, CISM is not evolving; CLM computes the SMB and sends it to CISM, but CISM's ice sheet geometry remains fixed over the course of the run. In these runs, CISM serves two roles in the system:
In typical runs, DGLC is used and the ice sheet is not evolving; CLM computes the SMB and sends it to DGLC, but DGLC's ice sheet geometry remains fixed over the course of the run. In these runs, DGLC serves two roles in the system:

#. Over the CISM domain (typically Greenland in CESM2), CISM dictates glacier areas and topographic elevations, overriding the values on CLM's surface dataset. CISM also dictates the elevation of non-glacier land units in its domain, and only in this domain are atmospheric fields downscaled to non-glacier land units. (So if you run with a stub glacier model - SGLC - then glacier areas and elevations will be taken entirely from CLM's surface dataset, and no downscaling will be done over non-glacier land units.)

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.

@billsacks I misinterpreted this line here that with SGLC no downscaling will be done. Reading it again it's saying that with CISM the elevation of non-glacier land units is determined and atmospheric fields within are downscaled, but with SGLC this downscaling over non-glacier land units is NOT done. But, since line 48 says that it's talking about CISM in NOEVOLVE mode it appears that this downscaling now refers to DGLC in NOEVOLVE mode. But, I don't think that's true either. I think this really applies only when running with CISM.

So I took it to mean that no downscaling over glacier land units will happen with SGLC, but it's really that this special downscaling over non-glacier land units happens when running with CISM over glacier regions (so in Greenland). So both SGLC and DGLC%NOEVOLVE work the same way in that regard there is no special downscaling over non-glacier land units. And also both SGLC and DGLC will downscale over glacier land-units, because that's dictated by the surface dataset.

This means some of the changes I made to the Tech Note about DGLC%NOEVOLVE need to change a bit. But, also line 50 shouldn't be listed as applying to NOEVOLVE mode, it should appear somewhere else as a general statement that applies when the ice sheet is evolving as you are running with CISM.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@ekluzek - I think your current text is correct... I think your comments about needing to make adjustments are not right: from the perspective of CTSM, DGLC%NOEVOLVE should be the same as the old CISM%NOEVOLVE in these respects:

  • I think DGLC%NOEVOLVE still provides topographic heights of non-glacier landunits within its domain. I'm not positive of this, though, and it should probably be confirmed somehow. (It could be confirmed by looking at the downscaled vs. non-downscaled atmospheric fields over a grid cell in Greenland that doesn't have any glacier cover.)
  • DGLC does still provide the grid onto which SMB is downscaled.

If I remember correctly, there is one key difference between DGLC%NOEVOLVE and CISM%NOEVOLVE: DGLC%NOEVOLVE handles the fluxes, and so glc_dyn_runoff_routing is true for DGLC%NOEVOLVE, whereas it was false for CISM%NOEVOLVE. This could require some adjustment to the text in the "Computation of surface mass balance" section, if you haven't already adjusted it: I think it's now the case that glc_dyn_runoff_routing will typically be true for any run with either DGLC or CISM (given that CISM is now typically just used for EVOLVE runs).

It would be good to check all of this with @Katetc .

Thank you for your work on this!!!

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.

One thing I confirmed in looking at what's different between cases with DGLC%NOEVOLVE and SGLC is that gld_do_dynglacier==.true. because GLC_TWO_WAY_COUPLING==TRUE for DGLC and is FALSE for SGLC. This is something set in CMEPS.

I think the upshot with that is that DGLC is providing the topographic heights. Which goes along with one thing that @billsacks says above here

I think DGLC%NOEVOLVE still provides topographic heights of non-glacier landunits within its domain. I'm not positive of this, though, and it should probably be confirmed somehow. (It could be confirmed by looking at the downscaled vs. non-downscaled atmospheric fields over a grid cell in Greenland that doesn't have any glacier cover.)

I had trouble isolating a point over greenland that didn't have any glacier. But, in comparing TBOT (which is downscaled over greenland) I see differences in it over the Greenland coastline. So I think this sufficiently confirms that question.

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.

In terms of this:

If I remember correctly, there is one key difference between DGLC%NOEVOLVE and CISM%NOEVOLVE: DGLC%NOEVOLVE handles the fluxes, and so glc_dyn_runoff_routing is true for DGLC%NOEVOLVE, whereas it was false for CISM%NOEVOLVE. This could require some adjustment to the text in the "Computation of surface mass balance" section, if you haven't already adjusted it: I think it's now the case that glc_dyn_runoff_routing will typically be true for any run with either DGLC or CISM (given that CISM is now typically just used for EVOLVE runs).

Yes, I could confirm this by going through the code. glc_dyn_runoff_routing gets set by the glacier region, so over Greenland it'll be TRUE for either DGLC or CISM.

In typical runs, DGLC is used and the ice sheet is not evolving; CLM computes the SMB and sends it to DGLC, but DGLC's ice sheet geometry remains fixed over the course of the run. In these runs, DGLC serves two roles in the system:

#. Over the CISM domain (typically Greenland in CESM2), CISM dictates glacier areas and topographic elevations, overriding the values on CLM's surface dataset. CISM also dictates the elevation of non-glacier land units in its domain, and only in this domain are atmospheric fields downscaled to non-glacier land units. (So if you run with a stub glacier model - SGLC - then glacier areas and elevations will be taken entirely from CLM's surface dataset, and no downscaling will be done over non-glacier land units.)
#. Over the DGLC domain (typically Greenland in CESM), DGLC dictates glacier areas and topographic elevations, overriding the values on CLM's surface dataset. DGLC also dictates the elevation of non-glacier land units in its domain, and only in this domain are atmospheric fields downscaled to non-glacier land units. (So if you run with a stub glacier model - SGLC - then glacier areas and elevations will be taken entirely from CLM's surface dataset, and no downscaling will be done over non-glacier land units.)

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 think this needs some adjustment as well. The last part applies to both SGLC and DGLC.

Fix typo, 'expontential' --> 'exponential' in fates c starvation model

PR ESCOMP#4093

Testing:
aux_clm and fates test-suites OK on derecho and izumi
@ekluzek

ekluzek commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

OK, I've sent off most of the testing that I need to send for this PR.

@slevis-lmwg slevis-lmwg left a comment

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.

@ekluzek I approved preemptively to facilitate next steps; however:

  1. Please address my comments.
  2. Also I have this question regarding the PR's testing:
    For tests expected to be b4b with the baseline despite having new test-names due to changes in their compset aliases, do you have a way to confirm b4b answers? If such tests were a small handful, I would not be concerned, but I think that this situation describes a fair number of tests.

Comment thread .github/workflows/check-compset-aliases.sh Outdated
Comment thread cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands
Comment thread cime_config/config_tests.xml
Comment thread doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst Outdated
In this framework, mortality is represented as a first-order loss process, in which all vegetation carbon and nitrogen pools experience proportional losses over time. The equations presented in this section describe the pool-level mortality fluxes and their routing within the biogeochemical framework.

This section does not describe mechanistic mortality processes represented in the Functionally Assembled Terrestrial Ecosystem Simulator (FATES), where mortality emerges from explicit demographic, physiological, and disturbance processes (see Chapter :numref:`rst_Ecosystem Demography with FATES`). Readers interested in those formulations should refer to the `FATES documentation`_. Mortality associated with fire and land-use or harvest processes is treated separately in the Fire and Land Use Change sections (see Chapters :numref:`rst_Fire` and :numref:`rst_Transient Landcover Change`, respectively). Legacy dynamic vegetation configurations (CNDV) used related mortality formulations but are no longer actively supported; mechanistic dynamic vegetation and mortality processes in CTSM are now handled through FATES.
This section does not describe mechanistic mortality processes represented in the Functionally Assembled Terrestrial Ecosystem Simulator (FATES), where mortality emerges from explicit demographic, physiological, and disturbance processes (see Chapter :numref:`rst_Ecosystem Demography with FATES`). Readers interested in those formulations should refer to the `FATES documentation`_. Mortality associated with fire and land-use or harvest processes is treated separately in the Fire and Land Use Change sections (see Chapters :numref:`rst_Fire` and :numref:`rst_Transient Landcover Change`, respectively). Mechanistic dynamic vegetation and mortality processes in CTSM are now handled through FATES.

@slevis-lmwg slevis-lmwg Aug 3, 2026

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 have not built the documentation because there is a lot of other material to review in this PR; so I wonder whether the underbar/underscore here is a typo or intentional:
"... documentation`_. Mortality ..."

@ekluzek pls let me know if you would like me to also review the built documentation as part of this code review.

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.

That's a good question about the underscore. That predates this PR, but it might be good to see what it looks like. I think I should just plan to do that on my own. I don't think it's something needed for both of us to do.

Comment thread doc/source/users_guide/overview/introduction.rst Outdated
Comment thread doc/source/users_guide/overview/introduction.rst Outdated
@ekluzek

ekluzek commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Here's a list of unexpected fails for aux_clm:

DAE_C2_D_Lh12.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-DA_multidrv      ( RUN)
ERP_Ly3_P64x2.f10_f10_mg37.IHistClm50BgcCrop.derecho_intel.clm-cropMonthOutput  ( COMPARE_base_rest )
ERP_Ly3_P64x2.f10_f10_mg37.IHistClm60BgcCrop.derecho_intel.clm-cropMonthOutput--clm-matrixcnOn_ignore_warnings  ( COMPARE_base_rest )
ERP_P64x2_Ld1096.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-clm50cropIrrigMonth_interp    ( COMPARE_base_rest )
ERP_P64x2_Ld1096.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-irrig_o3falk_reduceOutput     ( COMPARE_base_rest )
ERP_P64x2_Ld366.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-irrig_alternate_monthly        ( COMPARE_base_rest )
ERP_P64x2_Ld396.f10_f10_mg37.IHistClm60Bgc.derecho_gnu.clm-monthly      ( COMPARE_base_rest )
ERP_P64x2_Ld765.f10_f10_mg37.I2000Clm60BgcCrop.derecho_intel.clm-monthly        ( COMPARE_base_rest )
ERS_D_Ld6.f10_f10_mg37.I1850Clm50BgcCrop.derecho_gnu.clm-CMIP6ndepTwoVars       ( RUN)
ERS_D_Ld6.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-CMIP6ndepTwoVars     ( RUN)
SMS_C2_D_Lh12.f10_f10_mg37.I2000Clm50Sp.derecho_intel.clm-pauseResume   ( RUN)
SMS_Ln9.ne3pg3_ne3pg3_mt232.I2000Clm60Sp.derecho_gnu.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)

@ekluzek

ekluzek commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

The FATES testlist showed a difference for this single field FATES_C13DISC_SZPF for the AllVars test. So this is probably just a dignostic field that should be commented out for the time being. This same problem is seen in ctsm5.4.047 and ctsm5.4.049. This is issue #3660

@ekluzek

ekluzek commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

The ctsm_sci test list has this list of unexpected fails:

SMS_Ld12_Mmpi-serial.1x1_urbanc_alpha.I1PtClm60SpRsGs.derecho_intel.clm-output_sp_highfreq      ( RUN)          EXPECTED (RUN)
SMS_Ld5.f09_g17.ISSP245Clm50BgcCrop.derecho_intel.clm-ciso_dec2050Start ( RUN)
SMS_Ld5.f09_t232.ISSP245Clm60BgcCropCrujra.derecho_intel.clm-ciso_dec2050Start  ( RUN)
SMS_Ln1.mpasa3p75_mpasa3p75_mt13.I2000Clm50Sp.derecho_intel.clm-for_testing_fastsetup_bypassrun--clm-SimplePhysics--clm-nofireemis      ( RUN)
SMS_Ln9.C96_C96_mt232.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis     ( SUBMIT)
SMS_Ln9.C96_C96_mt232.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis       ( SUBMIT)
SMS_Ln9.C96_C96_mt232.IHistClm60BgcCrop.derecho_intel.clm-clm60cam7LndTuningMode        ( SUBMIT)
SMS_Ln9.C96_C96_mt232.IHistClm60BgcCropCrujra.derecho_intel.clm-clm60cam7LndTuningMode  ( SUBMIT)
SMS_Ln9.mpasa120_mpasa120.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)
SMS_Ln9.mpasa120_mpasa120.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.mpasa120_mpasa120.IHistClm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)
SMS_Ln9.mpasa120_mpasa120.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.mpasa15_mpasa15.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.mpasa15_mpasa15.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis     ( SUBMIT)
SMS_Ln9.mpasa30_mpasa30.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis     ( SUBMIT)
SMS_Ln9.mpasa480_mpasa480.I1850Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)
SMS_Ln9.mpasa480_mpasa480.I1850Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.mpasa480_mpasa480.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)
SMS_Ln9.mpasa480_mpasa480.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.mpasa60_mpasa60.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningModeLDust--clm-nofireemis      ( SUBMIT)
SMS_Ln9.mpasa60_mpasa60.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningModeLDust--clm-nofireemis        ( SUBMIT)
SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.I1850Clm60BgcCrop.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis ( SUBMIT)
SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.I1850Clm60BgcCropCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis   ( SUBMIT)
SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.IHistClm60Sp.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis    ( SUBMIT)
SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis      ( SUBMIT)
SMS_Ln9.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.IHistClm60Sp.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis    ( SUBMIT)
SMS_Ln9.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis      ( SUBMIT)
SMS_Ln9.ne0CONUSne30x8_ne0CONUSne30x8_mt12.IHistClm60Sp.derecho_intel.clm-clm60cam7LndTuningMode_2013Start--clm-nofireemis      ( SUBMIT)
SMS_Ln9.ne0CONUSne30x8_ne0CONUSne30x8_mt12.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_2013Start--clm-nofireemis        ( SUBMIT)
SMS_Ln9.ne0NATLne30x8_ne0NATLne30x8_mt12.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis  ( SUBMIT)
SMS_Ln9.ne0POLARCAPne30x4_ne0POLARCAPne30x4_mt12.IHistClm60Sp.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis        ( SUBMIT)
SMS_Ln9.ne0POLARCAPne30x4_ne0POLARCAPne30x4_mt12.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis  ( SUBMIT)
SMS_Ln9.ne120pg3_t13.I2000Clm60Sp.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis      ( SUBMIT)
SMS_Ln9.ne120pg3_t13.I2000Clm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode--clm-nofireemis        ( SUBMIT)
SMS_Ln9.ne120pg3_t13.IHistClm60SpCrujra.derecho_intel.clm-clm60cam7LndTuningMode_1979Start--clm-nofireemis      ( SUBMIT)

Comment thread doc/source/users_guide/overview/introduction.rst Outdated
ekluzek and others added 3 commits August 5, 2026 18:46
Remove sentence as noted in code review.

Co-authored-by: Samuel Levis <slevis@ucar.edu>
@ekluzek

ekluzek commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

One of the problems is due to an issue in CDEPS for DGLC. See: ESCOMP/CDEPS#426

@ekluzek

ekluzek commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Looking at the threaded tests that fail comparison of rest to base. It's the cpl history files that fail for 4 fields:

tail -n20 /glade/derecho/scratch/erik/tests_ctsm545acl/ERP_P64x2_Ld366.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-irrig_alternate_monthly.GC.ctsm545acl_int/run/ERP_P64x2_Ld366.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-irrig_alternate_monthly.GC.ctsm545acl_int.cpl.hi.2001-01-02-00000.nc.base.cprnc.out
grep RMS run/ERP_P64x2_Ld366.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-irrig_alternate_monthly.GC.ctsm545acl_int.cpl.hi.2001-01-02-00000.nc.base.cprnc.out
 RMS rofImp_Forr_rofi_glc             7.0515E-21            NORMALIZED  8.4114E-14
 RMS rofExp_Fgrg_rofi                 7.3536E-22            NORMALIZED  9.1454E-15
 RMS glc1Imp_Fgrg_rofi                5.0408E-21            NORMALIZED  1.3781E-15
 RMS glc1Exp_Flgl_qice                4.7167E-21            NORMALIZED  4.4018E-16

so it's a roundoff difference somehow due to DGLC when threading is on.

@ekluzek

ekluzek commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Shorter threaded ERP tests pass, so there must be something going on with tests that exceed a year.

All of these PASS:

ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_gnu.clm-default
ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-default
ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-default--clm-matrixcnOn_ignore_warnings
ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm60BgcCrop.derecho_gnu.clm-mimics
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50Bgc.derecho_gnu.clm-default
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50Bgc.derecho_gnu.clm-snowveg_norad
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50Bgc.derecho_intel.clm-cn_conly
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50Bgc.derecho_intel.clm-default
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50Bgc.derecho_intel.clm-luna
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-flexCN_FUN
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-flexCN_FUN--clm-matrixcnOn_ignore_warnings
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-noFUN_flexCN
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-noFUN_flexCN--clm-matrixcnOn_ignore_warnings
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm60BgcCrop.derecho_intel.clm-coldStart
ERP_D_P64x2_Ld3.f10_f10_mg37.I2000Clm60BgcCrop.derecho_intel.clm-coldStart--clm-matrixcnOn_ignore_warnings
ERP_D_P64x2_Ld30.f10_f10_mg37.I2000Clm50Bgc.derecho_intel.clm-default
ERP_D_P64x2_Ld5.f10_f10_mg37.I2000Clm50BgcCropRtm.derecho_intel.clm-irrig_spunup
ERP_D_P64x2_Ld5.f10_f10_mg37.I2000Clm60BgcCrop.derecho_intel.clm-irrig_spunup
ERP_P128x2_Ld30.f45_f45_mg37.I2000Clm60FatesSpCrujraRsGs.derecho_intel.clm-FatesColdSatPhen
ERP_P256x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.derecho_intel.clm-glcMEC_increase
ERP_P64x2_D.f10_f10_mg37.I2000Clm50SpRtmFl.derecho_intel.clm-default--clm-nofireemis
ERP_P64x2_D_Ld10.f10_f10_mg37.IHistClm50SpG.derecho_intel.clm-glcMEC_decrease--clm-nofireemis
ERP_P64x2_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_gnu.clm-extra_outputs
ERP_P64x2_D_Ld3.f10_f10_mt232.IHistClm60BgcCropCrujra.derecho_gnu.clm-default--clm-all_outputs
ERP_P64x2_D_Ld5.f10_f10_mg37.I1850Clm50Bgc.derecho_intel.clm-ciso
ERP_P64x2_D_Ld5.f10_f10_mg37.I1850Clm50Bgc.derecho_intel.clm-ciso--clm-matrixcnOn_ignore_warnings
ERP_P64x2_D_Ld5.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-crop--clm-bgcCropSimplePhysics
ERP_P64x2_D_Ld5.f10_f10_mg37.I2000Clm50Sp.derecho_gnu.clm-default--clm-nofireemis
ERP_P64x2_D_Ld5.f10_f10_mg37.I2000Ctsm50NwpSpGswpGs.derecho_intel.clm-default--clm-nofireemis

@samsrabin

Copy link
Copy Markdown
Member

Adding "next" to discuss: How did this get so big? Was it necessary?

@samsrabin samsrabin added next this should get some attention in the next week or two. Normally each Thursday SE meeting. and removed next this should get some attention in the next week or two. Normally each Thursday SE meeting. labels Aug 6, 2026
@ekluzek

ekluzek commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Adding "next" to discuss: How did this get so big? Was it necessary?

We talked about this in the CTSM SE meeting this morning. The main thing that happened was that I didn't want to make changes to compsets that would be removed. So I brought in those changes along with this here. What I didn't see, was that I could've done that as an initial smaller tag, and maybe even a few tags that could've come in quicker. I still had a list of things that will come in later PR's, and made sure I didn't do those, but I didn't see that I could've broken this tag up.

There's still some things that came out of the DGLC update that required changes that I hadn't thought of before. And since it inheriently changed pretty much all of the compsets, and most of the tests it's pretty big in and of itself.

I've been able to realize this sort of thing in the past, that I need to break something up. But, as @samsrabin pointed out when you have steps planned out, it can be hard to see that I really should have had a previous step to step "1". So it's a good reminder to think about that when you are in the middle of something that ended up being big. And the group discussion of this shows that sometimes it helps to bring it up in the group or even with one other person.

Anyway, good thing to keep in mind for the future.

@samsrabin samsrabin changed the title ctsm5.4.050: Update Clm60 compsets to use dglc and Clm50/Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru ctsm5.4.051: Update Clm60 compsets to use dglc and Clm50/Clm60 Fates tests to be RsGs only for single-point/regional and Crujra forcing rather than Cru Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement new capability or improved behavior of existing capability non-b4b Changes answers (incl. adding tests) priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations science Enhancement to or bug impacting science size: small testing additions or changes to tests

Projects

Status: In progress - master
Status: In Progress

4 participants