NGEET / fates

repository for the Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Other
99 stars 92 forks source link

Active crown fire development discussion #573

Open slevis-lmwg opened 5 years ago

slevis-lmwg commented 5 years ago

This issue follows directly from https://github.com/NGEET/fates/issues/567 and https://github.com/NGEET/fates/pull/572

jkshuman commented 5 years ago

@slevisconsulting and I spoke at great length about the implementation of active crown fire, and we have a plan.

https://github.com/jkshuman/fates/blob/ae0a5e7196fa9219b37712c140c55fa7a0c2d51b/fire/SFMainMod.F90#L930 Within subroutine crown damage inside the do loop across woody cohorts, we will 1: calculate EQ 12 from Bessie and Johnson (1995) (critical intensity for active crown fire "active_crown_FI")

2: evaluate EQ 14 from Bessie and Johnson (ratio of Patch%FI/cohort%active_crown_FI)

3: if EQ 14 (Patch%FI/cohort%active_crown_FI )is greater than 1 and (Patch%FI/cohort%passive_crown_FI) greater than 1 https://github.com/jkshuman/fates/blob/ae0a5e7196fa9219b37712c140c55fa7a0c2d51b/fire/SFMainMod.F90#L944-L945

4: then active crown fire = true and crown foliage is available as fuel (Bessie and Johnson 1995)

5: loop through all cohorts and update this active crown fire flag

6: prior to exiting crown_damage call subroutine "characteristics of fuel"

7: update Patch%sum_fuel to include leaf organ biomass (convert leaf organ C to kgbiomass/m2) for all cohorts that have active_crown_fire_flg == true In Patch loop iterate through the cohorts if active_crown_fire is true sum leaf organ biomass (convert leaf organ C to kgbiomass/m2) into Patch%sum_fuel convert cohort%leaf_organ_C to kgbiomass/m2 Patch%sum_fuel = Patch%sum_fuel + cohort%leaf_organ_kgbiomass

for 
    leaf_c_per_unitarea = leaf_c/(c_area/nplant)     !KgC/m2
     fuel_bulkd_crown = leaf_c_per_unitarea/(0.45 * crown_depth)    !kgbiomass/m3
     fuel_sav_crown =  tree_lai/canopy_depth
     alpha_live_fuel  = (mass fine live fuel/mass total fine fuel)  ! 1 hour fuels Rothermal 1972
     fuel_mef_fine_dead = MEF_twigs + MEF_dead_leaves + MEF_grass
     fuel_mef_crown = max ((2.9 ((1-alpha_live_fuel)/alpha_live_fuel) (1 - fuel_eff_moist_dead) - 0.226), fuel_mef_fine_dead)   ! EQ bottom page 16 Albini 1976
     fuel_eff_moist_crown = exp(-1.0_r8 * ((SAV_crown/SF_val_drying_ratio) * currentSite%acc_NI)) 
     consider making this PFT specific in future....

1-hour fuels = <0.6 cm diameter 10-hour fuels = 0.6 to 2.5 cm diameter 100-hour = 2.5 to 7.6 cm diameter 1000-hour fuels = 7.6 to 20.3 cm diameter

this gives you updated fuel characteristics that include crown foliage from active crown fire

8: recalculate ROS_front (and ROS_back?) for altered ground fuel consumption, area burnt recalculate FI for altered scorch height

9: update crown damage for cohorts where active_crown_fire_flg was false based on these new ROS, FI, SH values

10: end loop

This will only loop through and recalculate the fire behavior and effects once after finding an active crown fire. This is a good place to start for our model at a daily time step. We can re-visit with implementation and further testing.

@rgknox: @slevisconsulting and I would like your feedback about implementing the recalculation of ROS, FI and SH in terms of where to call the subroutine, we we are in that cohort do loop. I guess we can evaluate the active_crown_fire flag before we do the final mortality probability?

tagging @lmkueppers @xuchongang @pollybuotte @ckoven @rosiealice @adrifoster and any other interested parties for comment

slevis-lmwg commented 5 years ago

Some more notes for steps (1), (2), (3) mainly for my own benefit:

1) Add Bessie & Johnson (1995) eq. (12) right after @jkshuman added eq. (8): ! Crown fuel ignition potential, EQ 8 Bessie and Johnson 1995 currentCohort%passive_crown_FI = (0.01 * height_cbb * SF_val_crown_ignition_energy)**1.5 currentCohort%active_crown_FI = ... 2) Calculate eq. (14b) right after @jkshuman added eq. (14a): ! Initiation of passive crown fire, EQ 14 Bessie and Johnson 1995 currentCohort%ignite_crown = currentPatch%FI/currentCohort%passive_crown_FI currentCohort%ignite_active_crown = currentPatch%FI/currentCohort%active_crown_FI 3) Add an if statement inside the one that @jkshuman added: if (currentCohort%ignite_crown >= 1.0_r8) then currentCohort%crown_fire_flg = 1 ! passive crown fire ignited currentCohort%fraction_crown_burned = 1.0_r8 if (currentCohort%ignite_active_crown >= 1.0_r8) then

jkshuman commented 5 years ago

Adding a few more details to the discussion: This implementation of active fire allows the fire to grow based on addition of crown fuels within the patch. It does not address the possibility of the fire spreading between patches. It also does not consider slope.

slevis-lmwg commented 5 years ago

Within subroutine crown damage inside the do loop across woody cohorts, we will 1: calculate EQ 12 from Bessie and Johnson (1995) (critical intensity for active crown fire "active_crown_FI")

