From 96a28d601b6d7d8927e539217c51bb1f22095a93 Mon Sep 17 00:00:00 2001 From: Jacquelyn Shuman Date: Thu, 20 Dec 2018 15:21:35 -0700 Subject: [PATCH 1/3] Remove Lasslop et al 2014 wind effect Remove the reducing effect of high wind speeds on fire behavior. Also remove the fire_wind_max that triggers this reducing effect. New reserach shows that there is not a reducing link between wind speed and fire behavior, specifically rate of spread. Andela et al 2018 https://doi.org/10.5194/essd-2018-89 User interface changes?: Yes, remove fire_wind_max parameter Code review: JKShuman Test suite: Cheyenne Test baseline: Test namelist changes: none Test answer changes: expect changes, dependant on wind conditions Test summary: tested for compile on Cheyenne --- fire/SFMainMod.F90 | 19 +++---------------- parameter_files/fates_params_14pfts.cdl | 5 ----- parameter_files/fates_params_coastal_veg.cdl | 5 ----- parameter_files/fates_params_default.cdl | 5 ----- 4 files changed, 3 insertions(+), 31 deletions(-) diff --git a/fire/SFMainMod.F90 b/fire/SFMainMod.F90 index 2a7a1ca01c..e42e2e3cbc 100644 --- a/fire/SFMainMod.F90 +++ b/fire/SFMainMod.F90 @@ -426,7 +426,6 @@ subroutine rate_of_spread ( currentSite ) real(r8) beta_ratio ! ratio of beta/beta_op real(r8) a_beta ! dummy variable for product of a* beta_ratio for react_v_opt equation real(r8) a,b,c,e ! function of fuel sav - real(r8) wind_elev_fire !wind speed (m/min) at elevevation relevant for fire logical,parameter :: debug_windspeed = .false. !for debugging @@ -493,21 +492,9 @@ subroutine rate_of_spread ( currentSite ) ! Equation A5 in Thonicke et al. 2010 ! phi_wind (unitless) - ! convert wind_elev_fire from m/min to ft/min for Rothermel ROS eqn - ! wind max per Lasslop et al 2014 to linearly reduce ROS for high wind speeds - !OLD! phi_wind = c * ((3.281_r8*currentPatch%effect_wspeed)**b)*(beta_ratio**(-e)) - if (currentPatch%effect_wspeed .le. SF_val_wind_max) then - wind_elev_fire = currentPatch%effect_wspeed - phi_wind = c * ((3.281_r8*wind_elev_fire)**b)*(beta_ratio**(-e)) - if (debug_windspeed) write(fates_log(),*) 'SF wind LESS max ', currentPatch%effect_wspeed - if (debug_windspeed) write(fates_log(),*) 'month and day', hlm_current_month, hlm_current_day - else - !max condition 225 ft/min (FIREMIP Rabin table A10 JSBACH-Spitfire) convert to 68.577 m/min - wind_elev_fire = max(0.0_r8,(68.577_r8-0.5_r8*currentPatch%effect_wspeed)) - phi_wind = c * ((3.281_r8*wind_elev_fire)**b)*(beta_ratio**(-e)) - if (debug_windspeed) write(fates_log(),*) 'SF wind GREATER max ', currentPatch%effect_wspeed - if (debug_windspeed) write(fates_log(),*) 'month and day', hlm_current_month, hlm_current_day - endif + ! convert current_wspeed (wind at elev relevant to fire) from m/min to ft/min for Rothermel ROS eqn + phi_wind = c * ((3.281_r8*currentPatch%effect_wspeed)**b)*(beta_ratio**(-e)) + ! ---propagating flux---- ! Equation A2 in Thonicke et al.2010 and Eq. 42 Rothermal 1972 diff --git a/parameter_files/fates_params_14pfts.cdl b/parameter_files/fates_params_14pfts.cdl index fca12515c9..cf3d4de880 100644 --- a/parameter_files/fates_params_14pfts.cdl +++ b/parameter_files/fates_params_14pfts.cdl @@ -569,9 +569,6 @@ variables: float fates_fdi_b ; fates_fdi_b:units = "NA" ; fates_fdi_b:long_name = "spitfire parameter (unknown) " ; - float fates_fire_wind_max ; - fates_fire_wind_max:units = "m/min" ; - fates_fire_wind_max:long_name = "maximum wind speed expected by the fire model" ; float fates_fuel_energy ; fates_fuel_energy:units = "kJ/kg" ; fates_fuel_energy:long_name = "pitfire parameter, heat content of fuel" ; @@ -1189,8 +1186,6 @@ data: fates_fdi_b = 243.12 ; - fates_fire_wind_max = 45.718 ; - fates_fuel_energy = 18000 ; fates_max_durat = 240 ; diff --git a/parameter_files/fates_params_coastal_veg.cdl b/parameter_files/fates_params_coastal_veg.cdl index dddcc9d159..a6b1ac59d3 100644 --- a/parameter_files/fates_params_coastal_veg.cdl +++ b/parameter_files/fates_params_coastal_veg.cdl @@ -527,9 +527,6 @@ variables: float fates_fdi_b ; fates_fdi_b:units = "NA" ; fates_fdi_b:long_name = "spitfire parameter (unknown) " ; - float fates_fire_wind_max ; - fates_fire_wind_max:units = "m/min" ; - fates_fire_wind_max:long_name = "maximum wind speed expected by the fire model" ; float fates_fuel_energy ; fates_fuel_energy:units = "kJ/kg" ; fates_fuel_energy:long_name = "pitfire parameter, heat content of fuel" ; @@ -947,8 +944,6 @@ data: fates_fdi_b = 243.12 ; - fates_fire_wind_max = 45.718 ; - fates_fuel_energy = 18000 ; fates_max_durat = 240 ; diff --git a/parameter_files/fates_params_default.cdl b/parameter_files/fates_params_default.cdl index 179eefa42d..bed07aed11 100644 --- a/parameter_files/fates_params_default.cdl +++ b/parameter_files/fates_params_default.cdl @@ -569,9 +569,6 @@ variables: float fates_fdi_b ; fates_fdi_b:units = "NA" ; fates_fdi_b:long_name = "spitfire parameter (unknown) " ; - float fates_fire_wind_max ; - fates_fire_wind_max:units = "m/min" ; - fates_fire_wind_max:long_name = "maximum wind speed expected by the fire model" ; float fates_fuel_energy ; fates_fuel_energy:units = "kJ/kg" ; fates_fuel_energy:long_name = "pitfire parameter, heat content of fuel" ; @@ -1066,8 +1063,6 @@ data: fates_fdi_b = 243.12 ; - fates_fire_wind_max = 45.718 ; - fates_fuel_energy = 18000 ; fates_max_durat = 240 ; From 3fe14e5ab3a41cf51dc8f1f25a792e30ae103e3f Mon Sep 17 00:00:00 2001 From: Jacquelyn Shuman Date: Thu, 20 Dec 2018 16:14:09 -0700 Subject: [PATCH 2/3] Remove SF_val_wind_max from SFParams Code review: JKShuman Test suite: Hobart Test summary: 2 year test run --- fire/SFParamsMod.F90 | 9 --------- 1 file changed, 9 deletions(-) diff --git a/fire/SFParamsMod.F90 b/fire/SFParamsMod.F90 index a8556577fa..f40fea7a39 100644 --- a/fire/SFParamsMod.F90 +++ b/fire/SFParamsMod.F90 @@ -23,7 +23,6 @@ module SFParamsMod real(r8),protected :: SF_val_miner_damp real(r8),protected :: SF_val_max_durat real(r8),protected :: SF_val_durat_slope - real(r8),protected :: SF_val_wind_max ! Maximum wind speed expected by fire model (m/min) real(r8),protected :: SF_val_alpha_FMC(NFSC) real(r8),protected :: SF_val_CWD_frac(NCWD) real(r8),protected :: SF_val_max_decomp(NFSC) @@ -56,7 +55,6 @@ module SFParamsMod character(len=param_string_length),parameter :: SF_name_low_moisture_Slope = "fates_low_moisture_Slope" character(len=param_string_length),parameter :: SF_name_mid_moisture_Coeff = "fates_mid_moisture_Coeff" character(len=param_string_length),parameter :: SF_name_mid_moisture_Slope = "fates_mid_moisture_Slope" - character(len=param_string_length),parameter :: SF_name_wind_max = "fates_fire_wind_max" public :: SpitFireRegisterParams public :: SpitFireReceiveParams @@ -90,7 +88,6 @@ subroutine SpitFireParamsInit() SF_val_miner_damp = nan SF_val_max_durat = nan SF_val_durat_slope = nan - SF_val_wind_max = nan SF_val_CWD_frac(:) = nan @@ -150,9 +147,6 @@ subroutine SpitFireRegisterScalars(fates_params) character(len=param_string_length), parameter :: dim_names_scalar(1) = (/dimension_name_scalar/) - call fates_params%RegisterParameter(name=SF_name_wind_max, dimension_shape=dimension_shape_scalar, & - dimension_names=dim_names_scalar) - call fates_params%RegisterParameter(name=SF_name_fdi_a, dimension_shape=dimension_shape_scalar, & dimension_names=dim_names_scalar) @@ -191,9 +185,6 @@ subroutine SpitFireReceiveScalars(fates_params) class(fates_parameters_type), intent(inout) :: fates_params - call fates_params%RetreiveParameter(name=SF_name_wind_max, & - data=SF_val_wind_max) - call fates_params%RetreiveParameter(name=SF_name_fdi_a, & data=SF_val_fdi_a) From 34f580c411d5bc91b8af2ef726f46cf7a132db7f Mon Sep 17 00:00:00 2001 From: Jacqueline Shuman Date: Thu, 20 Dec 2018 16:27:13 -0700 Subject: [PATCH 3/3] remove wind_max from SFMainMod --- fire/SFMainMod.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fire/SFMainMod.F90 b/fire/SFMainMod.F90 index e42e2e3cbc..44f8d8d2e5 100644 --- a/fire/SFMainMod.F90 +++ b/fire/SFMainMod.F90 @@ -408,8 +408,8 @@ subroutine rate_of_spread ( currentSite ) use SFParamsMod, only : SF_val_miner_total, & SF_val_part_dens, & SF_val_miner_damp, & - SF_val_fuel_energy, & - SF_val_wind_max + SF_val_fuel_energy + use FatesInterfaceMod, only : hlm_current_day, hlm_current_month type(ed_site_type), intent(in), target :: currentSite