Skip to content

Commit 59d3408

Browse files
authored
Merge pull request #3206 from slevis-lmwg/update_defaults_iss3137
alpha-ctsm5.4.CMIP7.02.ctsm5.3.055: Update default settings
2 parents 996341b + f7dc9aa commit 59d3408

File tree

24 files changed

+522
-166
lines changed

24 files changed

+522
-166
lines changed

.github/workflows/docs-omnibus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ jobs:
5151
# TODO: Split testing.sh tests into their own steps in this job
5252
- name: Text Sphinx builds with omnibus script
5353
run: |
54-
cd doc && conda run -n ctsm_pylib ./testing.sh
54+
cd doc && ./testing.sh

.github/workflows/fleximod_test.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
uses: actions/checkout@v4
2323
- id: run-fleximod
2424
run: |
25-
$GITHUB_WORKSPACE/bin/git-fleximod update
25+
$GITHUB_WORKSPACE/bin/git-fleximod update -o
2626
echo
2727
echo "Update complete, checking status"
2828
echo
@@ -32,4 +32,4 @@ jobs:
3232
echo
3333
echo "Checking if git fleximod matches expected externals"
3434
echo
35-
git diff --exit-code
35+
git add . && git diff --exit-code && git diff --cached --exit-code

.github/workflows/validate_xml.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
"""
2+
Check that all XML files in our repo (except for those in submodules) are well-formed. Error if not.
3+
"""
4+
import sys
5+
import glob
6+
import os
7+
import subprocess
8+
import xml.etree.ElementTree as ET
9+
10+
11+
def get_submodule_paths():
12+
"""
13+
Get list of submodules
14+
"""
15+
cmd = "git config --file .gitmodules --get-regexp path | awk '{ print $2 }'"
16+
result = subprocess.run(cmd, capture_output=True, text=True, shell=True, check=True)
17+
result_list = result.stdout.split("\n")[:-1]
18+
result_list = [x for x in result_list if x]
19+
return result_list
20+
21+
22+
def is_in_submodule(file_path, submodule):
23+
"""
24+
Return True if file is in given submodule, False otherwise
25+
"""
26+
return os.path.commonpath([file_path, submodule]) == os.path.commonpath([submodule])
27+
28+
29+
def is_in_any_submodule(file_path, submodule_paths):
30+
"""
31+
Return True if file is in any submodule, False otherwise
32+
"""
33+
file_path = os.path.abspath(file_path)
34+
submodule_paths = map(os.path.abspath, submodule_paths)
35+
return any(is_in_submodule(file_path, submodule) for submodule in submodule_paths)
36+
37+
38+
def validate_xml(file_path):
39+
"""
40+
Return True if XML file is well-formed, False otherwise
41+
"""
42+
try:
43+
ET.parse(file_path)
44+
except ET.ParseError:
45+
print(f"❌ {file_path} is NOT well-formed")
46+
return False
47+
print(f"✅ {file_path} is well-formed")
48+
return True
49+
50+
51+
def main():
52+
# pylint: disable=missing-function-docstring
53+
submodule_paths = get_submodule_paths()
54+
all_valid = True
55+
for xml_file in glob.glob("**/*.xml", recursive=True):
56+
if is_in_any_submodule(xml_file, submodule_paths):
57+
continue
58+
if not validate_xml(xml_file):
59+
all_valid = False
60+
61+
if not all_valid:
62+
print("\nUse xmllint to show problems in malformed files")
63+
64+
return all_valid
65+
66+
67+
sys.exit(0 if main() else 1)

.github/workflows/xml-check.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Check that XML files are well-formed
2+
# Only check files in our repo that AREN'T in submodules
3+
# Use a Python command to check each file because xmllint isn't available on GH runners
4+
5+
on: [push, pull_request] # Trigger on push or pull request
6+
7+
jobs:
8+
check-xml:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout repository
12+
uses: actions/checkout@v3
13+
14+
- name: Set up Python
15+
uses: actions/setup-python@v4
16+
with:
17+
python-version: '3.x'
18+
19+
- name: Check XML files
20+
run: python .github/workflows/validate_xml.py

