Erik Kluzek < erik > - 2017-09-27 11:59:43 -0600
Bugzilla Id: 2516
Bugzilla CC: dlawren, lifang, oleson, rfisher,
This goes back to the first versions of CLM4.5 fire. This problem was found by Hui Tang. We don't believe they cause a large change to the climate, but seem to be more intuitively correct.
Setting of the following arrays in CNFireFluxes had an incorrect term in them:
m_livestemc_to_litter_fire, m_livestemc_to_deadstemc_fire, m_deadstemc_to_litter_fire, m_livecrootc_to_litter_fire
The m_*_fire arrays are all in units of gC/m2/s, and are the fire emissions of Carbon from the given type.
Here's the change for CNFireBaseMod.F90 in clm4_5_16_256 (the same change also needs to go into CNFireLi2014Mod.F90 as well for clm4_5).
@@ -650,7 +651,7 @@
fm_other(patch%itype(p))
m_livestemc_to_litter_fire(p) = livestemc(p) * f * &
(1._r8 - cc_lstem(patch%itype(p))) * &
- fm_droot(patch%itype(p))
+ fm_lstem(patch%itype(p))
m_livestemc_storage_to_litter_fire(p) = livestemc_storage(p) * f * &
(1._r8 - cc_other(patch%itype(p))) * &
fm_other(patch%itype(p))
@@ -659,10 +660,10 @@
fm_other(patch%itype(p))
m_livestemc_to_deadstemc_fire(p) = livestemc(p) * f * &
(1._r8 - cc_lstem(patch%itype(p))) * &
- (fm_lstem(patch%itype(p))-fm_droot(patch%itype(p)))
+ (fm_lstem(patch%itype(p))-fm_dstem(patch%itype(p)))
m_deadstemc_to_litter_fire(p) = deadstemc(p) * f * m * &
(1._r8 - cc_dstem(patch%itype(p))) * &
- fm_droot(patch%itype(p))
+ fm_dstem(patch%itype(p))
m_deadstemc_storage_to_litter_fire(p) = deadstemc_storage(p) * f * &
(1._r8 - cc_other(patch%itype(p))) * &
fm_other(patch%itype(p))
@@ -678,7 +679,7 @@
(1._r8- cc_other(patch%itype(p))) * &
fm_other(patch%itype(p))
m_livecrootc_to_litter_fire(p) = livecrootc(p) * f * &
- fm_droot(patch%itype(p))
+ fm_lroot(patch%itype(p))
m_livecrootc_storage_to_litter_fire(p) = livecrootc_storage(p) * f * &
(1._r8- cc_other(patch%itype(p))) * &
fm_other(patch%itype(p))
Note here: f is the fire rate (1/sec), m is the acceleration factor, cc_* terms are combustion completeness factor, and fm_* terms are fire related mortality terms.
So this means
fire emission of transfer of live-stem to litter = live-stem * f * (1 - cc(livestem))*fm(live-stem) (rather than fm(dead-root))
fire emission of transfer of live-stem to deadstem = livestem * f * (1 - cc(live-stem)*(fm(live-stem) - fm(dead-stem)) (rather than fm(deadroot))
fire emission of transfer of dead-stem to litter = deadstem * f * m * (1 - cc(dead-stem))*fm(dead-stem)) (rather than fm(dead-root))
fire emission of transfer of live-root to litter = liveroot * f * fm(live-root) (rather than fm(dead-root))
Erik Kluzek < erik > - 2017-09-27 11:59:43 -0600
Bugzilla Id: 2516
Bugzilla CC: dlawren, lifang, oleson, rfisher,
This goes back to the first versions of CLM4.5 fire. This problem was found by Hui Tang. We don't believe they cause a large change to the climate, but seem to be more intuitively correct.
Setting of the following arrays in CNFireFluxes had an incorrect term in them:
m_livestemc_to_litter_fire, m_livestemc_to_deadstemc_fire, m_deadstemc_to_litter_fire, m_livecrootc_to_litter_fire
The m_*_fire arrays are all in units of gC/m2/s, and are the fire emissions of Carbon from the given type.
Here's the change for CNFireBaseMod.F90 in clm4_5_16_256 (the same change also needs to go into CNFireLi2014Mod.F90 as well for clm4_5).
Note here: f is the fire rate (1/sec), m is the acceleration factor, cc_* terms are combustion completeness factor, and fm_* terms are fire related mortality terms.
So this means
fire emission of transfer of live-stem to litter = live-stem * f * (1 - cc(livestem))*fm(live-stem) (rather than fm(dead-root))
fire emission of transfer of live-stem to deadstem = livestem * f * (1 - cc(live-stem)*(fm(live-stem) - fm(dead-stem)) (rather than fm(deadroot))
fire emission of transfer of dead-stem to litter = deadstem * f * m * (1 - cc(dead-stem))*fm(dead-stem)) (rather than fm(dead-root))
fire emission of transfer of live-root to litter = liveroot * f * fm(live-root) (rather than fm(dead-root))