Skip to content

Commit c4b50d7

Browse files
committed
Merge branch 'master' into fix_fates_sp
2 parents 2bd496b + df92bc5 commit c4b50d7

File tree

15 files changed

+373
-196
lines changed

15 files changed

+373
-196
lines changed

.git-blame-ignore-revs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,4 @@ bd535c710db78420b8e8b9d71d88d8339e899c59
5858
4b20bbd7003e6f77dab4e3268cc4a43f9b5a3b5d
5959
cf433215b58ba8776ec5edfb0b0d80c0836ed3a0
6060
16d57ff37859b34dab005693e3085d64e2bcd95a
61+
e8fc526e0d7818d45f171488c78392c4ff63902a

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
[submodule "fates"]
2929
path = src/fates
3030
url = https://github.com/NGEET/fates
31-
fxtag = sci.1.80.11_api.37.0.0
31+
fxtag = sci.1.81.0_api.37.1.0
3232
fxrequired = AlwaysRequired
3333
# Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed
3434
fxDONOTUSEurl = https://github.com/NCAR/fates-release

bld/namelist_files/namelist_defaults_ctsm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
532532
<!-- FATES default parameter file -->
533533
<!-- ================================================================== -->
534534

535-
<fates_paramfile>lnd/clm2/paramdata/fates_params_api.36.1.0_14pft_c241003.nc</fates_paramfile>
535+
<fates_paramfile>lnd/clm2/paramdata/fates_params_api.37.1.0_14pft_c250214.nc</fates_paramfile>
536536

537537

538538
<!-- ================================================================== -->

