Where: DEFG::FlagInterps and DEFG::NormalizeExtrap
Why it’s wrong: Cells flagged for interpolation that never receive any weight remain permanently marked (TempBuf[NormIdx] stays 1) and never become infectious; if later code expects a cleared/terminal state, this can stall iterative passes or leave unreachable cells.
Evidence: Logic in both functions.
GitHub
Fix: After an extrapolation pass, detect TempBuf && TempFloat==0 and either mark as non-interpolable or assign NullVal; ensure the driving loop terminates.