Skip to content

Commit a855d4e

Browse files
authored
Merge pull request #3372 from glemieux/fates-api40.1-paramfile-update
ctsm5.3.070: FATES API41: default paramfile update and new namelist option
2 parents 37204fb + 7b09e20 commit a855d4e

File tree

15 files changed

+189
-11
lines changed

15 files changed

+189
-11
lines changed

.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.84.0_api.40.0.0
31+
fxtag = sci.1.87.0_api.41.0.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/NGEET/fates

bld/CLMBuildNamelist.pm

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,8 @@ sub setup_cmdl_fates_mode {
811811
"flandusepftdat","use_fates_potentialveg","use_fates_lupft","fates_history_dimlevel",
812812
"use_fates_daylength_factor", "fates_photosynth_acclimation", "fates_stomatal_model",
813813
"fates_stomatal_assimilation", "fates_leafresp_model", "fates_cstarvation_model",
814-
"fates_regeneration_model", "fates_hydro_solver", "fates_radiation_model", "fates_electron_transport_model"
814+
"fates_regeneration_model", "fates_hydro_solver", "fates_radiation_model", "fates_electron_transport_model",
815+
"use_fates_managed_fire"
815816
);
816817

817818
# dis-allow fates specific namelist items with non-fates runs
@@ -4761,12 +4762,13 @@ sub setup_logic_fates {
47614762

47624763
if (&value_is_true( $nl_flags->{'use_fates'}) ) {
47634764
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fates_paramfile', 'phys'=>$nl_flags->{'phys'});
4764-
my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys",
4765+
my @list = ( "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys",
47654766
"use_fates_inventory_init","fates_seeddisp_cadence","fates_history_dimlevel",
47664767
"fates_harvest_mode","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage",
47674768
"use_fates_daylength_factor", "fates_photosynth_acclimation", "fates_stomatal_model",
47684769
"fates_stomatal_assimilation", "fates_leafresp_model", "fates_cstarvation_model",
4769-
"fates_regeneration_model", "fates_hydro_solver", "fates_radiation_model", "fates_electron_transport_model"
4770+
"fates_regeneration_model", "fates_hydro_solver", "fates_radiation_model", "fates_electron_transport_model",
4771+
"use_fates_managed_fire"
47704772
);
47714773

47724774
foreach my $var ( @list ) {
@@ -4786,6 +4788,9 @@ sub setup_logic_fates {
47864788
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_fates_fixed_biogeog', 'use_fates'=>$nl_flags->{'use_fates'},
47874789
'use_fates_lupft'=>$nl->get_value('use_fates_lupft'),
47884790
'use_fates_sp'=>$nl_flags->{'use_fates_sp'} );
4791+
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fates_spitfire_mode', 'use_fates'=>$nl_flags->{'use_fates'},
4792+
'use_fates_managed_fire'=>$nl->get_value('use_fates_managed_fire'),
4793+
'use_fates_sp'=>$nl_flags->{'use_fates_sp'} );
47894794

47904795
my $suplnitro = $nl->get_value('suplnitro');
47914796
my $parteh_mode = $nl->get_value('fates_parteh_mode');
@@ -4807,7 +4812,7 @@ sub setup_logic_fates {
48074812
}
48084813
# spit-fire can't be on with FATES SP mode is active
48094814
if ( $nl->get_value('fates_spitfire_mode') > 0 ) {
4810-
$log->fatal_error('fates_spitfire_mode can NOT be set to greater than 0 when use_fates_sp is true');
4815+
$log->fatal_error("fates_spitfire_mode can NOT be set to greater than 0 when use_fates_sp is true");
48114816
}
48124817

48134818
# fates landuse can't be on with FATES SP mode is active
@@ -4920,6 +4925,16 @@ sub setup_logic_fates {
49204925
}
49214926
}
49224927
}
4928+
4929+
# Check use_fates_managed_fire mode is running with spitfire on
4930+
my $var = "use_fates_managed_fire";
4931+
if ( defined($nl->get_value($var)) ) {
4932+
if ( &value_is_true($nl->get_value($var)) ) {
4933+
if ( $nl->get_value('fates_spitfire_mode') == 0 ) {
4934+
$log->fatal_error("fates_spitfire_mode must be non-zero when $var is true");
4935+
}
4936+
}
4937+
}
49234938
}
49244939
}
49254940

