Skip to content

Commit 4faa434

Browse files
committed
Merge tag 'alpha-ctsm5.4.CMIP7.10.ctsm5.3.071' into make_ctsm54_datasets
Fire update (PR ESCOMP#3204)
2 parents e69570a + 32a4310 commit 4faa434

File tree

3 files changed

+56
-17
lines changed

3 files changed

+56
-17
lines changed

bld/namelist_files/namelist_defaults_ctsm.xml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,13 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
257257
<fire_method phys="clm4_5" >li2014qianfrc</fire_method>
258258

259259
<max_rh30_affecting_fuel>90.d00</max_rh30_affecting_fuel>
260-
<defo_fire_precip_thresh_bet>4.0d00</defo_fire_precip_thresh_bet>
261260
<defo_fire_precip_thresh_bdt>1.8d00</defo_fire_precip_thresh_bdt>
262261
<borpeat_fire_soilmoist_denom>0.3d00</borpeat_fire_soilmoist_denom>
263262
<nonborpeat_fire_precip_denom>1.0d00</nonborpeat_fire_precip_denom>
264263

264+
<defo_fire_precip_thresh_bet>4.0d00</defo_fire_precip_thresh_bet>
265+
<defo_fire_precip_thresh_bet fire_method="li2024crujra">3.0d00</defo_fire_precip_thresh_bet>
266+
265267
<rh_low fire_method="li2014qianfrc" >30.0d00</rh_low>
266268
<rh_hgh fire_method="li2014qianfrc" >80.0d00</rh_hgh>
267269
<bt_min fire_method="li2014qianfrc" >0.3d00</bt_min>
@@ -360,7 +362,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
360362
<rh_hgh fire_method="li2024gswpfrc" >80.0d00</rh_hgh>
361363
<bt_min fire_method="li2024gswpfrc" >0.85d00</bt_min>
362364
<bt_max fire_method="li2024gswpfrc" >0.98d00</bt_max>
363-
<cli_scale fire_method="li2024gswpfrc" >0.01d00</cli_scale>
365+
<cli_scale fire_method="li2024gswpfrc" >0.04d00</cli_scale>
364366
<boreal_peatfire_c fire_method="li2024gswpfrc" >0.28d-4</boreal_peatfire_c>
365367
<pot_hmn_ign_counts_alpha fire_method="li2024gswpfrc" >0.010d00</pot_hmn_ign_counts_alpha>
366368
<non_boreal_peatfire_c fire_method="li2024gswpfrc" >0.71d-4</non_boreal_peatfire_c>
@@ -379,11 +381,11 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
379381
<rh_hgh fire_method="li2024crujra" >85.0d00</rh_hgh>
380382
<bt_min fire_method="li2024crujra" >0.85d00</bt_min>
381383
<bt_max fire_method="li2024crujra" >0.98d00</bt_max>
382-
<cli_scale fire_method="li2024crujra" >0.01d00</cli_scale>
384+
<cli_scale fire_method="li2024crujra" >0.03d00</cli_scale>
383385
<boreal_peatfire_c fire_method="li2024crujra" >0.28d-4</boreal_peatfire_c>
384386
<pot_hmn_ign_counts_alpha fire_method="li2024crujra" >0.010d00</pot_hmn_ign_counts_alpha>
385387
<non_boreal_peatfire_c fire_method="li2024crujra" >0.71d-4</non_boreal_peatfire_c>
386-
<cropfire_a1 fire_method="li2024crujra" >0.3d00</cropfire_a1>
388+
<cropfire_a1 fire_method="li2024crujra" >0.34d00</cropfire_a1>
387389
<occur_hi_gdp_tree fire_method="li2024crujra" >0.33d00</occur_hi_gdp_tree>
388390
<lfuel fire_method="li2024crujra" >75.d00</lfuel>
389391
<ufuel fire_method="li2024crujra" >825.d00</ufuel>
@@ -547,7 +549,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
547549
<!-- The default filenames are given relative to the root directory
548550
for the CLM2 data in the CESM distribution -->
549551
<!-- Plant function types (relative to {csmdata}) -->
550-
<paramfile phys="clm6_0" >lnd/clm2/paramdata/ctsm5.3.041.Nfix_params.v13.c250221_upplim250.nc</paramfile>
552+
<paramfile phys="clm6_0" >lnd/clm2/paramdata/clm60_params.ctsm6_li2024.c250822.nc</paramfile>
551553
<paramfile phys="clm5_0" >lnd/clm2/paramdata/clm50_params.c250311.nc</paramfile>
552554
<paramfile phys="clm4_5" >lnd/clm2/paramdata/clm45_params.c250311.nc</paramfile>
553555

cime_config/testdefs/ExpectedTestFails.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,30 @@
338338
</phase>
339339
</test>
340340

341+
<test name="LII2FINIDATAREAS_D_P256x2_Ld1.f09_t232.I1850Clm60BgcCrop.derecho_intel.clm-default">
342+
<phase name="COMPARE_base_no_interp">
343+
<status>FAIL</status>
344+
<issue>#3252</issue>
345+
<comment>This should be resolved for the 5.4 release.</comment>
346+
</phase>
347+
</test>
348+
349+
<test name="LII2FINIDATAREAS_D_P256x2_Ld1.f09_t232.I1850Clm60BgcCrop.derecho_intel.clm-default--clm-matrixcnOn_ignore_warnings">
350+
<phase name="COMPARE_base_no_interp">
351+
<status>FAIL</status>
352+
<issue>#3252</issue>
353+
<comment>This should be resolved for the 5.4 release.</comment>
354+
</phase>
355+
</test>
356+
357+
<test name="SMS_D_Ld5.f09_g17.ISSP245Clm60BgcCropCrujra.derecho_intel.clm-default">
358+
<phase name="RUN">
359+
<status>FAIL</status>
360+
<issue>#3250</issue>
361+
<comment>This should be resolved for the 5.4 release.</comment>
362+
</phase>
363+
</test>
364+
341365
<!-- Other submodule test list failures (MOSART, RTM, etc. -->
342366

343367
<test name="SMS_Lh3.f10_f10_mg37.I2000Clm60Sp.derecho_intel.mosart-clmAccelSpinupIgnoreWarn">

src/biogeochem/CNFireLi2024Mod.F90

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ module CNFireLi2024Mod
77
! module for fire dynamics
88
! created in Nov, 2012 and revised in Apr, 2013 by F. Li and S. Levis
99
! based on Li et al. (2012a,b; 2013)
10-
! revised in Apr, 2014 according to Li et al.(2014)
11-
! revised in May, 2015, according to Li et al. (2015, in prep.)
12-
! Fire-related parameters were calibrated or tuned in May, 2015 based on the
13-
! 20th Century transient simulations at f19_g16 with a CLM4.5 version
14-
! (clm50fire), CRUNCEPv5, and climatological lightning data.
10+
! revised in Apr, 2014 according to Li and Lawrance (2017)
11+
! revised in Jun, 2024 and modified in May, 2025, according to Li et al. (2025, in prep.)
1512
!
1613
! !USES:
1714
use shr_kind_mod , only : r8 => shr_kind_r8
@@ -147,6 +144,10 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
147144
real(r8) :: fs ! hd-dependent fires suppression (0-1)
148145
real(r8) :: ig ! total ignitions (count/km2/hr)
149146
real(r8) :: hdmlf ! human density
147+
real(r8) :: topoi ! influence of topography on fires (0-1), where 1 indicates no impact.
148+
! can be removed if CLM consider Arctic C3 grass in plateau->
149+
! intense light-> much more C allocated to fine roots than leaf,
150+
! and roots decreasing infiltration
150151
real(r8) :: arh, arh30 !combustability of fuel related to RH and RH30
151152
real(r8) :: afuel !weight for arh and arh30
152153
real(r8) :: btran_col(bounds%begc:bounds%endc)
@@ -180,7 +181,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
180181
defo_fire_precip_thresh_bdt => cnfire_const%defo_fire_precip_thresh_bdt, & ! Input: [real(r8) ] (mm/day) Max running mean daily precip allowing deforestation fire for broadleaf deciduous trees
181182
borpeat_fire_soilmoist_denom => cnfire_const%borpeat_fire_soilmoist_denom, & ! Input: [real(r8) ] (unitless) Denominator of exponential in soil moisture term of equation relating that and temperature to boreal peat fire (unitless)
182183
nonborpeat_fire_precip_denom => cnfire_const%nonborpeat_fire_precip_denom, & ! Input: [real(r8) ] (unitless) Denominator of precipitation in equation relating that to non-boreal peat fire (unitless)
183-
184+
forc_topo_g => atm2lnd_inst%forc_topo_grc , & ! Input: [real(r8) (:) ] atmospheric surface height, a.k.a. elevation (m)
184185
fsr_pft => pftcon%fsr_pft , & ! Input:
185186
fd_pft => pftcon%fd_pft , & ! Input:
186187
rswf_min => pftcon%rswf_min , & ! Input:
@@ -197,8 +198,8 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
197198
forc_t => atm2lnd_inst%forc_t_downscaled_col , & ! Input: [real(r8) (:) ] downscaled atmospheric temperature (Kelvin)
198199
forc_rain => wateratm2lndbulk_inst%forc_rain_downscaled_col , & ! Input: [real(r8) (:) ] downscaled rain
199200
forc_snow => wateratm2lndbulk_inst%forc_snow_downscaled_col , & ! Input: [real(r8) (:) ] downscaled snow
200-
prec30 => wateratm2lndbulk_inst%prec30_patch , & ! Input: [real(r8) (:) ] 10-day running mean of tot. precipitation
201-
rh30 => wateratm2lndbulk_inst%rh30_patch , & ! Input: [real(r8) (:) ] 10-day running mean of tot. relative humidity
201+
prec30 => wateratm2lndbulk_inst%prec30_patch , & ! Input: [real(r8) (:) ] 30-day running mean of tot. precipitation
202+
rh30 => wateratm2lndbulk_inst%rh30_patch , & ! Input: [real(r8) (:) ] 30-day running mean of tot. relative humidity
202203
dwt_smoothed => cnveg_state_inst%dwt_smoothed_patch , & ! Input: [real(r8) (:) ] change in patch weight (-1 to 1) on the gridcell, smoothed over the year
203204
cropf_col => cnveg_state_inst%cropf_col , & ! Input: [real(r8) (:) ] cropland fraction in veg column
204205
gdp_lf => this%gdp_lf_col , & ! Input: [real(r8) (:) ] gdp data
@@ -302,8 +303,8 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
302303
if( patch%itype(p) > nc4_grass )then
303304
cropf_col(c) = cropf_col(c) + patch%wtcol(p)
304305
end if
305-
! For natural vegetation
306-
if (patch%itype(p) <= nc4_grass ) then
306+
! Exclude crops and bare soil
307+
if (patch%itype(p) <= nc4_grass .and. patch%itype(p) >= ndllf_evr_tmp_tree) then
307308
lfwt(c) = lfwt(c) + patch%wtgcell(p)
308309
end if
309310
end do
@@ -516,6 +517,10 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
516517
g = col%gridcell(c)
517518

518519
! For crop
520+
! cropf_col(c) * col%wtgcell(c) > 0.1_r8 is added because fires are rare in
521+
! gridcells with limited cropland coverage based on GFED5. Also, this helps to
522+
! avoid abm (crop fire peak month) regridding error from 0.05 degree to lower resolution
523+
! The condition could be removed if CLM supports the use of mode in abm inputs regridding
519524
if( forc_t(c) >= SHR_CONST_TKFRZ .and. patch%itype(p) > nc4_grass .and. &
520525
kmo == abm_lf(c) .and. &
521526
burndate(p) >= 999 .and. patch%wtcol(p) > 0._r8 )then ! catch crop burn time
@@ -616,7 +621,15 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
616621
cnfire_params%ignition_efficiency*(1._r8-fs)* &
617622
(lfwt(c)**0.5)
618623
end if
619-
nfire(c) = ig/secsphr*fb*fire_m*lgdp_col(c) !fire counts/km2/sec
624+
625+
! Reduce burnability at high elevations
626+
if(forc_topo_g(g) <= 2500._r8)then !influence of topography on fires
627+
topoi = 1._r8
628+
else
629+
topoi = 0.004_r8
630+
end if
631+
632+
nfire(c) = ig/secsphr*fb*fire_m*lgdp_col(c) * topoi !fire counts/km2/sec
620633
Lb_lf = 1._r8+10._r8*(1._r8-EXP(-0.06_r8*forc_wind(g)))
621634
spread_m = fire_m**0.5_r8
622635
fd_col(c) = (lfwt(c)*lgdp1_col(c)*lpop_col(c))**0.5_r8 * fd_col(c)
@@ -639,7 +652,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
639652
/ (trotr1_col(c) + trotr2_col(c))
640653

641654
cli = max(0._r8,min(1._r8,1._r8-prec30_col(c)*secspday/cri))* &
642-
(15._r8*min(0.0016_r8,dtrotr_col(c)/dt*dayspyr*secspday)+0.009_r8)* &
655+
(0.67_r8*min(0.01_r8,dtrotr_col(c)/dt*dayspyr*secspday)+0.001_r8) * &
643656
max(0._r8,min(1._r8,(0.25_r8-(forc_rain(c)+forc_snow(c))*secsphr)/0.25_r8))
644657

645658
farea_burned(c) = farea_burned(c)+fb*cli*(cli_scale/secspday)

0 commit comments

Comments
 (0)