From 5229e4bcfb31723519e52a41bc122e050623e384 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 7 Jul 2026 10:21:07 -0600 Subject: [PATCH 01/92] Change Clm60 compsets that use SGLC to use DGLC%NOEVOLVE except for the I1Pt ones --- cime_config/config_compsets.xml | 98 ++++++++++++++++----------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index a1c6a1128d..5fbed27fea 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -85,22 +85,22 @@ I2000Clm60SpRs - 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm60SpCrujraRs - 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm60Sp - 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60SpCrujra - 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -114,12 +114,12 @@ I2000Clm60SpMizGs - 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV I2000Clm60SpMizGsNldas - 2000_DATM%NLDAS2_CLM60%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV + 2000_DATM%NLDAS2_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV @@ -145,20 +145,20 @@ I2000Clm60BgcCrop - 2000_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60BgcCropCrujra - 2000_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60Bgc - 2000_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60BgcCrujra - 2000_DATM%CRUJRA2024b_CLM60%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -178,11 +178,11 @@ I1850Clm60SpCrujra - 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60SpCru - 1850_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -195,27 +195,27 @@ I1850Clm60BgcCrop - 1850_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCropCrujra - 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60Sp - 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60Bgc - 1850_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCrujra - 1850_DATM%CRUJRA2024b_CLM60%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -227,11 +227,11 @@ I1850Clm60BgcCropCmip6 - 1850_DATM%GSWP3v1_CLM60%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCropCrujraCmip6 - 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -242,11 +242,11 @@ I1850Clm60BgcCropCmip6waccm - 1850_DATM%GSWP3v1_CLM60%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCropCrujraCmip6waccm - 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -260,7 +260,7 @@ I1850Clm60BgcCropCru - 1850_DATM%CRUv7_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUv7_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60BgcCropQianRs - 2000_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm50BgcCropQianRs @@ -297,7 +297,7 @@ I2000Clm60Fates - 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm50Fates @@ -309,15 +309,15 @@ I2000Clm60FatesSpCrujraRsGs - 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm60FatesSpCruRsGs - 2000_DATM%CRUv7_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%CRUv7_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm60FatesSpRsGs - 2000_DATM%GSWP3v1_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm50FatesCru @@ -330,11 +330,11 @@ I2000Clm60FatesRs - 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I2000Clm60FatesCrujraRs - 2000_DATM%CRUJRA2024b_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV + 2000_DATM%CRUJRA2024b_CLM60%FATES_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV @@ -344,23 +344,23 @@ I1850Clm60BgcNoAnthro - 1850_DATM%GSWP3v1_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCrujraNoAnthro - 1850_DATM%CRUJRA2024b_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV I1850Clm60SpNoAnthro - 1850_DATM%GSWP3v1_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV I1850Clm60SpCrujraNoAnthro - 1850_DATM%CRUJRA2024b_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV @@ -384,36 +384,36 @@ IHistClm60Sp - HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm60SpCrujra - HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm60SpRs - HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV IHistClm60SpCrujraRs - HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV IHistClm60Bgc - HIST_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm60BgcCrop - HIST_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm60BgcCropCrujra - HIST_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -432,7 +432,7 @@ IHistClm60SpCru - HIST_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -455,7 +455,7 @@ IHistClm60BgcQianRs - HIST_DATM%QIA_CLM60%BGC_SICE_SOCN_SROF_SGLC_SWAV + HIST_DATM%QIA_CLM60%BGC_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV ISSP585Clm60BgcCrop - SSP585_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP585_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -529,7 +529,7 @@ IHistClm60BgcCropQianRs - HIST_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + HIST_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV @@ -759,11 +759,11 @@ I1850Clm60SpRs - 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV I1850Clm60SpCrujraRs - 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV + 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV From 9cb37c350fe91289d8ff86da243066f7c75d3934 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 7 Jul 2026 14:47:05 -0600 Subject: [PATCH 02/92] Make Fates compsets more consistent so that those with Gs have stub glacier, if Gs isn't given then DGLC is used --- cime_config/config_compsets.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 5fbed27fea..3a86b3fbe1 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -309,15 +309,15 @@ I2000Clm60FatesSpCrujraRsGs - 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm60FatesSpCruRsGs - 2000_DATM%CRUv7_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60FatesSpCrujra + 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm60FatesSpRsGs - 2000_DATM%GSWP3v1_CLM60%FATES-SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV I2000Clm50FatesCru @@ -333,8 +333,8 @@ 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV - I2000Clm60FatesCrujraRs - 2000_DATM%CRUJRA2024b_CLM60%FATES_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60FatesCrujraRsGs + 2000_DATM%CRUJRA2024b_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV From 455495ee6d79261b8b9ab2a2bce06cadb137bff0 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 7 Jul 2026 15:05:25 -0600 Subject: [PATCH 03/92] Make Clm60Fates tests consistently use RsGs compsets for single-point/regional cases, and without that for global tests, and change Clm60FatesCru tests to Clm60FatesCrujra --- cime_config/testdefs/testlist_clm.xml | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 3fc8b52928..19063db83e 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2539,7 +2539,7 @@ - + @@ -3465,7 +3465,7 @@ - + @@ -3477,7 +3477,7 @@ - + @@ -3517,7 +3517,7 @@ - + @@ -3624,7 +3624,7 @@ - + @@ -3682,7 +3682,7 @@ - + @@ -3774,7 +3774,7 @@ - + @@ -3900,7 +3900,7 @@ - + @@ -3909,7 +3909,7 @@ - + @@ -4053,7 +4053,7 @@ - + @@ -4112,7 +4112,7 @@ - + @@ -4124,7 +4124,7 @@ - + @@ -4152,7 +4152,7 @@ - + @@ -4161,7 +4161,7 @@ - + From 3ef1aecd0371d6ecce5ee1164e1549255323d875 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 8 Jul 2026 10:37:13 -0600 Subject: [PATCH 04/92] Have Fates compsets be consistent in having RsGs to be used for single-point/regional tests and not having just Rs, this fixes the lack of I2000Clm60FatesRsGs compset that was needed for a test on Izumi --- cime_config/config_compsets.xml | 8 ++++---- cime_config/testdefs/ExpectedTestFails.xml | 10 +++++----- cime_config/testdefs/testlist_clm.xml | 20 ++++++++++---------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 3a86b3fbe1..936802b184 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -325,12 +325,12 @@ - I2000Clm50FatesRs + I2000Clm50FatesRsGs 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm60FatesRs - 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60FatesRsGs + 2000_DATM%GSWP3v1_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV I2000Clm60FatesCrujraRsGs @@ -631,7 +631,7 @@ - I2000Clm45FatesRs + I2000Clm45FatesRsGs 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_SROF_SGLC_SWAV diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 746f56abed..7deb73c0ab 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -37,7 +37,7 @@ - + FAIL #3660 @@ -142,7 +142,7 @@ Divide by zero happens when ch4finundatedmapalgo==bilinear with intel/2025.3.2, but passes for nn,consf,consd - + FAIL #3798 @@ -171,7 +171,7 @@ - + FAIL #2261 @@ -233,14 +233,14 @@ - + FAIL FATES#1089 - + FAIL FATES#1089 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 19063db83e..1e339d53ba 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3489,7 +3489,7 @@ - + @@ -3498,7 +3498,7 @@ - + @@ -3508,7 +3508,7 @@ - + @@ -3526,7 +3526,7 @@ - + @@ -3537,7 +3537,7 @@ - + @@ -3547,7 +3547,7 @@ - + @@ -3556,7 +3556,7 @@ - + @@ -3603,7 +3603,7 @@ - + @@ -3614,7 +3614,7 @@ - + @@ -3663,7 +3663,7 @@ - + From 72088a887a326c0fae3a8de1809b1bc7c71b8543 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 8 Jul 2026 11:23:28 -0600 Subject: [PATCH 05/92] Fix the compsets used in a couple of tests --- cime_config/testdefs/testlist_clm.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 1e339d53ba..2b3b0c6eaa 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2539,7 +2539,7 @@ - + @@ -4170,7 +4170,7 @@ - + From dad2c6cc2557314b49c906eca1cbb70cb76130d2 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 8 Jul 2026 15:26:08 -0600 Subject: [PATCH 06/92] CISM used to have two modes one for evolving and one for non-evolving, 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 --- .../Glacier/CLM50_Tech_Note_Glacier.rst | 26 +++++++++---------- .../CLM50_Tech_Note_Introduction.rst | 2 +- .../CLM50_Tech_Note_Transient_Landcover.rst | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst index e8a4b81298..c42e01ff4a 100644 --- a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst +++ b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst @@ -16,11 +16,11 @@ Compared with CLM4.5 (:ref:`Oleson et al. 2013 `), CLM5.0 contai - A number of namelist parameters offer fine-grained control over glacier behavior in different regions of the world (section :numref:`Glacier regions`). (The options used outside of Greenland and Antarctica reproduce the standard CLM4.5 glacier behavior.) -- CLM can now keep its glacier areas and elevations in sync with CISM when running with an evolving ice sheet. (However, in typical configurations, the ice sheet geometry still remains fixed throughout the run.) +- CLM can now keep its glacier areas and elevations in sync with CISM as the ice sheet is evolving. (However, in typical configurations, the ice sheet geometry still remains fixed throughout the run, since the data glacier model is used [DGLC as part of CDEPS].) - The downscaling to elevation classes now includes downwelling longwave radiation and partitioning of precipitation into rain vs. snow (section :numref:`Multiple elevation class scheme`). -- Other land units within the CISM domain undergo the same downscaling as the glacier land unit, and surface mass balance is computed for the natural vegetated land unit. This allows CLM to produce glacial inception when running with an evolving ice sheet model. +- Other land units within the CISM domain undergo the same downscaling as the glacier land unit, and surface mass balance is computed for the natural vegetated land unit. This allows CLM to produce glacial inception when running with the CISM evolving ice sheet model. - There have also been substantial improvements to CLM's snow physics, as described in other chapters of this document. @@ -29,27 +29,27 @@ Compared with CLM4.5 (:ref:`Oleson et al. 2013 `), CLM5.0 contai Overview -------- -CLM is responsible for computing two quantities that are passed to the ice sheet model: +CLM is responsible for computing two quantities that are passed to the ice sheet model (either CISM, DGLC or SGLC): #. Surface mass balance (SMB) - the net annual accumulation/ablation of mass at the upper surface (section :numref:`Computation of the surface mass balance`) #. Ground surface temperature, which serves as an upper boundary condition for CISM's temperature calculation The ice sheet model is typically run at much higher resolution than CLM (e.g., :math:`\sim`\ 5 km rather than :math:`\sim`\ 100 km). To improve the downscaling from CLM's grid to the ice sheet grid, the glaciated portion of each grid cell is divided into multiple elevation classes (section :numref:`Multiple elevation class scheme`). The above quantities are computed separately in each elevation class. The CESM coupler then computes high-resolution quantities via horizontal and vertical interpolation, and passes these high-resolution quantities to CISM. -There are several reasons for computing the SMB in CLM rather than in CISM: +There are several reasons for computing the SMB in CLM rather than in CISM/DGLC: #. It is much cheaper to compute the SMB in CLM for :math:`\sim`\ 10 elevation classes than in CISM. For example, suppose we are running CLM at a resolution of :math:`\sim`\ 50 km and CISM at :math:`\sim`\ 5 km. Greenland has dimensions of about 1000 x 2000 km. For CLM we would have 20 x 40 x 10 = 8,000 columns, whereas for CISM we would have 200 x 400 = 80,000 columns. -#. We can use the sophisticated snow physics parameterization already in CLM instead of implementing a separate scheme for CISM. Any improvements to CLM are applied to ice sheets automatically. +#. We can use the sophisticated snow physics parameterization already in CLM instead of implementing a separate scheme for CISM/DGLC. Any improvements to CLM are applied to ice sheets automatically. -#. The atmosphere model can respond during runtime to ice-sheet surface changes (even in the absence of two-way feedbacks with CISM). As shown by :ref:`Pritchard et al. (2008)`, runtime albedo feedback from the ice sheet is critical for simulating ice-sheet retreat on paleoclimate time scales. Without this feedback the atmosphere warms much less, and the retreat is delayed. +#. The atmosphere model can respond during runtime to ice-sheet surface changes (even in the absence of two-way feedbacks when DGLC is used rather than CISM). As shown by :ref:`Pritchard et al. (2008)`, runtime albedo feedback from the ice sheet is critical for simulating ice-sheet retreat on paleoclimate time scales. Without this feedback the atmosphere warms much less, and the retreat is delayed. #. The improved SMB is potentially available in CLM for all glaciated grid cells (e.g., in the Alps, Rockies, Andes, and Himalayas), not just those which are part of ice sheets. -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.) +#. 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.) -#. CISM provides the grid onto which SMB is downscaled. (If you run with SGLC then SMB will still be computed in CLM, but it won't be downscaled to a high-resolution ice sheet grid.) +#. DGLC provides the grid onto which SMB is downscaled. (If you run with SGLC then SMB will still be computed in CLM, but it won't be downscaled to a high-resolution ice sheet grid.) It is also possible to run CESM with an evolving ice sheet. In this case, CLM responds to CISM's evolution by adjusting the areas of the glacier land unit and each elevation class within this land unit, as well as the mean topographic heights of each elevation class. Thus, CLM's glacier areas and elevations remain in sync with CISM's. Conservation of mass and energy is done as for other landcover change (see Chapter :numref:`rst_Transient Landcover Change`). @@ -80,7 +80,7 @@ The world's glaciers and ice sheets are broken down into a number of different r b. Ice runoff from snow capping is melted (generating a negative sensible heat flux) and runs off as liquid. This matches the behavior for non-glacier columns. This is appropriate in regions that have little iceberg calving in reality. This can be important to avoid unrealistic cooling of the ocean and consequent runaway sea ice growth. -The default behaviors for the world's glacier and ice sheet regions are described in :numref:`Table Glacier region behaviors`. Note that the Greenland region stops at the edge of Greenland as defined by CISM. This means that, by default, SMB is not computed for grid cells outside Greenland but within the CISM domain. (This treatment of the non-Greenland portion of the CISM domain as being the same as the world's mountain glaciers rather than like Greenland itself is mainly for the sake of avoiding unrealistic fluxes from the Canadian archipelago that can potentially result in runaway sea ice growth in that region.) +The default behaviors for the world's glacier and ice sheet regions are described in :numref:`Table Glacier region behaviors`. Note that the Greenland region stops at the edge of Greenland as defined by CISM/DGLC. This means that, by default, SMB is not computed for grid cells outside Greenland but within the CISM/DGC domain. (This treatment of the non-Greenland portion of the CISM/DGC domain as being the same as the world's mountain glaciers rather than like Greenland itself is mainly for the sake of avoiding unrealistic fluxes from the Canadian archipelago that can potentially result in runaway sea ice growth in that region.) .. _Table Glacier region behaviors: @@ -119,7 +119,7 @@ The atmospheric surface temperature, potential temperature, specific humidity, d This downscaling allows lower-elevation columns to undergo surface melting while columns at higher elevations remain frozen. This gives a more accurate simulation of summer melting, which is a highly nonlinear function of air temperature. -Within the CISM domain, this same downscaling procedure is also applied to all non-urban land units. The elevation of non-glacier land units is taken from the mean elevation of ice-free grid cells in CISM. This is done in order to keep the glaciated and non-glaciated portions of the CISM domain as consistent as possible. +Within the CISM/DGLC domain, this same downscaling procedure is also applied to all non-urban land units. The elevation of non-glacier land units is taken from the mean elevation of ice-free grid cells in CISM/DGLC. This is done in order to keep the glaciated and non-glaciated portions of the CISM/DGLC domain as consistent as possible. In contrast to most CLM subgrid units, glacier\_mec columns can be active (i.e., have model calculations run there) even if their area is zero. These are known as "virtual" columns. This is done because the ice sheet model may require a SMB for some grid cells where CLM has zero glacier area in that elevation range. Virtual columns also facilitate glacial advance and retreat in the two-way coupled case. Virtual columns do not affect energy exchange between the land and the atmosphere. @@ -132,9 +132,9 @@ This section describes the computation of surface mass balance and associated ru The SMB of a glacier or ice sheet is the net annual accumulation/ablation of mass at the upper surface. Ablation is defined as the mass of water that runs off to the ocean. Not all the surface meltwater runs off; some of the melt percolates into the snow and refreezes. Accumulation is primarily by snowfall and deposition, and ablation is primarily by melting and evaporation/sublimation. CLM uses a surface-energy-balance (SEB) scheme to compute the SMB. In this scheme, the melting depends on the sum of the radiative, turbulent, and conductive fluxes reaching the surface, as described elsewhere in this document. -Note that the SMB typically is defined as the total accumulation of ice and snow, minus the total ablation. The SMB flux passed to CISM is the mass balance for ice alone, not snow. We can think of CLM as owning the snow, whereas CISM owns the underlying ice. Fluctuations in snow depth between 0 and 10 m water equivalent are not reflected in the SMB passed to CISM. In transient runs, this can lead to delays of a few decades in the onset of accumulation or ablation in a given glacier column. +Note that the SMB typically is defined as the total accumulation of ice and snow, minus the total ablation. The SMB flux passed to CISM/DGLC is the mass balance for ice alone, not snow. We can think of CLM as owning the snow, whereas CISM/DGLC owns the underlying ice. Fluctuations in snow depth between 0 and 10 m water equivalent are not reflected in the SMB passed to CISM/DGLC. In transient runs, this can lead to delays of a few decades in the onset of accumulation or ablation in a given glacier column. -SMB is computed and sent to the CESM coupler regardless of whether and where CISM is operating. However, the effect of SMB terms on runoff fluxes differs depending on whether and where CISM is evolving in two-way-coupled mode. This is described by the variable *glc\_dyn\_runoff\_routing*. (This is real-valued in the code to handle the edge case where a CLM grid cell partially overlaps with the CISM grid, but we describe it as a logical variable here for simplicity.) In typical cases where CISM is not evolving, *glc\_dyn\_runoff\_routing* will be false everywhere; in these cases, CISM's mass is not considered to be part of the coupled system. In cases where CISM is evolving and sending its own calving flux to the coupler, *glc\_dyn\_runoff\_routing* will be true over the CISM domain and false elsewhere. +SMB is computed and sent to the CESM coupler regardless of whether and where CISM/DGLC is operating. However, the effect of SMB terms on runoff fluxes differs depending on if CISM is used as the ice sheet is evolving in a two-way-coupled mode. This is described by the variable *glc\_dyn\_runoff\_routing*. (This is real-valued in the code to handle the edge case where a CLM grid cell partially overlaps with the CISM grid, but we describe it as a logical variable here for simplicity.) In typical cases where DGLC is used and the ice sheet is not evolving, *glc\_dyn\_runoff\_routing* will be false everywhere; in these cases, DGLC's mass is not considered to be part of the coupled system. In cases where CISM is used and the ice sheet is evolving and sending its own calving flux to the coupler, *glc\_dyn\_runoff\_routing* will be true over the CISM domain and false elsewhere. Any snow capping (section :numref:`Runoff from glaciers and snow-capped surfaces`) is added to :math:`q_{ice,frz}`. Any liquid water (i.e., melted ice) below the snow pack in the glacier column is added to :math:`q_{ice,melt}`, then is converted back to ice to maintain a pure-ice column. Then the total SMB is given by :math:`q_{ice,tot}`: diff --git a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst index 1f77e8c038..8184cfbecc 100644 --- a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst +++ b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst @@ -98,7 +98,7 @@ Developments for CLM5.0 build on the progress made in CLM4.5. Most major compone The hydrology updates include the introduction of a dry surface layer-based soil evaporation resistance parameterization :ref:`(Swenson and Lawrence, 2014)` and a revised canopy interception parameterization. Canopy interception is now divided into liquid and solid phases, with the intercepted snow subject to unloading events due to wind or above-freezing temperatures. The snow-covered fraction of the canopy is used within the canopy radiation and surface albedo calculation. Instead of applying a spatially uniform soil thickness, soil thickness can vary in space :ref:`(Brunke et al. 2016` and :ref:`Swenson and Lawrence, 2015)` and is set to values within a range of 0.4m to 8.5m depth, derived from a spatially explicit soil thickness data product :ref:`(Pelletier et al., 2016)`. The explicit treatment of soil thickness allows for the deprecation of the unconfined aquifer parameterization used in CLM4.5, which is replaced with a zero flux boundary condition and explicit modeling of both the saturated and unsaturated zones. The default model soil layer resolution is increased, especially within the top 3m, to more explicitly represent active layer thickness within the permafrost zone. Rooting profiles were used inconsistently in CLM4.5 with :ref:`Zeng (2001)` profiles used for water and :ref:`Jackson et al. (1996)` profiles used for carbon inputs. For CLM5, the Jackson et al. (1996) rooting profiles are used for both water and carbon. Roots are deepened for the broadleaf evergreen tropical tree and broadleaf deciduous tropical tree types. Finally, an adaptive time-stepping solution to the Richard's equation is introduced, which improves the accuracy and stability of the numerical soil water solution. The River Transport Model (RTM) is replaced with the Model for Scale Adaptive River Transport (MOSART, :ref:`Li et al., 2013b)` in which surface runoff is routed across hillslopes and then discharged along with subsurface runoff into a tributary subnetwork before entering the main channel. -Several changes are included that are mainly targeted at improving the simulation of surface mass balance over ice sheets. The fresh snow density parameterization is updated to more realistically capture temperature effects and to additionally account for wind effects on new snow density :ref:`(van Kampenhout et al., 2017)`. The maximum number of snow layers and snow amount is increased from 5 layers and 1m snow water equivalent to 12 layers and 10m snow water equivalent to allow for the formation of firn in regions of persistent snow-cover (e.g., glaciers and ice sheets) :ref:`(van Kampenhout et al., 2017)`. The CISM2 ice sheet model is included for Greenland by default. The ice sheet does not evolve for typical configurations, but ice sheet evolution can be turned on by choosing an appropriate compset. The introduction in CLM5 of the capability to dynamically adjust landunit weights means that a glacier can initiate, grow, shrink, or disappear during a simulation when ice evolution is active. That is, there are two-way feedbacks between CLM and CISM. Multiple elevation classes (10 elevation classes by default) and associated temperature, rain/snow partitioning, and downwelling longwave downscaling are used for glacier landunits to account for the strong topographic elevation heterogeneity over glaciers and ice sheets. +Several changes are included that are mainly targeted at improving the simulation of surface mass balance over ice sheets. The fresh snow density parameterization is updated to more realistically capture temperature effects and to additionally account for wind effects on new snow density :ref:`(van Kampenhout et al., 2017)`. The maximum number of snow layers and snow amount is increased from 5 layers and 1m snow water equivalent to 12 layers and 10m snow water equivalent to allow for the formation of firn in regions of persistent snow-cover (e.g., glaciers and ice sheets) :ref:`(van Kampenhout et al., 2017)`. The data ice sheet model (DGLC in CDEPS) is included for Greenland by default. The ice sheet does not evolve for typical configurations (as the ice sheet model is either the data ice sheet DGLC or the stub one SGLC), but ice sheet evolution can be turned on by choosing an appropriate compset (one that uses CISM as the ice sheet model). The introduction in CLM5 of the capability to dynamically adjust landunit weights means that a glacier can initiate, grow, shrink, or disappear during a simulation when ice evolution is active. That is, there are two-way feedbacks between CLM and CISM. Multiple elevation classes (10 elevation classes by default) and associated temperature, rain/snow partitioning, and downwelling longwave downscaling are used for glacier landunits to account for the strong topographic elevation heterogeneity over glaciers and ice sheets. A plant hydraulic stress routine is introduced which explicitly models water transport through the vegetation according to a simple hydraulic framework (Kennedy et al., to be submitted). The water supply equations are used to solve for vegetation water potential forced by transpiration demand and a set of layer-by-layer soil water potentials. Stomatal conductance, therefore, is a function of prognostic leaf water potential. Water stress is calculated as the ratio of attenuated stomatal conductance to maximum stomatal conductance. An emergent feature of the plant hydraulics is soil hydraulic redistribution. In CLM5, maximum stomatal conductance is obtained from the Medlyn conductance model :ref:`(Medlyn et al., 2011)`, rather than the Ball-Berry stomatal conductance model that was utilized in CLM4.5 and prior versions of the model. The Medlyn stomatal conductance model is preferred mainly for it's more realistic behavior at low humidity levels :ref:`(Rogers et al., 2017)`. The stress deciduous vegetation phenology trigger is augmented with a antecedent precipitation requirement :ref:`(Dahlin et al. 2015)`. diff --git a/doc/source/tech_note/Transient_Landcover/CLM50_Tech_Note_Transient_Landcover.rst b/doc/source/tech_note/Transient_Landcover/CLM50_Tech_Note_Transient_Landcover.rst index 60d90dc6fc..b6b7cbb3e5 100644 --- a/doc/source/tech_note/Transient_Landcover/CLM50_Tech_Note_Transient_Landcover.rst +++ b/doc/source/tech_note/Transient_Landcover/CLM50_Tech_Note_Transient_Landcover.rst @@ -27,7 +27,7 @@ If the total land unit area of glaciers and crops has decreased, then the natura These rules have two important implications: -1. We always match CISM's glacier areas exactly, even if that means a disagreement with prescribed crop areas. This is needed for conservation when CISM is evolving in two-way-coupled mode. +1. We always match CISM's glacier areas exactly, even if that means a disagreement with prescribed crop areas. This is needed for conservation as the ice sheet is evolving in a two-way-coupled mode. 2. For land units other than crop, glacier and natural vegetation, their areas can decrease (due to encroaching crops or glaciers), but can never increase. So, for example, if a grid cell starts as 5% lake, crops expand to fill the entire grid cell, then later crop area decreases, the lake area will not return: instead, the abandoned cropland will become entirely natural vegetation. From d8fb7f867ac945636e17a4aa6a96ea0ecd8b9afd Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 8 Jul 2026 15:41:06 -0600 Subject: [PATCH 07/92] Update the list of compsets, since DGLC needs to be mentioned --- cime_config/config_compsets.xml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 936802b184..38ebe472fa 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -13,13 +13,14 @@ TIME_ATM[%phys]_LND[%phys]_ICE[%phys]_OCN[%phys]_ROF[%phys]_GLC[%phys]_WAV[%phys][_BGC%phys] Where for the CAM specific compsets below the following is supported TIME = Time period (e.g. 2000, HIST, SSP585...) - ATM = [CAM40, CAM50, CAM60] - LND = [CLM45, CLM50, CLM60, SLND] - ICE = [CICE, DICE, SICE] - OCN = [DOCN, ,AQUAP, SOCN] - ROF = [RTM, SROF] - GLC = [CISM2, SGLC] - WAV = [SWAV] + ATM = [DATM, CAM40, CAM50, CAM60, CAM70, SATM] (CAM only for CAM or CESM checkouts) + LND = [CLM45, CLM50, CLM60, DLND, SLND] + ICE = [CICE, DICE, SICE] (CICE only for CAM or CESM checkouts) + OCN = [MOM, DOCN, SOCN] (MOM only for CESM checkouts) + ROF = [RTM, MOSART, MIZUROUTE, DROF, SROF] + GLC = [CISM2, DGLC, SGLC] + WAV = [WW3, DWAV, SWAV] (WW3 only for CESM checkouts) + ESP = [DESP, SESP] BGC = optional BGC scenario The OPTIONAL %phys attributes specify submodes of the given system From 790b4d10346a55ac4d300b289dd5785b23f36e11 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 9 Jul 2026 01:34:14 -0600 Subject: [PATCH 08/92] Make sure single point cases use an existing compset (and in some cases add the right one) and that the compsets for single point cases have stub ROF and stub Glacier --- cime_config/config_compsets.xml | 58 ++++++++++++++++++--------- cime_config/testdefs/testlist_clm.xml | 38 +++++++++--------- 2 files changed, 58 insertions(+), 38 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 38ebe472fa..449da3d419 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -58,7 +58,7 @@ - I1PtClm60SpRs + I1PtClm60SpRsGs 2000_DATM%1PT_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV @@ -85,12 +85,12 @@ 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm60SpRs - 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60SpRsGs + 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm60SpCrujraRs - 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60SpCrujraRsGs + 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV @@ -153,6 +153,11 @@ 2000_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + I2000Clm60BgcCropCrujraRsGs + 2000_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + + I2000Clm60Bgc 2000_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -193,6 +198,11 @@ + + I1850Clm50BgcCropRs + 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + + I1850Clm60BgcCrop @@ -210,6 +220,11 @@ + + I1850Clm60BgcCropCrujraRsGs + 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + + I1850Clm60Bgc 1850_DATM%GSWP3v1_CLM60%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -268,8 +283,8 @@ fast as possible, but still with full-featured CTSM: uses Qian atm forcing to speed up datm, SROF to speed up build and run --> - I2000Clm60BgcCropQianRs - 2000_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I2000Clm60BgcCropQianRsGs + 2000_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV I2000Clm50BgcCropQianRs @@ -395,12 +410,12 @@ - IHistClm60SpRs - HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + IHistClm60SpRsGs + HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV - IHistClm60SpCrujraRs - HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + IHistClm60SpCrujraRsGs + HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV @@ -455,8 +470,8 @@ - IHistClm60BgcQianRs - HIST_DATM%QIA_CLM60%BGC_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + IHistClm60BgcQianRsGs + HIST_DATM%QIA_CLM60%BGC_SICE_SOCN_SROF_SGLC_SWAV @@ -620,6 +635,11 @@ 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV + + I2000Clm45SpRs + 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_SROF_SGLC_SWAV + + I2000Clm45BgcCrop 2000_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV @@ -759,12 +779,12 @@ - I1850Clm60SpRs - 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I1850Clm60SpRsGs + 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV - I1850Clm60SpCrujraRs - 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV + I1850Clm60SpCrujraRsGs + 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_SROF_SGLC_SWAV diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 2b3b0c6eaa..2d5e9226ee 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1373,7 +1373,7 @@ - + @@ -1604,7 +1604,7 @@ - + @@ -1624,7 +1624,7 @@ - + @@ -2211,7 +2211,7 @@ - + @@ -2221,7 +2221,7 @@ - + @@ -2231,7 +2231,7 @@ - + @@ -2392,7 +2392,7 @@ - + @@ -2985,7 +2985,7 @@ - + @@ -3028,7 +3028,7 @@ - + @@ -3145,7 +3145,7 @@ - + @@ -3391,7 +3391,7 @@ - + @@ -3410,7 +3410,7 @@ - + @@ -4143,7 +4143,7 @@ --> - + @@ -4256,7 +4256,7 @@ - + @@ -4269,7 +4269,7 @@ - + @@ -4282,7 +4282,7 @@ - + @@ -4345,7 +4345,7 @@ - + @@ -4359,7 +4359,7 @@ - + @@ -4486,7 +4486,7 @@ - + From 9505cb7573a8bf9729d68287df1883cf59a87204 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 9 Jul 2026 01:38:21 -0600 Subject: [PATCH 09/92] Have 5x5_amazon regional tests use a RsGs compset so that both ROF and GLC are stubs --- cime_config/testdefs/testlist_clm.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 2d5e9226ee..c641558a1e 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -4692,7 +4692,7 @@ - + @@ -4704,7 +4704,7 @@ - + From 978417411fe43ea6ace24f189a2236c3531e2b41 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 9 Jul 2026 16:19:22 -0600 Subject: [PATCH 10/92] Change global Fates tests to include MOSART --- cime_config/testdefs/testlist_clm.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index c641558a1e..664ab70c9a 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3702,7 +3702,7 @@ - + @@ -3710,7 +3710,7 @@ - + @@ -3721,7 +3721,7 @@ - + @@ -3729,7 +3729,7 @@ - + @@ -3747,7 +3747,7 @@ - + @@ -3756,7 +3756,7 @@ - + @@ -3765,7 +3765,7 @@ - + @@ -3872,7 +3872,7 @@ - + From a2a02bec224d81a3a30be1be0f375257bd44cfe3 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 10 Jul 2026 14:39:05 -0600 Subject: [PATCH 11/92] For spinup testmods check if the ROF component is MOSART and then set MOSART_MODE to null if so. Otherwise don't do anything so that tests with Stub ROF can be done --- .../testdefs/testmods_dirs/clm/ADspinup/shell_commands | 6 +++++- .../clm/ciso_monthly_matrixcn_spinup/shell_commands | 6 +++++- .../clm/monthly_matrixcn_fast_spinup/shell_commands | 5 ++++- .../testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands | 5 ++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands index 5fbc5fd2bd..845d6f2b19 100644 --- a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands @@ -1,5 +1,9 @@ #!/bin/bash ./xmlchange CLM_ACCELERATED_SPINUP="on" -./xmlchange MOSART_MODE="NULL" + +COMP_ROF=`./xmlquery --value COMP_ROF` +if [[ $COMP_ROF == "MOSART" ]]; then + ./xmlchange MOSART_MODE="NULL" +fi diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands index 45fdc7e8fd..cc65d65923 100755 --- a/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands @@ -1,2 +1,6 @@ ./xmlchange CLM_ACCELERATED_SPINUP=sasu -./xmlchange MOSART_MODE=NULL + +COMP_ROF=`./xmlquery --value COMP_ROF` +if [[ $COMP_ROF == "MOSART" ]]; then + ./xmlchange MOSART_MODE="NULL" +fi \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands index 3a435b6233..24010bb518 100755 --- a/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands @@ -1,4 +1,7 @@ ./xmlchange CLM_ACCELERATED_SPINUP=sasu ./xmlchange DATM_YR_START=1901,DATM_YR_END=1902 -./xmlchange MOSART_MODE=NULL +COMP_ROF=`./xmlquery --value COMP_ROF` +if [[ $COMP_ROF == "MOSART" ]]; then + ./xmlchange MOSART_MODE="NULL" +fi diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands index b8e8b792cd..81a0b9246f 100644 --- a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands @@ -1,3 +1,6 @@ #!/bin/bash -./xmlchange MOSART_MODE="NULL" +COMP_ROF=`./xmlquery --value COMP_ROF` +if [[ $COMP_ROF == "MOSART" ]]; then + ./xmlchange MOSART_MODE="NULL" +fi From 93341ff29d94d8725d4cc30d20f1772c12842f27 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 15 Jul 2026 13:11:48 -0600 Subject: [PATCH 12/92] Switch CAM grid tests away from stub ROF so remove the Rs in the compset name --- cime_config/testdefs/testlist_clm.xml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 664ab70c9a..d6004d91b1 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -341,7 +341,7 @@ - + @@ -351,7 +351,7 @@ - + @@ -360,7 +360,7 @@ - + @@ -370,7 +370,7 @@ - + @@ -436,7 +436,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -455,7 +455,7 @@ - + @@ -957,7 +957,7 @@ - + @@ -967,7 +967,7 @@ - + @@ -976,7 +976,7 @@ - + @@ -986,7 +986,7 @@ - + @@ -995,7 +995,7 @@ - + @@ -1004,7 +1004,7 @@ - + From 9688587db49813d82039dbf8db9da1eec0a1906c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 15 Jul 2026 17:11:26 -0600 Subject: [PATCH 13/92] Change Clm60 tests with CISM to ones with Crujra forcing as that's what should be scientifically supported --- cime_config/testdefs/testlist_clm.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index d6004d91b1..d49d5af84d 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -153,7 +153,7 @@ - + @@ -180,7 +180,7 @@ - + @@ -190,7 +190,7 @@ - + @@ -228,7 +228,7 @@ - + @@ -238,7 +238,7 @@ - + @@ -248,7 +248,7 @@ - + From 78f095a160aafff994808a4b57498b0b739fd0a9 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 15 Jul 2026 17:19:19 -0600 Subject: [PATCH 14/92] Update science support to remove from pre-CLM60 compsets and have on only Crujra compsets --- cime_config/config_compsets.xml | 77 +++++++++++++++------------------ 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 449da3d419..7be774f79b 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -96,14 +96,14 @@ I2000Clm60Sp 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - I2000Clm60SpCrujra 2000_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - + + + @@ -116,6 +116,7 @@ I2000Clm60SpMizGs 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV + @@ -151,6 +152,10 @@ I2000Clm60BgcCropCrujra 2000_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + + @@ -171,21 +176,22 @@ I1850Clm50Sp 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV - - I1850Clm50SpCru 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV - - I1850Clm60SpCrujra 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + + + I1850Clm60SpCru 1850_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -194,8 +200,6 @@ I1850Clm50BgcCrop 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - @@ -211,13 +215,15 @@ I1850Clm60BgcCropCrujra 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + + I1850Clm60Sp 1850_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - @@ -269,8 +275,6 @@ I1850Clm50BgcCropCru 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - @@ -330,6 +334,8 @@ I2000Clm60FatesSpCrujra 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + I2000Clm60FatesSpRsGs @@ -361,23 +367,23 @@ I1850Clm60BgcNoAnthro 1850_DATM%GSWP3v1_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV - I1850Clm60BgcCrujraNoAnthro 1850_DATM%CRUJRA2024b_CLM60%BGC-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV + I1850Clm60SpNoAnthro 1850_DATM%GSWP3v1_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV - I1850Clm60SpCrujraNoAnthro 1850_DATM%CRUJRA2024b_CLM60%SP-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV + @@ -394,19 +400,19 @@ IHistClm50BgcCrop HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - IHistClm60Sp HIST_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - IHistClm60SpCrujra HIST_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + + @@ -430,20 +436,20 @@ IHistClm60BgcCropCrujra HIST_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + + IHistClm50Sp HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV - - IHistClm50SpCru HIST_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV - - @@ -612,8 +618,6 @@ I1850Clm45BgcCru 1850_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - @@ -659,29 +663,21 @@ I1850Clm45Bgc 1850_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - IHistClm45Bgc HIST_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - IHistClm45BgcCru HIST_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - IHistClm45Sp HIST_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV - - @@ -747,24 +743,23 @@ I1850Clm60BgcCropG 1850_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV - - - I1850Clm60BgcCropCrujraG 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV - + + - IHistClm60BgcCropG - HIST_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV - - + IHistClm60BgcCropCrujraG + HIST_DATM%CRUJRA2024b_CLM60%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV + + + From 5ae5acafdac74f1289c98e92fe8962e2823e03ab Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 16 Jul 2026 13:57:51 -0600 Subject: [PATCH 15/92] Change all I1Pt compsets to have a RsGs for stub ROF and stub GLC ending for consistency and readability as well as being able to match the need for compsets that have RsGs if you run without tower forcing data --- cime_config/config_compsets.xml | 12 ++++++------ cime_config/testdefs/ExpectedTestFails.xml | 4 ++-- cime_config/testdefs/testlist_clm.xml | 12 ++++++------ cime_config/usermods_dirs/clm/NEON/FATES/README.md | 2 +- .../choosing-a-compset.rst | 2 +- python/ctsm/site_and_regional/run_tower.py | 4 ++-- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 7be774f79b..5155197865 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -38,22 +38,22 @@ - I1PtClm60Bgc + I1PtClm60BgcRsGs 2000_DATM%1PT_CLM60%BGC_SICE_SOCN_SROF_SGLC_SWAV - I1PtClm60Fates + I1PtClm60FatesRsGs 2000_DATM%1PT_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV - IHist1PtClm60Bgc + IHist1PtClm60BgcRsGs HIST_DATM%1PT_CLM60%BGC_SICE_SOCN_SROF_SGLC_SWAV - IHist1PtClm60Fates + IHist1PtClm60FatesRsGs HIST_DATM%1PT_CLM60%FATES_SICE_SOCN_SROF_SGLC_SWAV @@ -63,12 +63,12 @@ - I1PtClm50SpRs + I1PtClm50SpRsGs 2000_DATM%1PT_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV - I1PtClm45SpRs + I1PtClm45SpRsGs 2000_DATM%1PT_CLM45%SP_SICE_SOCN_SROF_SGLC_SWAV diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 7deb73c0ab..aca073dd5c 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -29,7 +29,7 @@ - + FAIL CDEPS/#243 and/or #2122 @@ -156,7 +156,7 @@ Divide by zero happens when ch4finundatedmapalgo==bilinear with intel/2025.3.2, but passes for nn,consf,consd - + FAIL #3798 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index d49d5af84d..9605f1e336 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2879,7 +2879,7 @@ - + @@ -2998,7 +2998,7 @@ - + @@ -3013,7 +3013,7 @@ - + @@ -3041,7 +3041,7 @@ - + @@ -3068,7 +3068,7 @@ - + @@ -3083,7 +3083,7 @@ - + diff --git a/cime_config/usermods_dirs/clm/NEON/FATES/README.md b/cime_config/usermods_dirs/clm/NEON/FATES/README.md index 2d099771aa..34da5351ac 100644 --- a/cime_config/usermods_dirs/clm/NEON/FATES/README.md +++ b/cime_config/usermods_dirs/clm/NEON/FATES/README.md @@ -2,7 +2,7 @@ Use these user mods as you would any other user_mods, e.g.: -`./create_newcase --case FATES_ABBY_test --res CLM_USRDAT --compset I1PtClm60Fates --run-unsupported --user-mods-dir clm/NEON/FATES/ABBY` +`./create_newcase --case FATES_ABBY_test --res CLM_USRDAT --compset I1PtClm60FatesRsGs --run-unsupported --user-mods-dir clm/NEON/FATES/ABBY` ## Note on crop sites KONA and STER diff --git a/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst b/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst index ef3c53b7f0..56a965ed40 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst @@ -25,7 +25,7 @@ To get a list of the compsets use the ``query_config`` command as follows: Compsets with different choices for the River "Runoff OutFlow" (ROF) Model -------------------------------------------------------------------------- -CTSM can be run with four different options for the ROF model: stub, MOSART, RTM, or the newly available component mizuRoute. The default for compsets is MOSART and as such it isn't mentioned in the compset aliases. Compsets with the stub ROF model usually have a "Rs" in the name to designate that a stub ROF is being used (for example the single point tower site compset I1PtClm60SpRs). +CTSM can be run with four different options for the ROF model: stub, MOSART, RTM, or the newly available component mizuRoute. The default for compsets is MOSART and as such it isn't mentioned in the compset aliases. Compsets with the stub ROF model usually have a "Rs" in the name to designate that a stub ROF is being used (for example the single point tower site compset I1PtClm60SpRsGs). Compset aliases for MOSART as it's the default don't have it in the name. Compsets with clm4_5 physics are with RTM as RTM was the default ROF model when CLM4.5 was created. Also since Paleo climate work uses RTM, the "NoAnthro" compset aliases use RTM. Compset aliases with "Miz" in the name use mizuRoute. Both MOSART and RTM run on a default half degree grid, that is selected as part of the standard grid aliases. mizuRoute also can use the standard grid aliases and will be run on it's half degree grid if so. See the next section for on the other options for mizuRoute grids. diff --git a/python/ctsm/site_and_regional/run_tower.py b/python/ctsm/site_and_regional/run_tower.py index f6ac6c57a1..8028818e73 100755 --- a/python/ctsm/site_and_regional/run_tower.py +++ b/python/ctsm/site_and_regional/run_tower.py @@ -264,9 +264,9 @@ def main(description): res = "CLM_USRDAT" if run_type == "transient": - compset = "IHist1PtClm60Bgc" + compset = "IHist1PtClm60BgcRsGs" else: - compset = "I1PtClm60Bgc" + compset = "I1PtClm60BgcRsGs" # -- Looping over neon sites if neon_site_list: From 0ca3907e2e37fad2d28ffc6cf9045e5b4e561da1 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 16 Jul 2026 14:59:47 -0600 Subject: [PATCH 16/92] Change Clm50 compsets refererences to Clm60 compsets and update resolution and add double hyphens for create_newcase options as even though both are allowed, double hyphens is more likely to stay in place. Also remove a reference to CLM4.0 --- ...ined-single-point-regional-resolutions.rst | 2 +- .../Running-the-prognostic-crop-model.rst | 4 +- ...tmospheric-forcing-to-spinup-the-model.rst | 4 +- .../Running-with-excess-ground-ice.rst | 4 +- .../Running-with-irrigation.rst | 2 +- ...tmospheric-forcing-to-spinup-the-model.rst | 8 +- .../customizing-the-clm-namelist.rst | 389 ++++++++++++++++-- 7 files changed, 356 insertions(+), 57 deletions(-) diff --git a/doc/source/users_guide/running-single-points/predefined-single-point-regional-resolutions.rst b/doc/source/users_guide/running-single-points/predefined-single-point-regional-resolutions.rst index 207ec33481..75510a8506 100644 --- a/doc/source/users_guide/running-single-points/predefined-single-point-regional-resolutions.rst +++ b/doc/source/users_guide/running-single-points/predefined-single-point-regional-resolutions.rst @@ -15,7 +15,7 @@ To setup a ``PTS_MODE`` simulation you use the ``-pts_lat`` and ``-pts_lon`` arg :: > cd cime/scripts - > ./create_newcase -case testPTS_MODE -res f19_g17_gl4 -compset I1850Clm50BgcCropCru -pts_lat 40.0 -pts_lon -105 + > ./create_newcase --case testPTS_MODE --res f19_f19_mt232 --compset I1850Clm60BgcCrop --pts_lat 40.0 --pts_lon -105 > cd testPTS_MODE # We make sure the model will start up cold rather than using initial conditions diff --git a/doc/source/users_guide/running-special-cases/Running-the-prognostic-crop-model.rst b/doc/source/users_guide/running-special-cases/Running-the-prognostic-crop-model.rst index 56620b2fde..4b0897dec1 100644 --- a/doc/source/users_guide/running-special-cases/Running-the-prognostic-crop-model.rst +++ b/doc/source/users_guide/running-special-cases/Running-the-prognostic-crop-model.rst @@ -6,14 +6,14 @@ Running the prognostic crop model =================================== -The prognostic crop model is setup to work with CLM4.0, CLM4.5 or |version| with either BGC or CN (with or without DV). In order to use the initial condition file, we need to set the ``RUN_TYPE`` to startup rather than ``hybrid`` since the compset for f19 sets up to use an initial condition file without crop active. To activate the crop model you can choose a compset that has "Crop" in the name such as "I1850Clm50BgcCropCru" or simply add ``-crop`` to ``CLM_BLDNML_OPTS`` (or for CLM4.0 add ``-crop on`` to ``CLM_CONFIG_OPTS``). +The prognostic crop model is setup to work with CLM4.5, CLM5.0 or |version| with either BGC or CN (with or without DV). In order to use the initial condition file, we need to set the ``RUN_TYPE`` to startup rather than ``hybrid`` since the compset for f19 sets up to use an initial condition file without crop active. To activate the crop model you can choose a compset that has "Crop" in the name such as "I1850Clm60BgcCrop" or simply add ``-crop`` to ``CLM_BLDNML_OPTS`` Example: Crop Simulation ------------------------------------ :: > cd cime/scripts - > ./create_newcase -case CROP -res f19_g17_gl4 -compset I1850Clm50BgcCropCru + > ./create_newcase --case CROP --res f19_f19_mt232 --compset I1850Clm60BgcCrop > cd CROP > ./case.setup diff --git a/doc/source/users_guide/running-special-cases/Running-with-MOAR-data-as-atmospheric-forcing-to-spinup-the-model.rst b/doc/source/users_guide/running-special-cases/Running-with-MOAR-data-as-atmospheric-forcing-to-spinup-the-model.rst index 3cfc4cf46b..c0c801b36c 100644 --- a/doc/source/users_guide/running-special-cases/Running-with-MOAR-data-as-atmospheric-forcing-to-spinup-the-model.rst +++ b/doc/source/users_guide/running-special-cases/Running-with-MOAR-data-as-atmospheric-forcing-to-spinup-the-model.rst @@ -11,14 +11,14 @@ Because it takes so long to spinup the CN model (as we just saw previously), if you are doing fully coupled simulations with active atmosphere and ocean, you will want to do the spinup portion of this "offline". So instead of doing expensive fully coupled simulations for the spinup duration, you run CLM in a very cheap "I" compset using atmospheric forcing from a shorter fully coupled simulation (or a simulation run previously by someone else). -In this example we will use the ``I1850Clm50BgcSpinup compset`` to setup CLM to run with atmospheric forcing from a previous fully coupled simulation with data that is already stored on disk on derecho. There are several simulations that have high frequency data for which we can do this. You can also do this on a machine other than derecho, but would need to download the data from the Earth System Grid and change the datapath similar to Example :numref:`eg-sim-data-from-prev-sim`. +In this example we will use the ``I1850Clm60BgcCropSpinup compset`` to setup CLM to run with atmospheric forcing from a previous fully coupled simulation with data that is already stored on disk on derecho. There are several simulations that have high frequency data for which we can do this. You can also do this on a machine other than derecho, but would need to download the data from the Earth System Grid and change the datapath similar to Example :numref:`eg-sim-data-from-prev-sim`. Example: Simulation with MOAR Data on derecho ------------------------------------------------------------- :: > cd cime/scripts - > ./create_newcase -case MOARforce1850 -res f19_g17_gl4 -compset I1850Clm50BgcSpinup + > ./create_newcase --case MOARforce1850 --res f19_g17_gl4 --compset I1850Clm60BgcCropSpinup > cd MOARforce1850 # The following sets the casename to point to for atm forcing (you could also use an editor) > ./xmlchange DATM_CPLHIST_CASE=b40.1850.track1.1deg.006a diff --git a/doc/source/users_guide/running-special-cases/Running-with-excess-ground-ice.rst b/doc/source/users_guide/running-special-cases/Running-with-excess-ground-ice.rst index d0b29f8682..0ed6248974 100644 --- a/doc/source/users_guide/running-special-cases/Running-with-excess-ground-ice.rst +++ b/doc/source/users_guide/running-special-cases/Running-with-excess-ground-ice.rst @@ -26,8 +26,8 @@ Example: Crop Simulation :: > cd cime/scripts - > ./create_newcase -case I1850Clm50BgcCrop_with_exice -res f19_g17_gl4 -compset I1850Clm50BgcCrop - > cd I1850Clm50BgcCrop_with_exice + > ./create_newcase --case I1850Clm60BgcCrop_with_exice --res f19_f19_mt232 --compset I1850Clm60BgcCrop + > cd I1850Clm60BgcCrop_with_exice > ./case.setup diff --git a/doc/source/users_guide/running-special-cases/Running-with-irrigation.rst b/doc/source/users_guide/running-special-cases/Running-with-irrigation.rst index 5e9adb4b6a..630d375621 100644 --- a/doc/source/users_guide/running-special-cases/Running-with-irrigation.rst +++ b/doc/source/users_guide/running-special-cases/Running-with-irrigation.rst @@ -17,7 +17,7 @@ Example: Irrigation Simulation # Note here we do a CLMSP simulation as that is what has been validated > cd cime/scripts - > ./create_newcase -case IRRIG -res f19_g17_gl4 -compset I1850Clm50BgcCrop + > ./create_newcase --case IRRIG --res f19_f19_mt232 --compset I1850Clm60BgcCrop > cd IRRIG # Append "-irrig on" to CLM_BLDNML_OPTS in env_run.xml (you could also use an editor) diff --git a/doc/source/users_guide/running-special-cases/Running-with-your-own-previous-simulation-as-atmospheric-forcing-to-spinup-the-model.rst b/doc/source/users_guide/running-special-cases/Running-with-your-own-previous-simulation-as-atmospheric-forcing-to-spinup-the-model.rst index 94ad61c5e6..6975795477 100644 --- a/doc/source/users_guide/running-special-cases/Running-with-your-own-previous-simulation-as-atmospheric-forcing-to-spinup-the-model.rst +++ b/doc/source/users_guide/running-special-cases/Running-with-your-own-previous-simulation-as-atmospheric-forcing-to-spinup-the-model.rst @@ -45,7 +45,7 @@ Example: Simulation Forced with Data from the Previous Simulation :: > cd cime/scripts - > ./create_newcase -case frcwmyB1850 -res f09_g17_gl4 -compset I1850Clm50BgcSpinup + > ./create_newcase -case frcwmyB1850 -res f09_f09_mt232 -compset I1850Clm60BgcCropSpinup > cd frcWmyB1850 # The following sets the casename to point to for atm forcing (you could also use an editor) > ./xmlchange DATM_CPLHIST_CASE="myB1850" @@ -53,15 +53,15 @@ Example: Simulation Forced with Data from the Previous Simulation # (you could also use an editor) > ./xmlchange DATM_YR_ALIGN="1",DATM_YR_START=1,DATM_YR_END=20 # Set the strm_datdir in the namelist_defaults_datm.xml - # file to the archival path of the case above in the form of: /glade/home/achive/$USER/$DATM_CPLHIST_CASE/cpl/hist - # NOTE: THIS WILL CHANGE THE PATH FOR ALL I1850Clm50BgcSpinup COMPSET CASES MADE AFTER THIS! + # file to the archival path of the case above in the form of: /glade/home/archive/$USER/$DATM_CPLHIST_CASE/cpl/hist + # NOTE: THIS WILL CHANGE THE PATH FOR ALL I1850Clm60BgcCropSpinup COMPSET CASES MADE AFTER THIS! > $EDITOR ../../models/atm/datm/bld/namelist_files/namelist_defaults_datm.xml > ./case.setup # Now build and run as normal > ./case.build > ./case.submit -.. note:: We did this by editing the "namelist_defaults_datm.xml" which will change the settings for ALL future ``I1850Clm50BgcSpinup`` cases you run. You could also do this by editing the path in the resulting streams text files in the CaseDocs directory, and then create a "user\_" streams file with the correct path. This would change the streams file JUST for this case. The steps do it this way are: +.. note:: We did this by editing the "namelist_defaults_datm.xml" which will change the settings for ALL future ``I1850Clm60BgcCropSpinup`` cases you run. You could also do this by editing the path in the resulting streams text files in the CaseDocs directory, and then create a "user\_" streams file with the correct path. This would change the streams file JUST for this case. The steps do it this way are: :: diff --git a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst index 3cd6c3a8db..86da3a469a 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst @@ -36,56 +36,355 @@ Below we will give examples of user namelists that activate different commonly u The default namelist -------------------- -Here we give the default namelist as it would be created for an "I1850Clm50BgcCropCru" compset at 0.9x1.25 resolution with a gx1v7 land-mask on derecho. To edit the namelist you would edit the ``user_nl_clm`` user namelist with just the items you want to change. For simplicity we will just show the CLM namelist and NOT the entire file. In the sections below, for simplicity we will just show the user namelist (``user_nl_clm``) that will add (or modify existing) namelist items to the namelist. +Here we give the default namelist as it would be created for an "I1850Clm60BgcCrop" compset at 0.9x1.25 resolution with a t232 land-mask on derecho. To edit the namelist you would edit the ``user_nl_clm`` user namelist with just the items you want to change. For simplicity we remove the namelist groups that are empty or not relevant to this compset. In the sections below, for simplicity we will just show the user namelist (``user_nl_clm``) that will add (or modify existing) namelist items to the namelist. Example 1-2. Default CLM Namelist --------------------------------- +.. I copied the following file from the baseline for ctsm5.4.047 for the SMS_D_Ld5_PS.f09_f09_mt232.I1850Clm60BgcCrop.derecho_gnu.clm-f09_ObscureStreamOpts test. +.. As said above I removed the empty namelist groups and namelist groups that aren't relevant for this case. :: - &clm_inparm - albice = 0.60,0.40 - co2_ppmv = 284.7 - co2_type = 'constant' - create_crop_landunit = .false. - dtime = 1800 - fatmlndfrc = '/glade/p/cesm/cseg/inputdata/share/domains/domain.lnd.fv0.9x1.25_gx1v6.090309.nc' - finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/clmi.I1850Clm50BgcCropCru.0241-01-01.0.9x1.25_g1v6_simyr1850_c130531.nc' - fpftcon = '/glade/p/cesm/cseg/inputdata/lnd/clm2/pftdata/pft-physiology.c130503.nc' - fsnowaging = '/glade/p/cesm/cseg/inputdata/lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc' - fsnowoptics = '/glade/p/cesm/cseg/inputdata/lnd/clm2/snicardata/snicar_optics_5bnd_c090915.nc' - fsurdat = '/glade/p/cesm/cseg/inputdata/lnd/clm2/surfdata_map/surfdata_0.9x1.25_simyr1850_c130415.nc' - maxpatch_glc = 0 - more_vertlayers = .false. - nsegspc = 20 - spinup_state = 0 - urban_hac = 'ON' - urban_traffic = .false. - / - &ndepdyn_nml - ndepmapalgo = 'bilinear' - stream_fldfilename_ndep = '/glade/p/cesm/cseg/inputdata/lnd/clm2/ndepdata/fndep_clm_hist_simyr1849-2006_1.9x2.5_c100428.nc' - stream_year_first_ndep = 1850 - stream_year_last_ndep = 1850 - / - &popd_streams - popdensmapalgo = 'bilinear' - stream_fldfilename_popdens = '$DIN_LOC_ROOT/lnd/clm2/firedata/clmforc.Li_2012_hdm_0.5x0.5_AVHRR_simyr1850-2010_c130401.nc' - stream_year_first_popdens = 1850 - stream_year_last_popdens = 1850 - / - &light_streams - lightngmapalgo = 'bilinear' - stream_fldfilename_lightng = '/glade/p/cesm/cseg/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2012_climo1995-2011.T62.lnfm_c130327.nc' - stream_year_first_lightng = 0001 - stream_year_last_lightng = 0001 - / - &clm_hydrology1_inparm - / - &clm_soilhydrology_inparm - / - &ch4par_in - fin_use_fsat = .true. - / +&clm_inparm + albice = 0.50,0.30 + co2_ppmv = 284.7 + co2_type = 'constant' + collapse_urban = .false. + compname = 'clm2' + convert_ocean_to_land = .true. + create_crop_landunit = .true. + crop_residue_removal_frac = 0.5d00 + do_sno_oc = .false. + downscale_hillslope_meteorology = .true. + finidat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/initdata_esmf/ctsm5.4/clmi.f09_interp_from.ctsm5.4.CMIP7_ciso_ctsm5.3.075_f09_124_pSASU.clm2.r.0161_c251118.nc' + flush_gdd20 = .false. + for_testing_no_crop_seed_replenishment = .false. + for_testing_run_ncdiopio_tests = .false. + for_testing_use_repr_structure_pool = .false. + for_testing_use_second_grain_pool = .false. + fsnowaging = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc' + fsnowoptics = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_optics_5bnd_c013122.nc' + fsurdat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/surfdata_esmf/ctsm5.4.0/surfdata_0.9x1.25_hist_1850_78pfts_c251022.nc' + glc_do_dynglacier = .false. + glc_snow_persistence_max_days = 0 + h2osno_max = 10000.0 + hillslope_fsat_equals_zero = .false. + hist_dov2xy = .true.,.false. + hist_fields_list_file = .false. + hist_fincl1 = 'RC13_CANAIR','RC14_CANAIR','HDM','LNFM','TBUILD_MAX','P_AC','EXCESS_ICE','LND_MBL' + hist_fincl2 = 'TG', 'TBOT', 'FIRE', 'FIRA', 'FLDS', 'FSDS', 'FSR', 'FSA', 'FGEV', 'FSH', 'FGR', + 'TSOI', 'ERRSOI', 'SABV', 'SABG', 'FSDSVD', 'FSDSND', 'FSDSVI', 'FSDSNI', 'FSRVD', 'FSRND', 'FSRVI', + 'FSRNI', 'TSA', 'FCTR', 'FCEV', 'QBOT', 'RH2M', 'H2OSOI', 'H2OSNO', 'SOILLIQ', 'SOILICE', 'TSA_U', + 'TSA_R', 'TREFMNAV_U', 'TREFMNAV_R', 'TREFMXAV_U', 'TREFMXAV_R', 'TG_U', 'TG_R', 'RH2M_U', 'RH2M_R', 'QRUNOFF_U', 'QRUNOFF_R', + 'SoilAlpha_U', 'SWup', 'LWup', 'URBAN_AC', 'URBAN_HEAT' + hist_mfilt = 1,1 + hist_ndens = 1,1,1,1,1,1 + hist_nhtfrq = -24,-8 + hist_wrt_matrixcn_diag = .false. + irrigate = .false. + maxpatch_glc = 10 + n_dom_landunits = 0 + n_dom_pfts = 0 + nlevsno = 12 + nsegspc = 35 + o3_veg_stress_method = 'unset' + paramfile = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/ctsm60_params.c260518.nc' + run_zero_weight_urban = .false. + snicar_dust_optics = 'sahara' + snicar_numrad_snw = 5 + snicar_snobc_intmix = .true. + snicar_snodst_intmix = .false. + snicar_snw_shape = 'hexagonal_plate' + snicar_solarspec = 'mid_latitude_winter' + snicar_use_aerosol = .true. + snow_cover_fraction_method = 'SwensonLawrence2012' + snow_thermal_cond_glc_method = 'Sturm1997' + snow_thermal_cond_lake_method = 'Sturm1997' + snow_thermal_cond_method = 'Sturm1997' + soil_layerstruct_predefined = '20SL_8.5m' + spinup_state = 0 + suplnitro = 'NONE' + toosmall_crop = 0.d00 + toosmall_glacier = 0.d00 + toosmall_lake = 0.d00 + toosmall_soil = 0.d00 + toosmall_urban = 0.d00 + toosmall_wetland = 0.d00 + use_bedrock = .true. + use_c13 = .true. + use_c13_timeseries = .true. + use_c14 = .true. + use_c14_bombspike = .true. + use_cn = .true. + use_crop = .true. + use_excess_ice = .true. + use_fates = .false. + use_fertilizer = .true. + use_flexiblecn = .true. + use_fun = .true. + use_grainproduct = .true. + use_hillslope = .false. + use_hillslope_routing = .false. + use_hydrstress = .true. + use_lai_streams = .false. + use_lch4 = .true. + use_luna = .true. + use_matrixcn = .false. + use_nguardrail = .true. + use_nitrif_denitrif = .true. + use_nvmovement = .false. + use_snicar_frc = .false. + use_soil_matrixcn = .false. + use_soil_moisture_streams = .false. + use_ssre = .true. + use_subgrid_fluxes = .true. + use_z0m_snowmelt = .true. + z0param_method = 'Meier2022' +/ +&ndepdyn_nml + ndep_taxmode = 'cycle' + ndep_tintalgo = 'lower' + ndep_varlist = 'NDEP_month' + ndepmapalgo = 'redist' + stream_fldfilename_ndep = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc' + stream_meshfile_ndep = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc' + stream_year_first_ndep = 1850 + stream_year_last_ndep = 1850 +/ +&popd_streams + popdens_tintalgo = 'linear' + popdensmapalgo = 'consd' + stream_fldfilename_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2025_CMIP7_hdm_0.5x0.5_simyr1850-2025_c251013.nc' + stream_meshfile_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0_ESMFmesh_cdf5_100621.nc' + stream_year_first_popdens = 1850 + stream_year_last_popdens = 1850 +/ +&urbantv_streams + stream_fldfilename_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc' + stream_meshfile_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc' + stream_year_first_urbantv = 1850 + stream_year_last_urbantv = 1850 + urbantv_tintalgo = 'upper' + urbantvmapalgo = 'redist' +/ +&light_streams + lightng_tintalgo = 'nearest' + lightngmapalgo = 'consf' + stream_fldfilename_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_c160825.nc' + stream_meshfile_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720_ESMFmesh_cdf5_150621.nc' + stream_year_first_lightng = 0001 + stream_year_last_lightng = 0001 +/ +&atm2lnd_inparm + glcmec_downscale_longwave = .false. + lapse_rate = 0.006 + repartition_rain_snow = .true. +/ +&lnd2atm_inparm + melt_non_icesheet_ice_runoff = .true. +/ +&clm_canopyhydrology_inparm + use_clm5_fpi = .true. +/ +&cnphenology + generate_crop_gdds = .false. + initial_seed_at_planting = 3.d00 + min_critical_dayl_method = 'DependsOnLat' + onset_thresh_depends_on_veg = .true. + use_mxmat = .true. +/ +&cropcal_streams + cropcals_rx = .false. + cropcals_rx_adapt = .true. + model_year_align_cropcal_cultivar_gdds = 2000 + model_year_align_cropcal_swindows = 2000 + stream_fldfilename_cultivar_gdds = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/gdds_20230829_161011.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_gdd20_baseline = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/20230714_cropcals_pr2_1deg.actually2deg.1980-2009.from_GDDB20.interpd_halfdeg.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_swindow_end = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_ends_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_swindow_start = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_starts_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' + stream_gdd20_seasons = .false. + stream_meshfile_cropcal = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/360x720_120830_ESMFmesh_c20210507_cdf5.tweaked_latlons.no_nan_fill.nc' + stream_year_first_cropcal_cultivar_gdds = 2000 + stream_year_first_cropcal_swindows = 2000 + stream_year_last_cropcal_cultivar_gdds = 2000 + stream_year_last_cropcal_swindows = 2000 +/ +&cnvegcarbonstate + initial_vegc = 100.d00 +/ +&friction_velocity + zetamaxstable = 2.0d00 +/ +&mineral_nitrogen_dynamics + freelivfix_intercept = 0.0117d00 + freelivfix_slope_wet = 0.0006d00 +/ +&soilwater_movement_inparm + dtmin = 60. + expensive = 42 + flux_calculation = 1 + inexpensive = 1 + lower_boundary_condition = 2 + soilwater_movement_method = 1 + upper_boundary_condition = 1 + verysmall = 1.e-8 + xtolerlower = 1.e-2 + xtolerupper = 1.e-1 +/ +&rooting_profile_inparm + rooting_profile_method_carbon = 1 + rooting_profile_method_water = 1 +/ +&soil_resis_inparm + soil_resis_method = 1 +/ +&bgc_shared + constrain_stress_deciduous_onset = .true. +/ +&canopyfluxes_inparm + itmax_canopy_fluxes = 40 + use_biomass_heat_storage = .true. + use_undercanopy_stability = .false. +/ +&clmu_inparm + building_temp_method = 1 + urban_explicit_ac = .true. + urban_hac = 'ON_WASTEHEAT' + urban_traffic = .false. +/ +&clm_soilstate_inparm + organic_frac_squared = .false. +/ +&clm_nitrogen + carbon_resp_opt = 0 + cn_evergreen_phenology_opt = 1 + cnratio_floating = .true. + lnc_opt = .true. + mm_nuptake_opt = .true. + reduce_dayl_factor = .false. + vcmax_opt = 3 +/ +&clm_snowhydrology_inparm + lotmp_snowdensity_method = 'Slater2017' + reset_snow = .false. + reset_snow_glc = .false. + reset_snow_glc_ela = 1.e9 + snow_dzmax_l_1 = 0.03d00 + snow_dzmax_l_2 = 0.07d00 + snow_dzmax_u_1 = 0.02d00 + snow_dzmax_u_2 = 0.05d00 + snow_dzmin_1 = 0.010d00 + snow_dzmin_2 = 0.015d00 + snow_overburden_compaction_method = 'Vionnet2012' + wind_dependent_snow_density = .true. +/ +&cnprecision_inparm + cnegcrit = -6.d+1 + ncrit = 1.d-9 + nnegcrit = -6.d+0 +/ +&clm_glacier_behavior + glacier_region_behavior = 'single_at_atm_topo','UNSET','virtual','multiple' + glacier_region_ice_runoff_behavior = 'melted','UNSET','remains_ice','remains_ice' + glacier_region_melt_behavior = 'remains_in_place','UNSET','replaced_by_ice','replaced_by_ice' +/ +&crop_inparm + baset_latvary_intercept = 12.0d00 + baset_latvary_slope = 0.4d00 + baset_mapping = 'varytropicsbylat' +/ +&surfacealbedo_inparm + snowveg_affects_radiation = .true. +/ +&tillage_inparm + tillage_mode = 'low' +/ +&ch4par_in + finundation_method = 'TWS_inversion' + use_aereoxid_prog = .true. +/ +&clm_humanindex_inparm + calc_human_stress_indices = 'FAST' +/ +&cnmresp_inparm + br_root = 0.83d-06 +/ +&cnfun_inparm + nfix_method = 'Bytnerowicz' +/ +&photosyns_inparm + leafresp_method = 2 + light_inhibit = .true. + modifyphoto_and_lmr_forcrop = .true. + rootstem_acc = .false. + stomatalcond_method = 'Medlyn2011' +/ +&cnfire_inparm + fire_method = 'li2024crujra' +/ +&cn_general + dribble_crophrv_xsmrpool_2atm = .true. +/ +&lifire_inparm + boreal_peatfire_c = 0.58d-4 + borpeat_fire_soilmoist_denom = 0.3d00 + bt_max = 0.98d00 + bt_min = 0.85d00 + cli_scale = 0.03d00 + cmb_cmplt_fact_cwd = 0.28d00 + cmb_cmplt_fact_litter = 0.5d00 + cropfire_a1 = 0.34d00 + defo_fire_precip_thresh_bdt = 0.6d00 + defo_fire_precip_thresh_bet = 3.0d00 + lfuel = 75.d00 + max_rh30_affecting_fuel = 95. + non_boreal_peatfire_c = 0.75d-4 + nonborpeat_fire_precip_denom = 6.5d00 + occur_hi_gdp_tree = 0.33d00 + pot_hmn_ign_counts_alpha = 0.010d00 + rh_hgh = 85.0d00 + rh_low = 30.0d00 + ufuel = 825.d00 +/ +&ch4finundated + ch4finundatedmapalgo = 'redist' + stream_fldfilename_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1.25_c170706.nc' + stream_meshfile_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1_ESMFmesh_cdf5_130621.nc' +/ +&exice_streams + stream_fldfilename_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc' + stream_mapalgo_exice = 'nn' + stream_meshfile_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_cdf5_c20220802.nc' + use_excess_ice_streams = .true. +/ +&clm_temperature_inparm + excess_ice_coldstart_depth = 0.5 + excess_ice_coldstart_temp = -3.15 +/ +&soilbgc_decomp + soil_decomp_method = 'CENTURYKoven2013' +/ +&clm_canopy_inparm + leaf_mr_vcm = 0.015d00 +/ +&prigentroughness + prigentroughnessmapalgo = 'consf' + stream_fldfilename_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/Prigent_2005_roughness_0.25x0.25_cdf5_c260218.nc' + stream_meshfile_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/dust_0.25x0.25_ESMFmesh_cdf5_c240222.nc' + use_prigent_roughness = .true. +/ +&carbon_isotope_streams + stream_fldfilename_atm_c13 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C13_CMIP7_global_1700-2023_yearly_v3.0_c251013.nc' + stream_fldfilename_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C14_CMIP7_360x720_1700-2023_yearly_v3.0_tweaked_latlons_c260108.no_nan_fill.nc' + stream_meshfile_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/360x720_120830_ESMFmesh_tweaked_latlons_c20260108.nc' + stream_year_first_atm_c13 = 1850 + stream_year_first_atm_c14 = 1850 + stream_year_last_atm_c13 = 1850 + stream_year_last_atm_c14 = 1850 +/ +&scf_swenson_lawrence_2012_inparm + int_snow_max = 2000. + n_melt_glcmec = 1.0d00 +/ Adding/removing fields on your primary history file --------------------------------------------------- From 9e54d47b275813651ab61408fbce1750b76268a2 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 16 Jul 2026 16:06:17 -0600 Subject: [PATCH 17/92] Add a new Clm60 BgcCrop spinup compset for CPLHIST forcing that can be used for the CLM6.0 spinup simulations --- cime_config/config_compsets.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 5155197865..f61e2e0f2d 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -581,6 +581,11 @@ 1850_DATM%CPLHIST_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + + I1850Clm60BgcCropSpinup + 1850_DATM%CPLHIST_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + From 540b98183c183b2f7f2923a85abf96af17b7b8d7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 16 Jul 2026 16:28:28 -0600 Subject: [PATCH 18/92] Change the CPLHIST 1850 spinup compset to Clm60 --- cime_config/testdefs/testlist_clm.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 9605f1e336..7c8f58a5e1 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2549,7 +2549,7 @@ - + From 26977d03b49b20aa9b108e663a49073f65748763 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 11:06:50 -0600 Subject: [PATCH 19/92] Change Clm50 compsets to use DGLC, and make them consistently use Gs for stub-glacier, also remove the unused I2000Clm50SpRtm compset --- cime_config/config_compsets.xml | 38 +++++++++++---------------- cime_config/testdefs/testlist_clm.xml | 30 ++++++++++----------- 2 files changed, 31 insertions(+), 37 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index f61e2e0f2d..9c7f5c618c 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -76,12 +76,12 @@ I2000Clm50Sp - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - I2000Clm50SpRs + I2000Clm50SpRsGs 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV @@ -106,12 +106,6 @@ - - - I2000Clm50SpRtm - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM_SGLC_SWAV - - I2000Clm60SpMizGs @@ -126,23 +120,23 @@ I2010Clm50Sp - 2010_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + 2010_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm50BgcCru - 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm50BgcCropRtm - 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV I2000Clm50BgcCrop - 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -175,12 +169,12 @@ I1850Clm50Sp - 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm50SpCru - 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -199,11 +193,11 @@ I1850Clm50BgcCrop - 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - I1850Clm50BgcCropRs + I1850Clm50BgcCropRsGs 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV @@ -311,7 +305,7 @@ I2000Clm50SpRtmFl - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM%FLOOD_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM%FLOOD_DGLC%NOEVOLVE_SWAV @@ -590,26 +584,26 @@ - I2000Ctsm50NwpSpGswp + I2000Ctsm50NwpSpGswpGs 2000_DATM%GSWP3v1_CLM50%NWP-SP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpBgcCropGswp + I2000Ctsm50NwpBgcCropGswpGs 2000_DATM%GSWP3v1_CLM50%NWP-BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpSpNldas + I2000Ctsm50NwpSpNldasGs 2000_DATM%NLDAS2_CLM50%NWP-SP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpSpNldasRs + I2000Ctsm50NwpSpNldasRsGs 2000_DATM%NLDAS2_CLM50%NWP-SP_SICE_SOCN_SROF_SGLC_SWAV @@ -797,7 +791,7 @@ both purposes.) --> - I2000Ctsm50NwpSpAsRs + I2000Ctsm50NwpSpAsRsGs 2000_SATM_CLM50%NWP-SP_SICE_SOCN_SROF_SGLC_SWAV diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 7c8f58a5e1..de7a72fd60 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2211,7 +2211,7 @@ - + @@ -2221,7 +2221,7 @@ - + @@ -2231,7 +2231,7 @@ - + @@ -2242,7 +2242,7 @@ - + @@ -2252,7 +2252,7 @@ - + @@ -2262,7 +2262,7 @@ - + @@ -2273,7 +2273,7 @@ - + @@ -2294,7 +2294,7 @@ - + @@ -2369,7 +2369,7 @@ - + @@ -2380,7 +2380,7 @@ - + @@ -2887,7 +2887,7 @@ - + @@ -3127,7 +3127,7 @@ - + @@ -3136,7 +3136,7 @@ - + @@ -3176,7 +3176,7 @@ - + @@ -3400,7 +3400,7 @@ - + From f6fed610569603524fa582490e411fb519ec63f7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 11:28:07 -0600 Subject: [PATCH 20/92] Fix a few things to make sure Gs is in the compset name when needed and not when it shouldn't --- cime_config/config_compsets.xml | 4 ++-- cime_config/testdefs/ExpectedTestFails.xml | 2 +- cime_config/testdefs/testlist_clm.xml | 16 ++++++++-------- .../choosing-a-compset.rst | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 9c7f5c618c..146f7b72c2 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -108,13 +108,13 @@ - I2000Clm60SpMizGs + I2000Clm60SpMiz 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV - I2000Clm60SpMizGsNldas + I2000Clm60SpMizNldas 2000_DATM%NLDAS2_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index aca073dd5c..34f50ff140 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -135,7 +135,7 @@ - + FAIL #3798 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index de7a72fd60..4809f124d0 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3806,7 +3806,7 @@ - + @@ -3824,7 +3824,7 @@ - + @@ -3834,7 +3834,7 @@ - + @@ -3842,16 +3842,16 @@ - + - + - + @@ -4332,7 +4332,7 @@ - + @@ -4373,7 +4373,7 @@ - + diff --git a/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst b/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst index 56a965ed40..b052a6ea3d 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/choosing-a-compset.rst @@ -33,7 +33,7 @@ Both MOSART and RTM run on a default half degree grid, that is selected as part Compsets and grids with the mizuRoute ROF model ----------------------------------------------- -Compset aliases with "Miz" in the name use mizuRoute as the ROF model. For example, the compset alias I2000Clm60SpMizGs which is for present day with clm6_0 physics using Satellite Phenology with a stub glacier model. +Compset aliases with "Miz" in the name use mizuRoute as the ROF model. For example, the compset alias I2000Clm60SpMiz which is for present day with clm6_0 physics using Satellite Phenology. As mizuRoute is a ROF model grid alias for special grids for it include a "_r*" in the middle of the compset name (between the atmosphere/land grid and the ocean grid/mask). To get a list of the grid alises use the ``query_config`` command as follows: From 6e8e8dfd1aa476d2d82722390219406ef200660e Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 11:30:43 -0600 Subject: [PATCH 21/92] Update compset name, which isn't strictly needed, but just to make sure compsets are consistent throughout CTSM code --- python/ctsm/test/test_unit_run_sys_tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ctsm/test/test_unit_run_sys_tests.py b/python/ctsm/test/test_unit_run_sys_tests.py index ebe7af5fb9..0f454e5666 100755 --- a/python/ctsm/test/test_unit_run_sys_tests.py +++ b/python/ctsm/test/test_unit_run_sys_tests.py @@ -302,8 +302,8 @@ def test_getTestmodList_suite_unique(self): def test_getTestmodList_testname(self): """Ensure that _get_testmod_list() works correctly with full test name(s) specified""" testmod_list_input = [ - "ERS_D_Ld15.f45_f45_mg37.I2000Clm50FatesRs.izumi_nag.clm-crop", - "ERS_D_Ld15.f45_f45_mg37.I2000Clm50FatesRs.izumi_nag.clm-default", + "ERS_D_Ld15.f45_f45_mg37.I2000Clm60FatesRsGs.izumi_nag.clm-crop", + "ERS_D_Ld15.f45_f45_mg37.I2000Clm60FatesRsGs.izumi_nag.clm-default", ] target = ["clm-crop", "clm-default"] output = _get_testmod_list(testmod_list_input) From 3bcedb257c1213ec86a6f71b5c8e822283741f7d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 12:50:26 -0600 Subject: [PATCH 22/92] Fix #4129 remove izumi_nag tests from aux_cime_baselines testlist and move one of them to derecho_gnu --- cime_config/testdefs/testlist_clm.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 4809f124d0..e360d75bd2 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -8,7 +8,7 @@ ctsm_sci: Tests for all science supported compset/resolution configurations, plus all supported resolutions prelpha: Run before CESM alpha tags (subset of aux_clm tests) prebeta: Run before CESM beta tags (more extensive, but should have tests outside of prealpha) (subset of aux_clm tests) - aux_cime_baselines: CESM cime baselines (subset of aux_clm tests) + aux_cime_baselines: CESM cime baselines (subset of aux_clm tests) (these tests are run nightly with latest submodules on main machine) hillslope: Experimental test list used for the hillslope option of the model rxcropmaturity: Short tests to be run during development related to prescribed crop calendars matrixcn: Tests exercising the matrix-CN capability @@ -1470,7 +1470,6 @@ - @@ -3002,10 +3001,10 @@ + - From 5fa559c594c76dde626d473984b53361a334728d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 13:01:07 -0600 Subject: [PATCH 23/92] Fix a couple Fates compsets and tests --- cime_config/config_compsets.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 146f7b72c2..f2af07d578 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -294,11 +294,11 @@ I2000Clm50FatesQian - 2000_DATM%QIA_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%QIA_CLM50%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - I2000Clm50BgcCruRs + I2000Clm50BgcCruRsGs 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_SROF_SGLC_SWAV @@ -315,7 +315,7 @@ I2000Clm50Fates - 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I2000Clm50FatesCruRsGs @@ -337,7 +337,7 @@ I2000Clm50FatesCru - 2000_DATM%CRUv7_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + 2000_DATM%CRUv7_CLM50%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV From 20e0ffa8c458d60e1211b91e5aff7da6a63c58c8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 13:13:10 -0600 Subject: [PATCH 24/92] Remove the VIC compsets and mention of use_vichydro from the user_nl_clm files --- cime_config/config_component.xml | 7 ++----- cime_config/config_compsets.xml | 10 ---------- cime_config/user_nl_clm | 1 - .../usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm | 1 - .../usermods_dirs/clm/NEON/defaults/user_nl_clm | 1 - .../usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm | 1 - .../clm/_includes/output_base/user_nl_clm | 1 - .../clm/f09_37x288pt_PanBoreal/user_nl_clm | 1 - 8 files changed, 2 insertions(+), 21 deletions(-) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 366b504d3e..c98ace25db 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -13,12 +13,11 @@ - clm4.5: - clm5.0: + clm4.5: + clm5.0: clm6.0: Satellite phenology: - Satellite phenology with VIC hydrology: Satellite phenology without anthropomorphic influences BGC (vert. resol. CN and methane): BGC (vert. resol. CN and methane) with prognostic crop: @@ -282,12 +281,10 @@ Caveats: -bgc bgc -dynamic_vegetation -bgc bgc -dynamic_vegetation -crop - -bgc sp -vichydro -bgc bgc -dynamic_vegetation -bgc bgc -dynamic_vegetation -crop - -bgc sp -vichydro run_component_ctsm env_run.xml diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index f2af07d578..4bc159d1ee 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -679,16 +679,6 @@ HIST_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV - - - I2000Clm50Vic - 2000_DATM%GSWP3v1_CLM50%SP-VIC_SICE_SOCN_RTM_SGLC_SWAV - - - I2000Clm45VicCru - 2000_DATM%CRUv7_CLM45%SP-VIC_SICE_SOCN_RTM_SGLC_SWAV - - diff --git a/cime_config/user_nl_clm b/cime_config/user_nl_clm index 47865671a2..e0e06addc8 100644 --- a/cime_config/user_nl_clm +++ b/cime_config/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm index e49d110d51..3a2123f933 100644 --- a/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm index f0e7142990..b5b8ad83ea 100644 --- a/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm index 179184cd4f..448da363d6 100644 --- a/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm b/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm index 509e0436d3..3f0111a50a 100644 --- a/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm +++ b/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm b/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm index 025aa390e7..8c346b464d 100644 --- a/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm +++ b/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm @@ -4,7 +4,6 @@ ! ! EXCEPTIONS: ! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting From 8b80af9b62cc32804e0452d631273878697c999d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 13:13:44 -0600 Subject: [PATCH 25/92] Correct compset name so that the python sys tests will pass --- python/ctsm/lilac_build_ctsm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ctsm/lilac_build_ctsm.py b/python/ctsm/lilac_build_ctsm.py index 6137c636ce..93c403e507 100644 --- a/python/ctsm/lilac_build_ctsm.py +++ b/python/ctsm/lilac_build_ctsm.py @@ -26,7 +26,7 @@ # these are arbitrary, since we only use the case for its build, not any of the runtime # settings; they just need to be valid -_COMPSET = "I2000Ctsm50NwpSpAsRs" +_COMPSET = "I2000Ctsm50NwpSpAsRsGs" _RES = "f10_f10_mg37" _PATH_TO_TEMPLATES = os.path.join(path_to_ctsm_root(), "lilac", "bld_templates") From e4da34470f41167bc8f586580e1dd8284b93d2cb Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 13:24:45 -0600 Subject: [PATCH 26/92] Remove mention of VIC in the documentation --- .../tech_note/Introduction/CLM50_Tech_Note_Introduction.rst | 2 +- doc/source/users_guide/overview/getting-help.rst | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst index 8184cfbecc..0fd7a56b78 100644 --- a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst +++ b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst @@ -85,7 +85,7 @@ Specifically, several parameterizations were revised to reflect new scientific u The main modifications include updates to canopy processes including a revised canopy radiation scheme and canopy scaling of leaf processes, co-limitations on photosynthesis, revisions to photosynthetic parameters (:ref:`Bonan et al. 2011`), temperature acclimation of photosynthesis, and improved stability of the iterative solution in the photosynthesis and stomatal conductance model (:ref:`Sun et al. 2012`). Hydrology updates included modifications such that hydraulic properties of frozen soils are determined by liquid water content only rather than total water content and the introduction of an ice impedance function, and other corrections that increase the consistency between soil water state and water table position and allow for a perched water table above icy permafrost ground (:ref:`Swenson et al. 2012`). A new snow cover fraction parameterization is incorporated that reflects the hysteresis in fractional snow cover for a given snow depth between accumulation and melt phases (:ref:`Swenson and Lawrence, 2012`). The lake model in CLM4 was replaced with a completely revised and more realistic lake model (:ref:`Subin et al. 2012a`). A surface water store was introduced, replacing the wetland land unit and permitting prognostic wetland distribution modeling. The surface energy fluxes are calculated separately (:ref:`Swenson and Lawrence, 2012`) for snow-covered, water-covered, and snow/water-free portions of vegetated and crop land units, and snow-covered and snow-free portions of glacier land units. Globally constant river flow velocity is replaced with variable flow velocity based on mean grid cell slope. A vertically resolved soil biogeochemistry scheme is introduced with base decomposition rates modified by soil temperature, water, and oxygen limitations and also including vertical mixing of soil carbon and nitrogen due to bioturbation, cryoturbation, and diffusion (:ref:`Koven et al. 2013`). The litter and soil carbon and nitrogen pool structure as well as nitrification and denitrification that were modified based on the Century model. Biological fixation was revised to distribute fixation more realistically over the year (:ref:`Koven et al. 2013`). The fire model was replaced with a model that includes representations of natural and anthropogenic triggers and suppression as well as agricultural, deforestation, and peat fires (:ref:`Li et al. 2012a,b`; :ref:`Li et al. 2013a`). The biogenic volatile organic compounds model is updated to MEGAN2.1 (:ref:`Guenther et al. 2012`). -Additions to the model include a methane production, oxidation, and emissions model (:ref:`Riley et al. 2011a`) and an extension of the crop model to include interactive fertilization, organ pools (:ref:`Drewniak et al. 2013`), and irrigation (:ref:`Sacks et al. 2009`). Elements of the Variable Infiltration Capacity (VIC) model are included as an alternative optional runoff generation scheme (:ref:`Li et al. 2011`). There is also an option to run with a multilayer canopy (:ref:`Bonan et al. 2012`). Multiple urban density classes, rather than the single dominant urban density class used in CLM4, are modeled in the urban land unit. Carbon (:math:`{}^{13}`\ C and :math:`{}^{14}`\ C) isotopes are enabled (:ref:`Koven et al. 2013`). Minor changes include a switch of the C3 Arctic grass and shrub phenology from stress deciduous to seasonal deciduous and a change in the glacier bare ice albedo to better reflect recent estimates. Finally, the carbon and nitrogen cycle spinup is accelerated and streamlined with a revised spinup method, though the spinup timescale remains long. +Additions to the model include a methane production, oxidation, and emissions model (:ref:`Riley et al. 2011a`) and an extension of the crop model to include interactive fertilization, organ pools (:ref:`Drewniak et al. 2013`), and irrigation (:ref:`Sacks et al. 2009`). There is also an option to run with a multilayer canopy (:ref:`Bonan et al. 2012`). Multiple urban density classes, rather than the single dominant urban density class used in CLM4, are modeled in the urban land unit. Carbon (:math:`{}^{13}`\ C and :math:`{}^{14}`\ C) isotopes are enabled (:ref:`Koven et al. 2013`). Minor changes include a switch of the C3 Arctic grass and shrub phenology from stress deciduous to seasonal deciduous and a change in the glacier bare ice albedo to better reflect recent estimates. Finally, the carbon and nitrogen cycle spinup is accelerated and streamlined with a revised spinup method, though the spinup timescale remains long. Finally, the predominantly low resolution input data for provided with CLM4 to create CLM4 surface datasets is replaced with newer and higher resolution input datasets where possible (see section :numref:`Surface Data` for details). The default meteorological forcing dataset provided with CLM4 (:ref:`Qian et al. 2006)` is replaced with the 1901-2010 CRUNCEP forcing dataset (see Chapter :numref:`rst_Land-Only Mode`) for CLM4.5, though users can also still use the :ref:`Qian et al. (2006)` dataset or other alternative forcing datasets. diff --git a/doc/source/users_guide/overview/getting-help.rst b/doc/source/users_guide/overview/getting-help.rst index 439d764823..83b6b8688b 100644 --- a/doc/source/users_guide/overview/getting-help.rst +++ b/doc/source/users_guide/overview/getting-help.rst @@ -157,7 +157,4 @@ RTM SCRIP Spherical Coordinate Remapping and Interpolation Package (SCRIP). We use it's file format for specifying both grid coordinates as well as mapping between different grids. -VIC - Variable Infiltration Capacity (VIC) model for hydrology. This is an option to |version| in place of the standard |version| hydrology. The CLM_CONFIG_OPTS option for this is - ``./xmlchange CLM_CONFIG_OPTS="-vichydro on" -append`` From 389f76daf3e543c2c1a8a75ea39e37ce960fbf56 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 17 Jul 2026 13:45:50 -0600 Subject: [PATCH 27/92] Indent the namelist which is needed for the doc build to be happy --- .../customizing-the-clm-namelist.rst | 684 +++++++++--------- 1 file changed, 342 insertions(+), 342 deletions(-) diff --git a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst index 86da3a469a..fc989cd4f6 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-namelist.rst @@ -41,350 +41,350 @@ Here we give the default namelist as it would be created for an "I1850Clm60BgcCr Example 1-2. Default CLM Namelist --------------------------------- .. I copied the following file from the baseline for ctsm5.4.047 for the SMS_D_Ld5_PS.f09_f09_mt232.I1850Clm60BgcCrop.derecho_gnu.clm-f09_ObscureStreamOpts test. -.. As said above I removed the empty namelist groups and namelist groups that aren't relevant for this case. +.. As said above I removed the empty namelist groups and namelist groups that aren't relevant for this case. And then added leading spaces. :: -&clm_inparm - albice = 0.50,0.30 - co2_ppmv = 284.7 - co2_type = 'constant' - collapse_urban = .false. - compname = 'clm2' - convert_ocean_to_land = .true. - create_crop_landunit = .true. - crop_residue_removal_frac = 0.5d00 - do_sno_oc = .false. - downscale_hillslope_meteorology = .true. - finidat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/initdata_esmf/ctsm5.4/clmi.f09_interp_from.ctsm5.4.CMIP7_ciso_ctsm5.3.075_f09_124_pSASU.clm2.r.0161_c251118.nc' - flush_gdd20 = .false. - for_testing_no_crop_seed_replenishment = .false. - for_testing_run_ncdiopio_tests = .false. - for_testing_use_repr_structure_pool = .false. - for_testing_use_second_grain_pool = .false. - fsnowaging = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc' - fsnowoptics = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_optics_5bnd_c013122.nc' - fsurdat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/surfdata_esmf/ctsm5.4.0/surfdata_0.9x1.25_hist_1850_78pfts_c251022.nc' - glc_do_dynglacier = .false. - glc_snow_persistence_max_days = 0 - h2osno_max = 10000.0 - hillslope_fsat_equals_zero = .false. - hist_dov2xy = .true.,.false. - hist_fields_list_file = .false. - hist_fincl1 = 'RC13_CANAIR','RC14_CANAIR','HDM','LNFM','TBUILD_MAX','P_AC','EXCESS_ICE','LND_MBL' - hist_fincl2 = 'TG', 'TBOT', 'FIRE', 'FIRA', 'FLDS', 'FSDS', 'FSR', 'FSA', 'FGEV', 'FSH', 'FGR', - 'TSOI', 'ERRSOI', 'SABV', 'SABG', 'FSDSVD', 'FSDSND', 'FSDSVI', 'FSDSNI', 'FSRVD', 'FSRND', 'FSRVI', - 'FSRNI', 'TSA', 'FCTR', 'FCEV', 'QBOT', 'RH2M', 'H2OSOI', 'H2OSNO', 'SOILLIQ', 'SOILICE', 'TSA_U', - 'TSA_R', 'TREFMNAV_U', 'TREFMNAV_R', 'TREFMXAV_U', 'TREFMXAV_R', 'TG_U', 'TG_R', 'RH2M_U', 'RH2M_R', 'QRUNOFF_U', 'QRUNOFF_R', - 'SoilAlpha_U', 'SWup', 'LWup', 'URBAN_AC', 'URBAN_HEAT' - hist_mfilt = 1,1 - hist_ndens = 1,1,1,1,1,1 - hist_nhtfrq = -24,-8 - hist_wrt_matrixcn_diag = .false. - irrigate = .false. - maxpatch_glc = 10 - n_dom_landunits = 0 - n_dom_pfts = 0 - nlevsno = 12 - nsegspc = 35 - o3_veg_stress_method = 'unset' - paramfile = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/ctsm60_params.c260518.nc' - run_zero_weight_urban = .false. - snicar_dust_optics = 'sahara' - snicar_numrad_snw = 5 - snicar_snobc_intmix = .true. - snicar_snodst_intmix = .false. - snicar_snw_shape = 'hexagonal_plate' - snicar_solarspec = 'mid_latitude_winter' - snicar_use_aerosol = .true. - snow_cover_fraction_method = 'SwensonLawrence2012' - snow_thermal_cond_glc_method = 'Sturm1997' - snow_thermal_cond_lake_method = 'Sturm1997' - snow_thermal_cond_method = 'Sturm1997' - soil_layerstruct_predefined = '20SL_8.5m' - spinup_state = 0 - suplnitro = 'NONE' - toosmall_crop = 0.d00 - toosmall_glacier = 0.d00 - toosmall_lake = 0.d00 - toosmall_soil = 0.d00 - toosmall_urban = 0.d00 - toosmall_wetland = 0.d00 - use_bedrock = .true. - use_c13 = .true. - use_c13_timeseries = .true. - use_c14 = .true. - use_c14_bombspike = .true. - use_cn = .true. - use_crop = .true. - use_excess_ice = .true. - use_fates = .false. - use_fertilizer = .true. - use_flexiblecn = .true. - use_fun = .true. - use_grainproduct = .true. - use_hillslope = .false. - use_hillslope_routing = .false. - use_hydrstress = .true. - use_lai_streams = .false. - use_lch4 = .true. - use_luna = .true. - use_matrixcn = .false. - use_nguardrail = .true. - use_nitrif_denitrif = .true. - use_nvmovement = .false. - use_snicar_frc = .false. - use_soil_matrixcn = .false. - use_soil_moisture_streams = .false. - use_ssre = .true. - use_subgrid_fluxes = .true. - use_z0m_snowmelt = .true. - z0param_method = 'Meier2022' -/ -&ndepdyn_nml - ndep_taxmode = 'cycle' - ndep_tintalgo = 'lower' - ndep_varlist = 'NDEP_month' - ndepmapalgo = 'redist' - stream_fldfilename_ndep = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc' - stream_meshfile_ndep = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc' - stream_year_first_ndep = 1850 - stream_year_last_ndep = 1850 -/ -&popd_streams - popdens_tintalgo = 'linear' - popdensmapalgo = 'consd' - stream_fldfilename_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2025_CMIP7_hdm_0.5x0.5_simyr1850-2025_c251013.nc' - stream_meshfile_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0_ESMFmesh_cdf5_100621.nc' - stream_year_first_popdens = 1850 - stream_year_last_popdens = 1850 -/ -&urbantv_streams - stream_fldfilename_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc' - stream_meshfile_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc' - stream_year_first_urbantv = 1850 - stream_year_last_urbantv = 1850 - urbantv_tintalgo = 'upper' - urbantvmapalgo = 'redist' -/ -&light_streams - lightng_tintalgo = 'nearest' - lightngmapalgo = 'consf' - stream_fldfilename_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_c160825.nc' - stream_meshfile_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720_ESMFmesh_cdf5_150621.nc' - stream_year_first_lightng = 0001 - stream_year_last_lightng = 0001 -/ -&atm2lnd_inparm - glcmec_downscale_longwave = .false. - lapse_rate = 0.006 - repartition_rain_snow = .true. -/ -&lnd2atm_inparm - melt_non_icesheet_ice_runoff = .true. -/ -&clm_canopyhydrology_inparm - use_clm5_fpi = .true. -/ -&cnphenology - generate_crop_gdds = .false. - initial_seed_at_planting = 3.d00 - min_critical_dayl_method = 'DependsOnLat' - onset_thresh_depends_on_veg = .true. - use_mxmat = .true. -/ -&cropcal_streams - cropcals_rx = .false. - cropcals_rx_adapt = .true. - model_year_align_cropcal_cultivar_gdds = 2000 - model_year_align_cropcal_swindows = 2000 - stream_fldfilename_cultivar_gdds = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/gdds_20230829_161011.tweaked_latlons.no_nan_fill.nc' - stream_fldfilename_gdd20_baseline = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/20230714_cropcals_pr2_1deg.actually2deg.1980-2009.from_GDDB20.interpd_halfdeg.tweaked_latlons.no_nan_fill.nc' - stream_fldfilename_swindow_end = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_ends_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' - stream_fldfilename_swindow_start = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_starts_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' - stream_gdd20_seasons = .false. - stream_meshfile_cropcal = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/360x720_120830_ESMFmesh_c20210507_cdf5.tweaked_latlons.no_nan_fill.nc' - stream_year_first_cropcal_cultivar_gdds = 2000 - stream_year_first_cropcal_swindows = 2000 - stream_year_last_cropcal_cultivar_gdds = 2000 - stream_year_last_cropcal_swindows = 2000 -/ -&cnvegcarbonstate - initial_vegc = 100.d00 -/ -&friction_velocity - zetamaxstable = 2.0d00 -/ -&mineral_nitrogen_dynamics - freelivfix_intercept = 0.0117d00 - freelivfix_slope_wet = 0.0006d00 -/ -&soilwater_movement_inparm - dtmin = 60. - expensive = 42 - flux_calculation = 1 - inexpensive = 1 - lower_boundary_condition = 2 - soilwater_movement_method = 1 - upper_boundary_condition = 1 - verysmall = 1.e-8 - xtolerlower = 1.e-2 - xtolerupper = 1.e-1 -/ -&rooting_profile_inparm - rooting_profile_method_carbon = 1 - rooting_profile_method_water = 1 -/ -&soil_resis_inparm - soil_resis_method = 1 -/ -&bgc_shared - constrain_stress_deciduous_onset = .true. -/ -&canopyfluxes_inparm - itmax_canopy_fluxes = 40 - use_biomass_heat_storage = .true. - use_undercanopy_stability = .false. -/ -&clmu_inparm - building_temp_method = 1 - urban_explicit_ac = .true. - urban_hac = 'ON_WASTEHEAT' - urban_traffic = .false. -/ -&clm_soilstate_inparm - organic_frac_squared = .false. -/ -&clm_nitrogen - carbon_resp_opt = 0 - cn_evergreen_phenology_opt = 1 - cnratio_floating = .true. - lnc_opt = .true. - mm_nuptake_opt = .true. - reduce_dayl_factor = .false. - vcmax_opt = 3 -/ -&clm_snowhydrology_inparm - lotmp_snowdensity_method = 'Slater2017' - reset_snow = .false. - reset_snow_glc = .false. - reset_snow_glc_ela = 1.e9 - snow_dzmax_l_1 = 0.03d00 - snow_dzmax_l_2 = 0.07d00 - snow_dzmax_u_1 = 0.02d00 - snow_dzmax_u_2 = 0.05d00 - snow_dzmin_1 = 0.010d00 - snow_dzmin_2 = 0.015d00 - snow_overburden_compaction_method = 'Vionnet2012' - wind_dependent_snow_density = .true. -/ -&cnprecision_inparm - cnegcrit = -6.d+1 - ncrit = 1.d-9 - nnegcrit = -6.d+0 -/ -&clm_glacier_behavior - glacier_region_behavior = 'single_at_atm_topo','UNSET','virtual','multiple' - glacier_region_ice_runoff_behavior = 'melted','UNSET','remains_ice','remains_ice' - glacier_region_melt_behavior = 'remains_in_place','UNSET','replaced_by_ice','replaced_by_ice' -/ -&crop_inparm - baset_latvary_intercept = 12.0d00 - baset_latvary_slope = 0.4d00 - baset_mapping = 'varytropicsbylat' -/ -&surfacealbedo_inparm - snowveg_affects_radiation = .true. -/ -&tillage_inparm - tillage_mode = 'low' -/ -&ch4par_in - finundation_method = 'TWS_inversion' - use_aereoxid_prog = .true. -/ -&clm_humanindex_inparm - calc_human_stress_indices = 'FAST' -/ -&cnmresp_inparm - br_root = 0.83d-06 -/ -&cnfun_inparm - nfix_method = 'Bytnerowicz' -/ -&photosyns_inparm - leafresp_method = 2 - light_inhibit = .true. - modifyphoto_and_lmr_forcrop = .true. - rootstem_acc = .false. - stomatalcond_method = 'Medlyn2011' -/ -&cnfire_inparm - fire_method = 'li2024crujra' -/ -&cn_general - dribble_crophrv_xsmrpool_2atm = .true. -/ -&lifire_inparm - boreal_peatfire_c = 0.58d-4 - borpeat_fire_soilmoist_denom = 0.3d00 - bt_max = 0.98d00 - bt_min = 0.85d00 - cli_scale = 0.03d00 - cmb_cmplt_fact_cwd = 0.28d00 - cmb_cmplt_fact_litter = 0.5d00 - cropfire_a1 = 0.34d00 - defo_fire_precip_thresh_bdt = 0.6d00 - defo_fire_precip_thresh_bet = 3.0d00 - lfuel = 75.d00 - max_rh30_affecting_fuel = 95. - non_boreal_peatfire_c = 0.75d-4 - nonborpeat_fire_precip_denom = 6.5d00 - occur_hi_gdp_tree = 0.33d00 - pot_hmn_ign_counts_alpha = 0.010d00 - rh_hgh = 85.0d00 - rh_low = 30.0d00 - ufuel = 825.d00 -/ -&ch4finundated - ch4finundatedmapalgo = 'redist' - stream_fldfilename_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1.25_c170706.nc' - stream_meshfile_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1_ESMFmesh_cdf5_130621.nc' -/ -&exice_streams - stream_fldfilename_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc' - stream_mapalgo_exice = 'nn' - stream_meshfile_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_cdf5_c20220802.nc' - use_excess_ice_streams = .true. -/ -&clm_temperature_inparm - excess_ice_coldstart_depth = 0.5 - excess_ice_coldstart_temp = -3.15 -/ -&soilbgc_decomp - soil_decomp_method = 'CENTURYKoven2013' -/ -&clm_canopy_inparm - leaf_mr_vcm = 0.015d00 -/ -&prigentroughness - prigentroughnessmapalgo = 'consf' - stream_fldfilename_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/Prigent_2005_roughness_0.25x0.25_cdf5_c260218.nc' - stream_meshfile_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/dust_0.25x0.25_ESMFmesh_cdf5_c240222.nc' - use_prigent_roughness = .true. -/ -&carbon_isotope_streams - stream_fldfilename_atm_c13 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C13_CMIP7_global_1700-2023_yearly_v3.0_c251013.nc' - stream_fldfilename_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C14_CMIP7_360x720_1700-2023_yearly_v3.0_tweaked_latlons_c260108.no_nan_fill.nc' - stream_meshfile_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/360x720_120830_ESMFmesh_tweaked_latlons_c20260108.nc' - stream_year_first_atm_c13 = 1850 - stream_year_first_atm_c14 = 1850 - stream_year_last_atm_c13 = 1850 - stream_year_last_atm_c14 = 1850 -/ -&scf_swenson_lawrence_2012_inparm - int_snow_max = 2000. - n_melt_glcmec = 1.0d00 -/ + &clm_inparm + albice = 0.50,0.30 + co2_ppmv = 284.7 + co2_type = 'constant' + collapse_urban = .false. + compname = 'clm2' + convert_ocean_to_land = .true. + create_crop_landunit = .true. + crop_residue_removal_frac = 0.5d00 + do_sno_oc = .false. + downscale_hillslope_meteorology = .true. + finidat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/initdata_esmf/ctsm5.4/clmi.f09_interp_from.ctsm5.4.CMIP7_ciso_ctsm5.3.075_f09_124_pSASU.clm2.r.0161_c251118.nc' + flush_gdd20 = .false. + for_testing_no_crop_seed_replenishment = .false. + for_testing_run_ncdiopio_tests = .false. + for_testing_use_repr_structure_pool = .false. + for_testing_use_second_grain_pool = .false. + fsnowaging = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc' + fsnowoptics = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/snicardata/snicar_optics_5bnd_c013122.nc' + fsurdat = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/surfdata_esmf/ctsm5.4.0/surfdata_0.9x1.25_hist_1850_78pfts_c251022.nc' + glc_do_dynglacier = .false. + glc_snow_persistence_max_days = 0 + h2osno_max = 10000.0 + hillslope_fsat_equals_zero = .false. + hist_dov2xy = .true.,.false. + hist_fields_list_file = .false. + hist_fincl1 = 'RC13_CANAIR','RC14_CANAIR','HDM','LNFM','TBUILD_MAX','P_AC','EXCESS_ICE','LND_MBL' + hist_fincl2 = 'TG', 'TBOT', 'FIRE', 'FIRA', 'FLDS', 'FSDS', 'FSR', 'FSA', 'FGEV', 'FSH', 'FGR', + 'TSOI', 'ERRSOI', 'SABV', 'SABG', 'FSDSVD', 'FSDSND', 'FSDSVI', 'FSDSNI', 'FSRVD', 'FSRND', 'FSRVI', + 'FSRNI', 'TSA', 'FCTR', 'FCEV', 'QBOT', 'RH2M', 'H2OSOI', 'H2OSNO', 'SOILLIQ', 'SOILICE', 'TSA_U', + 'TSA_R', 'TREFMNAV_U', 'TREFMNAV_R', 'TREFMXAV_U', 'TREFMXAV_R', 'TG_U', 'TG_R', 'RH2M_U', 'RH2M_R', 'QRUNOFF_U', 'QRUNOFF_R', + 'SoilAlpha_U', 'SWup', 'LWup', 'URBAN_AC', 'URBAN_HEAT' + hist_mfilt = 1,1 + hist_ndens = 1,1,1,1,1,1 + hist_nhtfrq = -24,-8 + hist_wrt_matrixcn_diag = .false. + irrigate = .false. + maxpatch_glc = 10 + n_dom_landunits = 0 + n_dom_pfts = 0 + nlevsno = 12 + nsegspc = 35 + o3_veg_stress_method = 'unset' + paramfile = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/ctsm60_params.c260518.nc' + run_zero_weight_urban = .false. + snicar_dust_optics = 'sahara' + snicar_numrad_snw = 5 + snicar_snobc_intmix = .true. + snicar_snodst_intmix = .false. + snicar_snw_shape = 'hexagonal_plate' + snicar_solarspec = 'mid_latitude_winter' + snicar_use_aerosol = .true. + snow_cover_fraction_method = 'SwensonLawrence2012' + snow_thermal_cond_glc_method = 'Sturm1997' + snow_thermal_cond_lake_method = 'Sturm1997' + snow_thermal_cond_method = 'Sturm1997' + soil_layerstruct_predefined = '20SL_8.5m' + spinup_state = 0 + suplnitro = 'NONE' + toosmall_crop = 0.d00 + toosmall_glacier = 0.d00 + toosmall_lake = 0.d00 + toosmall_soil = 0.d00 + toosmall_urban = 0.d00 + toosmall_wetland = 0.d00 + use_bedrock = .true. + use_c13 = .true. + use_c13_timeseries = .true. + use_c14 = .true. + use_c14_bombspike = .true. + use_cn = .true. + use_crop = .true. + use_excess_ice = .true. + use_fates = .false. + use_fertilizer = .true. + use_flexiblecn = .true. + use_fun = .true. + use_grainproduct = .true. + use_hillslope = .false. + use_hillslope_routing = .false. + use_hydrstress = .true. + use_lai_streams = .false. + use_lch4 = .true. + use_luna = .true. + use_matrixcn = .false. + use_nguardrail = .true. + use_nitrif_denitrif = .true. + use_nvmovement = .false. + use_snicar_frc = .false. + use_soil_matrixcn = .false. + use_soil_moisture_streams = .false. + use_ssre = .true. + use_subgrid_fluxes = .true. + use_z0m_snowmelt = .true. + z0param_method = 'Meier2022' + / + &ndepdyn_nml + ndep_taxmode = 'cycle' + ndep_tintalgo = 'lower' + ndep_varlist = 'NDEP_month' + ndepmapalgo = 'redist' + stream_fldfilename_ndep = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc' + stream_meshfile_ndep = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc' + stream_year_first_ndep = 1850 + stream_year_last_ndep = 1850 + / + &popd_streams + popdens_tintalgo = 'linear' + popdensmapalgo = 'consd' + stream_fldfilename_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2025_CMIP7_hdm_0.5x0.5_simyr1850-2025_c251013.nc' + stream_meshfile_popdens = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0_ESMFmesh_cdf5_100621.nc' + stream_year_first_popdens = 1850 + stream_year_last_popdens = 1850 + / + &urbantv_streams + stream_fldfilename_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc' + stream_meshfile_urbantv = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc' + stream_year_first_urbantv = 1850 + stream_year_last_urbantv = 1850 + urbantv_tintalgo = 'upper' + urbantvmapalgo = 'redist' + / + &light_streams + lightng_tintalgo = 'nearest' + lightngmapalgo = 'consf' + stream_fldfilename_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_c160825.nc' + stream_meshfile_lightng = '/glade/campaign/cesm/cesmdata/inputdata/atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720_ESMFmesh_cdf5_150621.nc' + stream_year_first_lightng = 0001 + stream_year_last_lightng = 0001 + / + &atm2lnd_inparm + glcmec_downscale_longwave = .false. + lapse_rate = 0.006 + repartition_rain_snow = .true. + / + &lnd2atm_inparm + melt_non_icesheet_ice_runoff = .true. + / + &clm_canopyhydrology_inparm + use_clm5_fpi = .true. + / + &cnphenology + generate_crop_gdds = .false. + initial_seed_at_planting = 3.d00 + min_critical_dayl_method = 'DependsOnLat' + onset_thresh_depends_on_veg = .true. + use_mxmat = .true. + / + &cropcal_streams + cropcals_rx = .false. + cropcals_rx_adapt = .true. + model_year_align_cropcal_cultivar_gdds = 2000 + model_year_align_cropcal_swindows = 2000 + stream_fldfilename_cultivar_gdds = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/gdds_20230829_161011.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_gdd20_baseline = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/20230714_cropcals_pr2_1deg.actually2deg.1980-2009.from_GDDB20.interpd_halfdeg.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_swindow_end = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_ends_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' + stream_fldfilename_swindow_start = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/swindow_starts_ggcmi_crop_calendar_phase3_v1.01.2000-2000.20231005_145103.tweaked_latlons.no_nan_fill.nc' + stream_gdd20_seasons = .false. + stream_meshfile_cropcal = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/cropdata/calendars/processed/360x720_120830_ESMFmesh_c20210507_cdf5.tweaked_latlons.no_nan_fill.nc' + stream_year_first_cropcal_cultivar_gdds = 2000 + stream_year_first_cropcal_swindows = 2000 + stream_year_last_cropcal_cultivar_gdds = 2000 + stream_year_last_cropcal_swindows = 2000 + / + &cnvegcarbonstate + initial_vegc = 100.d00 + / + &friction_velocity + zetamaxstable = 2.0d00 + / + &mineral_nitrogen_dynamics + freelivfix_intercept = 0.0117d00 + freelivfix_slope_wet = 0.0006d00 + / + &soilwater_movement_inparm + dtmin = 60. + expensive = 42 + flux_calculation = 1 + inexpensive = 1 + lower_boundary_condition = 2 + soilwater_movement_method = 1 + upper_boundary_condition = 1 + verysmall = 1.e-8 + xtolerlower = 1.e-2 + xtolerupper = 1.e-1 + / + &rooting_profile_inparm + rooting_profile_method_carbon = 1 + rooting_profile_method_water = 1 + / + &soil_resis_inparm + soil_resis_method = 1 + / + &bgc_shared + constrain_stress_deciduous_onset = .true. + / + &canopyfluxes_inparm + itmax_canopy_fluxes = 40 + use_biomass_heat_storage = .true. + use_undercanopy_stability = .false. + / + &clmu_inparm + building_temp_method = 1 + urban_explicit_ac = .true. + urban_hac = 'ON_WASTEHEAT' + urban_traffic = .false. + / + &clm_soilstate_inparm + organic_frac_squared = .false. + / + &clm_nitrogen + carbon_resp_opt = 0 + cn_evergreen_phenology_opt = 1 + cnratio_floating = .true. + lnc_opt = .true. + mm_nuptake_opt = .true. + reduce_dayl_factor = .false. + vcmax_opt = 3 + / + &clm_snowhydrology_inparm + lotmp_snowdensity_method = 'Slater2017' + reset_snow = .false. + reset_snow_glc = .false. + reset_snow_glc_ela = 1.e9 + snow_dzmax_l_1 = 0.03d00 + snow_dzmax_l_2 = 0.07d00 + snow_dzmax_u_1 = 0.02d00 + snow_dzmax_u_2 = 0.05d00 + snow_dzmin_1 = 0.010d00 + snow_dzmin_2 = 0.015d00 + snow_overburden_compaction_method = 'Vionnet2012' + wind_dependent_snow_density = .true. + / + &cnprecision_inparm + cnegcrit = -6.d+1 + ncrit = 1.d-9 + nnegcrit = -6.d+0 + / + &clm_glacier_behavior + glacier_region_behavior = 'single_at_atm_topo','UNSET','virtual','multiple' + glacier_region_ice_runoff_behavior = 'melted','UNSET','remains_ice','remains_ice' + glacier_region_melt_behavior = 'remains_in_place','UNSET','replaced_by_ice','replaced_by_ice' + / + &crop_inparm + baset_latvary_intercept = 12.0d00 + baset_latvary_slope = 0.4d00 + baset_mapping = 'varytropicsbylat' + / + &surfacealbedo_inparm + snowveg_affects_radiation = .true. + / + &tillage_inparm + tillage_mode = 'low' + / + &ch4par_in + finundation_method = 'TWS_inversion' + use_aereoxid_prog = .true. + / + &clm_humanindex_inparm + calc_human_stress_indices = 'FAST' + / + &cnmresp_inparm + br_root = 0.83d-06 + / + &cnfun_inparm + nfix_method = 'Bytnerowicz' + / + &photosyns_inparm + leafresp_method = 2 + light_inhibit = .true. + modifyphoto_and_lmr_forcrop = .true. + rootstem_acc = .false. + stomatalcond_method = 'Medlyn2011' + / + &cnfire_inparm + fire_method = 'li2024crujra' + / + &cn_general + dribble_crophrv_xsmrpool_2atm = .true. + / + &lifire_inparm + boreal_peatfire_c = 0.58d-4 + borpeat_fire_soilmoist_denom = 0.3d00 + bt_max = 0.98d00 + bt_min = 0.85d00 + cli_scale = 0.03d00 + cmb_cmplt_fact_cwd = 0.28d00 + cmb_cmplt_fact_litter = 0.5d00 + cropfire_a1 = 0.34d00 + defo_fire_precip_thresh_bdt = 0.6d00 + defo_fire_precip_thresh_bet = 3.0d00 + lfuel = 75.d00 + max_rh30_affecting_fuel = 95. + non_boreal_peatfire_c = 0.75d-4 + nonborpeat_fire_precip_denom = 6.5d00 + occur_hi_gdp_tree = 0.33d00 + pot_hmn_ign_counts_alpha = 0.010d00 + rh_hgh = 85.0d00 + rh_low = 30.0d00 + ufuel = 825.d00 + / + &ch4finundated + ch4finundatedmapalgo = 'redist' + stream_fldfilename_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1.25_c170706.nc' + stream_meshfile_ch4finundated = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/finundated_inversiondata_0.9x1_ESMFmesh_cdf5_130621.nc' + / + &exice_streams + stream_fldfilename_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc' + stream_mapalgo_exice = 'nn' + stream_meshfile_exice = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_cdf5_c20220802.nc' + use_excess_ice_streams = .true. + / + &clm_temperature_inparm + excess_ice_coldstart_depth = 0.5 + excess_ice_coldstart_temp = -3.15 + / + &soilbgc_decomp + soil_decomp_method = 'CENTURYKoven2013' + / + &clm_canopy_inparm + leaf_mr_vcm = 0.015d00 + / + &prigentroughness + prigentroughnessmapalgo = 'consf' + stream_fldfilename_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/Prigent_2005_roughness_0.25x0.25_cdf5_c260218.nc' + stream_meshfile_prigentroughness = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/dust_0.25x0.25_ESMFmesh_cdf5_c240222.nc' + use_prigent_roughness = .true. + / + &carbon_isotope_streams + stream_fldfilename_atm_c13 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C13_CMIP7_global_1700-2023_yearly_v3.0_c251013.nc' + stream_fldfilename_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/isotopes/ctsmforc.Graven.atm_delta_C14_CMIP7_360x720_1700-2023_yearly_v3.0_tweaked_latlons_c260108.no_nan_fill.nc' + stream_meshfile_atm_c14 = '/glade/campaign/cesm/cesmdata/inputdata/share/meshes/360x720_120830_ESMFmesh_tweaked_latlons_c20260108.nc' + stream_year_first_atm_c13 = 1850 + stream_year_first_atm_c14 = 1850 + stream_year_last_atm_c13 = 1850 + stream_year_last_atm_c14 = 1850 + / + &scf_swenson_lawrence_2012_inparm + int_snow_max = 2000. + n_melt_glcmec = 1.0d00 + / Adding/removing fields on your primary history file --------------------------------------------------- From 7bc975f09aa6b4eddeb8260cb30c98745eece202 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 20 Jul 2026 16:38:46 -0600 Subject: [PATCH 28/92] Remove instances of BGCDV and use_cndv in compsets and tests --- cime_config/config_component.xml | 13 ++----------- cime_config/config_compsets.xml | 15 --------------- cime_config/testdefs/testlist_clm.xml | 10 ---------- cime_config/user_nl_clm | 1 - .../clm/NEON/FATES/defaults/user_nl_clm | 1 - .../usermods_dirs/clm/NEON/defaults/user_nl_clm | 1 - .../clm/PLUMBER2/defaults/user_nl_clm | 1 - .../clm/_includes/output_base/user_nl_clm | 1 - .../clm/f09_37x288pt_PanBoreal/user_nl_clm | 1 - 9 files changed, 2 insertions(+), 42 deletions(-) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index c98ace25db..5a9c888659 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -13,8 +13,8 @@ - clm4.5: - clm5.0: + clm4.5: + clm5.0: clm6.0: Satellite phenology: @@ -24,8 +24,6 @@ BGC (vert. resol. CN and methane) without anthropomorphic influences: FATES (Functionally Assembled Terrestrial Ecosystem Simulator) Ecosystem Demography model: Satellite phenology with FATES (Functionally Assembled Terrestrial Ecosystem Simulator) Ecosystem Demography model: - BGC (vert. resol. CN and methane) with dynamic vegetation: - BGC (vert. resol. CN and methane) with dynamic vegetation and prognostic crop: BGC (vert. resol. CN and methane) with prognostic crop, with modifications appropriate for CMIP6 DECK experiments: BGC (vert. resol. CN and methane) with prognostic crop, with modifications appropriate for CMIP6 WACCM DECK experiments: @@ -278,13 +276,6 @@ Caveats: --bgc bgc --crop --no-megan --no-drydep --no-fire_emis - - -bgc bgc -dynamic_vegetation - -bgc bgc -dynamic_vegetation -crop - - - -bgc bgc -dynamic_vegetation - -bgc bgc -dynamic_vegetation -crop run_component_ctsm env_run.xml diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 4bc159d1ee..a57470a506 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -554,20 +554,6 @@ HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - - - I2000Clm50BgcDvCrop - 2000_DATM%GSWP3v1_CLM50%BGCDV-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - - - - I2000Clm50BgcDvCropQianRs - 2000_DATM%QIA_CLM50%BGCDV-CROP_SICE_SOCN_SROF_SGLC_SWAV - - @@ -795,7 +781,6 @@ 2010-01-01 2015-01-01 1980-01-15 - 1997-12-31 1993-12-01 1992-08-12 0001-08-12 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index e360d75bd2..5c15a40b66 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3399,16 +3399,6 @@ - - - - - - - - - - diff --git a/cime_config/user_nl_clm b/cime_config/user_nl_clm index e0e06addc8..881a17f3d8 100644 --- a/cime_config/user_nl_clm +++ b/cime_config/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm index 3a2123f933..0d36937bf3 100644 --- a/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/NEON/FATES/defaults/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm index b5b8ad83ea..7ce41c264e 100644 --- a/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/NEON/defaults/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm b/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm index 448da363d6..713ff40ed3 100644 --- a/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm +++ b/cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm b/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm index 3f0111a50a..490de7aa6a 100644 --- a/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm +++ b/cime_config/usermods_dirs/clm/_includes/output_base/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting diff --git a/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm b/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm index 8c346b464d..7fd4b5a416 100644 --- a/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm +++ b/cime_config/usermods_dirs/clm/f09_37x288pt_PanBoreal/user_nl_clm @@ -3,7 +3,6 @@ ! namelist_var = new_namelist_value ! ! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting ! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting From afcb4f4a6a993a4a5cdb4b708807e5d6b53d6ad8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 20 Jul 2026 16:42:10 -0600 Subject: [PATCH 29/92] Remove references to the BGCDV model that's being deprecated, also remove CLMCN and fix some things that came up with this such as how to refer to IC files, handle uses of 'dynamic vegetation' which sometimes refers to transient landuse change and sometimes to the BGCDV model --- .../CLM50_Tech_Note_Crop_Irrigation.rst | 2 +- .../tech_note/DGVM/CLM50_Tech_Note_DGVM.rst | 2 -- .../Ecosystem/CLM50_Tech_Note_Ecosystem.rst | 2 +- .../tech_note/Fire/CLM50_Tech_Note_Fire.rst | 2 +- .../CLM50_Tech_Note_Plant_Mortality.rst | 2 +- .../References/CLM50_Tech_Note_References.rst | 13 ------------- doc/source/users_guide/overview/getting-help.rst | 13 ------------- doc/source/users_guide/overview/introduction.rst | 16 ++++++++-------- .../customizing-the-clm-configuration.rst | 4 ++-- 9 files changed, 14 insertions(+), 42 deletions(-) diff --git a/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst b/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst index ec43a50cd8..dc5f60f5d2 100755 --- a/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst +++ b/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst @@ -53,7 +53,7 @@ Introduction Groups developing Earth System Models generally account for the human footprint on the landscape in simulations of historical and future climates. Traditionally we have represented this footprint with natural vegetation types and particularly grasses because they resemble many common crops. Most modeling efforts have not incorporated more explicit representations of land management such as crop type, planting, harvesting, tillage, fertilization, and irrigation, because global scale datasets of these factors have lagged behind vegetation mapping. As this begins to change, we increasingly find models that will simulate the biogeophysical and biogeochemical effects not only of natural but also human-managed land cover. -AgroIBIS is a state-of-the-art land surface model with options to simulate dynamic vegetation (:ref:`Kucharik et al. 2000 `) and interactive crop management (:ref:`Kucharik and Brye 2003 `). The interactive crop management parameterizations from AgroIBIS (March 2003 version) were coupled as a proof-of-concept to the Community Land Model version 3 [CLM3.0, :ref:`Oleson et al. (2004) ` ] (not published), then coupled to the CLM3.5 (:ref:`Levis et al. 2009 `) and later released to the community with CLM4CN (:ref:`Levis et al. 2012 `), and CLM4.5BGC. Additional updates after the release of CLM4.5 were available by request (:ref:`Levis et al. 2016 `), and those are now incorporated into CLM5. +AgroIBIS is a state-of-the-art land surface model with options to simulate dynamic vegetation (i.e. transient land use change) (:ref:`Kucharik et al. 2000 `) and interactive crop management (:ref:`Kucharik and Brye 2003 `). The interactive crop management parameterizations from AgroIBIS (March 2003 version) were coupled as a proof-of-concept to the Community Land Model version 3 [CLM3.0, :ref:`Oleson et al. (2004) ` ] (not published), then coupled to the CLM3.5 (:ref:`Levis et al. 2009 `) and later released to the community with CLM4CN (:ref:`Levis et al. 2012 `), and CLM4.5BGC. Additional updates after the release of CLM4.5 were available by request (:ref:`Levis et al. 2016 `), and those are now incorporated into CLM5. With interactive crop management and, therefore, a more accurate representation of agricultural landscapes, we hope to improve the CLM's simulated biogeophysics and biogeochemistry. These advances may improve fully coupled simulations with the Community Earth System Model (CESM), while helping human societies answer questions about changing food, energy, and water resources in response to climate, environmental, land use, and land management change (e.g., :ref:`Kucharik and Brye 2003 `; :ref:`Lobell et al. 2006 `). As implemented here, the crop model uses the same physiology as the natural vegetation but with uses different crop-specific parameter values, phenology, and allocation, as well as fertilizer and irrigation management. diff --git a/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst b/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst index 4874ca9943..6ecabf2e52 100644 --- a/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst +++ b/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst @@ -6,8 +6,6 @@ Dynamic Global Vegetation and FATES What has changed ^^^^^^^^^^^^^^^^^^^^ -- Deprecation of the dynamic global vegetation model (DGVM): The CLM5.0 model contains the legacy 'CNDV' code, which runs the CLM biogeochemistry model in combination with the LPJ-derived dynamics vegetation model introduced in CLM3. While this capacity has not technically been removed from the model, the DGVM has not been tested in the development of CLM5 and is no longer scientifically supported. - - Introduction of FATES: The Functionally Assembled Terrestrial Ecosystem Simulator (FATES) is the actively developed DGVM for the CLM5. FATES diff --git a/doc/source/tech_note/Ecosystem/CLM50_Tech_Note_Ecosystem.rst b/doc/source/tech_note/Ecosystem/CLM50_Tech_Note_Ecosystem.rst index c755200ad6..8c98c248d1 100644 --- a/doc/source/tech_note/Ecosystem/CLM50_Tech_Note_Ecosystem.rst +++ b/doc/source/tech_note/Ecosystem/CLM50_Tech_Note_Ecosystem.rst @@ -436,7 +436,7 @@ Biogenic Volatile Organic Compounds emissions factors are from the Model of Emis The default list of PFTs includes an unmanaged crop treated as a second C3 grass (:numref:`Table Plant functional types`). The unmanaged crop has grid cell fractional cover assigned from MODIS satellite data (:ref:`Lawrence and Chase (2007) `). A managed crop option uses grid cell fractional cover from the present-day crop dataset of :ref:`Ramankutty and Foley (1998) ` (CLM4CNcrop). Managed crops are assigned in the proportions given by :ref:`Ramankutty and Foley (1998) ` without exceeding the area previously assigned to the unmanaged crop. The unmanaged crop continues to occupy any of its original area that remains and continues to be handled just by the CN part of CLM4CNcrop. The managed crop types (corn, soybean, and temperate cereals) were chosen based on the availability of corresponding algorithms in AgroIBIS (:ref:`Kucharik et al. 2000 `; :ref:`Kucharik and Brye 2003 `). Temperate cereals include wheat, barley, and rye here. All temperate cereals are treated as summer crops (like spring wheat, for example) at this time. Winter cereals (such as winter wheat) may be introduced in a future version of the model. -To allow crops to coexist with natural vegetation in a grid cell and be treated by separate models (i.e., CLM4.5BGCcrop versus the Dynamic Vegetation version (CLM4.5BGCDV)), we separate the vegetated land unit into a naturally vegetated land unit and a human managed land unit. PFTs in the naturally vegetated land unit share one soil column and compete for water (default CLM setting). PFTs in the human managed land unit do not share soil columns and thus permit for differences in land management between crops. +To allow crops to coexist with natural vegetation in a grid cell and be treated by separate models (for example to allow for both BGC and FATES to use the same crop model), we separate the vegetated land unit into a naturally vegetated land unit and a human managed land unit. PFTs in the naturally vegetated land unit share one soil column and compete for water (default CLM setting). PFTs in the human managed land unit do not share soil columns and thus permit for differences in land management between crops. CLM includes the option to irrigate cropland areas that are equipped for irrigation. The application of irrigation responds dynamically to climate (see Chapter :numref:`rst_Crops and Irrigation`). In CLM, irrigation is implemented for the C3 generic crop only. When irrigation is enabled, the cropland area of each grid cell is divided into an irrigated and unirrigated fraction according to a dataset of areas equipped for irrigation (:ref:`Siebert et al. (2005) `). The area of irrigated cropland in each grid cell is given by the smaller of the grid cell's total cropland area, according to the default CLM4 dataset, and the grid cell's area equipped for irrigation. The remainder of the grid cell's cropland area (if any) is then assigned to unirrigated cropland. Irrigated and unirrigated crops are placed on separate soil columns, so that irrigation is only applied to the soil beneath irrigated crops. diff --git a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst index 7ee974fc35..ef14116d15 100644 --- a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst +++ b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst @@ -279,7 +279,7 @@ where :math:`M_{j1} =(M_{{leaf}},M_{{livestem,1}},M_{{deadstem}},M_{{root}},M_{{ where :math:`M_{livestem,2}` is the corresponding mortality factor (:numref:`Table PFT-specific fire parameters`). -Fire nitrogen emissions and nitrogen transfers due to fire-induced mortality are calculated the same way as for carbon, using the same values for combustion completeness and mortality factors. With CLM's dynamic vegetation option enabled, the number of tree PFT individuals killed by fire per km\ :sup:`2` (individual km\ :sup:`-2` s\ :sup:`-1`) is given by +Fire nitrogen emissions and nitrogen transfers due to fire-induced mortality are calculated the same way as for carbon, using the same values for combustion completeness and mortality factors. With CLM's dynamic vegetation option (i.e. transient land use) enabled, the number of tree PFT individuals killed by fire per km\ :sup:`2` (individual km\ :sup:`-2` s\ :sup:`-1`) is given by .. math:: :label: 23.29 diff --git a/doc/source/tech_note/Plant_Mortality/CLM50_Tech_Note_Plant_Mortality.rst b/doc/source/tech_note/Plant_Mortality/CLM50_Tech_Note_Plant_Mortality.rst index 507bcc6bdc..79dec7d41f 100644 --- a/doc/source/tech_note/Plant_Mortality/CLM50_Tech_Note_Plant_Mortality.rst +++ b/doc/source/tech_note/Plant_Mortality/CLM50_Tech_Note_Plant_Mortality.rst @@ -41,7 +41,7 @@ This section describes plant mortality in the biogeochemistry (BGC) configuratio 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_Dynamic Global Vegetation and 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_Dynamic Global Vegetation and 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. .. _FATES documentation: https://fates-users-guide.readthedocs.io/en/latest/index.html diff --git a/doc/source/tech_note/References/CLM50_Tech_Note_References.rst b/doc/source/tech_note/References/CLM50_Tech_Note_References.rst index 373618b522..4f091577dd 100644 --- a/doc/source/tech_note/References/CLM50_Tech_Note_References.rst +++ b/doc/source/tech_note/References/CLM50_Tech_Note_References.rst @@ -216,10 +216,6 @@ Bytnerowicz, T. A., Akana, P. R., Griffin, K. L., & Menge, D. N. L. 2022: Temper Campbell, G.S., and Norman, J.M. 1998. An Introduction to Environmental Biophysics (2nd edition). Springer-Verlag, New York. -.. _Castilloetal2012: - -Castillo, G., Kendra, C., Levis, S., and Thornton, P. 2012. Evaluation of the new CNDV option of the Community Land Model: effects of dynamic vegetation and interactive nitrogen on CLM4 means and variability. J. Climate 25:3702–3714. - .. _Caoetal1996: Cao, M., Marshall, S. and Gregson, K., 1996. Global carbon exchange and methane emissions from natural wetlands: Application of a process-based model. J. Geophys. Res. 101(D9):14,399-14,414. @@ -532,10 +528,6 @@ Gomes, E.P.C., Mantovani, W., and Kageyama, P.Y. 2003. Mortality and recruitment Gosz, J.R., Likens, G.E., and Bormann, F.H. 1973. Nutrient release from decomposing leaf and branch litter in the Hubbard Brook Forest, New Hampshire. Ecological Monographs 43:173-191. -.. _GotangcoCastilloetal2012: - -Gotangco Castillo C., Levis S., and Thornton P. 2012. Evaluation of the new CNDV option of the Community Land Model: Effects of dynamic vegetation and interactive nitrogen on CLM4 means and variability. J. Climate 25:3702-3714. DOI:10.1175/JCLID-11-00372.1. - .. _Grahametal1999: Graham, S.T., Famiglietti, J.S., and Maidment, D.R. 1999. Five-minute, 1/2°, and 1° data sets of continental watersheds and river networks for use in regional and global hydrologic and climate system modeling studies. Water Resour. Res. 35:583-587. @@ -893,7 +885,6 @@ Liao, C., Lu X., Huang Y., Tao F., Lawrence D.M, Koven C.D., Oleson K.W., Wieder Li, C., Aber, J., Stange, F., Butterbach-Bahl, K. and Papen, H. 2000. A process-oriented model of N2O and NO emissions from forest soils: 1. Model development. J. Geophys. Res. 105(D4):4369-4384. .. _Lietal2012a: - Li, F., Zeng, X.-D., and Levis, S. 2012a. A process-based fire parameterization of intermediate complexity in a Dynamic Global Vegetation Model. Biogeosciences 9:2761-2780. .. _Lietal2012b: @@ -1377,10 +1368,6 @@ Saggar, S., Tate, K.R., Feltham, C.W., Childs, C.W. and Parshotam, A., 1994. Car Sakaguchi, K., and Zeng, X. 2009. Effects of soil wetness, plant litter, and under-canopy atmospheric stability on ground evaporation in the Community Land Model (CLM3.5). J. Geophys. Res. 114:D01107. DOI:10.1029/2008JD010834. -.. _sato2007: - -Sato, H., A. Itoh, and T. Kohyama, 2007. SEIB-DGVM: A new Dynamic Global Vegetation Model using a spatially explicit individual-based approach. Ecological Modelling 200.3, pp. 2793307. - .. _Schaafetal2002: Schaaf, C.B., Gao, F., Strahler, A.H., Lucht, W., Li, X., Tsang, T., Strugnell, N.C., Zhang, X., Jin, Y., and Muller, J.-P. 2002. First operational BRDF, albedo nadir reflectance products from MODIS. Remote Sens. Environ. 83:135-148. diff --git a/doc/source/users_guide/overview/getting-help.rst b/doc/source/users_guide/overview/getting-help.rst index 83b6b8688b..e01577cfa9 100644 --- a/doc/source/users_guide/overview/getting-help.rst +++ b/doc/source/users_guide/overview/getting-help.rst @@ -86,11 +86,6 @@ CLMBGC-Crop ``./xmlchange CLM_CONFIG_OPTS="phys clm5_0 -bgc bgc -crop`` -CLMCN - Community Land Model (CLM) with Carbon Nitrogen (CN) Biogeochemistry (either CLM4.0, CLM4.5 or |version|) The CLM_CONFIG_OPTS option for this is - - ``./xmlchange CLM_CONFIG_OPTS="-bgc cn" -append`` - CLMSP Community Land Model (CLM) with Satellite Phenology (SP) (either CLM4.0, CLM4.5 or |version|) The CLM_CONFIG_OPTS option for this is @@ -109,14 +104,6 @@ CTSM DATM Data Atmosphere Model (DATM) the prescribed data atmosphere component for CESM. Forcing data that we provide are either the CRUNCEP, Qian, or GSWP3 forcing datasets (see below). -DV - Dynamic global vegetation, where fractional PFT (see PFT below) changes in time prognostically. Can NOT be used with prescribed transient PFT (requires either CLMBGC or CLMCN for either CLM4.0, CLM4.5 or |version|). The CLM_CONFIG_OPTS option for this is - - ``./xmlchange CLM_CONFIG_OPTS="-bgc cndv" -append`` - - This option is being phased out for the different methodology of FATES (see below). DV is not currently scientifically validated - and as such should be considered experimental. - ESMF Earth System Modeling Framework (ESMF). They are a software project that provides a software library to support Earth System modeling. We provide interfaces for ESMF as well as use their regridding capabilities for offline CLM tools. diff --git a/doc/source/users_guide/overview/introduction.rst b/doc/source/users_guide/overview/introduction.rst index 1dcf901ff8..16428e5f33 100644 --- a/doc/source/users_guide/overview/introduction.rst +++ b/doc/source/users_guide/overview/introduction.rst @@ -61,7 +61,7 @@ In this introduction we first give a simple guide to understand the document con As a followup to the tools chapter, :ref:`adding-new-resolutions-section` tells how to add files to the XML database for build-namelist to use. This is important if you want to use the XML database to automatically select user-created input files that you have created when you setup new cases with CLM (CLM4.0, CLM4.5 and |version| physics). -In :ref:`running-special-cases-section`, again for the expert user, we give details on how to do some particularly difficult special cases. For example, we give the protocol for spinning up the |version|-BGC and CLMCN models as well as CLM with dynamic vegetation active (CNDV). We give instructions to do a spinup case from a previous case with Coupler history output for atmospheric forcing. We also give instructions on running both the prognostic crop and irrigation models. Lastly we tell the user how to use the DATM model to send historical CO2 data to CLM. +In :ref:`running-special-cases-section`, again for the expert user, we give details on how to do some particularly difficult special cases. For example, we give the protocol for spinning up the |version|-BGC |version|-SP models. We give instructions to do a spinup case from a previous case with Coupler history output for atmospheric forcing. Lastly we tell the user how to use the DATM model to send historical CO2 data to CLM. :ref:`running-single-points` outlines how to do single-point or regional simulations using |version|. This is useful to either compare |version| simulations with point observational stations, such as tower sites (which might include your own atmospheric forcing), or to do quick simulations with CLM for example to test a new parameterization. There are several different ways given on how to perform single-point simulations which range from simple sampling of existing inputs to more complex where you create all your own datasets, tying into :ref:`using-clm-tools-section` and also :ref:`adding-new-resolutions-section` to add the files into the build-namelist XML database. @@ -90,19 +90,19 @@ The README (which can be found in ``$CTSMROOT/doc``) is repeated here. Best Practices ================ -- |version| includes BOTH the old CLM4.0, CLM4.5 physics AND the new |version| physics and you can toggle between those three. The "standard" practice for CLM4.0 is to run with CN on, and with Qian atmospheric forcing. While the "standard" practice for CLM4.5 is to run with BGC on, and CRUNCEP atmospheric forcing. And finally the "standard" practice for |version| is to run with BGC and Prognostic Crop on, with the MOSART model for river routing, as well as the CISM ice sheet model, and using GSWP3 atmospheric forcing. "BGC" is the new |version| biogeochemistry and include CENTURY-like pools, vertical resolved carbon, as well as Nitrification and de-Nitrification (see :ref:`acronyms-and-terms`). +- |version| includes BOTH the old CLM4.5, and CLM5.0 physics AND the new |version| physics and you can toggle between those three. The "standard" practice for CLM4.0 is to run with CN on, and with Qian atmospheric forcing. While the "standard" practice for CLM4.5 is to run with BGC on, and CRUNCEP atmospheric forcing. And finally the "standard" practice for |version| is to run with BGC and Prognostic Crop on, with the MOSART model for river routing, as well as the DGLC data ice sheet model, and using CRUJRA atmospheric forcing. "BGC" is the new |version| biogeochemistry and include CENTURY-like pools, vertical resolved carbon, as well as Nitrification and de-Nitrification (see :ref:`acronyms-and-terms`). -- When running with CLMCN (either CLM4.0 or |version| physics) or |version|-BGC, it is critical to begin with initial conditions that are provided with the release or to spin the model up following the CN spinup procedure before conducting scientific runs (see :ref:`spinning-up-clm-bgc` or :ref:`spinning-up-sp`). Simulations without a proper spinup will effectively be starting from an unvegetated world. See :ref:`setting-initial-conditions` for information on how to provide initial conditions for your simulation. +- When running with BGC vegetation (either CLM4.5, CLM5.0 or |version| physics) or |version|-BGC, it is critical to begin with initial conditions that are provided with the release or to spin the model up following the BGC spinup procedure before conducting scientific runs (see :ref:`spinning-up-clm-bgc` or :ref:`spinning-up-sp`). Simulations without a proper spinup will effectively be starting from an unvegetated world. See :ref:`setting-initial-conditions` for information on how to provide initial conditions for your simulation. -- Initial condition files are provided for CLM4.0-CN as before, for fully coupled BCN and offline ICN cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and T31 resolutions. We also have interpolated initial conditions for BCN for 1850 and 2000 for two finite volume grids: 10x15, 4x5 and two HOMME grids (ne30np4 and ne120np4). There's also an initial condition file for ICN with the prognostic crop model for 2000 at 2deg resolution, and one with CLMSP for 2000 at 2deg resolution. We also have initial conditions for offline CNDV for 1850. The 1850 initial condition files are in 'reasonable' equilibrium. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. +- Initial condition files are provided for CLM4.5 and CLM5.0 from the previous release, for fully coupled B compsets with BGC and offline I compset BGC and SP cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and 1-degree SE grid: ne30.pg3 resolutions. There's also an initial condition file for CLMBGC with the prognostic crop model for 2000 at 2deg resolution, and one with CLM-SP for 2000 at 2deg resolution. The 1850 initial condition files are in 'reasonable' equilibrium. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. -- Initial condition files are also provided for |version| for several configurations and resolutions. For CLM4.5-SP and CLM4.5-BGC with both CRUNCEP and GSWP3 forcing we have initial conditions at 1deg resolution for 1850. For |version|-SP and |version|-BGC-Crop with both CRUNCEP and GSWP3 forcing we have initial conditions at 1deg resolution for 1850. Normally, these files are interpolated to any other resolution that you run at. +- Initial condition files are also provided for |version| for several configurations and resolutions. |version|-SP and |version|-BGC-Crop with CRUJRA forcing we have initial conditions at 1deg and 2deg resolutions for 1850, 1979, 2000 and 2010. Normally, these files are interpolated to any other resolution that you run at. -- Users can interpolate initial condition files at different resolutions at startup of a CLM4.5 or |version| simulation. And the file created can be stored for later use. Interpolated initial condition files may no longer be in 'reasonable' equilibrium. +- Users can interpolate initial condition files at different resolutions at startup of a CLM4.5, CLM5.0 or |version| simulation. And the file created can be stored for later use. Interpolated initial condition files may no longer be in 'reasonable' equilibrium. -- In |version| for both |version|-CN, |version|-BGC, and |version|-BGC-Crop the new fire model requires lightning frequency data, and human population density (both are read inside of CLM). By default we have provided a climatology dataset for lightning frequency and a dataset with coverage from 1850 to 2014 for population density. Both of these datasets are interpolated from the native resolution of the datasets to the resolution you are running the model on. If you are running with an atmosphere model or forcing that is significantly different than present day -- the lightning frequency may NOT appropriately correspond to your atmosphere forcing and fire initiation would be inappropriate. +- In |version| for both |version|-CN, |version|-BGC, and |version|-BGC-Crop the fire model requires lightning frequency data, and human population density (both are read inside of CLM). By default we have provided a climatology dataset for lightning frequency and a dataset with coverage from 1850 to 2024 for population density. Both of these datasets are interpolated from the native resolution of the datasets to the resolution you are running the model on. If you are running with an atmosphere model or forcing that is significantly different than present day -- the lightning frequency may NOT appropriately correspond to your atmosphere forcing and fire initiation would be inappropriate. -- Aerosol deposition is a required field to both CLM4.0, CLM4.5 and |version| physics, sent from the atmosphere model. Simulations without aerosol deposition will exhibit unreasonably high snow albedos. The model sends aerosol deposition from the atmospheric model (either CAM or DATM). When running with prescribed aerosol the atmosphere model will interpolate the aerosols from 2-degree resolution to the resolution the atmosphere model is running at. +- Aerosol deposition is a required field to CLM4.5, CLM5.0 and |version| physics, sent from the atmosphere model. Simulations without aerosol deposition will exhibit unreasonably high snow albedos. The model sends aerosol deposition from the atmospheric model (either CAM or DATM). When running with prescribed aerosol the atmosphere model will interpolate the aerosols from 2-degree resolution to the resolution the atmosphere model is running at. .. _ctsm_vs_cesm_checkout: diff --git a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst index 112e8f5a84..14dc084815 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst @@ -284,7 +284,7 @@ The ``$CTSMROOT/cime_config/buildnml`` script already sets the resolution and ma #. ``-verbose`` -``-bgc_spinup`` is an option only available for |version| for any configuration when CN is turned on (so either CLMCN or CLMBGC). It can be set to "on" or "off". If "on" the model will go into Accelerated Decomposition mode, while for "off" (the default) it will have standard decomposition rates. If you are starting up from initial condition files the model will check what mode the initial condition file is in and do the appropriate action on the first time-step to change the Carbon pools to the appropriate spinup setting. See :ref:`spinning-up-clm-bgc` for an example using this option. +``-bgc_spinup`` is an option only available for |version| for any configuration when BGC is turned on (CLMBGC). It can be set to "on" or "off". If "on" the model will go into Accelerated Decomposition mode, while for "off" (the default) it will have standard decomposition rates. If you are starting up from initial condition files the model will check what mode the initial condition file is in and do the appropriate action on the first time-step to change the Carbon pools to the appropriate spinup setting. See :ref:`spinning-up-clm-bgc` for an example using this option. .. todo:: Update the above. @@ -449,7 +449,7 @@ Thus a setting in ``CLM_BLDNML_OPTS`` will override a setting for the same thing Setting Your Initial Conditions File ------------------------------------ -Especially with CLMBGC and CLMCN starting from initial conditions is very important. Even with CLMSP it takes many simulation years to get the model fully spunup. There are a couple different ways to provide an initial condition file. +Especially with CLMBGC starting from initial conditions is very important. Even with CLMSP it takes many simulation years to get the model fully spunup. There are a couple different ways to provide an initial condition file. - :ref:`doing-a-hybrid-sim-for-init-conds` - :ref:`doing-a-branch-sim-for-init-conds` From 33277a1b74c494dd5be9227df4c5847353dc4f74 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 21 Jul 2026 11:19:06 -0600 Subject: [PATCH 30/92] A few more clarifications on DGVM things --- doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst | 2 +- .../tech_note/Introduction/CLM50_Tech_Note_Introduction.rst | 2 -- .../customizing-the-clm-configuration.rst | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst b/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst index 6ecabf2e52..4b2946f7ce 100644 --- a/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst +++ b/doc/source/tech_note/DGVM/CLM50_Tech_Note_DGVM.rst @@ -6,7 +6,7 @@ Dynamic Global Vegetation and FATES What has changed ^^^^^^^^^^^^^^^^^^^^ -- Introduction of FATES: The Functionally Assembled Terrestrial Ecosystem Simulator (FATES) is the actively developed DGVM for the CLM5. +- Introduction of FATES: The Functionally Assembled Terrestrial Ecosystem Simulator (FATES) is the actively developed DGVM for the CLM6 FATES ^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst index 0fd7a56b78..33c32751b9 100644 --- a/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst +++ b/doc/source/tech_note/Introduction/CLM50_Tech_Note_Introduction.rst @@ -112,8 +112,6 @@ The fire model is the same as utilized in CLM4.5 except that a modified scheme i Included with the release of CLM5.0 is a functionally supported version of the Functionally-Assembled Terrestrial Ecosystem Simulator (FATES, :ref:`Fisher et al., 2015)`. A major motivation of FATES is to allow the prediction of biome boundaries directly from plant physiological traits via their competitive interactions. FATES is a cohort model of vegetation competition and co-existence, allowing a representation of the biosphere which accounts for the division of the land surface into successional stages, and for competition for light between height structured cohorts of representative trees of various plant functional types. FATES is not active by default in CLM5.0. -Note that the classical dynamic global vegetation model (CLM-DGVM) that has been available within CLM4 and CLM4.5 remains available, though it is largely untested. The technical description of the CLM-DGVM can be found within the CLM4.5 Technical Description (:ref:`Oleson et al. 2013)`. - During the course of the development of CLM5.0, it became clear that the increasing complexity of the model combined with the increasing number and range of model development projects required updates to the underlying CLM infrastructure. Many such software improvements are included in CLM5 including a partial transition to an object-oriented modular software structure. Many hard coded model parameters have been extracted into either the parameter file or the CLM namelist, which allows users to more readily calibrate the model for use at specific locations or to conduct parameter sensitivity studies. As part of the effort to increase the scientific utility of the code, in most instances older generation parameterizations (i.e., the parameterizations available in CLM4 or CLM4.5) are retained under namelist switches, allowing the user to revert to CLM4.5 from the same code base or to revert individual parameterizations where the old parameterizations are compatible with the new code. Finally, multiple vertical soil layer structures are defined and it is relatively easy to add additional structures. Biogeophysical and Biogeochemical Processes diff --git a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst index 14dc084815..743b608b9f 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst @@ -291,7 +291,7 @@ The ``$CTSMROOT/cime_config/buildnml`` script already sets the resolution and ma ``-chk_res`` ensures that the resolution chosen is supported by CLM. If the resolution is NOT supported it will cause the CLM ``build-namelist`` to abort when run. So when either ``preview_namelist``, ``case.build`` or ``case.run`` is executed it will abort early. Since, the CESM scripts only support certain resolutions anyway, in general this option is NOT needed in the context of running CESM cases. -``-clm_demand`` asks the ``build-namelist`` step to require that the list of variables entered be set. Typically, this is used to require that optional filenames be used and ensure they are set before continuing. For example, you may want to require that fpftdyn be set to get dynamically changing vegetation types. To do this you would do the following. +``-clm_demand`` asks the ``build-namelist`` step to require that the list of variables entered be set. Typically, this is used to require that optional filenames be used and ensure they are set before continuing. For example, you may want to require that fpftdyn be set to get dynamically changing vegetation types (i.e. transient landuse change). To do this you would do the following. :: > ./xmlchange CLM_BLDNML_OPTS="-clm_demand fpftdyn" @@ -302,7 +302,7 @@ To see a list of valid variables that you could set do this: > cd $CTSMROOT/doc > ../bld/build-namelist -clm_demand list -.. note:: Using a 20th-Century transient compset or the ``20thC_transient`` use-case using ``CLM_NML_USE_CASE`` would set this as well, but would also use dynamic nitrogen and aerosol deposition files, so using ``-clm_demand`` would be a way to get *just* dynamic vegetation types and NOT the other files as well. +.. note:: Using a 20th-Century transient compset or the ``20thC_transient`` use-case using ``CLM_NML_USE_CASE`` would set this as well, but would also use dynamic nitrogen and aerosol deposition files, so using ``-clm_demand`` would be a way to get *just* dynamic vegetation types (transient landuse change) and NOT the other files as well. ``-drydep`` adds a dry-deposition namelist for testing to the driver. This is a driver namelist, but adding the option here has CLM ``build-namelist`` create the ``drv_flds_in`` file that the driver will copy over and use. Invoking this option does have an impact on performance even for I compsets and will slow the model down. It's also only useful when running with an active atmosphere model that makes use of this information. From 38d4a8dd35c35080c725876fd0c472df324c3dfa Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 21 Jul 2026 11:24:29 -0600 Subject: [PATCH 31/92] Update note on use_cndv --- doc/IMPORTANT_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/IMPORTANT_NOTES.md b/doc/IMPORTANT_NOTES.md index 7006ada85d..47a49d9b1b 100644 --- a/doc/IMPORTANT_NOTES.md +++ b/doc/IMPORTANT_NOTES.md @@ -46,7 +46,7 @@ The following are NOT currently tested nor turned on by default: - snicar_solarspec /= mid_latitude_winter - snicar_use_aerosol /= FALSE - urban_traffic (not implemented) - - use_cndv (deprecated) + - use_cndv (deprecated, not tested and being removed) - use_extralakelayers - usefrootc - usephfact From 78f8dcdbb506d849b25800f6ed859a16bcaf2734 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 21 Jul 2026 11:45:32 -0600 Subject: [PATCH 32/92] Remove NWP-BGC or NWP-BGC-Crop compsets and tests --- cime_config/config_component.xml | 5 ++--- cime_config/config_compsets.xml | 5 ----- cime_config/testdefs/testlist_clm.xml | 9 --------- doc/IMPORTANT_NOTES.md | 8 ++++++++ 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 5a9c888659..616a724b4c 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -14,8 +14,8 @@ clm4.5: - clm5.0: - clm6.0: + clm5.0: + clm6.0: Satellite phenology: Satellite phenology without anthropomorphic influences @@ -28,7 +28,6 @@ BGC (vert. resol. CN and methane) with prognostic crop, with modifications appropriate for CMIP6 WACCM DECK experiments: NWP configuration with satellite phenology: - NWP configuration with BGC and CROP: char diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index a57470a506..e1e6026065 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -574,11 +574,6 @@ 2000_DATM%GSWP3v1_CLM50%NWP-SP_SICE_SOCN_MOSART_SGLC_SWAV - - I2000Ctsm50NwpBgcCropGswpGs - 2000_DATM%GSWP3v1_CLM50%NWP-BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 5c15a40b66..3b805aae1a 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3795,15 +3795,6 @@ - - - - - - - - - diff --git a/doc/IMPORTANT_NOTES.md b/doc/IMPORTANT_NOTES.md index 47a49d9b1b..4ffb1ef71d 100644 --- a/doc/IMPORTANT_NOTES.md +++ b/doc/IMPORTANT_NOTES.md @@ -1,6 +1,14 @@ # Important Notes on Experimental Features of CTSM --- +## Compsets that are NOT tested + +- "Nwp" (Numerical Weather Prediction) compsets with BGC or BGC-Crop +- "Nwp" compsets with active GLC (CISM) +- LILAC with active GLC +- FATES with active GLC +- mizuRoute with active GLC or BGC or BGC-Crop + ## Namelist items not regularly tested or used (some aren't even implemented) See '../bld/namelist_files/namelist_definition_ctsm.xml' -- for definitions of all namelist variables From 5feb38c286e22b650564e289a43a9476adc7f958 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 10:50:44 -0600 Subject: [PATCH 33/92] Update notes about clm4_5 namelist items that may be retained, or deprecated and removed --- doc/IMPORTANT_NOTES.md | 43 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/doc/IMPORTANT_NOTES.md b/doc/IMPORTANT_NOTES.md index 4ffb1ef71d..9c6145ab89 100644 --- a/doc/IMPORTANT_NOTES.md +++ b/doc/IMPORTANT_NOTES.md @@ -8,6 +8,7 @@ - LILAC with active GLC - FATES with active GLC - mizuRoute with active GLC or BGC or BGC-Crop +- compsets with clm4_5 physics ## Namelist items not regularly tested or used (some aren't even implemented) @@ -40,7 +41,6 @@ The following are NOT currently tested nor turned on by default: - override_bgc_restart_mismatch_dump - perchroot - perchroot_alt - - pertlim (deprecated) - reduce_dayl_factor (not implemented, it's commented out in the code) - replenishlakec - rooting_profile_method_soilcarbon (DELETE) @@ -54,13 +54,50 @@ The following are NOT currently tested nor turned on by default: - snicar_solarspec /= mid_latitude_winter - snicar_use_aerosol /= FALSE - urban_traffic (not implemented) - - use_cndv (deprecated, not tested and being removed) - use_extralakelayers - usefrootc - usephfact - - use_vichydro (deprecated) - vcmax_opt = 4 +### The following are clm4_5 physics options that may be retained because they allow simpler options + - use_bedrock = .false. + - use_flexiblecn = .false. + - use_fun = .false. + - use_hydrstress = .false. + - use_luna = .false. + - repartition_rain_snow = .false. + - melt_non_icesheet_ice_runoff = .false. + - lower_boundary_condition = 4 (useful for testing with water aquifer) + - light_inhibit = .false. + - constrain_stress_deciduous_onset = .false. + - finundation_method = 'ZWT_inversion' (useful for water isotope testing) + - wind_dependent_snow_density = .false. + - modifyphoto_and_lmr_forcrop = .false. + - baset_mapping = constant + +### The following are being deprecated and will be removed +### (They also are NOT tested) + - pertlim + - use_cndv + - use_vichydro + +### The following are clm4_5 physics options that are deprecated and will be removed +### (They also are NOT tested) + - soil_layerstruct_predefined = '10SL_3.5m' + - use_nguardrail = .false. + - use_clm5_fpi = .false. + - soilwater_movement_method = 0 + - rooting_profile_method_water = 0 + - soil_resis_method = 0 + - use_undercanopy_stability = .true. + - building_temp_method = 0 + - organic_frac_squared = .true. + - lotmp_snowdensity_method = 'TruncatedAnderson1976' + - snow_overburden_compaction_method = 'Anderson1976' + - leafresp_method = 1 + - stomatalcond_method = 'Ball-Berry1987' + - fire_method = 'li2014qianfrc' + ### FATES experimental namelist items FATES is a relatively new subcomponent of CTSM. Almost all FATES options include "fates" in the name. From e69e1e0ba3aa84ccdd96d734181587c83e1ff147 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 16:47:39 -0600 Subject: [PATCH 34/92] Add a simple physics testmod to test the clm4_5 physics options that we may want to keep --- cime_config/testdefs/testlist_clm.xml | 4 ++-- .../bgcCropSimplePhysics/include_user_mods | 1 + .../clm/bgcCropSimplePhysics/user_nl_clm | 22 +++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods create mode 100644 cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 3b805aae1a..689ea7ef7b 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2017,13 +2017,13 @@ - + - + diff --git a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm new file mode 100644 index 0000000000..ff261f2d82 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm @@ -0,0 +1,22 @@ +! These are options from clm4_5 physics that may still be useful to retain. +! Mostly they are options to simplify physics by turning more advanced options off. +! This can be useful for software testing and possibly for science testing as well. + + lower_boundary_condition = 4 ! useful to test with an aquifer + finundation_method = 'ZWT_inversion' ! useful to test with water isotopes + soilwater_movement_method = 0 ! Required to set lower_boundary_condition to 4 + + use_bedrock = .false. + use_hydrstress = .false. + repartition_rain_snow = .false. + melt_non_icesheet_ice_runoff = .false. + light_inhibit = .false. + wind_dependent_snow_density = .false. + + ! The following require certain compset physics options + use_luna = .false. ! Requires BGC + constrain_stress_deciduous_onset = .false. ! Requires BGC + use_flexiblecn = .false. ! Requires BGC + use_fun = .false. ! Requires BGC + modifyphoto_and_lmr_forcrop = .false. ! Requires BGC-Crop + baset_mapping = 'constant' ! Requires BGC-Crop From cee030e366022edd8580555d605e9ea86f01d466 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 16:52:25 -0600 Subject: [PATCH 35/92] Move the clm45cam4 test to clm50cam4 --- cime_config/testdefs/testlist_clm.xml | 2 +- .../include_user_mods | 0 .../shell_commands | 2 +- .../user_nl_clm | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename cime_config/testdefs/testmods_dirs/clm/{clm45cam4LndTuningModeZDustSoilErod => clm50cam4LndTuningModeZDustSoilErod}/include_user_mods (100%) rename cime_config/testdefs/testmods_dirs/clm/{clm45cam4LndTuningModeZDustSoilErod => clm50cam4LndTuningModeZDustSoilErod}/shell_commands (51%) rename cime_config/testdefs/testmods_dirs/clm/{clm45cam4LndTuningModeZDustSoilErod => clm50cam4LndTuningModeZDustSoilErod}/user_nl_clm (100%) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 689ea7ef7b..eb00dc56f3 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -122,7 +122,7 @@ - + diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands similarity index 51% rename from cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands index 010b5b5680..7b002f6950 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands @@ -1,5 +1,5 @@ #!/bin/bash -./xmlchange LND_TUNING_MODE="clm4_5_cam4.0" +./xmlchange LND_TUNING_MODE="clm5_0_cam4.0" ./xmlchange ROF_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/clm45cam4LndTuningModeZDustSoilErod/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/user_nl_clm From e2ecc826e751ac9de2066a4295a691bd97230331 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:07:42 -0600 Subject: [PATCH 36/92] Change test for CMIP6 ndep for one stream to two streams since one is now the default --- cime_config/testdefs/testlist_clm.xml | 4 ++-- .../testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index eb00dc56f3..345d89a8fc 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -132,7 +132,7 @@ - + @@ -2183,7 +2183,7 @@ - + diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm index 588fa7d7a9..d38e2e358d 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm @@ -1,3 +1,4 @@ -ndep_varlist = 'NDEP_month' +! Test that NDEP can be read in two seperate streams rather than the one that is the sum of both +ndep_varlist = 'NDEP_NOy_month', 'NDEP_Nhx_month' ndep_taxmode = 'cycle' stream_fldfilename_ndep = '$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_simyr1850_0.9x1.25_CMIP6alpha01_c170330.nc' From 68f0f00f5afa90f2dc95c2afcb1bdceeb9065bc5 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:10:45 -0600 Subject: [PATCH 37/92] Change name of testmod to be more descriptive --- cime_config/testdefs/testlist_clm.xml | 3 ++- .../clm/{clm50CMIP6frc => CMIP6ndepTwoVars}/include_user_mods | 0 .../clm/{clm50CMIP6frc => CMIP6ndepTwoVars}/user_nl_clm | 0 3 files changed, 2 insertions(+), 1 deletion(-) rename cime_config/testdefs/testmods_dirs/clm/{clm50CMIP6frc => CMIP6ndepTwoVars}/include_user_mods (100%) rename cime_config/testdefs/testmods_dirs/clm/{clm50CMIP6frc => CMIP6ndepTwoVars}/user_nl_clm (100%) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 345d89a8fc..3bcfd8e0aa 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2183,13 +2183,14 @@ - + + diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/clm50CMIP6frc/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm From 7e8e3ba3f3904bb97f491073b7a8d6ca20efa97c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:19:44 -0600 Subject: [PATCH 38/92] Remove the oldhyd test and testmod --- cime_config/testdefs/testlist_clm.xml | 8 -------- .../testdefs/testmods_dirs/clm/oldhyd/include_user_mods | 1 - cime_config/testdefs/testmods_dirs/clm/oldhyd/user_nl_clm | 3 --- 3 files changed, 12 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/oldhyd/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/oldhyd/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 3bcfd8e0aa..5d393ef941 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2904,14 +2904,6 @@ - - - - - - - - diff --git a/cime_config/testdefs/testmods_dirs/clm/oldhyd/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/oldhyd/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/oldhyd/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/oldhyd/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/oldhyd/user_nl_clm deleted file mode 100644 index 5ef1fc660a..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/oldhyd/user_nl_clm +++ /dev/null @@ -1,3 +0,0 @@ - snow_cover_fraction_method = 'NiuYang2007' - h2osfcflag = 0 - use_subgrid_fluxes = .false. From e165c2c2da03983fc3c3aec2c5f54050d6f44a84 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:23:24 -0600 Subject: [PATCH 39/92] Remove the no_subgrid_fluxes test and testmod --- cime_config/testdefs/testlist_clm.xml | 10 ---------- .../testmods_dirs/clm/no_subgrid_fluxes/README | 8 -------- .../clm/no_subgrid_fluxes/include_user_mods | 1 - .../testmods_dirs/clm/no_subgrid_fluxes/user_nl_clm | 2 -- 4 files changed, 21 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/README delete mode 100644 cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 5d393ef941..535b66c326 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2904,16 +2904,6 @@ - - - - - - - - - - diff --git a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/README b/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/README deleted file mode 100644 index 97bae04376..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/README +++ /dev/null @@ -1,8 +0,0 @@ -The purpose of this testmod is to exercise the newer snow cover fraction -method along with having use_subgrid_fluxes = .false. - -Note that we also need h2osfcflag = 0 in this testmod, because -h2osfcflag = 1 is incompatible with use_subgrid_fluxes = .false. Also, -this needs to be used in a clm45 configuration for compatibility with -other options (or else would need to set some other flags: -lower_boundary_condition and possibly others) diff --git a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/user_nl_clm deleted file mode 100644 index efbd30d380..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/no_subgrid_fluxes/user_nl_clm +++ /dev/null @@ -1,2 +0,0 @@ - h2osfcflag = 0 - use_subgrid_fluxes = .false. From 6fef9f78d32517cb93e04550ef9de342f0c07f9f Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:29:28 -0600 Subject: [PATCH 40/92] Update the tillage/remove-residue test to Clm60, these are features that should work with the latest model --- cime_config/testdefs/testlist_clm.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 535b66c326..e7afae0494 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3167,13 +3167,13 @@ - + - + From 96204a5cf6e3449a18b5ae044024ebf7141534f2 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 22 Jul 2026 17:33:33 -0600 Subject: [PATCH 41/92] Add note about the namelist options in oldhyd and no_subgrid_fluxes testmods being deprecated and not tested --- doc/IMPORTANT_NOTES.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/IMPORTANT_NOTES.md b/doc/IMPORTANT_NOTES.md index 9c6145ab89..eb4f183a09 100644 --- a/doc/IMPORTANT_NOTES.md +++ b/doc/IMPORTANT_NOTES.md @@ -20,7 +20,6 @@ The following are tested but not on by default (for any physics): - all_active - allow_invalid_gdd20_season_inputs - - h2osfcflag (deprecated) - use_nvmovement - use_soil_moisture_streams @@ -80,6 +79,9 @@ The following are NOT currently tested nor turned on by default: - pertlim - use_cndv - use_vichydro + - h2osfcflag + - snow_cover_fraction_method = 'NiuYang2007' + - use_subgrid_fluxes = .false. ### The following are clm4_5 physics options that are deprecated and will be removed ### (They also are NOT tested) From 04dbe513e1ed647bfe6c53e7721fa438db57ba2a Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 00:38:07 -0600 Subject: [PATCH 42/92] Seperate the bgcCropSimplePhysics testmod into two so the base version can be used for SP cases --- .../clm/SimplePhysics/include_user_mods | 1 + .../testmods_dirs/clm/SimplePhysics/user_nl_clm | 14 ++++++++++++++ .../clm/bgcCropSimplePhysics/include_user_mods | 2 +- .../clm/bgcCropSimplePhysics/user_nl_clm | 13 +------------ 4 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 cime_config/testdefs/testmods_dirs/clm/SimplePhysics/include_user_mods create mode 100644 cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm diff --git a/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm new file mode 100644 index 0000000000..2495999136 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm @@ -0,0 +1,14 @@ +! These are options from clm4_5 physics that may still be useful to retain. +! Mostly they are options to simplify physics by turning more advanced options off. +! This can be useful for software testing and possibly for science testing as well. + + lower_boundary_condition = 4 ! useful to test with an aquifer + finundation_method = 'ZWT_inversion' ! useful to test with water isotopes + soilwater_movement_method = 0 ! Required to set lower_boundary_condition to 4 + + use_bedrock = .false. + use_hydrstress = .false. + repartition_rain_snow = .false. + melt_non_icesheet_ice_runoff = .false. + light_inhibit = .false. + wind_dependent_snow_density = .false. diff --git a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods index fe0e18cf88..e04303fa75 100644 --- a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods +++ b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/include_user_mods @@ -1 +1 @@ -../default +../SimplePhysics diff --git a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm index ff261f2d82..b73f092eb7 100644 --- a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm @@ -1,18 +1,7 @@ -! These are options from clm4_5 physics that may still be useful to retain. +! These are options from clm4_5 physics for BGC-CROP that may still be useful to retain. ! Mostly they are options to simplify physics by turning more advanced options off. ! This can be useful for software testing and possibly for science testing as well. - lower_boundary_condition = 4 ! useful to test with an aquifer - finundation_method = 'ZWT_inversion' ! useful to test with water isotopes - soilwater_movement_method = 0 ! Required to set lower_boundary_condition to 4 - - use_bedrock = .false. - use_hydrstress = .false. - repartition_rain_snow = .false. - melt_non_icesheet_ice_runoff = .false. - light_inhibit = .false. - wind_dependent_snow_density = .false. - ! The following require certain compset physics options use_luna = .false. ! Requires BGC constrain_stress_deciduous_onset = .false. ! Requires BGC From 1bc367b82fd981fa753df97e069733d0b37ebd90 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 01:04:00 -0600 Subject: [PATCH 43/92] Move the finundated setting from SimplePhysics to bgcCropSimplePhysics as it's a BGC option, and move the decomp_init tests from Clm45 to Clm50 with SimplePhysics and nofireemis --- cime_config/testdefs/testlist_clm.xml | 20 +++++++++---------- .../clm/SimplePhysics/user_nl_clm | 1 - .../clm/bgcCropSimplePhysics/user_nl_clm | 3 +++ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 72a0df2ebe..19102b1465 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -4449,7 +4449,7 @@ - + @@ -4459,7 +4459,7 @@ - + @@ -4470,7 +4470,7 @@ - + @@ -4479,7 +4479,7 @@ - + @@ -4488,7 +4488,7 @@ - + @@ -4497,7 +4497,7 @@ - + @@ -4506,7 +4506,7 @@ - + @@ -4515,7 +4515,7 @@ - + @@ -4525,7 +4525,7 @@ - + @@ -4534,7 +4534,7 @@ - + diff --git a/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm index 2495999136..024a1b3319 100644 --- a/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/SimplePhysics/user_nl_clm @@ -3,7 +3,6 @@ ! This can be useful for software testing and possibly for science testing as well. lower_boundary_condition = 4 ! useful to test with an aquifer - finundation_method = 'ZWT_inversion' ! useful to test with water isotopes soilwater_movement_method = 0 ! Required to set lower_boundary_condition to 4 use_bedrock = .false. diff --git a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm index b73f092eb7..0880a25c7c 100644 --- a/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/bgcCropSimplePhysics/user_nl_clm @@ -2,6 +2,9 @@ ! Mostly they are options to simplify physics by turning more advanced options off. ! This can be useful for software testing and possibly for science testing as well. + ! finundation_method requires BGC as it's used for the methane model + finundation_method = 'ZWT_inversion' ! useful to test with water isotopes + ! The following require certain compset physics options use_luna = .false. ! Requires BGC constrain_stress_deciduous_onset = .false. ! Requires BGC From dae78dd97325b31b69bfe9c3755a54a7beaf60d8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 01:20:24 -0600 Subject: [PATCH 44/92] Remove all of the Clm45 tests and remove the FireLi2014Qian testmod that was only used for Clm45 --- cime_config/testdefs/testlist_clm.xml | 142 ------------------ .../clm/FireLi2014Qian/include_user_mods | 1 - .../clm/FireLi2014Qian/user_nl_clm | 1 - 3 files changed, 144 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 19102b1465..7a00ff0231 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1860,23 +1860,6 @@ - - - - - - - - - - - - - - - - - @@ -1895,32 +1878,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2027,14 +1984,6 @@ - - - - - - - - @@ -2332,15 +2281,6 @@ - - - - - - - - - @@ -2958,15 +2898,6 @@ - - - - - - - - - @@ -3099,16 +3030,6 @@ - - - - - - - - - - @@ -3176,15 +3097,6 @@ - - - - - - - - - @@ -3666,14 +3578,6 @@ - - - - - - - - @@ -3710,15 +3614,6 @@ - - - - - - - - - @@ -3989,15 +3884,6 @@ - - - - - - - - - @@ -4553,15 +4439,6 @@ - - - - - - - - - @@ -4571,15 +4448,6 @@ - - - - - - - - - @@ -4688,16 +4556,6 @@ - - - - - - - - - - diff --git a/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/user_nl_clm deleted file mode 100644 index 3e05de8cad..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FireLi2014Qian/user_nl_clm +++ /dev/null @@ -1 +0,0 @@ -fire_method = 'li2014qianfrc' From 71f6eab423e8fdf6bf876c3ddcff0fdfd8ad2d34 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 01:23:16 -0600 Subject: [PATCH 45/92] Remove all of the Clm45 compsets --- cime_config/config_compsets.xml | 81 --------------------------------- 1 file changed, 81 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index e1e6026065..526587d88a 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -67,11 +67,6 @@ 2000_DATM%1PT_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV - - I1PtClm45SpRsGs - 2000_DATM%1PT_CLM45%SP_SICE_SOCN_SROF_SGLC_SWAV - - @@ -288,10 +283,6 @@ I2000Clm50BgcCropQianRs 2000_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - - I2000Clm45BgcCropQianRs - 2000_DATM%QIA_CLM45%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm50FatesQian 2000_DATM%QIA_CLM50%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -588,78 +579,6 @@ 2000_DATM%NLDAS2_CLM50%NWP-SP_SICE_SOCN_SROF_SGLC_SWAV - - - - I1850Clm45BgcCrop - 1850_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV - - - - I1850Clm45BgcCru - 1850_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - - - - IHistClm45BgcCrop - HIST_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV - - - - - IHistClm45BgcCropQianRs - HIST_DATM%QIA_CLM45%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - - - - I2000Clm45Sp - 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV - - - - I2000Clm45SpRs - 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_SROF_SGLC_SWAV - - - - I2000Clm45BgcCrop - 2000_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV - - - - I2000Clm45Fates - 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_RTM_SGLC_SWAV - - - - - I2000Clm45FatesRsGs - 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_SROF_SGLC_SWAV - - - - I1850Clm45Bgc - 1850_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - - - IHistClm45Bgc - HIST_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - - - IHistClm45BgcCru - HIST_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - - - IHistClm45Sp - HIST_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV - - From 6a7ffe1ee61929232e8f01db9f1af953e79a7b47 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 01:32:56 -0600 Subject: [PATCH 46/92] Remove ability to set CLM45 in the long compset name and remove the clm45cam6LndTuningMode testmod --- cime_config/buildnml | 7 ------- cime_config/config_component.xml | 19 +------------------ .../clm45cam6LndTuningMode/include_user_mods | 1 - .../clm/clm45cam6LndTuningMode/shell_commands | 5 ----- 4 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands diff --git a/cime_config/buildnml b/cime_config/buildnml index adb2bb2e7d..aa48b09a1c 100644 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -97,10 +97,6 @@ def buildnml(case, caseroot, compname): # Warnings for land tuning modes # closest_tuning = { - "clm4_5_1PT": "clm4_5_CRUv7", - "clm4_5_QIAN": "clm4_5_CRUv7", - "clm4_5_NLDAS2": "clm4_5_CRUv7", - "clm4_5_ERA5": "clm4_5_CRUv7", "clm5_0_1PT": "clm5_0_GSWP3v1", "clm5_0_QIAN": "clm5_0_GSWP3v1", "clm5_0_NLDAS2": "clm5_0_GSWP3v1", @@ -137,9 +133,6 @@ def buildnml(case, caseroot, compname): "clm6_0_cam4.0": "clm5_0_cam6.0", "clm5_0_cam5.0": "clm5_0_cam6.0", "clm5_0_cam4.0": "clm5_0_cam6.0", - "clm4_5_cam6.0": "clm5_0_cam6.0", - "clm4_5_cam5.0": "clm5_0_cam6.0", - "clm4_5_cam4.0": "clm5_0_cam6.0", } for mode, based_on in tuning_based_on.items(): if lnd_tuning_mode == mode: diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 616a724b4c..d0cca1a0b3 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -13,7 +13,6 @@ - clm4.5: clm5.0: clm6.0: Satellite phenology: @@ -75,24 +74,9 @@ UNSET - clm5_0_cam6.0,clm5_0_cam7.0,clm5_0_cam5.0,clm5_0_cam4.0,clm5_0_GSWP3v1,clm5_0_CRUJRA2024,clm5_0_CRUv7,clm5_0_QIAN,clm5_0_1PT,clm5_0_NLDAS2,clm5_0_ERA5,clm4_5_CRUv7,clm4_5_GSWP3v1,clm4_5_QIAN,clm4_5_cam6.0,clm4_5_cam7.0,clm4_5_cam5.0,clm4_5_cam4.0,clm4_5_1PT,clm4_5_NLDAS2,clm4_5_ERA5,clm6_0_CRUv7,clm6_0_GSWP3v1,clm6_0_CRUJRA2024,clm6_0_cam6.0,clm6_0_cam7.0,clm6_0_cam5.0,clm6_0_cam4.0,clm6_0_QIAN,clm6_0_1PT,clm6_0_NLDAS2,clm6_0_ERA5 + clm5_0_cam6.0,clm5_0_cam7.0,clm5_0_cam5.0,clm5_0_cam4.0,clm5_0_GSWP3v1,clm5_0_CRUJRA2024,clm5_0_CRUv7,clm5_0_QIAN,clm5_0_1PT,clm5_0_NLDAS2,clm5_0_ERA5,clm6_0_CRUv7,clm6_0_GSWP3v1,clm6_0_CRUJRA2024,clm6_0_cam6.0,clm6_0_cam7.0,clm6_0_cam5.0,clm6_0_cam4.0,clm6_0_QIAN,clm6_0_1PT,clm6_0_NLDAS2,clm6_0_ERA5 - - clm4_5_CRUv7 - clm4_5_CRUv7 - clm4_5_GSWP3v1 - clm4_5_cam6.0 - clm4_5_cam4.0 - clm4_5_cam5.0 - clm4_5_cam6.0 - clm4_5_cam7.0 - clm4_5_cam5.0 - clm4_5_QIAN - clm4_5_QIAN - clm4_5_1PT - clm4_5_NLDAS2 - clm4_5_ERA5 clm5_0_CRUJRA2024 clm5_0_CRUv7 @@ -142,7 +126,6 @@ by the compset match. --> UNSET - clm4_5 clm5_0 clm6_0 diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands deleted file mode 100644 index f2e3e8db60..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -./xmlchange LND_TUNING_MODE="clm4_5_cam6.0" -./xmlchange CLM_NDEP_FROM_CPL="TRUE" - From 01d1a8f1f7bd91988e61f2d76818c94e09e86806 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 23 Jul 2026 01:36:38 -0600 Subject: [PATCH 47/92] Remove mention of CLM45 --- cime_config/SystemTests/ssp.py | 2 +- cime_config/config_compsets.xml | 2 +- cime_config/config_tests.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cime_config/SystemTests/ssp.py b/cime_config/SystemTests/ssp.py index 53df763045..1c1c978ec4 100644 --- a/cime_config/SystemTests/ssp.py +++ b/cime_config/SystemTests/ssp.py @@ -3,7 +3,7 @@ This is a CLM specific test: Verifies that spinup works correctly -this test is only valid for CLM compsets with CLM45 or CLM50 +this test is only valid for CLM compsets with CLM50 (1) do an initial spin test - set CLM_ACCELERATED_SPINUP to on - write restarts at the end of the run, turn on short term archiving diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 526587d88a..45eb3ac94c 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -14,7 +14,7 @@ Where for the CAM specific compsets below the following is supported TIME = Time period (e.g. 2000, HIST, SSP585...) ATM = [DATM, CAM40, CAM50, CAM60, CAM70, SATM] (CAM only for CAM or CESM checkouts) - LND = [CLM45, CLM50, CLM60, DLND, SLND] + LND = [CLM50, CLM60, DLND, SLND] ICE = [CICE, DICE, SICE] (CICE only for CAM or CESM checkouts) OCN = [MOM, DOCN, SOCN] (MOM only for CESM checkouts) ROF = [RTM, MOSART, MIZUROUTE, DROF, SROF] diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index c5c6749392..15db55b318 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -186,7 +186,7 @@ This defines various CTSM-specific system tests I1850Clm50BgcCropCmip6 - 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCropCmip6 @@ -249,7 +249,7 @@ I1850Clm50BgcCropCmip6waccm - 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV I1850Clm60BgcCropCmip6waccm @@ -263,7 +263,7 @@ I1850Clm50BgcCropCru - 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -280,7 +280,7 @@ 2000_DATM%QIA_CLM60%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm50BgcCropQianRs + I2000Clm50BgcCropQianRsGs 2000_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV @@ -346,7 +346,7 @@ I1850Clm50Bgc - 1850_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -373,18 +373,18 @@ I1850Clm50BgcNoAnthro - 1850_DATM%GSWP3v1_CLM50%BGC-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV I1850Clm50SpNoAnthro - 1850_DATM%GSWP3v1_CLM50%SP-NOANTHRO_SICE_SOCN_RTM_SGLC_SWAV + 1850_DATM%GSWP3v1_CLM50%SP-NOANTHRO_SICE_SOCN_RTM_DGLC%NOEVOLVE_SWAV IHistClm50BgcCrop - HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -429,12 +429,12 @@ IHistClm50Sp - HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm50SpCru - HIST_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -444,7 +444,7 @@ IHistClm50Bgc - HIST_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV IHistClm50BgcQian - HIST_DATM%QIA_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + HIST_DATM%QIA_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - IHistClm50BgcQianRs + IHistClm50BgcQianRsGs HIST_DATM%QIA_CLM50%BGC_SICE_SOCN_SROF_SGLC_SWAV @@ -470,7 +470,7 @@ --> ISSP585Clm50BgcCrop - SSP585_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP585_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP585Clm60BgcCropCrujra @@ -479,17 +479,17 @@ ISSP126Clm50BgcCrop - SSP126_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP126_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP119Clm50BgcCrop - SSP119_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP119_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP245Clm50BgcCrop - SSP245_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP245_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP245Clm60BgcCropCrujra @@ -498,7 +498,7 @@ ISSP370Clm50BgcCrop - SSP370_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP370_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP370Clm60BgcCropCrujra @@ -507,17 +507,17 @@ ISSP434Clm50BgcCrop - SSP434_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP434_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP460Clm50BgcCrop - SSP460_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP460_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV ISSP534Clm50BgcCrop - SSP534_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + SSP534_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -531,7 +531,7 @@ give faster datm throughput, which is particularly relevant for single-point cases (where datm dominates the runtime) --> - IHistClm50BgcCropQianRs + IHistClm50BgcCropQianRsGs HIST_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV @@ -541,7 +541,7 @@ - IHistClm50BgcCropRs + IHistClm50BgcCropRsGs HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV @@ -549,7 +549,7 @@ I1850Clm50BgcSpinup - 1850_DATM%CPLHIST_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + 1850_DATM%CPLHIST_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 7a00ff0231..e55ba40215 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1373,7 +1373,7 @@ - + @@ -1633,7 +1633,7 @@ - + @@ -2142,7 +2142,7 @@ - + @@ -4235,7 +4235,7 @@ - + From 71f104d23e8cb4c4c9a748395ab4a7c01bb7e6c2 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 29 Jul 2026 13:40:55 -0600 Subject: [PATCH 51/92] Update doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst Co-authored-by: Samuel Levis --- doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst index c42e01ff4a..13a4e89aee 100644 --- a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst +++ b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst @@ -134,7 +134,7 @@ The SMB of a glacier or ice sheet is the net annual accumulation/ablation of mas Note that the SMB typically is defined as the total accumulation of ice and snow, minus the total ablation. The SMB flux passed to CISM/DGLC is the mass balance for ice alone, not snow. We can think of CLM as owning the snow, whereas CISM/DGLC owns the underlying ice. Fluctuations in snow depth between 0 and 10 m water equivalent are not reflected in the SMB passed to CISM/DGLC. In transient runs, this can lead to delays of a few decades in the onset of accumulation or ablation in a given glacier column. -SMB is computed and sent to the CESM coupler regardless of whether and where CISM/DGLC is operating. However, the effect of SMB terms on runoff fluxes differs depending on if CISM is used as the ice sheet is evolving in a two-way-coupled mode. This is described by the variable *glc\_dyn\_runoff\_routing*. (This is real-valued in the code to handle the edge case where a CLM grid cell partially overlaps with the CISM grid, but we describe it as a logical variable here for simplicity.) In typical cases where DGLC is used and the ice sheet is not evolving, *glc\_dyn\_runoff\_routing* will be false everywhere; in these cases, DGLC's mass is not considered to be part of the coupled system. In cases where CISM is used and the ice sheet is evolving and sending its own calving flux to the coupler, *glc\_dyn\_runoff\_routing* will be true over the CISM domain and false elsewhere. +SMB is computed and sent to the CESM coupler regardless of whether and where CISM/DGLC is operating. However, the effect of SMB terms on runoff fluxes differs depending on whether CISM is used and the ice sheet is evolving in a two-way-coupled mode. This is described by the variable *glc\_dyn\_runoff\_routing*. (This is real-valued in the code to handle the edge case where a CLM grid cell partially overlaps with the CISM grid, but we describe it as a logical variable here for simplicity.) In typical cases where DGLC is used and the ice sheet is not evolving, *glc\_dyn\_runoff\_routing* will be false everywhere; in these cases, DGLC's mass is not considered to be part of the coupled system. In cases where CISM is used and the ice sheet is evolving and sending its own calving flux to the coupler, *glc\_dyn\_runoff\_routing* will be true over the CISM domain and false elsewhere. Any snow capping (section :numref:`Runoff from glaciers and snow-capped surfaces`) is added to :math:`q_{ice,frz}`. Any liquid water (i.e., melted ice) below the snow pack in the glacier column is added to :math:`q_{ice,melt}`, then is converted back to ice to maintain a pure-ice column. Then the total SMB is given by :math:`q_{ice,tot}`: From d3ef3cc7a9ebebdedc229571bae9d4fc4f086a26 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 29 Jul 2026 13:42:12 -0600 Subject: [PATCH 52/92] Changes from the code review with @slevis-lmwg remove some of the dynamic vegetation clarifications as they will be resolved in #4139 --- .../Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst | 2 +- doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst | 2 +- .../customizing-the-clm-configuration.rst | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst b/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst index dc5f60f5d2..ec43a50cd8 100755 --- a/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst +++ b/doc/source/tech_note/Crop_Irrigation/CLM50_Tech_Note_Crop_Irrigation.rst @@ -53,7 +53,7 @@ Introduction Groups developing Earth System Models generally account for the human footprint on the landscape in simulations of historical and future climates. Traditionally we have represented this footprint with natural vegetation types and particularly grasses because they resemble many common crops. Most modeling efforts have not incorporated more explicit representations of land management such as crop type, planting, harvesting, tillage, fertilization, and irrigation, because global scale datasets of these factors have lagged behind vegetation mapping. As this begins to change, we increasingly find models that will simulate the biogeophysical and biogeochemical effects not only of natural but also human-managed land cover. -AgroIBIS is a state-of-the-art land surface model with options to simulate dynamic vegetation (i.e. transient land use change) (:ref:`Kucharik et al. 2000 `) and interactive crop management (:ref:`Kucharik and Brye 2003 `). The interactive crop management parameterizations from AgroIBIS (March 2003 version) were coupled as a proof-of-concept to the Community Land Model version 3 [CLM3.0, :ref:`Oleson et al. (2004) ` ] (not published), then coupled to the CLM3.5 (:ref:`Levis et al. 2009 `) and later released to the community with CLM4CN (:ref:`Levis et al. 2012 `), and CLM4.5BGC. Additional updates after the release of CLM4.5 were available by request (:ref:`Levis et al. 2016 `), and those are now incorporated into CLM5. +AgroIBIS is a state-of-the-art land surface model with options to simulate dynamic vegetation (:ref:`Kucharik et al. 2000 `) and interactive crop management (:ref:`Kucharik and Brye 2003 `). The interactive crop management parameterizations from AgroIBIS (March 2003 version) were coupled as a proof-of-concept to the Community Land Model version 3 [CLM3.0, :ref:`Oleson et al. (2004) ` ] (not published), then coupled to the CLM3.5 (:ref:`Levis et al. 2009 `) and later released to the community with CLM4CN (:ref:`Levis et al. 2012 `), and CLM4.5BGC. Additional updates after the release of CLM4.5 were available by request (:ref:`Levis et al. 2016 `), and those are now incorporated into CLM5. With interactive crop management and, therefore, a more accurate representation of agricultural landscapes, we hope to improve the CLM's simulated biogeophysics and biogeochemistry. These advances may improve fully coupled simulations with the Community Earth System Model (CESM), while helping human societies answer questions about changing food, energy, and water resources in response to climate, environmental, land use, and land management change (e.g., :ref:`Kucharik and Brye 2003 `; :ref:`Lobell et al. 2006 `). As implemented here, the crop model uses the same physiology as the natural vegetation but with uses different crop-specific parameter values, phenology, and allocation, as well as fertilizer and irrigation management. diff --git a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst index ef14116d15..185e58b7eb 100644 --- a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst +++ b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst @@ -279,7 +279,7 @@ where :math:`M_{j1} =(M_{{leaf}},M_{{livestem,1}},M_{{deadstem}},M_{{root}},M_{{ where :math:`M_{livestem,2}` is the corresponding mortality factor (:numref:`Table PFT-specific fire parameters`). -Fire nitrogen emissions and nitrogen transfers due to fire-induced mortality are calculated the same way as for carbon, using the same values for combustion completeness and mortality factors. With CLM's dynamic vegetation option (i.e. transient land use) enabled, the number of tree PFT individuals killed by fire per km\ :sup:`2` (individual km\ :sup:`-2` s\ :sup:`-1`) is given by +Fire nitrogen emissions and nitrogen transfers due to fire-induced mortality are calculated the same way as for carbon, using the same values for combustion completeness and mortality factors. .. math:: :label: 23.29 diff --git a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst index 743b608b9f..14dc084815 100644 --- a/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst +++ b/doc/source/users_guide/setting-up-and-running-a-case/customizing-the-clm-configuration.rst @@ -291,7 +291,7 @@ The ``$CTSMROOT/cime_config/buildnml`` script already sets the resolution and ma ``-chk_res`` ensures that the resolution chosen is supported by CLM. If the resolution is NOT supported it will cause the CLM ``build-namelist`` to abort when run. So when either ``preview_namelist``, ``case.build`` or ``case.run`` is executed it will abort early. Since, the CESM scripts only support certain resolutions anyway, in general this option is NOT needed in the context of running CESM cases. -``-clm_demand`` asks the ``build-namelist`` step to require that the list of variables entered be set. Typically, this is used to require that optional filenames be used and ensure they are set before continuing. For example, you may want to require that fpftdyn be set to get dynamically changing vegetation types (i.e. transient landuse change). To do this you would do the following. +``-clm_demand`` asks the ``build-namelist`` step to require that the list of variables entered be set. Typically, this is used to require that optional filenames be used and ensure they are set before continuing. For example, you may want to require that fpftdyn be set to get dynamically changing vegetation types. To do this you would do the following. :: > ./xmlchange CLM_BLDNML_OPTS="-clm_demand fpftdyn" @@ -302,7 +302,7 @@ To see a list of valid variables that you could set do this: > cd $CTSMROOT/doc > ../bld/build-namelist -clm_demand list -.. note:: Using a 20th-Century transient compset or the ``20thC_transient`` use-case using ``CLM_NML_USE_CASE`` would set this as well, but would also use dynamic nitrogen and aerosol deposition files, so using ``-clm_demand`` would be a way to get *just* dynamic vegetation types (transient landuse change) and NOT the other files as well. +.. note:: Using a 20th-Century transient compset or the ``20thC_transient`` use-case using ``CLM_NML_USE_CASE`` would set this as well, but would also use dynamic nitrogen and aerosol deposition files, so using ``-clm_demand`` would be a way to get *just* dynamic vegetation types and NOT the other files as well. ``-drydep`` adds a dry-deposition namelist for testing to the driver. This is a driver namelist, but adding the option here has CLM ``build-namelist`` create the ``drv_flds_in`` file that the driver will copy over and use. Invoking this option does have an impact on performance even for I compsets and will slow the model down. It's also only useful when running with an active atmosphere model that makes use of this information. From de5413372b8fcba8843dede8d519885e8d4b804c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 29 Jul 2026 13:49:27 -0600 Subject: [PATCH 53/92] Update doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst Co-authored-by: Samuel Levis --- doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst index 13a4e89aee..f01af95c1b 100644 --- a/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst +++ b/doc/source/tech_note/Glacier/CLM50_Tech_Note_Glacier.rst @@ -80,7 +80,7 @@ The world's glaciers and ice sheets are broken down into a number of different r b. Ice runoff from snow capping is melted (generating a negative sensible heat flux) and runs off as liquid. This matches the behavior for non-glacier columns. This is appropriate in regions that have little iceberg calving in reality. This can be important to avoid unrealistic cooling of the ocean and consequent runaway sea ice growth. -The default behaviors for the world's glacier and ice sheet regions are described in :numref:`Table Glacier region behaviors`. Note that the Greenland region stops at the edge of Greenland as defined by CISM/DGLC. This means that, by default, SMB is not computed for grid cells outside Greenland but within the CISM/DGC domain. (This treatment of the non-Greenland portion of the CISM/DGC domain as being the same as the world's mountain glaciers rather than like Greenland itself is mainly for the sake of avoiding unrealistic fluxes from the Canadian archipelago that can potentially result in runaway sea ice growth in that region.) +The default behaviors for the world's glacier and ice sheet regions are described in :numref:`Table Glacier region behaviors`. Note that the Greenland region stops at the edge of Greenland as defined by CISM/DGLC. This means that, by default, SMB is not computed for grid cells outside Greenland but within the CISM/DGLC domain. (This treatment of the non-Greenland portion of the CISM/DGLC domain as being the same as the world's mountain glaciers rather than like Greenland itself is mainly for the sake of avoiding unrealistic fluxes from the Canadian archipelago that can potentially result in runaway sea ice growth in that region.) .. _Table Glacier region behaviors: From 4008844cefef86362b8f77618545757887137081 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 29 Jul 2026 15:29:11 -0600 Subject: [PATCH 54/92] Fix case of MOSART to lowercase so will work --- cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands | 2 +- .../clm/ciso_monthly_matrixcn_spinup/shell_commands | 2 +- .../clm/monthly_matrixcn_fast_spinup/shell_commands | 2 +- .../testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands index 845d6f2b19..0e434ebd2f 100644 --- a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands @@ -3,7 +3,7 @@ ./xmlchange CLM_ACCELERATED_SPINUP="on" COMP_ROF=`./xmlquery --value COMP_ROF` -if [[ $COMP_ROF == "MOSART" ]]; then +if [[ $COMP_ROF == "mosart" ]]; then ./xmlchange MOSART_MODE="NULL" fi diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands index cc65d65923..17949a2675 100755 --- a/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_monthly_matrixcn_spinup/shell_commands @@ -1,6 +1,6 @@ ./xmlchange CLM_ACCELERATED_SPINUP=sasu COMP_ROF=`./xmlquery --value COMP_ROF` -if [[ $COMP_ROF == "MOSART" ]]; then +if [[ $COMP_ROF == "mosart" ]]; then ./xmlchange MOSART_MODE="NULL" fi \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands index 24010bb518..5aea75115a 100755 --- a/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/monthly_matrixcn_fast_spinup/shell_commands @@ -2,6 +2,6 @@ ./xmlchange DATM_YR_START=1901,DATM_YR_END=1902 COMP_ROF=`./xmlquery --value COMP_ROF` -if [[ $COMP_ROF == "MOSART" ]]; then +if [[ $COMP_ROF == "mosart" ]]; then ./xmlchange MOSART_MODE="NULL" fi diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands index 81a0b9246f..90106d0457 100644 --- a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands @@ -1,6 +1,6 @@ #!/bin/bash COMP_ROF=`./xmlquery --value COMP_ROF` -if [[ $COMP_ROF == "MOSART" ]]; then +if [[ $COMP_ROF == "mosart" ]]; then ./xmlchange MOSART_MODE="NULL" fi From dab47db51701508c1bae2f062da366f0a87f89d0 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 29 Jul 2026 15:47:15 -0600 Subject: [PATCH 55/92] Correct mizuRoute compsets and tests with the nldas and 5x5_amazon ones using Gs stub GLC --- cime_config/config_compsets.xml | 9 +++++++-- cime_config/testdefs/testlist_clm.xml | 14 +++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 8456dfc30d..e35321cdb0 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -109,8 +109,13 @@ - I2000Clm60SpMizNldas - 2000_DATM%NLDAS2_CLM60%SP_SICE_SOCN_MIZUROUTE_DGLC%NOEVOLVE_SWAV + I2000Clm60SpMizSpGs + 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV + + + + I2000Clm60SpMizNldasGs + 2000_DATM%NLDAS2_CLM60%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index e55ba40215..654f37d5f9 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -4270,7 +4270,7 @@ - + @@ -4279,7 +4279,7 @@ - + @@ -4288,7 +4288,7 @@ - + @@ -4297,7 +4297,7 @@ - + @@ -4306,7 +4306,7 @@ - + @@ -4315,7 +4315,7 @@ - + @@ -4324,7 +4324,7 @@ - + From ddf5f05f7b4269de2ccf753370f9f983b5cd109c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 30 Jul 2026 01:20:10 -0600 Subject: [PATCH 56/92] Correct the new mizuRoute alias with stub GLC --- cime_config/config_compsets.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index e35321cdb0..52402d19d2 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -109,7 +109,7 @@ - I2000Clm60SpMizSpGs + I2000Clm60SpMizGs 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV From bdecf286129f3123bb718c64e65b145613ea6735 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 30 Jul 2026 15:21:51 -0600 Subject: [PATCH 57/92] Remove mention of clm4_5 physics for the purpose of tracking major answer changes --- doc/.ChangeLog_template | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/.ChangeLog_template b/doc/.ChangeLog_template index 95ea01885b..abd58c8c5e 100644 --- a/doc/.ChangeLog_template +++ b/doc/.ChangeLog_template @@ -24,9 +24,6 @@ Does this tag change answers significantly for any of the following physics conf [ ] ctsm5_0-nwp -[ ] clm4_5 - - Bugs fixed ---------- [Remove any lines that don't apply. Remove entire section if nothing applies.] From 985abf156b2853761f975860e3c8bc1d9cbb2d1e Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 31 Jul 2026 14:20:48 -0600 Subject: [PATCH 58/92] Add notes on the testlists included --- cime_config/testdefs/testlist_clm.xml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 654f37d5f9..dfbec54185 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1,22 +1,28 @@ @@ -621,7 +621,7 @@ - + @@ -710,7 +710,7 @@ - + @@ -719,7 +719,7 @@ - + @@ -728,7 +728,7 @@ - + @@ -737,7 +737,7 @@ - + @@ -753,7 +753,7 @@ - + @@ -870,7 +870,7 @@ - + @@ -1288,7 +1288,7 @@ - + @@ -1307,7 +1307,7 @@ - + @@ -1400,7 +1400,7 @@ - + @@ -1427,7 +1427,7 @@ - + @@ -1455,7 +1455,7 @@ - + @@ -1464,7 +1464,7 @@ - + @@ -1551,7 +1551,7 @@ - + @@ -1657,7 +1657,7 @@ - + @@ -1676,7 +1676,7 @@ - + @@ -1689,7 +1689,7 @@ - + @@ -1698,7 +1698,7 @@ - + @@ -1708,7 +1708,7 @@ - + @@ -1791,7 +1791,7 @@ - + @@ -1800,7 +1800,7 @@ - + @@ -1815,7 +1815,7 @@ - + @@ -1834,7 +1834,7 @@ - + @@ -1847,7 +1847,7 @@ - + @@ -2131,7 +2131,7 @@ - + @@ -2140,7 +2140,7 @@ - + @@ -2438,7 +2438,7 @@ - + @@ -2891,7 +2891,7 @@ - + @@ -3741,7 +3741,7 @@ - + @@ -3853,7 +3853,7 @@ - + @@ -4576,7 +4576,7 @@ - + From be58dbd4a8f960a4908cc2b8ddef46f5f8d2a690 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 16:50:29 -0600 Subject: [PATCH 72/92] Remove a duplicated test --- cime_config/testdefs/testlist_clm.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 60f610730d..89de41599b 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -255,16 +255,6 @@ - - - - - - - - - - From 558b48f45221099652e24620d52019f21b1e0866 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 16:56:43 -0600 Subject: [PATCH 73/92] Remove all but one of the Cruv7 compsets --- cime_config/config_compsets.xml | 36 --------------------------------- 1 file changed, 36 deletions(-) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index f65b31e05b..340e45dbb2 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -172,11 +172,6 @@ 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - I1850Clm50SpCru - 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - I1850Clm60SpCrujra 1850_DATM%CRUJRA2024b_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -186,11 +181,6 @@ - - I1850Clm60SpCru - 1850_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - I1850Clm50BgcCrop 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV @@ -265,18 +255,6 @@ 1850_DATM%CRUJRA2024b_CLM60%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - - I1850Clm50BgcCropCru - 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - - - - I1850Clm60BgcCropCru - 1850_DATM%CRUv7_CLM60%BGC-CROP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - @@ -331,10 +309,6 @@ I2000Clm60FatesSpRsGs 2000_DATM%GSWP3v1_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV - - I2000Clm50FatesCru - 2000_DATM%CRUv7_CLM50%FATES_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - I2000Clm50FatesRsGs @@ -437,16 +411,6 @@ HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - IHistClm50SpCru - HIST_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - - - IHistClm60SpCru - HIST_DATM%CRUv7_CLM60%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV - - IHistClm50Bgc HIST_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV From caac0d00ac4cb6bfe07865ef06e17bdc4c12ec5e Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 17:12:07 -0600 Subject: [PATCH 74/92] Remove some unneeded tests as pointed out by #4148 --- cime_config/testdefs/testlist_clm.xml | 28 --------------------------- 1 file changed, 28 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 89de41599b..a52d03af89 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2159,14 +2159,6 @@ - - - - - - - - @@ -4566,17 +4558,6 @@ - - - - - - - - - - - @@ -4597,15 +4578,6 @@ - - - - - - - - - From 5ca0c73c2dab19e4a398672787aa5c15ae07479c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 22:35:14 -0600 Subject: [PATCH 75/92] Set DGLC coupling to half a day so the 12hour test will work --- .../testdefs/testmods_dirs/clm/DA_multidrv/shell_commands | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cime_config/testdefs/testmods_dirs/clm/DA_multidrv/shell_commands b/cime_config/testdefs/testmods_dirs/clm/DA_multidrv/shell_commands index 3a08fbc8e7..fe3925c56e 100644 --- a/cime_config/testdefs/testmods_dirs/clm/DA_multidrv/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/DA_multidrv/shell_commands @@ -2,5 +2,8 @@ ./xmlchange LND_DATA_ASSIMILATION=TRUE ./xmlchange MULTI_DRIVER=TRUE +#Set DGLC coupling to half a day so 12hour tests can work +./xmlchange GLC_NCPL=24 + # Set calendar, just because Gregorian is ussually used for DA ./xmlchange CALENDAR=GREGORIAN From 43c110ccb05d3467e4e1428896edea4043aae094 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 22:54:00 -0600 Subject: [PATCH 76/92] Add the missing Clm50 compset --- cime_config/config_compsets.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 340e45dbb2..a49f2a46b9 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -123,6 +123,12 @@ 2010_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + I2000Clm50Bgc + 2000_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV + + + I2000Clm50BgcCru 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_DGLC%NOEVOLVE_SWAV From 58bf331897ac9a74430e5e731ae7cc9605278761 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 3 Aug 2026 22:56:03 -0600 Subject: [PATCH 77/92] Set GLC_NCPL for the compsets that set ROF_NCPL to so that they will work with DGLC --- .../clm/FatesColdCamLndTuningMode/shell_commands | 2 +- .../clm/FatesColdSatPhenCamLndTuningMode/shell_commands | 2 +- .../clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands | 2 +- .../clm/clm50cam5LndTuningModeZDustSoilErod/shell_commands | 2 +- .../testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands | 2 +- .../testmods_dirs/clm/clm50cam7LndTuningMode/shell_commands | 2 +- .../testmods_dirs/clm/clm60cam6LndTuningMode/shell_commands | 2 +- .../clm/for_testing_fastsetup_bypassrun/shell_commands | 4 ++-- .../testdefs/testmods_dirs/clm/pauseResume/shell_commands | 2 ++ .../testdefs/testmods_dirs/clm/waccmx_offline/shell_commands | 4 ++-- 10 files changed, 13 insertions(+), 11 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdCamLndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdCamLndTuningMode/shell_commands index 7dd25a08bf..2602f065de 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdCamLndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdCamLndTuningMode/shell_commands @@ -1,5 +1,5 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm6_0_cam7.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhenCamLndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhenCamLndTuningMode/shell_commands index 7dd25a08bf..2602f065de 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhenCamLndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhenCamLndTuningMode/shell_commands @@ -1,5 +1,5 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm6_0_cam7.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands index 7b002f6950..66497e5e9e 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam4LndTuningModeZDustSoilErod/shell_commands @@ -1,5 +1,5 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm5_0_cam4.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam5LndTuningModeZDustSoilErod/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam5LndTuningModeZDustSoilErod/shell_commands index 753bc2f045..926009ccf5 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm50cam5LndTuningModeZDustSoilErod/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam5LndTuningModeZDustSoilErod/shell_commands @@ -1,5 +1,5 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm5_0_cam5.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands index dfdf1a96dc..0cc1ccca1c 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands @@ -1,6 +1,6 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm5_0_cam6.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' ./xmlchange CLM_NDEP_FROM_CPL="TRUE" diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam7LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam7LndTuningMode/shell_commands index 10125c04fd..316758b9fb 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm50cam7LndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam7LndTuningMode/shell_commands @@ -1,6 +1,6 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm5_0_cam7.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' ./xmlchange CLM_NDEP_FROM_CPL="TRUE" diff --git a/cime_config/testdefs/testmods_dirs/clm/clm60cam6LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm60cam6LndTuningMode/shell_commands index 1c0d86dbb3..d5156118d2 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm60cam6LndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm60cam6LndTuningMode/shell_commands @@ -1,6 +1,6 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm6_0_cam6.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' ./xmlchange CLM_NDEP_FROM_CPL="TRUE" diff --git a/cime_config/testdefs/testmods_dirs/clm/for_testing_fastsetup_bypassrun/shell_commands b/cime_config/testdefs/testmods_dirs/clm/for_testing_fastsetup_bypassrun/shell_commands index 0d8a5d36e1..e404bac228 100755 --- a/cime_config/testdefs/testmods_dirs/clm/for_testing_fastsetup_bypassrun/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/for_testing_fastsetup_bypassrun/shell_commands @@ -1,8 +1,8 @@ #!/bin/bash ./xmlchange CLM_FORCE_COLDSTART="on" -# We use this testmod in a _Ln1 test; this requires forcing the ROF coupling frequency to same frequency as DATM -./xmlchange ROF_NCPL='$ATM_NCPL' +# We use this testmod in a _Ln1 test; this requires forcing the DGLC/ROF coupling frequency to same frequency as DATM +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' # Turn off ROF model when used with compsets that have them ./xmlchange RTM_MODE='NULL' diff --git a/cime_config/testdefs/testmods_dirs/clm/pauseResume/shell_commands b/cime_config/testdefs/testmods_dirs/clm/pauseResume/shell_commands index 4b6f8faeea..cb7a4b0c4d 100644 --- a/cime_config/testdefs/testmods_dirs/clm/pauseResume/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/pauseResume/shell_commands @@ -2,3 +2,5 @@ ./xmlchange LND_PAUSE_ACTIVE=TRUE # Set calendar, just because Gregorian is ussually used for DA ./xmlchange CALENDAR=GREGORIAN +#Set DGLC coupling to half a day so 12hour tests can work +./xmlchange GLC_NCPL=24 diff --git a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands index 5e9068895c..b8c3973f70 100755 --- a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands @@ -1,5 +1,5 @@ -./xmlchange USE_ESMF_LIB=TRUE,ATM_NCPL=288,CALENDAR=GREGORIAN,ROF_NCPL='$ATM_NCPL',LND_TUNING_MODE="clm5_0_cam6.0" +./xmlchange USE_ESMF_LIB=TRUE,ATM_NCPL=288,CALENDAR=GREGORIAN,LND_TUNING_MODE="clm5_0_cam6.0" ./xmlchange CLM_BLDNML_OPTS="-megan -drydep" --append ./xmlchange RUN_STARTDATE=1979-01-01 -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' From e9c570ce4941a349eedd2fd20a036d838829f50d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 16:36:29 -0600 Subject: [PATCH 78/92] Make FatesCru tests to use default forcing, and update Cruv7 tests in Expected fails --- cime_config/testdefs/ExpectedTestFails.xml | 18 ++++---- cime_config/testdefs/testlist_clm.xml | 50 +++++++++++----------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index e9f1f43245..04e2868012 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -74,7 +74,7 @@ This failure relates to the following REP failure. - + FAIL #2619 @@ -86,7 +86,7 @@ This failure relates to the following REP failure. - + FAIL #2619 @@ -142,7 +142,7 @@ Divide by zero happens when ch4finundatedmapalgo==bilinear with intel/2025.3.2, but passes for nn,consf,consd - + FAIL #3798 @@ -156,7 +156,7 @@ Divide by zero happens when ch4finundatedmapalgo==bilinear with intel/2025.3.2, but passes for nn,consf,consd - + FAIL #3798 @@ -201,7 +201,7 @@ - + FAIL #3660 @@ -218,7 +218,7 @@ --> - + PEND FATES#983 @@ -240,7 +240,7 @@ - + FAIL #2919 @@ -254,14 +254,14 @@ - + FAIL #2653 - + FAIL #2321 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 14dae9dcf9..bd4533fa41 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3714,7 +3714,7 @@ - + @@ -3741,7 +3741,7 @@ - + @@ -3768,7 +3768,7 @@ - + @@ -3805,7 +3805,7 @@ - + @@ -3815,7 +3815,7 @@ - + @@ -3824,7 +3824,7 @@ - + @@ -3833,7 +3833,7 @@ - + @@ -3843,7 +3843,7 @@ - + @@ -3862,7 +3862,7 @@ - + @@ -3872,7 +3872,7 @@ - + @@ -3882,7 +3882,7 @@ - + @@ -3894,7 +3894,7 @@ - + @@ -3904,7 +3904,7 @@ - + @@ -3913,7 +3913,7 @@ - + @@ -3931,7 +3931,7 @@ - + @@ -3940,7 +3940,7 @@ - + @@ -3949,7 +3949,7 @@ - + @@ -3957,7 +3957,7 @@ - + @@ -3965,7 +3965,7 @@ - + @@ -3973,7 +3973,7 @@ - + @@ -4050,7 +4050,7 @@ - + @@ -4059,7 +4059,7 @@ - + @@ -4068,7 +4068,7 @@ - + @@ -4077,7 +4077,7 @@ - + @@ -4087,7 +4087,7 @@ - + From 813ddcb7a5937ec49b95879e4499b156f7df691e Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 21:53:05 -0600 Subject: [PATCH 79/92] More work to make expected fails and testlist consistent with each other --- cime_config/testdefs/ExpectedTestFails.xml | 22 +++++++++++----------- cime_config/testdefs/testlist_clm.xml | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 04e2868012..1f0f75e1ed 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -37,14 +37,14 @@ - + FAIL #3660 Restart issues with default "inactive" fields added to history by hist_all_fields. - + FAIL #3454 @@ -55,7 +55,7 @@ Divide by zero happens when ch4finundatedmapalgo==bilinear with intel/2025.3.2, but passes for nn,consf,consd - + FAIL #3454 @@ -74,7 +74,7 @@ This failure relates to the following REP failure. - + FAIL #2619 @@ -86,7 +86,7 @@ This failure relates to the following REP failure. - + FAIL #2619 @@ -164,7 +164,7 @@ - + FAIL #2261 @@ -201,7 +201,7 @@ - + FAIL #3660 @@ -218,7 +218,7 @@ --> - + PEND FATES#983 @@ -240,7 +240,7 @@ - + FAIL #2919 @@ -254,14 +254,14 @@ - + FAIL #2653 - + FAIL #2321 diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index bd4533fa41..40486bd4eb 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3768,7 +3768,7 @@ - + @@ -3805,7 +3805,7 @@ - + @@ -3833,7 +3833,7 @@ - + From ca9ddc10515e7af6d991767cb6fe6ed1b2c784e8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 22:20:36 -0600 Subject: [PATCH 80/92] Update .github/workflows/check-compset-aliases.sh code review update --- .github/workflows/check-compset-aliases.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-compset-aliases.sh b/.github/workflows/check-compset-aliases.sh index 2d6db556bf..abcb46d1f9 100755 --- a/.github/workflows/check-compset-aliases.sh +++ b/.github/workflows/check-compset-aliases.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -# Check that clm6* compset aliases return CLM6* longnames +# Check that compset aliases return matching longnames # Change to top level of clone cd "$(git rev-parse --show-toplevel)" From ea151748f7f4c51addcbbe4ea347d18fadc21ffe Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 22:21:34 -0600 Subject: [PATCH 81/92] Update doc/source/users_guide/overview/introduction.rst code review clarification Co-authored-by: Samuel Levis --- doc/source/users_guide/overview/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/users_guide/overview/introduction.rst b/doc/source/users_guide/overview/introduction.rst index 16428e5f33..06f76dff44 100644 --- a/doc/source/users_guide/overview/introduction.rst +++ b/doc/source/users_guide/overview/introduction.rst @@ -96,7 +96,7 @@ The README (which can be found in ``$CTSMROOT/doc``) is repeated here. - Initial condition files are provided for CLM4.5 and CLM5.0 from the previous release, for fully coupled B compsets with BGC and offline I compset BGC and SP cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and 1-degree SE grid: ne30.pg3 resolutions. There's also an initial condition file for CLMBGC with the prognostic crop model for 2000 at 2deg resolution, and one with CLM-SP for 2000 at 2deg resolution. The 1850 initial condition files are in 'reasonable' equilibrium. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. -- Initial condition files are also provided for |version| for several configurations and resolutions. |version|-SP and |version|-BGC-Crop with CRUJRA forcing we have initial conditions at 1deg and 2deg resolutions for 1850, 1979, 2000 and 2010. Normally, these files are interpolated to any other resolution that you run at. +- Initial condition files are also provided for |version| for several configurations and resolutions. For |version|-SP and |version|-BGC-Crop with CRUJRA forcing we have initial conditions at 1deg and 2deg resolutions for 1850, 1979, 2000 and 2010. Normally, these files are interpolated to any other resolution that you run at. - Users can interpolate initial condition files at different resolutions at startup of a CLM4.5, CLM5.0 or |version| simulation. And the file created can be stored for later use. Interpolated initial condition files may no longer be in 'reasonable' equilibrium. From 4f8d62a550e5f719f254f7d6b542a8ee821e8480 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 22:22:44 -0600 Subject: [PATCH 82/92] Update doc/source/users_guide/overview/introduction.rst Remove repeated reference from code review. Co-authored-by: Samuel Levis --- doc/source/users_guide/overview/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/users_guide/overview/introduction.rst b/doc/source/users_guide/overview/introduction.rst index 06f76dff44..7f323a28dd 100644 --- a/doc/source/users_guide/overview/introduction.rst +++ b/doc/source/users_guide/overview/introduction.rst @@ -92,7 +92,7 @@ The README (which can be found in ``$CTSMROOT/doc``) is repeated here. - |version| includes BOTH the old CLM4.5, and CLM5.0 physics AND the new |version| physics and you can toggle between those three. The "standard" practice for CLM4.0 is to run with CN on, and with Qian atmospheric forcing. While the "standard" practice for CLM4.5 is to run with BGC on, and CRUNCEP atmospheric forcing. And finally the "standard" practice for |version| is to run with BGC and Prognostic Crop on, with the MOSART model for river routing, as well as the DGLC data ice sheet model, and using CRUJRA atmospheric forcing. "BGC" is the new |version| biogeochemistry and include CENTURY-like pools, vertical resolved carbon, as well as Nitrification and de-Nitrification (see :ref:`acronyms-and-terms`). -- When running with BGC vegetation (either CLM4.5, CLM5.0 or |version| physics) or |version|-BGC, it is critical to begin with initial conditions that are provided with the release or to spin the model up following the BGC spinup procedure before conducting scientific runs (see :ref:`spinning-up-clm-bgc` or :ref:`spinning-up-sp`). Simulations without a proper spinup will effectively be starting from an unvegetated world. See :ref:`setting-initial-conditions` for information on how to provide initial conditions for your simulation. +- When running with BGC vegetation (either CLM4.5, CLM5.0 or |version| physics), it is critical to begin with initial conditions that are provided with the release or to spin the model up following the BGC spinup procedure before conducting scientific runs (see :ref:`spinning-up-clm-bgc` or :ref:`spinning-up-sp`). Simulations without a proper spinup will effectively be starting from an unvegetated world. See :ref:`setting-initial-conditions` for information on how to provide initial conditions for your simulation. - Initial condition files are provided for CLM4.5 and CLM5.0 from the previous release, for fully coupled B compsets with BGC and offline I compset BGC and SP cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and 1-degree SE grid: ne30.pg3 resolutions. There's also an initial condition file for CLMBGC with the prognostic crop model for 2000 at 2deg resolution, and one with CLM-SP for 2000 at 2deg resolution. The 1850 initial condition files are in 'reasonable' equilibrium. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. From 967294ef169405fbbab9010929614a138cc7e2bd Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 4 Aug 2026 22:56:10 -0600 Subject: [PATCH 83/92] Remove math equation for population density Removed math lines recommended in code review. --- doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst | 7 ------- 1 file changed, 7 deletions(-) diff --git a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst index 185e58b7eb..548658bb62 100644 --- a/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst +++ b/doc/source/tech_note/Fire/CLM50_Tech_Note_Fire.rst @@ -281,13 +281,6 @@ where :math:`M_{livestem,2}` is the corresponding mortality factor (:numref:`Tab Fire nitrogen emissions and nitrogen transfers due to fire-induced mortality are calculated the same way as for carbon, using the same values for combustion completeness and mortality factors. -.. math:: - :label: 23.29 - - P_{disturb,j} =\frac{A_{b,j} }{f_{j} A_{g} } P_{j} \xi _{j} - -where :math:`P_{j}` (individual km\ :sup:`-2`) is the population density for the :math:`j` th tree PFT and :math:`\xi _{j}` is the whole-plant mortality factor (:numref:`Table PFT-specific fire parameters`). - .. _Agricultural fires: Agricultural fires From 76999d0d81df36585ec06a8aba463f0676d896c5 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 10:44:40 -0600 Subject: [PATCH 84/92] Fix compset names in two fates tests --- cime_config/testdefs/testlist_clm.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 40486bd4eb..5c4f3e9db2 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3750,7 +3750,7 @@ - + @@ -3759,7 +3759,7 @@ - + From 9b58012c3c66b68a0546084528029a8bcd4779bb Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 18:46:18 -0600 Subject: [PATCH 85/92] Update doc/source/users_guide/overview/introduction.rst Remove sentence as noted in code review. Co-authored-by: Samuel Levis --- doc/source/users_guide/overview/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/users_guide/overview/introduction.rst b/doc/source/users_guide/overview/introduction.rst index 7f323a28dd..8a21968f0f 100644 --- a/doc/source/users_guide/overview/introduction.rst +++ b/doc/source/users_guide/overview/introduction.rst @@ -94,7 +94,7 @@ The README (which can be found in ``$CTSMROOT/doc``) is repeated here. - When running with BGC vegetation (either CLM4.5, CLM5.0 or |version| physics), it is critical to begin with initial conditions that are provided with the release or to spin the model up following the BGC spinup procedure before conducting scientific runs (see :ref:`spinning-up-clm-bgc` or :ref:`spinning-up-sp`). Simulations without a proper spinup will effectively be starting from an unvegetated world. See :ref:`setting-initial-conditions` for information on how to provide initial conditions for your simulation. -- Initial condition files are provided for CLM4.5 and CLM5.0 from the previous release, for fully coupled B compsets with BGC and offline I compset BGC and SP cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and 1-degree SE grid: ne30.pg3 resolutions. There's also an initial condition file for CLMBGC with the prognostic crop model for 2000 at 2deg resolution, and one with CLM-SP for 2000 at 2deg resolution. The 1850 initial condition files are in 'reasonable' equilibrium. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. +- Initial condition files are provided for CLM4.5 and CLM5.0 from the previous release, for fully coupled B compsets with BGC and offline I compset BGC and SP cases for 1850 and 2000 at finite volume grids: 1deg (0.9x1.25), 2deg (1.9x2.5), and 1-degree SE grid: ne30.pg3 resolutions. There's also an initial condition file for CLMBGC with the prognostic crop model for 2000 at 2deg resolution, and one with CLM-SP for 2000 at 2deg resolution. The 2000 initial condition files represent the model state for the year 2000, and have been taken from transient simulations. Therefore, by design the year 2000 initial condition files do not represent an equilibrium state. Note also that spinning the 2000 initial conditions out to equilibrium will not reflect the best estimate of the real carbon/nitrogen state for the year 2000. - Initial condition files are also provided for |version| for several configurations and resolutions. For |version|-SP and |version|-BGC-Crop with CRUJRA forcing we have initial conditions at 1deg and 2deg resolutions for 1850, 1979, 2000 and 2010. Normally, these files are interpolated to any other resolution that you run at. From a65f1fd0d249d1a2fc45103f2a38e374c2277a44 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 18:51:19 -0600 Subject: [PATCH 86/92] Add some clarification notes about the SSP and SSPMATRIX tests as noted in the code review --- cime_config/config_tests.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index 15db55b318..94aa0bce6d 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -187,6 +187,7 @@ This defines various CTSM-specific system tests smoke CLM CN-Matrix spinup test 1 From 56488ea81cb1b2eb48cd8d9467034e7a4b5bac3f Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 19:14:01 -0600 Subject: [PATCH 87/92] Remove the rtmColdSSP testmod and change tests that use it to default --- cime_config/testdefs/testlist_clm.xml | 8 ++++---- .../testmods_dirs/clm/ciso_rtmColdSSP/include_user_mods | 2 -- .../testmods_dirs/clm/rtmColdSSP/include_user_mods | 1 - .../testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands | 6 ------ .../testdefs/testmods_dirs/clm/rtmColdSSP/user_nl_rtm | 4 ---- 5 files changed, 4 insertions(+), 17 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/ciso_rtmColdSSP/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands delete mode 100644 cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/user_nl_rtm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 5c4f3e9db2..f02bb9df2c 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3318,7 +3318,7 @@ - + @@ -3327,7 +3327,7 @@ - + @@ -3335,7 +3335,7 @@ - + @@ -3343,7 +3343,7 @@ - + diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_rtmColdSSP/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ciso_rtmColdSSP/include_user_mods deleted file mode 100644 index 7cded6662d..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/ciso_rtmColdSSP/include_user_mods +++ /dev/null @@ -1,2 +0,0 @@ -../ciso -../rtmColdSSP diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands deleted file mode 100644 index 90106d0457..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -COMP_ROF=`./xmlquery --value COMP_ROF` -if [[ $COMP_ROF == "mosart" ]]; then - ./xmlchange MOSART_MODE="NULL" -fi diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/user_nl_rtm b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/user_nl_rtm deleted file mode 100644 index e78d13a51c..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/user_nl_rtm +++ /dev/null @@ -1,4 +0,0 @@ -finidat = " " -mfilt = 1 -ndens = 2 -nhtfrq = 0 From 9a2d4576947d937500ee900053f5f1b0cb3e03c1 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 19:25:58 -0600 Subject: [PATCH 88/92] Clarify that SSP tests can be used for both clm50 and clm60, but they represented the standard procedure for clm50, whereas SSPMATRIX is the standard for clm60 --- cime_config/config_tests.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index 94aa0bce6d..3ffb8f6867 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -186,8 +186,9 @@ This defines various CTSM-specific system tests smoke CLM CN-Matrix spinup test From b6d20f9c834aca88b9f3d90ac0dd482d14f6c2de Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 19:26:51 -0600 Subject: [PATCH 89/92] Add a standard resolution SSPMATRIX test to ctsm_sci so that we have a full globe SSPMATRIX test happening --- cime_config/testdefs/testlist_clm.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index f02bb9df2c..adfd795ad3 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -3309,6 +3309,15 @@ + + + + + + + + + From a095666207bcd0b48150f508b53bd6fd66734b43 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 22:23:27 -0600 Subject: [PATCH 90/92] Add the multi-instances tests that fail due to DGLC to Expected fails --- cime_config/testdefs/ExpectedTestFails.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 1f0f75e1ed..1b4f8f40e2 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -127,6 +127,19 @@ + + + FAIL + ESCOMP/CDEPS#3788 + + + + + + FAIL + ESCOMP/CDEPS#3788 + + From 48ed6abb9ea662c33d54d1a7b17c6f738a76d409 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 5 Aug 2026 22:39:59 -0600 Subject: [PATCH 91/92] Remove the CMIP6ndepTwoVars testmod and test, since CTSM doesn't know how to add the two fields together --- cime_config/testdefs/testlist_clm.xml | 10 ---------- .../clm/CMIP6ndepTwoVars/include_user_mods | 1 - .../testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm | 4 ---- 3 files changed, 15 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods delete mode 100644 cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index adfd795ad3..ae129927fe 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -2139,16 +2139,6 @@ - - - - - - - - - - diff --git a/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods deleted file mode 100644 index fe0e18cf88..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../default diff --git a/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm deleted file mode 100644 index d38e2e358d..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/CMIP6ndepTwoVars/user_nl_clm +++ /dev/null @@ -1,4 +0,0 @@ -! Test that NDEP can be read in two seperate streams rather than the one that is the sum of both -ndep_varlist = 'NDEP_NOy_month', 'NDEP_Nhx_month' -ndep_taxmode = 'cycle' -stream_fldfilename_ndep = '$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_simyr1850_0.9x1.25_CMIP6alpha01_c170330.nc' From 730319d6910a24bcfe09165ae5b610bcc63838f4 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 7 Aug 2026 12:44:59 -0600 Subject: [PATCH 92/92] Add missing setting for GLC_NCPL --- .../testmods_dirs/clm/clm60cam7LndTuningMode/shell_commands | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/clm60cam7LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm60cam7LndTuningMode/shell_commands index 2923976af3..34766af9f1 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm60cam7LndTuningMode/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/clm60cam7LndTuningMode/shell_commands @@ -1,6 +1,6 @@ #!/bin/bash ./xmlchange LND_TUNING_MODE="clm6_0_cam7.0" -./xmlchange ROF_NCPL='$ATM_NCPL' +./xmlchange ROF_NCPL='$ATM_NCPL',GLC_NCPL='$ATM_NCPL' ./xmlchange CLM_NDEP_FROM_CPL="TRUE"