bld/namelist_files/namelist_defaults_ctsm.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
555555
<!-- FATES default parameter file -->
556556
<!-- ================================================================== -->
557557

558-
<fates_paramfile>lnd/clm2/paramdata/fates_params_api.40.0.0_14pft_c250512.nc</fates_paramfile>
558+
<fates_paramfile>lnd/clm2/paramdata/fates_params_api.41.0.0_14pft_c250813.nc</fates_paramfile>
559559

560560

561561
<!-- ================================================================== -->
@@ -2436,6 +2436,7 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2
24362436
<fates_electron_transport_model use_fates=".true.">FvCB1980</fates_electron_transport_model>
24372437
<fates_photosynth_acclimation use_fates=".true.">nonacclimating</fates_photosynth_acclimation>
24382438
<fates_spitfire_mode use_fates=".true.">0</fates_spitfire_mode>
2439+
<fates_spitfire_mode use_fates=".true." use_fates_managed_fire=".true." >1</fates_spitfire_mode>
24392440
<fates_harvest_mode use_fates=".true.">no_harvest</fates_harvest_mode>
24402441
<fates_stomatal_model use_fates=".true.">ballberry1987</fates_stomatal_model>
24412442
<fates_stomatal_assimilation use_fates=".true.">net</fates_stomatal_assimilation>
@@ -2444,6 +2445,7 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2
24442445
<fates_regeneration_model use_fates=".true.">default</fates_regeneration_model>
24452446
<fates_radiation_model use_fates=".true.">norman</fates_radiation_model>
24462447
<fates_hydro_solver use_fates=".true.">2D_Picard</fates_hydro_solver>
2448+
<use_fates_managed_fire use_fates=".true.">.false.</use_fates_managed_fire>
24472449
<use_fates_planthydro use_fates=".true.">.false.</use_fates_planthydro>
24482450
<use_fates_tree_damage use_fates=".true.">.false.</use_fates_tree_damage>
24492451
<use_fates_cohort_age_tracking use_fates=".true.">.false.</use_fates_cohort_age_tracking>

bld/namelist_files/namelist_definition_ctsm.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,17 @@ ignitions.
750750
(Only relevant if FATES is on)
751751
</entry>
752752

753+
<entry id="use_fates_managed_fire" type="logical" category="physics"
754+
group="clm_inparm" valid_values="" value=".false.">
755+
Enable FATES managed fire mode. Requires that fates_spitfire_mode is on (in any mode).
756+
This mode allows the FATES model to conduct fuel-load reduction through managed burns.
757+
The boundary conditions in which a managed fire is allowed is set via the FATES parameter
758+
file. The burned area fraction of a managed burn is defined through the FATES parameter
759+
file as well. This mode works in conjunction with the SPITFIRE module to determine
760+
whether a wildfire or managed fire takes place on a given patch.
761+
(Only relevant if FATES is on)
762+
</entry>
763+
753764
<entry id="use_fates_fixed_biogeog" type="logical" category="physics"
754765
group="clm_inparm" valid_values="" value=".false.">
755766
Toggle to turn on fixed biogeography mode