doc/ChangeLog

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,173 @@
11
===============================================================
2+
Tag name: ctsm5.3.026
3+
Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326)
4+
Date: Wed 26 Feb 2025 09:55:48 AM MST
5+
One-line Summary: Merge b4b-dev to master: run_tower updates, reduce log noise
6+
7+
Purpose and description of changes
8+
----------------------------------
9+
10+
Merge b4b-dev to master.
11+
12+
Some run_tower updatesm, fix some issues, and improve code health. Also reduces some log noise.
13+
14+
15+
Significant changes to scientifically-supported configurations
16+
--------------------------------------------------------------
17+
18+
Does this tag change answers significantly for any of the following physics configurations?
19+
(Details of any changes will be given in the "Answer changes" section below.)
20+
21+
[Put an [X] in the box for any configuration with significant answer changes.]
22+
23+
[ ] clm6_0
24+
25+
[ ] clm5_0
26+
27+
[ ] ctsm5_0-nwp
28+
29+
[ ] clm4_5
30+
31+
32+
Bugs fixed
33+
----------
34+
List of CTSM issues fixed (include CTSM Issue # and description) [one per line]:
35+
Resolves #2884 -- run_neon overwrite ignored
36+
Resolves #2885 -- run_neon setup_only ignored
37+
Resolves #2946 -- python tests much longer
38+
Resolves #2717 -- cleanup cesm log
39+
Resolves #2737 -- reduce log noise
40+
41+
Notes of particular relevance for users
42+
---------------------------------------
43+
Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables):
44+
Two new options to run_tower:
45+
--no-inputdata-check option implies --setup-only but skips the check/download of input data. This is used instead of --setup-only
46+
in run_tower system testing for a speedup of ~20%.
47+
--xmlchange option allows user to specify xmlchange settings to apply. E.g., --xmlchange CLM_CO2_TYPE=constant,CCSM_CO2_PPMV=850.
48+
49+
Notes of particular relevance for developers:
50+
---------------------------------------------
51+
52+
Caveats for developers (e.g., code that is duplicated that requires double maintenance):
53+
54+
Testing summary: Regular
55+
----------------
56+
[PASS means all tests PASS; OK means tests PASS other than expected fails.]
57+
58+
python testing (if python code has changed; see instructions in python/README.md; document testing done):
59+
60+
derecho - PASS
61+
62+
regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):
63+
64+
derecho ----- OK
65+
izumi ------- OK
66+
67+
If the tag used for baseline comparisons was NOT the previous tag, note that here:
68+
69+
70+
Answer changes
71+
--------------
72+
73+
Changes answers relative to baseline: No bit-for-bit
74+
75+
Other details
76+
-------------
77+
78+
Pull Requests that document the changes (include PR ids):
79+
(https://github.com/ESCOMP/ctsm/pull)
80+
#2969 -- Simplify tower types
81+
#2962 -- Run tower fix and improvements
82+
#2927 -- Remove log noise
83+
84+
===============================================================
85+
===============================================================
86+
Tag name: ctsm5.3.025
87+
Originator(s): glemieux (Gregory Lemieux, LBNL, [email protected])
88+
Date: Thu Feb 20 14:24:45 MST 2025
89+
One-line Summary: FATES default parameter file update
90+
91+
Purpose and description of changes
92+
----------------------------------
93+
94+
This tag updates the default parameter file for FATES bringing in a number of updates:
95+
- adds parameters for land use grazing
96+
- updates the FATES z0mr turbulence parameters for consistency with CLM
97+
- adds FATES pft-dependent btran model switches for a forthcoming update
98+
- updates the default hydro solver switch to Picard 2D
99+
100+
This also updates the default FATES tag which includes two issue fixes and introduces
101+
the aforementioned land use grazing capability.
102+
103+
Significant changes to scientifically-supported configurations
104+
--------------------------------------------------------------
105+
106+
Does this tag change answers significantly for any of the following physics configurations?
107+
(Details of any changes will be given in the "Answer changes" section below.)
108+
109+
[Put an [X] in the box for any configuration with significant answer changes.]
110+
111+
[ ] clm6_0
112+
113+
[ ] clm5_0
114+
115+
[ ] ctsm5_0-nwp
116+
117+
[ ] clm4_5
118+
119+
120+
Bugs fixed
121+
----------
122+
List of CTSM issues fixed (include CTSM Issue # and description) [one per line]:
123+
Fixes FATES#1316 -- z0mr parameters are all the same in the default parameter file
124+
Fixes FATES#773 -- update the default hydraulics solver?
125+
126+
Notes of particular relevance for users
127+
---------------------------------------
128+
Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables):
129+
The FATES tag update includes new history outputs associated with land use grazing.
130+
131+
Changes made to namelist defaults (e.g., changed parameter values):
132+
The fates default parameter file has been updated. See the associated FATES pull
133+
requests for more detail.
134+
135+
136+
Testing summary:
137+
----------------
138+
139+
regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):
140+
141+
derecho -----
142+
izumi -------
143+
144+
fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates-<FATES TAG>-<CTSM TAG>)
145+
derecho ----- OK
146+
izumi ------- OK
147+
148+
Answer changes
149+
--------------
150+
151+
Changes answers relative to baseline: Yes, for FATES tests only
152+
153+
Summarize any changes to answers, i.e.,
154+
- what code configurations:
155+
- what platforms/compilers:
156+
- nature of change (roundoff; larger than roundoff/same climate; new climate):
157+
158+
159+
Other details
160+
-------------
161+
List any git submodules updated (cime, rtm, mosart, cism, fates, etc.):
162+
fates: sci.1.80.11_api.37.0.0 -> sci.1.81.0_api.37.1.0
163+
164+
Pull Requests that document the changes (include PR ids):
165+
(https://github.com/ESCOMP/ctsm/pull)
166+
https://github.com/ESCOMP/CTSM/pull/2965
167+
https://github.com/NGEET/fates/pull/1334
168+
169+
===============================================================
170+
===============================================================
2171
Tag name: ctsm5.3.024
3172
Originator(s): xinchang (Cathy Xinchang Li, U of Illinois - Urbana-Champaign)
4173
Date: Tue Feb 11 09:56:24 MST 2025

doc/ChangeSum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
Tag Who Date Summary
22
============================================================================================================================
3+
ctsm5.3.026 samrabin 02/26/2025 Merge b4b-dev to master: run_tower updates, reduce log noise
4+
ctsm5.3.025 glemieux 02/20/2025 FATES default parameter file update
35
ctsm5.3.024 xinchang 02/11/2025 Change choice of pressure in CLMU building energy model
46
ctsm5.3.023 afoster 02/08/2025 merge b4b-dev
57
ctsm5.3.022 glemieux 02/06/2025 Update FATES namelist build to avoid Meier2022

python/ctsm/site_and_regional/neon_site.py

Lines changed: 2 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -34,83 +34,8 @@ class NeonSite(TowerSite):
3434
A class for encapsulating neon sites.
3535
"""
3636

37-
def build_base_case(
38-
self,
39-
cesmroot,
40-
output_root,
41-
res,
42-
compset,
43-
user_mods_dirs=None,
44-
overwrite=False,
45-
setup_only=False,
46-
):
47-
if user_mods_dirs is None:
48-
user_mods_dirs = [
49-
os.path.join(
50-
self.cesmroot, "cime_config", "usermods_dirs", "clm", "NEON", self.name
51-
)
52-
]
53-
case_path = super().build_base_case(cesmroot, output_root, res, compset, user_mods_dirs)
54-
55-
return case_path
56-
57-
# pylint: disable=too-many-statements
58-
def run_case(
59-
self,
60-
base_case_root,
61-
run_type,
62-
prism,
63-
user_version,
64-
tower_type=None,
65-
user_mods_dirs=None,
66-
overwrite=False,
67-
setup_only=False,
68-
no_batch=False,
69-
rerun=False,
70-
experiment=False,
71-
):
72-
"""
73-
Run case.
74-
75-
Args:
76-
self
77-
base_case_root: str, opt
78-
file path of base case
79-
run_type: str, opt
80-
transient, post_ad, or ad case, default transient
81-
prism: bool, opt
82-
if True, use PRISM precipitation, default False
83-
user_version: str, opt
84-
default 'latest'
85-
overwrite: bool, opt
86-
default False
87-
setup_only: bool, opt
88-
default False; if True, set up but do not run case
89-
no_batch: bool, opt
90-
default False
91-
rerun: bool, opt
92-
default False
93-
experiment: str, opt
94-
name of experiment, default False
95-
"""
96-
user_mods_dirs = [
97-
os.path.join(self.cesmroot, "cime_config", "usermods_dirs", "clm", "NEON", self.name)
98-
]
99-
tower_type = "NEON"
100-
101-
super().run_case(
102-
base_case_root,
103-
run_type,
104-
prism,
105-
user_version,
106-
tower_type,
107-
user_mods_dirs,
108-
overwrite,
109-
setup_only,
110-
no_batch,
111-
rerun,
112-
experiment,
113-
)
37+
def __init__(self, *args, **kwargs):
38+
super().__init__("NEON", *args, **kwargs)
11439

11540
def modify_user_nl(self, case_root, run_type, rundir, site_lines=None):
11641
# TODO: include neon-specific user namelist lines, using this as just an example currently

python/ctsm/site_and_regional/plumber_site.py

Lines changed: 2 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -33,87 +33,8 @@ class Plumber2Site(TowerSite):
3333
A class for encapsulating plumber sites.
3434
"""
3535

36-
def build_base_case(
37-
self,
38-
cesmroot,
39-
output_root,
40-
res,
41-
compset,
42-
user_mods_dirs=None,
43-
overwrite=False,
44-
setup_only=False,
45-
):
46-
if user_mods_dirs is None:
47-
user_mods_dirs = [
48-
os.path.join(
49-
self.cesmroot, "cime_config", "usermods_dirs", "clm", "PLUMBER2", self.name
50-
)
51-
]
52-
case_path = super().build_base_case(cesmroot, output_root, res, compset, user_mods_dirs)
53-
54-
return case_path
55-
56-
# pylint: disable=too-many-statements
57-
def run_case(
58-
self,
59-
base_case_root,
60-
run_type,
61-
prism,
62-
user_version,
63-
tower_type=None,
64-
user_mods_dirs=None,
65-
overwrite=False,
66-
setup_only=False,
67-
no_batch=False,
68-
rerun=False,
69-
experiment=False,
70-
):
71-
"""
72-
Run case.
73-
74-
Args:
75-
self
76-
base_case_root: str, opt
77-
file path of base case
78-
run_type: str, opt
79-
transient, post_ad, or ad case, default ad
80-
(ad case is default because PLUMBER requires spinup)
81-
prism: bool, opt
82-
if True, use PRISM precipitation, default False
83-
Note: only supported for NEON sites
84-
user_version: str, opt
85-
default 'latest'; this could be useful later
86-
This is currently only implemented with neon (not plumber) sites
87-
overwrite: bool, opt
88-
default False
89-
setup_only: bool, opt
90-
default False; if True, set up but do not run case
91-
no_batch: bool, opt
92-
default False
93-
rerun: bool, opt
94-
default False
95-
experiment: str, opt
96-
name of experiment, default False
97-
"""
98-
user_mods_dirs = [
99-
os.path.join(
100-
self.cesmroot, "cime_config", "usermods_dirs", "clm", "PLUMBER2", self.name
101-
)
102-
]
103-
tower_type = "PLUMBER"
104-
super().run_case(
105-
base_case_root,
106-
run_type,
107-
prism,
108-
user_version,
109-
tower_type,
110-
user_mods_dirs,
111-
overwrite,
112-
setup_only,
113-
no_batch,
114-
rerun,
115-
experiment,
116-
)
36+
def __init__(self, *args, **kwargs):
37+
super().__init__("PLUMBER2", *args, **kwargs)
11738

11839
def set_ref_case(self, case):
11940
super().set_ref_case(case)

0 commit comments

Comments
 (0)