1. Primary Issue Location
2. Description
Daily measured precipitation is used correctly for the first ~15–17 simulation years, then the model switches to weather-generator fallback (~13 mm annual precip, then ~0 mm). This is not real drought — CHIRPS .pcp files contain valid data through 2025, with correct nbyr headers and record counts.
Failure year depends on simulation start, which points to an internal climate read/indexing limit, not bad file content.
\Executables tested \

\ Evidence — basin annual precip (mm)\

Climate files verified OK
diagnostics.out (all scenarios)
Suspected mechanism
In cli_pmeas.f90, array is allocated as ts(366, nbyr) from header, but effective load appears capped at ~6210 daily records (~17 years from file start) or ~8401 total records read (including skip-to-sim-start). When cli_precip_control detects out-of-bounds, precip is set to −98 and WGN fills in.
Python replication of read + bounds logic on the same files shows all 26 years should work — discrepancy is in the compiled executable, not file content.
Related group threads: CLI_PMEAS TSS overflow (nbyr mismatch),
CLI_PMEAS TS overflow — our case is the silent bounds-fail variant, not a crash.
What is NOT the cause (already ruled out)
Attachments (can provide on request)
Question for the team
Is there a hardcoded daily-record or year limit in cli_pmeas / climate loading (legacy SWAT2012 ~8401-day cap)? Can it be allocated from actual loaded record count rather than header nbyr only?
Happy to send TxtInOut if useful. Thank you, Yakob