2: evaluate EQ 14 from Bessie and Johnson (ratio of Patch%FI/cohort%active_crown_FI)

3: if EQ 14 (Patch%FI/cohort%active_crown_FI )is greater than 1 and (Patch%FI/cohort%passive_crown_FI) greater than 1 4: then active crown fire = true and crown foliage is available as fuel (Bessie and Johnson 1995)

This far I have addressed the first four steps from @jkshuman's list in the Pull Request posted immediately above.

jkshuman commented 5 years ago

@adrifoster suggested looking into specific leaf area as a step towards calculating the SAV_crown for the updated fuel moisture characteristics

adrifoster commented 5 years ago

Based on a read of Cruz & Alexander 2010 it seems that the Q_c value in Equation 8 in Bessie & Johnson should be tied to canopy moisture as this is an important variable.

jkshuman commented 5 years ago

@adrifoster I agree. In the code Q_c = SF_val_crown_ignite_energy. In this version of the code we would use FATES-Hydro to update the SF_valcrown ignite_energy based on the Foliar Moisture Content (FMC). This would expect to change at the PFT level as well as seasonally and potentially daily. FMC comes up a lot in Cruz and Alexander 2010.

We are currently using the Bessie and Johnson(1995) constant for this value (3060 kJ/kg assuming foliage at 100% moisture (dry mass)). I will update this to be a PFT level value. We can leave it to default to this one value at 3060 kJ/kg, but then the structure is there so that you can have variation at the PFT level prior to FATES-Hydro integration. tagging @xuchongang
https://github.com/jkshuman/fates/blob/9465439694d75f52205d4c4befec0669ed96d769/fire/SFMainMod.F90#L931-L932

jkshuman commented 5 years ago

SF_val_crown_ignite_energy updated to be a PFT level variable within the passive crown fire PR in anticipation of integration with FATES-Hydro and to allow for PFT level variation in ignition energy prior to that integration. https://github.com/NGEET/fates/pull/572

adrifoster commented 5 years ago

@jkshuman and I were talking and discussed the potential of integrating a stand density factor into the active fire calculation. This would account for the fact that while a single crown ignition may occur, trees may not be close enough to one another to support crown-to-crown fire spread (even if surface fuels are high). Spotting fires could bridge large spaces between tree crowns but this requires very high fire intensities (30,000 - 100,000+ kW/m). We would investigate implementing this stand density factor following initial work with the current version of the active fire spread.

We also discussed incorporating wind direction, again for future testing.

adrifoster commented 5 years ago

FYI for future use, the default value of SF_val_crown_ignite_energy, 3060 kJ/kg, assuming 100% crown fuel moisture, comes from equation SV_val_crown_ignite_energy = 460 + 26m, where m is the crown fuel moisture (in % of dry weight), from Van Wagner 1977, "Conditions for the start and spread of crown fire", CJFR 7.

jkshuman commented 5 years ago

Thanks @adrifoster Just a note on that EQ 3 from Van Wagner 1977 h=460 +26m where h=heat of ignition (kJ/kg) and m=foliar moisture content based on dry fuel (%) Added a comment with this equation and reference in my passive crown branch that will be the basis of the active fire development. https://github.com/jkshuman/fates/blob/8d582b74b760ff573e76d5fb07e94b99d48d95a8/fire/SFMainMod.F90#L930-L933

Also added a note including the source of the 0.01 value in the equation for passive_crown_FI. This EQ 8 (Bessie and Johnson 1995) uses values from Van Wagner (1977) that have a specific clear branch bole height and intensity. Specifically, EQ8 uses a local empirical value from a crown fire within red pine plantations (0.01 = C from Van Wagner 1977 EQ4 for crown of base height 6m, 100% FMC, and FI 2500kW/m). Depending on the behavior of crown fires, this empirical value of 0.01 may need to be updated. https://github.com/jkshuman/fates/blob/8d582b74b760ff573e76d5fb07e94b99d48d95a8/fire/SFMainMod.F90#L935-L938
Adding link to passive crown fire PR #572

@slevisconsulting please fetch these additional comments form my branch so they are in active_fire branch as well.

jkshuman commented 5 years ago

@slevisconsulting I updated the equation for leaf bulk density to account for the area of the canopy. leaf_c_per_unitarea = leaf_c/(c_area/nplant) !KgC/m2 fuel_bulkd_crown = leaf_c_per_unitarea/(0.45 * crown_depth) !kgbiomass/m3

@rgknox is this reasonable to find leaf_c_per_unitarea? I pulled it from FatesAllometry.

slevis-lmwg commented 5 years ago

@rgknox helped me place the active crown fire PR in the right place by creating a new one #584 and closing the old one https://github.com/jkshuman/fates/pull/5

The new one includes a link to the old one, so that all our conversations and posts remain available.

jkshuman commented 2 years ago

Updating this issue to note the transition to the method of Scott and Reinhardt 2001 as reflected in PR857 For this transition I created a branch from @slevisconsulting recent updates to main, and modified according to Scott and Reinhardt 2001. This addressed discussion with @lmkueppers and @pollybuotte. This more recent Scott and Reinhardt method addresses inconsistencies in Bessie and Johnson. Those updates are here: (https://github.com/jkshuman/fates/tree/active_crown_Scott_2001)

@slevisconsulting modified this further as reflected in PR857 and here: https://github.com/slevisconsulting/fates/tree/active_crown_Scott_2001_contd

Tagging @adrifoster and her recent publication in ERL that implements this method in a different model for further discussion. Foster et al 2022 ERL