Wildland_fire
- Anderson13FuelTable
model
wildland_fire
fire_behavior
The Anderson (1982) 13-category surface fuel table exactly as fire_behavior carries it (physics/fuel_anderson_mod.F90 Init_anderson_fuel_model, plus the derived quantities of share/fuel_mod.F90 Calc_wind_adjustment_factor, state/state_mod.F90 Init_fuel_vars and fmc_wrffire_mod Init_fmc_wrffire), as a lookup on the integer category code: fuel load fgi (fire_behavior's own kg/m^2 values), bed depth, mass-loss weight, chaparral flag, particle density, surface-area-to-volume ratio, mineral contents, moisture of extinction, the Albini (1976) 1-h/10-h/100-h/1000-h/live load proportions, the canopy fuel parameters, and the derived wind adjustment factor, fuel e-folding time and fuel-moisture class weights. Category 14 is 'no fuel'. Each property is a piecewise-linear interpolation through the 14 integer nodes, exact at the nodes (the same spelling as the EarthSciModels wildland_fire/fuel_model_lookup.esm, which this component does NOT reuse because its numbers differ: that file converts Anderson's ton/acre loads to SI -- 0.449 kg/m^2 for category 2 where fire_behavior has 0.896 -- rounds the depths differently (1.8288 vs 1.829 m) and divides the residence time by 0.8514 instead of 0.85). Tests are the dumped fuel tables and waf array of the instrumented fire_behavior (real32), rel 1e-6 on the transcribed literals and 1e-5 on the derived waf.
- BurningIndex
model
wildland_fire
nfdrs
Burning Index (BI) from the National Fire Danger Rating System (NFDRS). BI is numerically equivalent to 10 times the predicted flame length in feet. BI = 3.01 × (SC × ERC)^0.46, where SC is the spread component (m/s) and ERC is the energy release component (dimensionless). From Cohen & Deeming (1985), page 12.
- BurnProbability
model
wildland_fire
fsim
Burn probability calculation for wildland fire FSIM
- Clark1996ConvectiveFroudeNumber
model
wildland_fire
clark1996
Square of the convective Froude number (Eq. 1, Clark et al., 1996), a diagnostic of fire-atmosphere coupling strength: F_c^2 = (U - S_f)^2 / (g * (Δθ/θ̄) * W_f). Large F_c^2 indicates wind-dominated (weak coupling); small F_c^2 indicates buoyancy-dominated (strong coupling). Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:253 (`Clark1996ConvectiveFroudeNumber` @component). Observed-only: U, S_f, delta_theta_over_theta, W_f are inputs (parameters); F_c_sq is an algebraic output.
- Clark1996FireSpread
model
wildland_fire
clark1996
Coupled atmosphere-fire model for a dry eucalyptus forest implementing the McArthur fire-spread formula and four-fuel-type consumption from Clark et al. (1996). Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:81 (`Clark1996FireSpread` @component). Five ODE states (M_litter, M_trash, M_scrub, M_canopy, Q_cumulative) and seven algebraic state variables (B_ratio, S_f, canopy_burning, ground_burn_rate, total_burn_rate, F_s, F_l). The cumulative ground heat flux Q_cumulative drives an automatic canopy ignition threshold at 170 kJ/m^2 (p. 180, Clark et al. 1996); each ground fuel is gated by an ifelse against eps_fuel so consumption stops cleanly when the pool is depleted.
- Clark1996HeatFluxProfile
model
wildland_fire
clark1996
Vertical profile of fire-induced sensible (F_s) and latent (F_l) heat fluxes via the simple e-folding extinction-depth formulation of Clark et al. (1996), Eq. 10. F_s(z) = F_s_sfc * exp(-z/alpha_ext); F_l(z) = F_l_sfc * exp(-z/alpha_ext) with alpha_ext = 50 m. Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:206 (`Clark1996HeatFluxProfile` @component). Observed-only: z, F_s_sfc, F_l_sfc are inputs (parameters); F_s, F_l are algebraic outputs.
- Clark1996WindProfile
model
wildland_fire
clark1996
Hyperbolic-tangent vertical wind profile used in the FR7CS1 experiment of Clark et al. (1996), Eq. 11. U(z) = 3 - 3*(1 + tanh((z - 500)/100)) m/s — gives U ≈ +3 m/s near the surface, reverses sign at z = 500 m, and is asymptotic to -3 m/s aloft. Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:299 (`Clark1996WindProfile` @component). Observed-only: z is the input (parameter); U_z is an algebraic output.
- DynamicFuelLoadTransfer
model
wildland_fire
rothermel
Dynamic fuel load transfer from live herbaceous to dead herbaceous fuel based on live-herbaceous fuel moisture, per Andrews (2018) Table 6c. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:320 (`DynamicFuelLoadTransfer` @component). Observed-only: w0_live_herb and Mf_live_herb are inputs (parameters); T_fraction, w0_dead_herb, and w0_live_herb_remaining are algebraic outputs.
- EffectiveMidflameWindSpeed
model
wildland_fire
rothermel
Effective midflame wind speed UE — combines the actual wind factor and slope factor into an equivalent wind speed for fire-behavior calculations. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:410 (`EffectiveMidflameWindSpeed` @component). Observed-only: C_coeff, B_coeff, E_coeff, beta_ratio, phi_w, phi_s are inputs (parameters); phi_E (combined wind+slope factor) and UE (effective midflame wind speed in m/s) are algebraic outputs. Implements Eq. UE, Table 7, Andrews (2018) RMRS-GTR-371.
- EllipticalFireSpread
model
wildland_fire
spread_direction
Fire spread from a single ignition point assuming an elliptical fire shape — calculates eccentricity, spread rate in arbitrary direction, backing fire spread, fire length and width, flanking distance, and ellipse geometric parameters (semi-major axis, focus offset, semi-minor axis). Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fire_spread_direction.jl:174 (`EllipticalFireSpread` @component). Algebraic-only: R_H, Z, γ, elapsed_time are inputs (parameters); e, R_γ, R_B, D_H, D_B, L, W, D_F, f, g, h are algebraic outputs.
- EnergyReleaseComponent
model
wildland_fire
nfdrs
NFDRS Energy Release Component (ERC) - potential energy release per unit area in a burning fuel bed (BTU/ft^2)
- EquilibriumMoistureContent
model
wildland_fire
nfdrs
Equilibrium moisture content (EMC) of dead fuels as a function of temperature and relative humidity per the NFDRS (Cohen & Deeming 1985), page 1, Eqs. 1a/1b/1c. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:79 (`EquilibriumMoistureContent` @component). Observed-only: TEMP and RH are inputs (parameters); EMC is the algebraic output.
- ERCTimeSeries
model
wildland_fire
fsim
Energy Release Component (ERC) time series model — first-order autoregressive (AR(1)) simulation with seasonal trend and white noise. Generates synthetic daily ERC values using an AR(1) process with separate autocorrelation, innovation variance, and seasonal trend parameters. Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fsim.jl:333.
- FireBehaviorParameters
model
wildland_fire
fire_behavior
Scheme constants and unit conversions of NCAR's Community Fire Behavior Model (fire_behavior, the WRF-Fire/SFIRE physics line: physics/ros_wrffire_mod.F90, fuel_anderson_mod.F90, fmc_wrffire_mod.F90, level_set_mod.F90, fire_physics_mod.F90, share/constants_mod.F90 and share/fuel_mod.F90), transcribed from the `parameter` declarations and in-line literals of the Fortran, including the fuel-moisture fits and class tables of fmc_wrffire_mod and the single-precision tiny and epsilon. Mounted by the fire_behavior components as subsystem `par` so that no tuning constant is written inline in the physics. The Rothermel (1972) fits are empirical formulae in US customary units (ft, lb, Btu, min); fire_behavior converts the SI fuel inputs to those units, evaluates the fits, and converts the spread rate back, so the conversion factors are scheme constants here (the Fortran literals 0.3048, 2.205, 196.850, 0.00508, 1055 -- note 196.850 ft/min per m/s and 0.00508 m/s per ft/min are each written independently in the source and are not exact reciprocals). The coefficients of the US-unit fits are dimensionless numbers whose implied units are recorded in their descriptions. Values are the nominal decimal values of the source; fire_behavior is a default-real (real32) code, so every test against it uses rel 1e-5 (the tolerance contract for a single-precision reference).
- FireContainment
model
wildland_fire
fsim
Statistical fire containment probability model
- FireHeatFlux
model
wildland_fire
level_set
Sensible and latent heat flux density released by burning fuel, per Eqs. 4–5 of Mandel et al. (2011). Migrated from WildlandFire.jl@126976f2 src/level_set_fire_spread.jl:295 (`FireHeatFlux` @component). Observed-only: fuel_burn_rate, w_l, h_fuel, M_f are inputs (parameters); phi_h and phi_q are algebraic outputs.
- FireLoadIndex
model
wildland_fire
nfdrs
Fire Load Index (FLI) per the NFDRS (Cohen & Deeming 1985), page 14. FLI combines the Burning Index (BI) with fire occurrence indexes (LOI + MCOI) to provide a comprehensive measure of the expected fire load. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:1605 (`FireLoadIndex` @component). Observed-only: BI, LOI, and MCOI are inputs (parameters); FLI is the algebraic output.
- FireOccurrenceLogistic
model
wildland_fire
fsim
Logistic regression model for large fire occurrence probability
- FirePerimeterSpread
model
wildland_fire
spread_direction
Fire perimeter spread rate and fireline intensity — calculates spread rate normal to the elliptical fire perimeter and Byram's fireline intensity. Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fire_spread_direction.jl:264 (`FirePerimeterSpread` @component). Algebraic-only: R_H, f, g, h, γ, H_A are inputs (parameters); cos_θ, sin_θ, θ, R_ψ, ψ, I_B are algebraic outputs.
- FireSpreadDirection
model
wildland_fire
spread_direction
Calculate fire behavior in direction of maximum spread
- FlameLengthCategory
model
wildland_fire
fsim
Flame length categorization into 6 categories (0.6 m thresholds) based on Byram flame length. Migrated from WildlandFire.jl@126976f2 src/fsim.jl:418.
- FlameLengthWRFFire
model
wildland_fire
fire_behavior
Byram (1959) flame length as diagnosed by fire_behavior's Calc_flame_length (physics/fire_physics_mod.F90): L = 0.0775 (iboros ros)^0.46 m on cells containing the fire line (0 < fire_area < 1), with iboros = I_R t_r in kJ/m^2 from RothermelWRFFire so that iboros ros is the fireline intensity in kW/m; zero elsewhere. The EarthSciModels rothermel/fire_spread.esm F_L = c_FL (I_B/IB_ref)^0.46 with I_B in W/m is the same law in SI (0.0775 kW^-0.46 = 0.00323 W^-0.46); it is not reused because its I_B is built from its own (Andrews 2018) reaction intensity. Tests: cells of the instrumented test7 run at step 20 (flame dump) on the front (0 < fire_area < 1), outside it (fire_area = 0) and fully burning behind it (fire_area = 1), rel 1e-5.
- FuelConsumption
model
wildland_fire
level_set
Fuel consumption model: exponential decay of remaining fuel fraction F after ignition, per Eq. 3 of Mandel et al. (2011). Migrated from WildlandFire.jl src/level_set_fire_spread.jl:243 (`FuelConsumption` @component). The fuel-fraction ODE D(F) = -is_burning*F/T_f decays with time constant T_f when is_burning ≈ 1; the algebraic w0_effective = F*w0_initial feeds the FireHeatFlux component in the coupled WRF-SFIRE pipeline.
- FuelDepth
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model fuel-bed depth lookup: maps integer fuel model code (1–13) to fuel bed depth δ in metres, converted from the upstream ft values in ANDERSON_FUEL_DATA via δ_m = depth_ft × 0.3048. Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return the fuel-model-1 default 1.0 × 0.3048 = 0.3048 m. Migrated from WildlandFire.jl src/coupling.jl:125 (`@register_symbolic fuel_depth`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- FuelFractionCellWRFFire
model
wildland_fire
fire_behavior
Fuel fraction remaining and burning area fraction of one fire-grid cell as computed by fire_behavior's Calc_fuel_left (physics/level_set_mod.F90): the cell is split into a 2x2 submesh (fuel_left_irl = fuel_left_jrl = 2); at the four corners of every subcell the level-set function and the ignition time are bilinearly interpolated from the 3x3 node neighbourhood of the cell (the node values are the cell-centred lfn and tign_g of the cell and its eight neighbours; subcell (1,1) uses nodes (i-1..i, j-1..j) at fractions 1/2..1, subcell (2,1) nodes (i..i+1, j-1..j) at fractions 0..1/2 and so on); each subcell's burning area is the level-set sign fraction (1 - sum lfn/sum|lfn|)/2 (Mandel et al. 2011 Sect. 3.2) and its remaining fuel is area exp(-(time_now - tign_mean)/fuel_time) + (1 - area) with the mean of the four corner times since ignition (zero for unburnt or not-yet-ignited corners); the cell values are the subcell means. The per-step burnt fraction fuel_frac_before - fuel_frac feeds Calc_fire_fluxes. For a cell that is entirely burning with uniform ignition time this is the exact solution of dF/dt = -F/fuel_time (EarthSciModels level_set/fuel_consumption.esm, Mandel eq. 3), exposed as dfuel_frac_dt_burning; for partly burning cells the subgrid integration has no single-ODE equivalent, which is why this component is transcribed rather than reusing FuelConsumption. Tests: cells of the instrumented test7 run at step 20 (real32), rel 1e-5 (abs 1e-7 where a subcell fraction is exactly 0 or 1).
- FuelHeat
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model heat content lookup: maps integer fuel model code (1–13) to low heat content in J/kg (8,000 BTU/lb for all Anderson models = 18,608,000 J/kg). Non-burnable LANDFIRE codes (91-99) and out-of-range codes return 0.0 J/kg. Migrated from WildlandFire.jl src/coupling.jl:127 (`@register_symbolic fuel_heat`). NOTE: fuel_heat is implementable without a lookup table because all 13 Anderson models share the same h=8000 BTU/lb; see reference notes on the gt-p3ep blocking gap for the other fuel_* functions.
- FuelLoad
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model total fine fuel load lookup: maps integer fuel model code (1–13) to oven-dry fuel load w₀ in kg/m², converted from the upstream lb/ft² values in ANDERSON_FUEL_DATA via w₀_kg_m2 = load_lb_ft2 × (0.45359237/0.09290304). Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return the fuel-model-1 default 0.034 × (0.45359237/0.09290304) ≈ 0.1660 kg/m². Migrated from WildlandFire.jl src/coupling.jl:124 (`@register_symbolic fuel_load`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- FuelModelLookup
model
wildland_fire
Anderson (1982) 13 fuel-model parameter lookup: maps integer fuel model code (1–13) to the six Rothermel fire spread fuel properties (σ, w₀, δ, Mₓ, h, Tᶠ). Aggregates the six registered fuel_* functions (fuel_savr, fuel_load, fuel_depth, fuel_mce, fuel_heat, fuel_weight) into a single observed-variable component. Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return fuel-model-1 defaults for σ, w₀, δ, Mₓ, and Tᶠ, and 0 J/kg for h. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:155 (`FuelModelLookup` @mtkmodel). Resolves the gt-p3ep blocking gap via ifelse + interp.linear for the five variable-valued properties and a simple ifelse for the constant heat content.
- FuelMoistureWRFFire
model
wildland_fire
fire_behavior
Dead and live fuel moisture of the five WRF-SFIRE moisture classes (1-h, 10-h, 100-h, 1000-h dead fuel and live fuel) for one fire-grid cell, as advanced by fire_behavior's Advance_moisture_classes and averaged by Average_moisture_classes (physics/fmc_wrffire_mod.F90; Mandel et al. 2014). From the step-mean 2 m temperature, humidity and surface pressure the relative humidity follows Murphy & Koop (2005) eq. 10; without rain the Van Wagner & Pickett (1972) drying and wetting equilibrium moisture contents bracket the class moisture, which relaxes with its class time lag towards the nearer bracket (a class already between them does not move); with rain above 0.05 mm/h both brackets become the saturation moisture 2.5 and the rate is the wetting lag scaled by 1 - exp(-r/8 mm/h). Every coefficient and class table is a FireBehaviorParameters (par) entry. The physics is the time-lag ODE d m_k/dt = (equi_k - m_k)/tau_k (dfmc_dt); fire_behavior integrates it exactly over its moisture step (exponential form, or the 2nd-order Taylor form when the step covers less than 1 % of the lag), reproduced as fmc_new so the Fortran step can be tested. The cell's ground fuel moisture fmc_g is the load-weighted mean of the classes (Anderson13FuelTable w_1h .. w_live). The assimilation adjustments deltae/deltas (fmep) and their decay are transcribed; the fmc_gc initialisation branches (from the equilibrium or from the namelist) are the consumer's initial condition and are not transcribed. The EarthSciModels wildland_fire/nfdrs moisture components (NFDRS 1-h/10-h/100-h/1000-h models) are a different formulation and are not reused. Tests: cells of the instrumented test7 run with the moisture model on (fmoist_run, fmoist_freq = 1, dt_moisture = 0.5 s, so every class is in the Taylor branch; the 10 s case has no rain, so the wetting branch is transcribed but untested), real32, rel 1e-5.
- FuelSavr
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model surface-area-to-volume ratio (SAVR) lookup: maps integer fuel model code (1–13) to σ in m⁻¹, converted from the upstream 1/ft values in ANDERSON_FUEL_DATA via σ = savr_ft / 0.3048. Out-of-range codes return the default 3500/0.3048 ≈ 11482.94 m⁻¹ (fuel model 1). Migrated from WildlandFire.jl src/coupling.jl:123 (`@register_symbolic fuel_savr`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- HerbaceousFuelMoisture
model
wildland_fire
nfdrs
Herbaceous fuel moisture content (MCHERB) per NFDRS Cohen & Deeming (1985), pages 6-8. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:426 (`HerbaceousFuelMoisture` @component). Calculates moisture stages (pregreen, greenup, green, transition, cured/frozen) based on climate class, 1000-hr moisture, and seasonal flags.
- HumanFireOccurrenceIndex
model
wildland_fire
nfdrs
Human-caused fire occurrence index (MCOI) from Cohen & Deeming (1985)
- HundredHourFuelMoisture
model
wildland_fire
nfdrs
100-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 5. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:279 (`HundredHourFuelMoisture` @component). State-variable model: MC100, EMCBAR, BNDRYH are time-indexed state variables with daily discrete update equations.
- IgnitionComponent
model
wildland_fire
nfdrs
NFDRS Ignition Component (IC) - calculates probability of ignition and reportable fire
- IgnitionTimeWRFFire
model
wildland_fire
fire_behavior
Ignition time of a fire-grid cell as updated by fire_behavior's Update_ignition_times (physics/level_set_mod.F90) after each level-set step: cells the front crosses during the step get the linearly interpolated crossing time ts + dt lfn_in/(lfn_in - lfn_out); cells still unburnt at the end of the step carry time_now (the step end nudged up by two real32 epsilons, so that Calc_fuel_left treats them as not ignited); burning cells keep their ignition time. Tests: cells of the instrumented test7 run at step 20 (ls_tign dump), rel 1e-5 (the interpolated time is a ratio of O(1-100 m) level-set values, real32).
- LANDFIRE
data_source
earthsci_data
LANDFIRE regridding model — the coupler half of the landfire loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.4). Exposes the LANDFIRE fire-behavior fuel-model code (Anderson 13 / Scott & Burgan 40) on the simulation's target grid for wildland-fire coupling in EarthSciML systems.
- LevelSetFireSpread
model
wildland_fire
Level-set fire front propagation PDE: Hamilton-Jacobi equation ∂ψ/∂t + S(n̂)|∇ψ| = 0, where S(n̂) is the Rothermel/Mandel (2011) direction-dependent spread rate projected onto the fire-front normal. Migrated from WildlandFire.jl src/level_set_fire_spread.jl:73. v0.8.0: a DISCRETIZATION-AGNOSTIC library PDE leaf. (1) Spatial derivatives are bare `D` ops (op:D, wrt:x / wrt:y) instead of the `grad` sugar. (2) This leaf imports NO discretization of its own — the scheme is chosen by the ASSEMBLER that mounts this component, which carries the rule imports on its model-ref edge (esm-spec §9.7.10 form A: the edge's `expression_template_imports` register into this component's own template scope). The reference assembler (wildlandfire.esm/level_set_hj_2d.esm) mounts the first-order Godunov (Rouy-Tourin / Osher-Sethian) rule godunov_norm_D2_periodic, which fires by compound match on the gradient-magnitude term sqrt(D(psi,x)² + D(psi,y)²), plus the central rules central_D1x/D1y for the individual ∂ψ/∂x, ∂ψ/∂y in the wind/slope normal projections — but any grid + scheme satisfying the same D-op / grid-geometry contract composes here unchanged. (3) The direction-dependent right-hand side is authored as READABLE INTERMEDIATE array-shaped observed fields over the [x,y] index sets — psi_x, psi_y (central ∂ψ), grad_mag (Godunov |∇ψ|), grad_safe, U_n, tanphi_n (wind/slope normal projections), phi_W, phi_S, and S_n (the spread rate) — so the state equation is simply D(psi,t) = −S_n·grad_mag. Both toolkits evaluate these per cell: the Julia evaluator folds the elementwise ones into the state RHS (leaving the producer stencils psi_x/grad_mag for its index beta-reduction), and the Rust array runtime materializes each as a companion buffer in dependency order — identical numerics either way (front radii match to 4 places at NX=NY=32). The producer observeds (psi_x, psi_y, grad_mag) carry the bare D ops the mounted discretization lowers; grad_mag's exponent is the integer 2 on the bare D ops so the Godunov compound matches. Only the scalar grid observeds (dx, dy) remain scalar. (4) Grid geometry (index sets x,y; spacing dx=Lx/NX, dy=Ly/NY; extent x0,y0) is the consumer-supplied contract of grids/cartesian_uniform_2d/grid.esm (metaparameters NX,NY bound at load; extent Lx,Ly parameters), and BCs come from the mounted discretization. The initial perimeter is supplied by the ASSEMBLER (a §11.4.1 dedicated IC model), not baked here. The D ops assume Cartesian (x,y in meters) coordinates; geographic (lon/lat) usage needs metric-tensor scaling not yet expressible in ESM (other:P3-A-metric-tensor-coord-transforms gap).
- LevelSetTendencyWRFFire
model
wildland_fire
fire_behavior
The level-set propagation equation of fire_behavior (physics/level_set_mod.F90 Calc_tend_ls; Munoz-Esparza et al. 2018) as a PDE on a uniform 2-D grid: d psi/dt = -R |grad psi| + nu |R| (dx d2psi/dx2 + dy d2psi/dy2), the Hamilton-Jacobi front propagation with the rate of spread R normal to the front plus a grid-scaled artificial viscosity. |grad psi| is written as the compound sqrt(D(psi,x)^2 + D(psi,y)^2) and lowered by EarthSciDiscretizations' grids/cartesian_uniform_2d/rules/weno5_eno1_norm_D2_extrapolate_bc, which is fire_behavior's default scheme (fire_upwinding = 9): fifth-order WENO within fire_lsm_band_ngp = 4 cells of the front with the upwind side chosen by the mid-flame wind, first-order ENO (minmod of the one-sided differences) elsewhere and within BDY_ENO1 = 10 cells of the domain boundary. The second derivatives of the viscosity term are lowered by central_D2x_extrapolate_bc and central_D2y_extrapolate_bc. All three rules close the walls as fire_behavior does (Extrapol_var_at_bdys): each wall cell sees a ghost extrapolated linearly from the two innermost cells, max(2a - b, a, b), so the domain edge carries no prescribed level-set value and does not act as a fire front. R is supplied as an input field (it depends on the upwind normal, tested in ROSWRFFire); the propagation term and viscosity are what this component asserts. The viscosity coefficient is the single value fire_viscosity: fire_behavior blends it toward fire_viscosity_bg near the front, and test7 sets the two equal. Tests: the ls_tend dump of Runge-Kutta stage 1 of step 20 (t = 10 s) of test7 with the default scheme, checked at wall, corner, ENO1-band, WENO-band and far-field cells, real32.
- LightningFireOccurrenceIndex model wildland_fire nfdrs
- LiveFuelMoistureExtinction
model
wildland_fire
rothermel
Live fuel moisture of extinction (M_x,live) from dead-fuel moisture, dead-to-live effective load ratio, and dead fuel moisture of extinction. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:367 (`LiveFuelMoistureExtinction` @component). Observed-only: Mx_dead, W_ratio, Mf_dead are inputs (parameters); Mx_live is an algebraic output. Implements Eq. M_x,live, Table 6b in Andrews (2018) RMRS-GTR-371.
- MidflameWind
model
wildland_fire
Midflame-height wind component — converts horizontal 10m wind components (u_wind, v_wind) to Rothermel's midflame-height wind speed U and wind direction omega relative to the upslope direction. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:249 (`MidflameWind` @component). Observed-only: u_wind, v_wind, slope_aspect, wind_reduction are inputs (parameters); U, omega, u_mf_x, u_mf_y are algebraic outputs. The wind reduction factor (default 0.4 for timber fuels) converts 10m wind speed to midflame height (~6.1 m).
- OneHourFuelMoisture
model
wildland_fire
nfdrs
1-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 3. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:149 (`OneHourFuelMoisture` @component). Observed-only: EMCPRM, MC10, use_fuel_sticks, is_raining are inputs (parameters); MC1 is the algebraic output.
- ROSWRFFire
model
wildland_fire
fire_behavior
Rate of spread normal to the fire front as evaluated by fire_behavior's Calc_ros_wrffire (physics/ros_wrffire_mod.F90) at one cell and time step, from the level-set normal (nvx, nvy), the mid-flame wind (uf, vf), the terrain slope and the cell's Rothermel constants (RothermelWRFFire). With FIRE_ADVECTION = 1 (the compiled setting) the wind and slope factors are evaluated from the TOTAL wind speed and TOTAL slope and then multiplied by the clipped cosines of their angles to the spread direction: ros = min(r_0 (1 + phi_w(|U|) cos_w + phi_s(|grad z|) cos_s), 6 m/s) with cos_w = max(0, U.n/|U|), cos_s = max(0, grad z . n/|grad z|). DIFFERENCE from EarthSciModels level_set_fire_spread.esm (Mandel 2011 form phi_W(max(0, U.n)), phi_S(max(0, grad z . n)^2)): there the PROJECTED speed enters the power laws, |U|^B cos_w vs (|U| cos_w)^B and |grad z|^2 cos_s vs (grad z . n)^2, and that file has neither the 30 m/s wind cap, the 6 m/s ROS cap nor the chaparral branch, so it is not reused. Chaparral (ischap > 0) uses the Clark et al. (2004) law ros_wind = max(1.2974 |U|^1.41, 0.033) m/s with no base or slope term. Tests: per-cell values of the instrumented test7 run (ls_tend dump, RK stage 1 of step 20, t = 10 s; real32; FORTRAN's speed and slope carry tiny(real32) additions reproduced here), rel 1e-5.
- RothermelFireSpread
model
wildland_fire
rothermel
Rothermel (1972) surface fire spread model — predicts rate of spread (R), fireline intensity (IB), flame length (F_L), and related outputs from fuel-bed properties, fuel moisture, wind speed, and terrain slope. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:70 (`RothermelFireSpread` @component). Observed-only (algebraic): all 27 unknowns are defined by algebraic equations; no ODE states. Implements Table 3 and Table 7 in Andrews (2018) RMRS-GTR-371 using SI units. All empirical coefficients are converted from US customary. See reference notes for the complete Unicode→ASCII identifier map and the coupling interface (RothermelCoupler couple2 methods).
- RothermelWRFFire
model
wildland_fire
fire_behavior
Rothermel (1972) fuel-bed spread parameters as evaluated by fire_behavior's Set_ros_parameters_wrffire (physics/ros_wrffire_mod.F90) for one cell: from the category's fuel properties and the ground fuel moisture, the packing ratio, optimum packing ratio, reaction velocity, moisture and mineral damping, reaction intensity, propagating flux ratio, heat of preignition and effective heating number, and hence the no-wind no-slope spread rate r_0 (ft/min, and ros_base in m/s), the wind-factor coefficients bbb (exponent B) and phiwc, and I_R t_r (iboros) for Byram's flame length. The fits are evaluated in US customary units exactly as the Fortran does (SI load and depth converted with 0.3048 and 2.205), so the intermediates are dimensionless carriers of lb/ft^2, ft, 1/ft, Btu/lb quantities. DIFFERENCES from the EarthSciModels rothermel/fire_spread.esm (Andrews 2018 SI form), which is therefore NOT reused: (1) the reaction-velocity exponent is Rothermel's original A = 1/(4.774 savr^0.1 - 7.27), not Albini's 133 savr^-0.7913; (2) the net load is w_0/(1 + S_T), not w_0 (1 - S_T); (3) the moisture ratio and the mineral damping are not capped at 1; (4) the load entering the fits is the DRY part (1 - M/(1+M)) of fgi, fire_behavior treating fgi as the moist load; (5) the wind factor is split into the cell constants B and phiwc = C (beta/beta_op)^-E applied per time step in ROSWRFFire. The no-fuel category (has_fuel = 0) returns betafl = bbb = 1, phiwc = r_0 = iboros = 0 as the Fortran does. Tests are the dumped per-cell intermediates of the instrumented fire_behavior test7 run (real32; a real64 re-evaluation of the same formulae agrees to <= 8e-7 relative), rel 1e-5.
- TenHourFuelMoisture
model
wildland_fire
nfdrs
10-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 4. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:207 (`TenHourFuelMoisture` @component). Observed-only: EMCPRM, use_fuel_sticks, WT, AGE, CLIMAT are inputs (parameters); MC10 is the algebraic output.
- TerrainSlope
model
wildland_fire
Terrain slope magnitude and aspect from elevation gradients. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:205 (`TerrainSlope` @component). Observed-only: dzdx and dzdy are inputs (parameters); tan_phi, slope_aspect, dzdx_out, dzdy_out are algebraic outputs.
- ThousandHourFuelMoisture
model
wildland_fire
nfdrs
1000-hour timelag dead fuel moisture content per the 1978 NFDRS (Cohen & Deeming 1985), basic equations. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:354 (`ThousandHourFuelMoisture` @component). Algebraic state-variable model: BNDRYT (today's boundary value) is computed from precipitation duration and the 24-hour average EMC; MC1000 is updated from the previous day's value (PM1000) using the 7-day boundary average (BDYBAR) and a fixed 1000-hour response coefficient.
- WindLimit
model
wildland_fire
rothermel
Maximum effective wind speed (U_limit) above which the wind factor in the Rothermel surface fire spread model saturates. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:465 (`WindLimit` @component). Observed-only: IR is the input parameter; U_limit is the algebraic output. Both upstream branches are preserved here as a single `ifelse` on the dimensionless `use_corrected` indicator parameter — corrected (Andrews et al. 2013) when use_corrected > 0.5 (the upstream default), original when use_corrected ≤ 0.5. Implements Eq. Ulimit, Table 7 in Andrews (2018) RMRS-GTR-371.
- WoodyFuelMoisture
model
wildland_fire
nfdrs
Woody fuel (1000-hour) moisture content per NFDRS (Cohen & Deeming 1985), pages 8-9.