bld/unit_testers/build-namelist_test.pl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ sub cat_and_create_namelistinfile {
163163
#
164164
# Figure out number of tests that will run
165165
#
166-
my $ntests = 3393;
166+
my $ntests = 3394;
167167

168168
if ( defined($opts{'compare'}) ) {
169169
$ntests += 2061;
@@ -1118,6 +1118,10 @@ sub cat_and_create_namelistinfile {
11181118
namelst=>"fates_spitfire_mode=1,use_fates_sp=.true.",
11191119
phys=>"clm5_0",
11201120
},
1121+
"managedfirenospitfire" =>{ options=>"-envxml_dir . --bgc fates",
1122+
namelst=>"fates_spitfire_mode=0,use_fates_managed_fire=.true.",
1123+
phys=>"clm5_0",
1124+
},
11211125
"usefatesspusefateshydro" =>{ options=>"-envxml_dir . --bgc fates",
11221126
namelst=>"use_fates_sp=.true.,use_fates_planthydro=.true.",
11231127
phys=>"clm5_0",

cime_config/testdefs/testlist_clm.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3860,6 +3860,15 @@
38603860
<option name="comment">60 day exact restart test that turns off all fire (both FATES and CLM) on an f45 grid.</option>
38613861
</options>
38623862
</test>
3863+
<test name="ERS_Ld60" grid="f45_f45_mg37" compset="I2000Clm60FatesRs" testmods="clm/FatesColdManagedFire">
3864+
<machines>
3865+
<machine name="derecho" compiler="intel" category="fates"/>
3866+
</machines>
3867+
<options>
3868+
<option name="wallclock">00:40:00</option>
3869+
<option name="comment">60 day exact restart test that turns on FATES managed fire on an f45 grid.</option>
3870+
</options>
3871+
</test>
38633872
<test name="ERS_Ld60" grid="f45_f45_mg37" compset="I2000Clm50FatesCruRsGs" testmods="clm/FatesColdST3">
38643873
<machines>
38653874
<machine name="derecho" compiler="intel" category="fates"/>

cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ hist_fincl1 = 'FATES_TLONGTERM',
2222
'FATES_STORE_ALLOC_SZPF','FATES_DDBH_SZPF','FATES_GROWTHFLUX_SZPF','FATES_GROWTHFLUX_FUSION_SZPF',
2323
'FATES_DDBH_CANOPY_SZPF','FATES_DDBH_USTORY_SZPF','FATES_BASALAREA_SZPF','FATES_VEGC_ABOVEGROUND_SZPF',
2424
'FATES_NPLANT_SZPF','FATES_NPLANT_ACPF','FATES_MORTALITY_BACKGROUND_SZPF','FATES_MORTALITY_HYDRAULIC_SZPF',
25-
'FATES_MORTALITY_CSTARV_SZPF','FATES_MORTALITY_IMPACT_SZPF','FATES_MORTALITY_FIRE_SZPF',
26-
'FATES_MORTALITY_CROWNSCORCH_SZPF','FATES_MORTALITY_CAMBIALBURN_SZPF','FATES_MORTALITY_TERMINATION_SZPF',
25+
'FATES_MORTALITY_CSTARV_SZPF','FATES_MORTALITY_IMPACT_SZPF','FATES_MORTALITY_WILDFIRE_SZPF',
26+
'FATES_MORTALITY_WILDFIRE_CROWN_SZPF','FATES_MORTALITY_WILDFIRE_CAMBIAL_SZPF','FATES_MORTALITY_TERMINATION_SZPF',
2727
'FATES_MORTALITY_LOGGING_SZPF','FATES_MORTALITY_FREEZING_SZPF','FATES_MORTALITY_SENESCENCE_SZPF',
2828
'FATES_MORTALITY_AGESCEN_SZPF','FATES_MORTALITY_AGESCEN_ACPF','FATES_MORTALITY_CANOPY_SZPF',
2929
'FATES_M3_MORTALITY_CANOPY_SZPF','FATES_M3_MORTALITY_USTORY_SZPF',
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../FatesCold
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
use_fates_managed_fire = .true.
2+
fates_spitfire_mode = 1
3+
hist_ndens = 2,2
4+
hist_fincl1 = 'FATES_NCOHORTS', 'FATES_TRIMMING', 'FATES_AREA_PLANTS',
5+
'FATES_AREA_TREES', 'FATES_COLD_STATUS', 'FATES_GDD',
6+
'FATES_NCHILLDAYS', 'FATES_NCOLDDAYS', 'FATES_DAYSINCE_COLDLEAFOFF','FATES_DAYSINCE_COLDLEAFON',
7+
'FATES_CANOPY_SPREAD', 'FATES_NESTEROV_INDEX', 'FATES_IGNITIONS', 'FATES_FDI',
8+
'FATES_ROS','FATES_EFFECT_WSPEED', 'FATES_FUELCONSUMED', 'FATES_FIRE_INTENSITY',
9+
'FATES_FIRE_INTENSITY_BURNFRAC', 'FATES_BURNFRAC', 'FATES_FUEL_MEF',
10+
'FATES_FUEL_BULKD', 'FATES_FUEL_EFF_MOIST', 'FATES_FUEL_SAV',
11+
'FATES_FUEL_AMOUNT', 'FATES_LITTER_IN', 'FATES_LITTER_OUT',
12+
'FATES_SEED_BANK', 'FATES_SEEDS_IN', 'FATES_STOREC', 'FATES_VEGC',
13+
'FATES_SAPWOODC', 'FATES_LEAFC', 'FATES_FROOTC', 'FATES_REPROC',
14+
'FATES_STRUCTC', 'FATES_NONSTRUCTC', 'FATES_VEGC_ABOVEGROUND',
15+
'FATES_CANOPY_VEGC', 'FATES_USTORY_VEGC', 'FATES_PRIMARY_PATCHFUSION_ERR',
16+
'FATES_HARVEST_WOODPROD_C_FLUX', 'FATES_DISTURBANCE_RATE_FIRE',
17+
'FATES_DISTURBANCE_RATE_LOGGING', 'FATES_DISTURBANCE_RATE_TREEFALL',
18+
'FATES_STOMATAL_COND', 'FATES_LBLAYER_COND', 'FATES_NPP', 'FATES_GPP',
19+
'FATES_AUTORESP', 'FATES_GROWTH_RESP', 'FATES_MAINT_RESP', 'FATES_GPP_CANOPY',
20+
'FATES_AUTORESP_CANOPY', 'FATES_GPP_USTORY', 'FATES_AUTORESP_USTORY',
21+
'FATES_DEMOTION_CARBONFLUX', 'FATES_PROMOTION_CARBONFLUX',
22+
'FATES_MORTALITY_CFLUX_CANOPY', 'FATES_MORTALITY_CFLUX_USTORY',
23+
'FATES_NEP', 'FATES_HET_RESP', 'FATES_FIRE_CLOSS', 'FATES_FIRE_FLUX_EL',
24+
'FATES_CBALANCE_ERROR', 'FATES_LEAF_ALLOC',
25+
'FATES_SEED_ALLOC', 'FATES_STEM_ALLOC', 'FATES_FROOT_ALLOC',
26+
'FATES_CROOT_ALLOC', 'FATES_STORE_ALLOC',
27+
'FATES_WILDFIRE_INTENSITY','FATES_WILDFIRE_INTENSITY_BURNFRAC','FATES_RXFIRE_INTENSITY',
28+
'FATES_RXFIRE_INTENSITY_BURNFRAC','FATES_WILDFIRE_BURNFRAC','FATES_RXFIRE_BURNFRAC',
29+
'FATES_RXFIRE_BURNABLE_FUEL','FATES_RXFIRE_BURNABLE_FI','FATES_RXFIRE_BURNABLE_FINAL',
30+
'FATES_WILDFIRE_BURNFRAC_AP','FATES_WILDFIRE_INTENSITY_BURNFRAC_AP',
31+
'FATES_RXFIRE_BURNFRAC_AP','FATES_RXFIRE_INTENSITY_BURNFRAC_AP','FATES_MORTALITY_WILDFIRE_SZPF',
32+
'FATES_MORTALITY_WILDFIRE_CROWN_SZPF','FATES_MORTALITY_WILDFIRE_CAMBIAL_SZPF',
33+
'FATES_MORTALITY_RXFIRE_SZPF','FATES_MORTALITY_RXCROWN_SZPF','FATES_MORTALITY_RXCAMBIAL_SZPF',
34+
'FATES_MORTALITY_RXFIRE_SZ'

doc/ChangeLog

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,89 @@
11
===============================================================
2+
Tag name: ctsm5.3.070
3+
Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov)
4+
Date: Fri 22 Aug 2025 02:29:15 AM MDT
5+
One-line Summary: Update default FATES parameter file and add FATES managed fire namelist option
6+
7+
Purpose and description of changes
8+
----------------------------------
9+
10+
This updates the FATES tag and associated default parameter file. The tag update includes a
11+
new managed fire feature which is controlled by a new namelist option. The majority of
12+
the parameter file updates are associated with this new feature, although there is also
13+
a smaller set of minor fixes and removal of depricated parameters.
14+
15+
16+
Significant changes to scientifically-supported configurations
17+
--------------------------------------------------------------
18+
19+
Does this tag change answers significantly for any of the following physics configurations?
20+
(Details of any changes will be given in the "Answer changes" section below.)
21+
22+
[Put an [X] in the box for any configuration with significant answer changes.]
23+
24+
[ ] clm6_0
25+
26+
[ ] clm5_0
27+
28+
[ ] ctsm5_0-nwp
29+
30+
[ ] clm4_5
31+
32+
33+
Notes of particular relevance for users
34+
---------------------------------------
35+
Changes made to namelist defaults (e.g., changed parameter values):
36+
Added a new option, use_fates_managed_fire
37+
38+
Changes to tests or testing:
39+
Added a new testmod to test use_fates_managed_fire.
40+
Added a unit test associated to make sure SPITFIRE mode is enabled when managed fire option is on.
41+
42+
Testing summary:
43+
----------------
44+
45+
build-namelist tests (if CLMBuildNamelist.pm has changed):
46+
47+
derecho - pASS
48+
49+
regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):
50+
51+
derecho ----- OK
52+
izumi ------- OK
53+
54+
fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates-<FATES TAG>-<CTSM TAG>)
55+
derecho ----- OK
56+
izumi ------- OK
57+
58+
Answer changes
59+
--------------
60+
61+
Changes answers relative to baseline: yes, only for FATES testmods
62+
63+
Summarize any changes to answers, i.e.,
64+
- what code configurations: For FATES landuse (LUH2) modes only
65+
- what platforms/compilers: all
66+
- nature of change: larger than roundoff
67+
68+
Answer changes are confined to FATES landuse only mode due to the
69+
parameter file fix with FATES pull request 1412.
70+
71+
Other details
72+
-------------
73+
List any git submodules updated (cime, rtm, mosart, cism, fates, etc.):
74+
fates: sci.1.84.0_api.40.0.0 -> sci.1.87.0_api.41.0.0
75+
76+
Pull Requests that document the changes (include PR ids):
77+
(https://github.com/ESCOMP/ctsm/pull)
78+
79+
https://github.com/ESCOMP/CTSM/pull/3372
80+
https://github.com/NGEET/fates/pull/1444
81+
https://github.com/NGEET/fates/pull/1419
82+
https://github.com/NGEET/fates/pull/1412
83+
https://github.com/NGEET/fates/pull/1360
84+
85+
===============================================================
86+
===============================================================
287
Tag name: ctsm5.3.069
388
Originator(s): samrabin (Sam Rabin, UCAR/TSS)
489
Date: Tue Aug 12 09:52:59 MDT 2025

0 commit comments

Comments
 (0)