Skip to content

UpdateRxfireBurnWindow and update_nesterov_index() comments have wrong wind units #1465

@samsrabin

Description

@samsrabin

The comment next to the specification of wind in UpdateRxfireBurnWindow() says it's supposed to be in m/min:

subroutine UpdateRxfireBurnWindow(this, rxfire_switch, temp_C, rh, wind, temp_up, &
temp_low,rh_up, rh_low, wind_up, wind_low)
! ARGUMENTS
class(fire_weather), intent(inout) :: this ! fire weather class
real(r8), intent(in) :: temp_C ! daily averaged temperature [degrees C]
integer, intent(in) :: rxfire_switch ! whether prescribed fire is turned on
real(r8), intent(in) :: rh ! daily relative humidity [%]
real(r8), intent(in) :: wind ! wind speed [m/min]

Same for update_nesterov_index(), which is called as fireWeather%UpdateIndex():

subroutine update_nesterov_index(this, temp_C, precip, rh, wind)
!
! DESCRIPTION:
! Updates Nesterov Index
! ARGUMENTS
class(nesterov_index), intent(inout) :: this ! nesterov index extended class
real(r8), intent(in) :: temp_C ! daily averaged temperature [degrees C]
real(r8), intent(in) :: precip ! daily precipitation [mm]
real(r8), intent(in) :: rh ! daily relative humidity [%]
real(r8), intent(in) :: wind ! daily wind speed [m/min]

But where those subroutines are called in UpdateFireWeather(), you can see they are passed the value in m/s:

fates/fire/SFMainMod.F90

Lines 123 to 132 in c1dfc21

! convert to m/min
currentSite%wind = wind*sec_per_min
! update fire weather index
call currentSite%fireWeather%UpdateIndex(temp_C, precip, rh, wind)
! update prescribed fire burn window
call currentSite%fireWeather%UpdateRxfireBurnWindow(hlm_use_managed_fire, temp_C, rh, wind, &
SF_val_rxfire_tpup, SF_val_rxfire_tplw, SF_val_rxfire_rhup, SF_val_rxfire_rhlw, &
SF_val_rxfire_wdup, SF_val_rxfire_wdlw)

I was concerned that the comments might be right and the inputs wrong. This wouldn't matter for update_nesterov_index(), because wind isn't actually used. However, it would matter for UpdateRxfireBurnWindow().

The units for the prescribed fire wind thresholds on the parameter file are not helpful because they're definitely wrong:

double fates_rxfire_wind_lwthreshold ;
fates_rxfire_wind_lwthreshold:units = "%" ;
fates_rxfire_wind_lwthreshold:long_name = "minimum wind speed threshold below which prescribed fire is disallowed" ;
double fates_rxfire_wind_upthreshold ;
fates_rxfire_wind_upthreshold:units = "%" ;
fates_rxfire_wind_upthreshold:long_name = "maximum wind speed threshold above which prescribed fire is disallowed" ;

But the values suggest m/s (10 m/s ~= 22 mph; 10 m/min ~= 0.37 mph):

fates_rxfire_wind_lwthreshold = 2 ;
fates_rxfire_wind_upthreshold = 10 ;

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    ❕Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions