WEPPcloud

← Back to usersum index

Role: user

Change Log

Canonical WEPP build/version history for wepp-forest.

Required maintenance rule:

  • update this file whenever a new build or rebuild is made (including new release-tagged binaries and version-affecting commits).
  • add new entries at the top (descending chronology).
  • when a matching release/wepp_<tag>_release_notes.md file exists, include a markdown link to it in that row's Notes cell; omit the link when no release notes file exists.

Reconstructed from git log using release/version-related commits (latest first), through 07/19/2022.

Date Commit Hash Compiler Version Notes
08/03/2026 f24c957e + release build gfortran wepp_260803 Ported the watershed SOIL OFE-width correction to the canonical wepp_260430_negmeltfix_comparator default branch: OFE identifiers now use I5 instead of I2. Added release-lineage guardrails and paired sidecars containing source_branch and source_commit. Built legacy-pass binaries with hashes 4a5158e2... (watershed) and 86ef065c... (hillslope). Validation: focused contracts 4/4; full pytest 87 passed; replacement host smoke 43/43 years for both binaries; permanent watchlist 12/12; artifact policy and ELF checks passed; same-build reconciled-condenser replay completed with 74/74 H*.pass.dat files and empty watershed stderr. See release notes.
07/27/2026 dec6e64b gfortran wepp_260727 (withdrawn from WEPPpy 2026-08-05) Corrected direct-HBP metadata association by passing explicit one-based hillslope-area and particle-diameter slices into the reader. Previously the zero-based legacy actual array shifted all areas forward and left the final hillslope at zero. Built sequentially with pinned /usr/bin/gfortran; hashes are cbcfac30... (watershed) and d79a4bfd... (hillslope). Sidecars advertise the writer's HBP schema 2.0. A copied six-year, 587-hillslope mdobre-foursquare-fovea gate regenerated all HBP shards with this exact hillslope binary, then replayed them with this exact watershed binary; stderr was empty, all 4,109 annual and average LOSS hillslope rows had positive areas, all 587 average areas matched HBP metadata at output precision, and hillslope 587 reported 0.080 ha. WEPPpy later withdrew the pair because its HBP-only pass contract is incompatible with workflows that merge legacy flat-file pass inputs. See the WEPP 260727 release notes.
07/26/2026 b517d0ab gfortran wepp_260726 Widened watershed SOIL OFE output from I2 to I5 in daily and hourly water-balance writers so identifiers above 99 remain numeric. Built sequentially with pinned /usr/bin/gfortran; hashes are c3d3588e... (watershed) and d5f0c679... (hillslope). Validation: focused output-contract test; copied mdobre-foursquare-fovea regeneration produced 587/587 HBP shards; the six-year watershed replay completed with empty stderr; generated day 1 contained contiguous OFEs 1-238 with numeric 99, 100, and 238 and no overflow markers. See the WEPP 260726 release notes.
07/25/2026 d0dfa073 + hillslope-area output patch gfortran wepp_260725 Corrected the watershed loss-report contract for small hillslopes: annual rows now emit the documented wsarea/10000 field, and annual plus average hillslope-area fields use three decimal places while retaining the existing 20-character column width. Built sequentially with pinned /usr/bin/gfortran; hashes are 7e0ccad2... (watershed) and 968e007e... (hillslope). Validation: output-contract tests; incident replay preserved 0.020-0.040 ha for all seven affected mdobre-foursquare-fovea hillslopes; permanent hillslope watchlist 14/14; full pytest (86 passed, 2 warnings); ablation artifact policy OK; source/release byte identity; ELF interpreter /lib64/ld-linux-x86-64.so.2; replacement host smoke on tight-orthodontist p1 completed 43/43 years for both binaries because the default dumbfounded-patentee fixture is absent. The reconciled-condenser gate regenerated all 74 legacy hillslope pass files with this exact hillslope binary and completed the 10-year watershed replay with this exact watershed binary, empty stderr, and no parse/runtime error signatures. Canonical watershed capacity includes remain unchanged. See the WEPP 260725 release notes.
07/23/2026 486d839d gfortran wepp_260723 Preserved daily deep-percolation (Dp) resolution by changing the three standard water-balance writers from fixed two-decimal output to E15.7; no water-balance equations or parameter behavior changed. Added opt-in wepp_observe.on bottom-boundary and PMET diagnostic sidecars and closed the tight-orthodontist deep-percolation/calibration ablation packages. Built sequentially with pinned /usr/bin/gfortran; hashes are a36be787... (watershed) and 61ec752f... (hillslope). Validation: precision contract tests; permanent hillslope watchlist 14/14; full pytest (84 passed, 2 warnings); ablation artifact policy OK; source/release byte identity; ELF interpreter /lib64/ld-linux-x86-64.so.2; replacement host smoke on tight-orthodontist p1 completed 43/43 years for both binaries because the default dumbfounded-patentee fixture is no longer present. The named reconciled-condenser directory had HBP/current-prompt artifacts from a different WEPP build, so the release gate regenerated all 74 legacy hillslope pass files with this exact hillslope binary and then completed the 10-year watershed replay with this exact watershed binary, a success marker, empty stderr, and no parse/runtime error signatures. Canonical watershed capacity includes remain unchanged. See the WEPP 260723 release notes.
07/16/2026 0e629cb2 + Apple Silicon build support (source-only) Homebrew GNU Fortran 15.2.0_1 + Apple clang/ld 21.0.0/1266.8 Native macOS development build; no release binary cut Synced the AgFields capacity and soil-cursor fixes, added a canonical Darwin-arm64 build lane, and retained Linux x86-64 as the only release/vendoring lane. The native watershed link preserves production dimensions by materializing exact-size Fortran COMMON symbols as zero-fill storage in a high-address Mach-O segment; the HBP reader and writer alone use -O1 to avoid verified GNU Fortran 15.2 Darwin-arm64 CRC32C miscompiles. Also corrected legacy FORMAT punctuation required by the current GNU runtime, declared Python development dependencies, and made the delicate-game replay helper HBP-aware and success-marker strict. Native validation: clean wepp/wepp_hill build, all 301 vendored hillslope HBP runs, direct HBP reader tests, full portable pytest (202 passed, 4 skipped), ablation artifact policy, and the first 16 in-repository watchlist cases before the absent /wc1 mount. The vendored delicate-game corpus omits watershed topology inputs; external /wc1 fixtures and all Linux-only release gates remain required on the release host. Local Mach-O binaries were not committed over tracked Linux artifacts.
07/14/2026 dac3c950 + AgFields capacity/G1 changes (dirty tree) gfortran wepp_260714 Added uniquely named wepp_260714/wepp_260714_hill release artifacts for the AgFields routing-scheme suite. The hillslope family raises synchronized mxplan/ntype/ntype2 capacity from 20 to 32 and fixes the p1857 zero-surface-disturbance frcfac fault by using initialized random roughness where nominal operation roughness has zero weight. Built with /usr/bin/gfortran, -mcmodel=medium -no-pie; hashes are a7e1a515... (watershed) and cf70d059... (hillslope). Provenance caveat: the detached dac3c950 build source also contains the pre-existing, uncommitted p1 soil-layer cursor patch recorded in the 06/25/2026 row. Validation: exact-release Concept 1 corpus 1,869/1,869; hybrid corpus 1,644/1,644; 33-scenario explicit rejection; incident/control replays 17/17 years; permanent hillslope watchlist 13/13; candidate/release PASS identity with zero mismatches; full pytest (83 passed, 2 warnings); legacy delicate_game_pw0 watershed replay 301/301; ablation artifact policy OK; ELF interpreter /lib64/ld-linux-x86-64.so.2.
06/25/2026 dac3c950 + soil-layer cursor hotfix (dirty tree) gfortran wepp_260430 rebuild, vendored for wepp_260430 and wepp_260606 Fixed 9002 soil parsing when the .sol declared more layers than compiled mxnsl=10: src/input.for now preserves the declared layer count, caps modeled layers as before, then consumes surplus layer records before the bedrock read. This keeps layer/output capacities unchanged and avoids the rejected mxnsl=20 widening that produced output-table bounds warnings. Added incident package 20260625_open-source-thirtieth_p1_hillslope_soil-layer-cap-cursor and permanent watchlist seed p1. Rebuilt from clean with /usr/bin/gfortran; source/release hashes d1447a20... (wepp) and 89f61f95... (wepp_hill). Validation: direct open-source-thirtieth:p1 replay success; source host smoke with RUNS_DIR=/tmp/wepp-debug.9ZPV5o/wepp/runs CASES=p1 on both binaries; hillslope watchlist 13/13; ablation artifact policy OK; full pytest (80 passed, 2 warnings); staged legacy delicate-game watershed replay success marker with no parse/runtime signatures; interpreter checks (/lib64/ld-linux-x86-64.so.2). Default source smoke fixture /wc1/runs/du/dumbfounded-patentee was unavailable, and the named reconciled-condenser manual gate has drifted to HBP artifacts incompatible with this baseline binary's legacy pass-file prompt. Exact 260606 source tree was not present locally; existing 260606 binaries appeared source-equivalent to 260430 except build path, so the fixed baseline build was used for both failing vendored tags.
05/25/2026 4960bfaa + WB-98 authority-resolver remediation edits (dirty tree at build/gate time) gfortran wepp_260525wb98 Built release/wepp_260525wb98 + release/wepp_260525wb98_hill (and sidecars) with TARGET_TAG=260525wb98 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false LINK_FLAGS='-mcmodel=medium -no-pie -lz' tools/build_wepp_dated_release.sh. Release hashes: watershed b440a4bb..., hillslope 066fe3c1...; sidecars 66446ced... and cd9ef992.... WB-98 remediation outcome: H2637 Q/P restored from regressed 1.486340687727 (wepp_260524wb76_hill) to 0.546380222348 (candidate). Validation: source smoke (src/wepp, src/wepp_hill) pass, hillslope watchlist pass, ablation artifact policy pass, full pytest pass (193 passed, 2 warnings), reconciled-condenser replay success marker with no parse/runtime signatures, readelf interpreter checks pass (/lib64/ld-linux-x86-64.so.2), WB-05B 40-sample cohort restored from 0/40 (regressed anchor) to 10/40 (candidate), and WB-96-style WEPPpy post-vendor provenance/smoke/targeted-pytest gates pass on vendored wepp_260525wb98*.
05/24/2026 6a265d70 + WB-95 gate alignment edits (dirty tree at build/gate time) gfortran wepp_260524wb76 Built release/wepp_260524wb76 + release/wepp_260524wb76_hill (and sidecars) with TARGET_TAG=260524wb76 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false LINK_FLAGS='-mcmodel=medium -no-pie -lz' tools/build_wepp_dated_release.sh. Release hashes: watershed abd322dd..., hillslope 74143a5f...; sidecars 9cf8bc64... and 80cb6e93.... Validation: source smoke (src/wepp, src/wepp_hill) pass, hillslope watchlist (19/19) pass, ablation artifact policy pass, readelf interpreter checks pass (/lib64/ld-linux-x86-64.so.2) for source and release binaries, manual reconciled-condenser replay success marker (WEPP COMPLETED WATERSHED SIMULATION SUCCESSFULLY) with no parse/runtime signatures, and full pytest pass after aligning stale WB27 contract tests to current WB-76 authority semantics (193 passed, 2 warnings).
05/17/2026 03fee455 gfortran (source only, no dated release binary cut) Vendored winter.for day-end melt aggregation math defect fix (two-line correction at lines 441/458: signed-comparison fix pstvML + ngtvML .le. 0.0 and multiplier sign flip (1+ngtvML/pstvML)). Identified via Dun-dissertation crosswalk (docs/winter-codes-scientific-review.md §4.A); empirically latent (1166-hillslope WB-05B cohort scan shows class2=class3=0 across 21.7M winter-active rows — snowd does not produce negative hrmlt in current production data, so the patched branch is unreachable). 20-hillslope WB-05B parity validation: 20/20 bit-identical (no-op as expected). Fix is correct-when-it-fires, no-op otherwise. No dated release binary cut in this commit; vendoring to wepppy deferred until bundled with next release. Package: docs/ablation/20260516_winter_day_end_melt_aggregation_sign_defect/, status resolved-latent.
05/16/2026 0f94b4ea gfortran wepp_260516fc1 Built release/wepp_260516fc1 + release/wepp_260516fc1_hill (and sidecars) with TARGET_TAG=260516fc1 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false LINK_FLAGS='-mcmodel=medium -no-pie -lz' tools/build_wepp_dated_release.sh (first attempt without -lz failed zlib link symbols; recut with -lz). Release hashes: watershed e25b4ee5..., hillslope 706a12a2.... Validation: release host smoke (p962, p1) passed for both binaries, interpreter checks (/lib64/ld-linux-x86-64.so.2), hillslope watchlist (19/19), ablation artifact policy gate OK, full pytest -q (189 passed, 2 warnings), and reconciled-condenser watershed replay success marker (WEPP COMPLETED WATERSHED SIMULATION SUCCESSFULLY) with no parse/runtime signatures.
05/15/2026 62c2102e + WB35 ipeak=4 peak-writeback recut (dirty tree) gfortran wepp_260514 Rebuilt and recut release/wepp_260514 + release/wepp_260514_hill (and sidecars) with TARGET_TAG=260514 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false LINK_FLAGS='-mcmodel=medium -no-pie -lz' tools/build_wepp_dated_release.sh to incorporate the wshrun ipeak=4 legacy peak-seeding fallback that prevents all-zero ebe_pw0 peak runoff while chan.out remains positive. Validation: host smoke (src/wepp, src/wepp_hill), hillslope watchlist (14/14), ablation artifact policy gate, full pytest (179 passed), reconciled-condenser watershed replay success marker (WEPP COMPLETED WATERSHED SIMULATION SUCCESSFULLY) with no parse/runtime signatures, interpreter checks (/lib64/ld-linux-x86-64.so.2), WEPPpy vendoring to wepp_runner/bin/wepp_260514*, provenance + host smoke pass on vendored binaries, and targeted WEPPpy runner tests (8 passed). Release notes: release/wepp_260514_release_notes.md.
05/06/2026 c836a368 + PS-08 HBP CRC remediation + HBP gate/tooling alignment (dirty tree release tooling/docs updates) gfortran wepp_260506fc3 Built release/wepp_260506fc3 + release/wepp_260506fc3_hill with TARGET_TAG=260506fc3 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false tools/build_wepp_dated_release.sh; hardened src/wshpas.for to retire legacy process pass text output in this release (H*.pass.dat now explicit stop; only H*.hbp accepted) and removed legacy text-path writes in HBP mode; refreshed host smoke/watchlist tooling to sidecar-detect HBP and stage run-file pass names accordingly. Vendored wepp_260506fc3* into /workdir/wepppy/wepp_runner/bin. Validation: source/release smoke (wepp + wepp_hill), hillslope watchlist (13/13), ablation artifact policy gate, targeted wepp-forest regression tests (16 passed), WEPPpy provenance + host smoke, wctl run-pytest tests/wepp_runner tests/wepp/interchange tests/nodb/test_wepp_input_parser.py tests/nodb/test_wepp_run_service.py tests/rq/test_wepp_rq_stage_post.py tests/microservices/test_rq_engine_wepp_routes.py --maxfail=1 (251 passed, 3 skipped), cargo fmt, cargo test -p wepp_interchange_rust (16 passed), and reconciled-condenser end-to-end HBP regeneration + watershed replay success (74/74 H*.hbp Rust-parse clean, watershed success marker, ~29s).
05/06/2026 e1b6c69b + PS-08 pass-release retirement closeout (dirty tree release tooling/docs updates) gfortran wepp_260506fc2 Built release/wepp_260506fc2 + release/wepp_260506fc2_hill with TARGET_TAG=260506fc2 HBP_SUPPORTED=true MODE2_MASTER_PASS_PROMPT_REQUIRED=false tools/build_wepp_dated_release.sh; retired mode 3 external pass reload in src/main.for; added sidecar contract flag features.mode2_master_pass_prompt_required via release tooling and generated release/wepp_260506fc2*.json with hbp_supported=true, mode2_master_pass_prompt_required=false, mode3_process_pass_reload=false. Vendored wepp_260506fc2* into /workdir/wepppy/wepp_runner/bin. Validation: WEPP source smoke (wepp, wepp_hill), hillslope watchlist (13/13), ablation policy gate, full pytest (108 passed), WEPPpy provenance + host smoke for vendored binaries, wctl run-pytest tests/wepp_runner tests/wepp/interchange --maxfail=1 (105 passed, 3 skipped), and end-to-end reconciled-condenser watershed replay from WEPPpy-generated HBP runfile (WEPP COMPLETED WATERSHED SIMULATION SUCCESSFULLY, elapsed 2:14.73).
05/06/2026 5332bccc + PS-07 downstream binary-pass closeout (dirty tree release tooling/docs updates) gfortran wepp_260506fc1 Built release/wepp_260506fc1 + release/wepp_260506fc1_hill with TARGET_TAG=260506fc1 HBP_SUPPORTED=true tools/build_wepp_dated_release.sh; added automated sidecar generation via tools/generate_wepp_release_sidecar.py and emitted release/wepp_260506fc1*.json with features.hbp_supported=true. Vendored wepp_260506fc1* into /workdir/wepppy/wepp_runner/bin and removed stale wepp_260425*.json sidecars. Validation used feature-complete recut policy: cargo fmt, cargo test -p wepp_interchange_rust (16 passed), wctl run-pytest tests/wepp_runner tests/wepp/interchange --maxfail=1 (102 passed, 3 skipped), WEPPpy provenance + host smoke pass for both binaries, markdown-doc lint + git diff --check pass, and quarantined re/ch lanes remained unscheduled (active lane ge).
05/04/2026 eddc05a3 + WB-08A closeout/release provenance patch set gfortran wepp_260504 Built release/wepp_260504 + release/wepp_260504_hill using pinned /usr/bin/gfortran (TARGET_TAG=260504) with hash parity to src/wepp + src/wepp_hill (efb38304..., 5c705a37...). Validated release smoke for both binaries, hillslope watchlist (13/13), ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2), ablation artifact policy gate, and release fast-lane pytest (100 passed, 2 deselected) after marking tests/test_wb05f_h0001_process_guard_regression.py as long_running and replacing release-required targeted replay with WB-08A reduced-lane (H0001, H0461, H0022) coverage.
05/01/2026 66de499b + withdrawn release-candidate cycle (dirty tree docs/state updates) gfortran wepp_260501 wepp_260501 / wepp_260501_hill was a release-candidate artifact cycle for the CONFLICT-001 U6C campaign, not a deployed production release. The prior promotion/deployment wording is superseded. The release/wepp_260501* artifacts, /workdir/wepppy/wepp_runner/bin/wepp_260501* vendored copies, and stakeholder brief were removed on 2026-05-03 after H2637 R2 re-examination showed only outlet recovery, not reproduction of the audit memo's worst-OFE symmetric metric.
04/30/2026 20029107 + fixed-form hotfix (dirty tree) gfortran wepp_260430 Re-released wepp_260430/wepp_260430_hill to fix watershed master pass truncation introduced in the leap-year patch: src/wshpas.for leap-day assignment was in column 73 under fixed-form -ffixed-line-length-72, so ndays = 366 was truncated to ndays = 36, yielding truncated pass_pw0.txt and downstream EOF in wshred. Patched to fixed-form-safe multiline if ... then / ndays = 366 / endif, added regression test tests/test_wshpas_leap_day_guard.py, rebuilt binaries, and refreshed release artifacts with hashes b11c94d8... (wepp_260430) and 3b2fdd2b... (wepp_260430_hill). Validation: host smoke (wepp + wepp_hill), hillslope watchlist (12/12), ablation artifact policy gate, full pytest (80 passed, 2 warnings), reconciled-condenser manual watershed replay success marker with no parse/runtime signatures, interpreter checks (/lib64/ld-linux-x86-64.so.2), and targeted reproduction closure (pass_pw0.txt full 18262 tokens ending SUBEVENT 50 365).
04/30/2026 6084c260 (dirty tree leap contract patch) gfortran wepp_260430 Updated leap handling in src/stmget.for, src/contin.for, src/wshdrv.for, and src/wshpas.for to use Gregorian classification (/4 except /100 unless /400) while retaining a non-400 centurial day-366 tolerance path in runtime day-count loops. Rebuilt/published release/wepp_260430 + release/wepp_260430_hill (hashes ecee0f1a... and 5b1d758e...). Validated source-binary smoke on both binaries, hillslope watchlist (12/12), ablation artifact policy gate, full pytest -q (79 passed, 2 warnings), reconciled-condenser watershed replay success marker with no parse/runtime signatures, ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2), and centurial controls (year100/365 no false warning, year100/366 tolerated success, year2000/366 leap success).
04/29/2026 e9787597 (dirty tree hotfix) gfortran wepp_260429 Hotfix rebuild to remove accidental always-on observability overhead in src/wepp_observe.for: restored strict wepp_observe.on opt-in for all tags and cached the observe-flag inquire(...) result once per process to eliminate per-call filesystem probes in hot paths. Rebuilt/overwrote release/wepp_260429 + release/wepp_260429_hill; hashes moved from 35b2aabd.../f8977a96... to 225f1759.../0a7a5ced.... Validated host smoke on both binaries, ablation artifact policy gate, full pytest (79 passed, 2 warnings), and high-concurrency /wc1 hillslope timeout repro closure (fails=32 -> fails=0).
04/29/2026 ea7123e7 (dirty tree) gfortran wepp_260429 Released release/wepp_260429 + release/wepp_260429_hill from pinned /usr/bin/gfortran via TARGET_TAG=260429 COMPILER=/usr/bin/gfortran tools/build_wepp_dated_release.sh; build includes producer-side optional trailing H.wat storage/capacity fields (SoilWaterTotal, ProfileDepth, ProfilePorosityCap, ProfileFCStore, ProfileWPStore) emitted from model state while preserving existing baseline columns. Release hashes 35b2aabd... (wepp_260429) and f8977a96... (wepp_260429_hill). Validated release host smoke on both binaries, hillslope watchlist (12/12), ablation artifact policy, full pytest (79 passed, 2 warnings), reconciled-condenser watershed replay success marker with no parse/runtime error signatures, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/28/2026 241b6c5f (dirty tree) gfortran wepp_260428 Closed ablation incident 20260427_unveiled-grinder_pw0_watershed_sigfpe-evappm-watbal-hourly; added minimal evappm guard in src/evappm.for to prevent etks = wftrp/(TAW-RAW) divide-by-zero/non-positive denominator traps (TAW-RAW <= 0 -> etks=1.0). Released release/wepp_260428 + release/wepp_260428_hill from pinned /usr/bin/gfortran via TARGET_TAG=260428 COMPILER=/usr/bin/gfortran tools/build_wepp_dated_release.sh; release hashes dc51a73b... (wepp_260428) and e8097d48... (wepp_260428_hill). Validated host smoke on both source binaries, hillslope watchlist (12/12), full pytest (53 passed), reconciled-condenser watershed replay success marker, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/27/2026 6bb872ca (dirty tree) gfortran wepp_260427 Released release/wepp_260427 + release/wepp_260427_hill from pinned /usr/bin/gfortran via tools/build_wepp_dated_release.sh; build source was 6bb872ca plus intentional local release edits (src/makefile traceability flags -g -fbacktrace retained with -O2, plus dirty-cycle docs updates). Release hashes 5ba0b48f... (wepp_260427) and bf9e5468... (wepp_260427_hill). Documented watershed-capacity include guidance for dirty release cycles (pmxelm.inc, pmxhil.inc, pmxpln.inc, pntype.inc) requiring aligned verification + changelog/handoff recording with effective limits. Validated host smoke on both release binaries, hillslope watchlist (12/12), full pytest (53 passed), reconciled-condenser watershed replay success marker, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/26/2026 9cbed3ec gfortran wepp_260426 Rebuilt and replaced non-viable release/wepp_260426 + release/wepp_260426_hill from pinned /usr/bin/gfortran (hashes 08170a77... and bacee355...) after closing ablation campaign 20260426_taken-brainstem_p1408_hillslope_sigfpe-watbal-log10; retained watbal hk-domain guard (fc/ul <= 0 -> hk=0) and semantic-parity evidence lanes (C300/C310), promoted permanent hillslope watchlist coverage (12/12 pass, including p1408/p258/p1319), and added wshpas pass-metadata parse-stop diagnostics for truncated/empty hillslope pass files; validated host smoke gates (src/wepp, src/wepp_hill), full pytest (53 passed), reconciled-condenser watershed replay success marker, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/25/2026 d452402 gfortran wepp_260425 Closed ablation campaign 20260425_p258-p1319_hillslope_sigfpe-watbal-log10; promoted watbal_hourly hk-domain guard (fc/ul <= 0 -> hk=0) for p258/p1319 SIGFPE/log10 containment; hardened src/makefile compiler/linker selection to avoid Homebrew-linked binaries; published release/wepp_260425 + release/wepp_260425_hill from pinned /usr/bin/gfortran with hashes 8cc6a3e6... and db9e082e...; validated host smoke gates, reconciled-condenser watershed replay success marker, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2). Canonical full pytest evidence for this campaign: 43 passed (artifacts/logs/gates/pytest.stdout.txt).
04/21/2026 81dd7f9 gfortran wepp_260421b Released wepp_260421b and wepp_260421b_hill from pinned /usr/bin/gfortran builds with the wshpas.for zero-duration runoff hardening (WFR_G_WPDU/WPSL/WPTD/WPRV) for srivas42-combatant-ionosphere p24 SIGFPE containment. Validated host smoke gates (src/wepp, src/wepp_hill), full pytest (40 passed), reconciled-condenser watershed replay success marker, ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2), and provenance gate pass for both binaries.
04/21/2026 d10d061 gfortran wepp_260421 Retagged canonical vendored binary names to wepp_260421 and wepp_260421_hill by replacing the prior 04/20/2026 artifacts with the validated 04/21/2026 build outputs (wepp_20260421*) from the same source commit; removed duplicate wepp_20260421* aliases from wepp_runner/bin to eliminate split runtime selection paths. Re-validated provenance and host smoke gates on the canonical wepp_260421* names after retagging.
04/21/2026 d10d061 gfortran wepp_20260421 Released wepp_20260421 and wepp_20260421_hill from src/wepp + src/wepp_hill built with pinned /usr/bin/gfortran; includes the perc.for UI seepage denominator guard (WFR_G_PSSZ) from the exorbitant-affidavit p14 SIGFPE remediation. Validated host smoke gates, full pytest (40 passed), reconciled-condenser manual watershed replay success marker, ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2), and provenance gate pass for both binaries.
04/20/2026 b3dab94 gfortran wepp_260421 Rebuilt wepp_260421_hill with /usr/bin/gfortran via tools/build_wepp_dated_release.sh to align hillslope OFE/management bounds (ntype/ntype2) with mxplan=20; retained inline hill guard comment to avoid setting mxplan above 20; verified exorbitant-affidavit p41 (iofe=19) now completes successfully; validated host smoke gates, reconciled-condenser manual watershed replay, ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2), and full pytest (39 passed) with WEPP_GUARDED_BINARY=/workdir/wepp-forest/src/wepp.
04/20/2026 bbf813c gfortran wepp_260421 Released wepp_260421 and wepp_260421_hill with /usr/bin/gfortran via tools/build_wepp_dated_release.sh; increased hillslope mxplan guardrail from 15 to 20 (with inline do-not-exceed comments in hill include variants); validated host smoke gates, full pytest, reconciled-condenser manual watershed replay, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/19/2026 a3ec823 gfortran wepp_260419 Released wepp_260419 and wepp_260419_hill with /usr/bin/gfortran via tools/build_wepp_dated_release.sh; added watershed numeric guards in wshdrv.for/wshchr.for/case34.for for data-triggered SIGFPE containment; validated host smoke gates, full pytest, reconciled-condenser manual watershed replay, and ELF interpreter compatibility (/lib64/ld-linux-x86-64.so.2).
04/18/2026 c3a082e gfortran wepp_260418 Rebuilt wepp_260418/wepp_260418_hill from current source with /usr/bin/gfortran; promoted p325 SIGFPE hardening guard in src/param.for into the canonical wepp_260418_hill release; added srivas42-claustrophobic-shortcut p325/p326 fixture coverage and ablation evidence.
04/18/2026 9e09730 gfortran wepp_260418 Released wepp_260418 and wepp_260418_hill using /usr/bin/gfortran via tools/build_wepp_dated_release.sh; validated host smoke gates, full pytest suite, and reconciled-condenser watershed replay success marker.
04/17/2026 eb88c57 gfortran wepp_260417 Released wepp_260417 and wepp_260417_hill from the peak-flow multi-OFE saturation-excess runoff correction in src/irs.for (contour/non-contour scaling parity fix).
04/14/2026 a371884 gfortran wepp_260414 Added dated release build workflow (tools/build_wepp_dated_release.sh), disabled unsafe make all race path in src/makefile, added in-repo delicate_game_pw0 fixture with parity regression tests, and published release/wepp_260414* built with -O2 -finit-local-zero.
04/09/2026 c982160 gfortran wepp_260409 Fixed lower-bound GLC table lookup handling in hydchn.for, rebuilt wepp/wepp_hill with /usr/bin/gfortran, and published release/wepp_260409*.
03/24/2026 d6b923b gfortran wepp_260324 Fixed watershed pass metadata parsing for widened hillslope IDs, added reconciled-condenser regression fixture/manual gate, and corrected watershed banner channel-line alignment.
03/24/2026 41dc020 gfortran wepp_260324 Widened hillslope/channel ID output formatting and rebuilt binaries (wepp_260324 vendored in wepppy).
03/19/2026 be4cf6d gfortran wepp_260319 Added pinned gfortran rebuild workflow and refreshed wepp_260319 binaries.
10/03/2025 74ec026 ifx - Fixed IFX hillslope hangs by relaxing deposition tolerance.
10/03/2025 356f64d ifx - Added hillslope-optimized binary build (wepp_hill) alongside watershed build.
09/15/2025 08e8872 ifx wepp_250915 IFX 50k makefile and release refresh (wepp_250915).
08/08/2025 f63fcf5 ifort wepp_50k wepp_50k revision.
08/05/2025 f48e495 ifort wepp_50k Initial wepp_50k release commit.
03/12/2025 a557997 ifort - Watershed pass-file parsing updated for longer first-table hillslope filenames.
03/12/2025 726fbd5 ifort - Increased WEPP pass-file name size.
03/11/2025 bcf2ac5 ifort - Updated cwshed.inc release content.
03/11/2025 30ae9f7 ifort - Extended filen length to 111 characters.
06/06/2024 548fe07 ifort - outfil.for/open.for support for 91-character paths.
06/06/2024 6e47b5a ifort - outfil.for filen length extended to 91 characters.
06/22/2023 bc9bccb ifort wepp_bc9bccb Release revision commit (wepp_bc9bccb).
06/13/2023 31131a7 ifort - Added conditional keff behavior based on lkeff.
06/13/2023 050dd9d ifort wepp_050dd9d Linux release/wepp refresh (wepp_050dd9d).
04/21/2023 201e020 ifort wepp_201e020 Increased watershed size limit (wepp_201e020).
04/14/2023 e4cdc93 ifort wepp_e4cdc93 Increased maximum channels to 3600 (wepp_e4cdc93).
03/30/2023 eeaed4b ifort wepp_eeaed4b Linux compiled release (wepp_eeaed4b).
08/09/2022 5800970 ifort wepp_580097 9002 soils Linux build (wepp_580097).
08/05/2022 57afbc8 ifort - Validated 9002 soils release.
08/05/2022 f5fc4cb ifort wepp_f5fc4cb 9002 soils Van Genuchten parsing release (wepp_f5fc4cb).
07/19/2022 81fd281 ifort - 9001 soils Linux build baseline (keff-adjusted line).