Add native SB40 component fuels and rate of spread - #69
Open
mefrediani wants to merge 4 commits into
Open
mefrediani wants to merge 4 commits into
mefrediani wants to merge 4 commits into
Conversation
Preserve external fuel categories while resolving validated tiled indices, including named nonburnable classes. Combine native SB40 tables and curing with separate dead/live reaction, six-class moisture, conserved dry inventory, and restart metadata. Retain Anderson arithmetic and document unit and independent Behave comparisons. Regression additions remain separate.
mefrediani
marked this pull request as ready for review
November 3, 2026 22:03
mefrediani
force-pushed
the
sb40-tier-ab
branch
from
November 5, 2026 17:33
c46553e to
a2d84be
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native SB40 inputs previously used the Anderson crosswalk. This change adds
fuel_opt=2with all 40 Scott and Burgan models, dynamic herbaceous curing, and separate dead/live Rothermel calculations, combining the agreed Tier A and Tier B work.Fuel parameters remain compiled arrays in
physics/fuel_anderson_mod.F90andphysics/fuel_scott_burgan_mod.F90; moisture-response constants remain inphysics/fmc_wrffire_mod.F90. Runtime parameter tables are a separate follow-up in #72, based on this branch.External
nfuel_catvalues remain unchanged in history and restart files. A validated integerfuel_indexresolves owned tiles into 40 burnable rows plus one nonburnable row. Codes 91, 92, 93, 98, 99 and legacy code 14 share that row; unknown, fractional, missing and nonfinite categories are rejected before physics accesses fuel arrays. Documentation explains the class interfaces, row counts, NB behavior, moisture treatment, consumption assumptions, and restart compatibility.SB40 uses six moisture classes with distinct herbaceous and woody state, preserves total dry inventory under curing, and uses per-model heat content.
fuelmc_g_liveretains its name and 0.30 default;fuelmc_g_woodydefaults to 0.90. ROS initialization receives all three prescribed moisture values explicitly from the run configuration. Comments inros_sb40_mod.F90explain each calculation stage, array ordering, weighting, and units. Anderson arithmetic, including its existing wet/dry-load factor, remains unchanged.The Behave reference generator stays archived outside this repository. Unit tests compare CFBM against fixed numerical values from the earlier independent compiled Behave experiment; they do not build or execute Behave. Documentation describes the reference assumptions and intentional difference in the rounded curing expression. The unit suite also covers category mapping and rejection, all NB aliases, curing endpoints and mass conservation, separate live reactions, extinction, six-class moisture state, nondefault prescribed ROS inputs, heat release, and MPI broadcasts.
Validation:
All internal regression additions and detailed evidence remain in separate local validation commits and are excluded from this PR. Approved regression configurations, references, tolerances, and CI selection are unchanged. The inherited Anderson wet/dry-load correction and Intel Debug failures in #68 remain separate work.