.gitmodules

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git
9292
[submodule "cdeps"]
9393
path = components/cdeps
9494
url = https://github.com/ESCOMP/CDEPS.git
95-
fxtag = cdeps1.0.73
95+
fxtag = cdeps1.0.75
9696
fxrequired = ToplevelRequired
9797
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
9898
fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS.git
@@ -128,13 +128,3 @@ fxtag = v2.2.6
128128
fxrequired = ToplevelOptional
129129
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
130130
fxDONOTUSEurl = https://github.com/ESMCI/doc-builder
131-
132-
# FTorch is an optional library useful for AI and Machine Learning
133-
# In order to use it -- it must be checked out with git-fleximod
134-
[submodule "FTorch"]
135-
path = libraries/FTorch
136-
url = https://github.com/ESCOMP/FTorch_interface
137-
fxtag = v0.0.5
138-
fxrequired = ToplevelOptional
139-
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
140-
fxDONOTUSEurl = https://github.com/ESCOMP/FTorch_interface

bld/CLMBuildNamelist.pm

Lines changed: 28 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1688,6 +1688,7 @@ sub process_namelist_inline_logic {
16881688
setup_logic_cnmatrix($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref);
16891689
setup_logic_spinup($opts, $nl_flags, $definition, $defaults, $nl);
16901690
setup_logic_supplemental_nitrogen($opts, $nl_flags, $definition, $defaults, $nl);
1691+
setup_logic_c_isotope($opts, $nl_flags, $definition, $defaults, $nl);
16911692
setup_logic_snowpack($opts, $nl_flags, $definition, $defaults, $nl);
16921693
setup_logic_fates($opts, $nl_flags, $definition, $defaults, $nl);
16931694
setup_logic_z0param($opts, $nl_flags, $definition, $defaults, $nl);
@@ -1737,7 +1738,6 @@ sub process_namelist_inline_logic {
17371738
# namelist group: ch4par_in #
17381739
###############################
17391740
setup_logic_methane($opts, $nl_flags, $definition, $defaults, $nl);
1740-
setup_logic_c_isotope($opts, $nl_flags, $definition, $defaults, $nl);
17411741

17421742
###############################
17431743
# namelist group: ndepdyn_nml #
@@ -3175,10 +3175,11 @@ sub setup_logic_do_grossunrep {
31753175

31763176
my $var = 'do_grossunrep';
31773177

3178-
# Start by assuming a default value of '.true.'. Then check a number of
3178+
# Start by assuming a default value of '.false.'. Then check a number of
31793179
# conditions under which do_grossunrep cannot be true. Under these
3180-
# conditions: (1) set default value to '.false.'; (2) make sure that the
3180+
# conditions: (1) set default value to '.false.' again; (2) make sure that the
31813181
# value is indeed false (e.g., that the user didn't try to set it to true).
3182+
# Ideally the default value would be set in namelist_defaults
31823183

31833184
my $default_val = ".false.";
31843185

@@ -3703,63 +3704,53 @@ sub setup_logic_c_isotope {
37033704
#
37043705
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;
37053706

3707+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_c13', 'bgc_mode'=>$nl_flags->{'bgc_mode'}, 'phys'=>$nl_flags->{'phys'});
3708+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_c14', 'bgc_mode'=>$nl_flags->{'bgc_mode'}, 'phys'=>$nl_flags->{'phys'});
37063709
my $use_c13 = $nl->get_value('use_c13');
37073710
my $use_c14 = $nl->get_value('use_c14');
37083711
if ( $nl_flags->{'bgc_mode'} ne "sp" && $nl_flags->{'bgc_mode'} ne "fates" ) {
37093712
if ( $nl_flags->{'bgc_mode'} ne "bgc" ) {
3710-
if ( defined($use_c13) && &value_is_true($use_c13) ) {
3713+
if ( &value_is_true($use_c13) ) {
37113714
$log->warning("use_c13 is ONLY scientifically validated with the bgc=BGC configuration" );
37123715
}
3713-
if ( defined($use_c14) && &value_is_true($use_c14) ) {
3716+
if ( &value_is_true($use_c14) ) {
37143717
$log->warning("use_c14 is ONLY scientifically validated with the bgc=BGC configuration" );
37153718
}
37163719
}
3717-
if ( defined($use_c14) ) {
3718-
if ( &value_is_true($use_c14) ) {
3719-
my $use_c14_bombspike = $nl->get_value('use_c14_bombspike');
3720-
if ( defined($use_c14_bombspike) && &value_is_true($use_c14_bombspike) ) {
3721-
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c14_filename',
3722-
'use_c14'=>$use_c14, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c14_bombspike'=>$nl->get_value('use_c14_bombspike'),
3723-
'ssp_rcp'=>$nl_flags->{'ssp_rcp'} );
3724-
}
3725-
} else {
3726-
if ( defined($nl->get_value('use_c14_bombspike')) ||
3727-
defined($nl->get_value('atm_c14_filename')) ) {
3728-
$log->fatal_error("use_c14 is FALSE and use_c14_bombspike or atm_c14_filename set");
3729-
}
3720+
if ( &value_is_true($use_c14) ) {
3721+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_c14_bombspike', 'bgc_mode'=>$nl_flags->{'bgc_mode'}, 'phys'=>$nl_flags->{'phys'});
3722+
my $use_c14_bombspike = $nl->get_value('use_c14_bombspike');
3723+
if ( &value_is_true($use_c14_bombspike) ) {
3724+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c14_filename',
3725+
'use_c14'=>$use_c14, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c14_bombspike'=>$nl->get_value('use_c14_bombspike'),
3726+
'ssp_rcp'=>$nl_flags->{'ssp_rcp'} );
37303727
}
37313728
} else {
37323729
if ( defined($nl->get_value('use_c14_bombspike')) ||
37333730
defined($nl->get_value('atm_c14_filename')) ) {
3734-
$log->fatal_error("use_c14 NOT set to .true., but use_c14_bompspike/atm_c14_filename defined.");
3731+
$log->fatal_error("use_c14 is FALSE and use_c14_bombspike or atm_c14_filename set");
37353732
}
37363733
}
3737-
if ( defined($use_c13) ) {
3738-
if ( &value_is_true($use_c13) ) {
3739-
my $use_c13_timeseries = $nl->get_value('use_c13_timeseries');
3740-
if ( defined($use_c13_timeseries) && &value_is_true($use_c13_timeseries) ) {
3741-
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c13_filename',
3742-
'use_c13'=>$use_c13, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c13_timeseries'=>$nl->get_value('use_c13_timeseries'),
3743-
'ssp_rcp'=>$nl_flags->{'ssp_rcp'} );
3744-
}
3745-
} else {
3746-
if ( defined($nl->get_value('use_c13_timeseries')) ||
3747-
defined($nl->get_value('atm_c13_filename')) ) {
3748-
$log->fatal_error("use_c13 is FALSE and use_c13_timeseries or atm_c13_filename set");
3749-
}
3734+
if ( &value_is_true($use_c13) ) {
3735+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_c13_timeseries', 'bgc_mode'=>$nl_flags->{'bgc_mode'}, 'phys'=>$nl_flags->{'phys'});
3736+
my $use_c13_timeseries = $nl->get_value('use_c13_timeseries');
3737+
if ( &value_is_true($use_c13_timeseries) ) {
3738+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c13_filename',
3739+
'use_c13'=>$use_c13, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c13_timeseries'=>$nl->get_value('use_c13_timeseries'),
3740+
'ssp_rcp'=>$nl_flags->{'ssp_rcp'} );
37503741
}
37513742
} else {
37523743
if ( defined($nl->get_value('use_c13_timeseries')) ||
37533744
defined($nl->get_value('atm_c13_filename')) ) {
3754-
$log->fatal_error("use_c13 NOT set to .true., but use_c13_bompspike/atm_c13_filename defined.");
3745+
$log->fatal_error("use_c13 is FALSE and use_c13_timeseries or atm_c13_filename set");
37553746
}
37563747
}
37573748
} else {
3758-
if ( defined($use_c13) ||
3759-
defined($use_c14) ||
3760-
defined($nl->get_value('use_c14_bombspike')) ||
3749+
if ( &value_is_true($use_c13) ||
3750+
&value_is_true($use_c14) ||
3751+
&value_is_true($nl->get_value('use_c14_bombspike')) ||
37613752
defined($nl->get_value('atm_c14_filename')) ||
3762-
defined($nl->get_value('use_c13_timeseries')) ||
3753+
&value_is_true($nl->get_value('use_c13_timeseries')) ||
37633754
defined($nl->get_value('atm_c13_filename')) ) {
37643755
$log->fatal_error("bgc=sp and C isotope namelist variables were set, both can't be used at the same time");
37653756
}

bld/namelist_files/namelist_defaults_ctsm.xml

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,17 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
110110
<stomatalcond_method >Medlyn2011</stomatalcond_method>
111111
<stomatalcond_method phys="clm4_5" >Ball-Berry1987</stomatalcond_method>
112112

113+
<!-- Carbon isotope settings -->
114+
<use_c13>.false.</use_c13>
115+
<use_c14>.false.</use_c14>
116+
<use_c13_timeseries>.false.</use_c13_timeseries>
117+
<use_c14_bombspike>.false.</use_c14_bombspike>
118+
119+
<use_c13 phys="clm6_0" bgc_mode="bgc" >.true.</use_c13>
120+
<use_c14 phys="clm6_0" bgc_mode="bgc" >.true.</use_c14>
121+
<use_c13_timeseries phys="clm6_0" bgc_mode="bgc" >.true.</use_c13_timeseries>
122+
<use_c14_bombspike phys="clm6_0" bgc_mode="bgc" >.true.</use_c14_bombspike>
123+
113124
<!-- Carbon isotope concentration files -->
114125
<atm_c13_filename use_c13=".true." use_c13_timeseries=".true." ssp_rcp="hist" >lnd/clm2/isotopes/atm_delta_C13_CMIP6_1850-2015_yearly_v2.0_c190528.nc</atm_c13_filename>
115126
<atm_c13_filename use_c13=".true." use_c13_timeseries=".true." ssp_rcp="SSP1-1.9" >lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP119_1850-2100_yearly_c181209.nc</atm_c13_filename>
@@ -484,13 +495,11 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
484495
<snow_thermal_cond_method>Jordan1991</snow_thermal_cond_method>
485496
<snow_thermal_cond_method phys="clm6_0">Sturm1997</snow_thermal_cond_method>
486497

487-
<!-- TODO change clm6 to Jordan with answer changing tag for glacier mass ballance -->
488498
<snow_thermal_cond_glc_method>Jordan1991</snow_thermal_cond_glc_method>
489-
<snow_thermal_cond_glc_method phys="clm6_0">Sturm1997</snow_thermal_cond_glc_method>
499+
<snow_thermal_cond_glc_method phys="clm6_0">Jordan1991</snow_thermal_cond_glc_method>
490500

491-
<!-- TODO change clm6 to Sturm with answer changing tag -->
492501
<snow_thermal_cond_lake_method>Jordan1991</snow_thermal_cond_lake_method>
493-
<snow_thermal_cond_lake_method phys="clm6_0">Jordan1991</snow_thermal_cond_lake_method>
502+
<snow_thermal_cond_lake_method phys="clm6_0">Sturm1997</snow_thermal_cond_lake_method>
494503

495504
<!-- Default glacier behavior is:
496505
Mountain glaciers: single_at_atm_topo
@@ -532,7 +541,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
532541
<!-- The default filenames are given relative to the root directory
533542
for the CLM2 data in the CESM distribution -->
534543
<!-- Plant function types (relative to {csmdata}) -->
535-
<paramfile phys="clm6_0" >lnd/clm2/paramdata/ctsm60_params.c250311.nc</paramfile>
544+
<paramfile phys="clm6_0" >lnd/clm2/paramdata/ctsm5.3.041.Nfix_params.v13.c250221_upplim250.nc</paramfile>
536545
<paramfile phys="clm5_0" >lnd/clm2/paramdata/clm50_params.c250311.nc</paramfile>
537546
<paramfile phys="clm4_5" >lnd/clm2/paramdata/clm45_params.c250311.nc</paramfile>
538547

@@ -1283,14 +1292,14 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
12831292
ic_ymd="18500101" sim_year="1850" do_transient_pfts=".false." use_excess_ice=".true."
12841293
ic_tod="0" glc_nec="10" use_crop=".true." irrigate=".false."
12851294
phys="clm6_0"
1286-
>lnd/clm2/initdata_esmf/ctsm5.3/ctsm53019_f09_BNF_pSASU.clm2.r.0161-01-01-00000.nc
1295+
>lnd/clm2/initdata_esmf/ctsm5.4/ctsm53041_54surfdata_snowTherm_100_pSASU.clm2.r.0161-01-01-00000_64bitoffset.nc
12871296
</finidat>
12881297
<!-- Corresponding ne30 -->
12891298
<finidat hgrid="ne30np4.pg3" mask="tx2_3v2" use_cn=".true." use_cndv=".false." use_fates=".false."
12901299
sim_year="1850" do_transient_pfts=".false." use_excess_ice=".true."
12911300
use_crop=".true." irrigate=".false."
12921301
phys="clm6_0" use_init_interp=".true."
1293-
>lnd/clm2/initdata_esmf/ctsm5.3/ctsm53019_f09_BNF_pSASU.clm2.r.0161-01-01-00000.nc
1302+
>lnd/clm2/initdata_esmf/ctsm5.4/ctsm53041_54surfdata_ne30_102_pSASU.clm2.r.0081-01-01-00000_64bitoffset.nc
12941303
</finidat>
12951304
<!-- Corresponding f19 -->
12961305
<finidat hgrid="1.9x2.5" mask="gx1v7" use_cn=".true." use_cndv=".false." use_fates=".false."
@@ -1425,13 +1434,13 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
14251434
ic_ymd="20000101" sim_year="2000" use_excess_ice=".true."
14261435
ic_tod="0" glc_nec="10" use_crop=".true." irrigate=".true."
14271436
phys="clm6_0" use_init_interp=".true."
1428-
>lnd/clm2/initdata_esmf/ctsm5.3/ctsm53019_f09_BNF_hist.clm2.r.2000-01-01-00000.nc
1437+
>lnd/clm2/initdata_esmf/ctsm5.4/ctsm53041_54surfdata_ne30_102_HIST.clm2.r.2000-01-01-00000.nc
14291438
</finidat>
14301439
<finidat hgrid="ne30np4.pg3" maxpft="79" mask="tx2_3v2" use_cn=".true." use_cndv=".false." use_fates=".false."
14311440
ic_ymd="20000101" sim_year="2000" use_excess_ice=".true."
14321441
ic_tod="0" glc_nec="10" use_crop=".true." irrigate=".true."
14331442
phys="clm6_0" use_init_interp=".true."
1434-
>lnd/clm2/initdata_esmf/ctsm5.3/ctsm53019_f09_BNF_hist.clm2.r.2000-01-01-00000.nc
1443+
>lnd/clm2/initdata_esmf/ctsm5.4/ctsm53041_54surfdata_ne30_102_HIST.clm2.r.2000-01-01-00000.nc
14351444
</finidat>
14361445

14371446
<!-- clm5_0 and cam7.0 -->
@@ -1700,7 +1709,7 @@ lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_4x5_hist_1850_16pfts_c241007.nc</fsurd
17001709
<fsurdat hgrid="360x720cru" sim_year="1850">
17011710
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_360x720cru_hist_1850_78pfts_c240908.nc</fsurdat>
17021711
<fsurdat hgrid="0.9x1.25" sim_year="1850" >
1703-
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_0.9x1.25_hist_1850_78pfts_c240908.nc</fsurdat>
1712+
lnd/clm2/surfdata_esmf/ctsm5.4.0/surfdata_0.9x1.25_hist_1850_78pfts_c250428.nc</fsurdat>
17041713
<fsurdat hgrid="1.9x2.5" sim_year="1850" use_crop=".true.">
17051714
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_1.9x2.5_hist_1850_78pfts_c240908.nc</fsurdat>
17061715
<fsurdat hgrid="10x15" sim_year="1850" >
@@ -1718,7 +1727,7 @@ lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_ne30np4_hist_1850_78pfts_c240908.nc</f
17181727
<fsurdat hgrid="ne30np4.pg2" sim_year="1850">
17191728
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_ne30np4.pg2_hist_1850_78pfts_c240908.nc</fsurdat>
17201729
<fsurdat hgrid="ne30np4.pg3" sim_year="1850">
1721-
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_ne30np4.pg3_hist_1850_78pfts_c240908.nc</fsurdat>
1730+
lnd/clm2/surfdata_esmf/ctsm5.4.0/surfdata_ne30np4.pg3_hist_1850_78pfts_c250428.nc</fsurdat>
17221731
<fsurdat hgrid="ne3np4.pg3" sim_year="1850">
17231732
lnd/clm2/surfdata_esmf/ctsm5.3.0/surfdata_ne3np4.pg3_hist_1850_78pfts_c240908.nc</fsurdat>
17241733

@@ -1778,7 +1787,7 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2
17781787

17791788
<!-- 78-pft landuse files -->
17801789
<flanduse_timeseries hgrid="0.9x1.25" sim_year_range="1850-2000"
1781-
>lnd/clm2/surfdata_esmf/ctsm5.3.0/landuse.timeseries_0.9x1.25_SSP2-4.5_1850-2100_78pfts_c240908.nc</flanduse_timeseries>
1790+
>lnd/clm2/surfdata_esmf/ctsm5.4.0/landuse.timeseries_0.9x1.25_hist_1850-2023_78pfts_c250428.nc</flanduse_timeseries>
17821791
<flanduse_timeseries hgrid="1.9x2.5" sim_year_range="1850-2000" use_crop=".true."
17831792
>lnd/clm2/surfdata_esmf/ctsm5.3.0/landuse.timeseries_1.9x2.5_SSP2-4.5_1850-2100_78pfts_c240908.nc</flanduse_timeseries>
17841793
<flanduse_timeseries hgrid="ne0np4.ARCTICGRIS.ne30x8" sim_year_range="1850-2000"
@@ -1808,7 +1817,7 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2
18081817
<flanduse_timeseries hgrid="ne16np4.pg3" sim_year_range="1850-2000"
18091818
>lnd/clm2/surfdata_esmf/ctsm5.3.0/landuse.timeseries_ne16np4.pg3_SSP2-4.5_1850-2100_78pfts_c240908.nc</flanduse_timeseries>
18101819
<flanduse_timeseries hgrid="ne30np4.pg3" sim_year_range="1850-2000"
1811-
>lnd/clm2/surfdata_esmf/ctsm5.3.0/landuse.timeseries_ne30np4.pg3_SSP2-4.5_1850-2100_78pfts_c240908.nc</flanduse_timeseries>
1820+
>lnd/clm2/surfdata_esmf/ctsm5.4.0/landuse.timeseries_ne30np4.pg3_hist_1850-2023_78pfts_c250428.nc</flanduse_timeseries>
18121821

18131822
<flanduse_timeseries hgrid="C96" sim_year_range="1850-2000"
18141823
>lnd/clm2/surfdata_esmf/ctsm5.3.0/landuse.timeseries_C96_SSP2-4.5_1850-2100_78pfts_c240908.nc</flanduse_timeseries>

0 commit comments

Comments
 (0)