Skip to content

Output reference

SWAT+ writes one text file per (scope, group, interval) combination. Every output is toggled in print.prt. This section documents the file groups, their columns, and where they are written in the source.

Naming convention

All time-step output files follow the pattern:

<scope>_<group>_<interval>.txt

When csvout = y in print.prt, a matching .csv variant is also written.

Scopes (the spatial aggregation level):

Scope Meaning
hru_ one row per Hydrologic Response Unit
hru-lte_ one row per low-resolution HRU (lite model)
lsunit_ one row per landscape unit (ls_unit.def)
ru_ one row per routing unit
region_ one row per region defined for regional output
basin_ one row, the basin-wide sum or average
channel_ one row per channel object (legacy cha)
channel_sd / sd_chan one row per channel object (sd_channel routing)
aquifer_ one row per aquifer object
reservoir_ one row per reservoir object
wetland_ one row per wetland object
recall_ one row per recall object (point source or inlet)
crop_yld_ one row per HRU per harvested plant

Groups (the variable family):

Group Meaning
_wb water balance (precipitation, ET, runoff, percolation, storage)
_nb nutrient balance (mineral and organic N and P pools)
_ls losses from the landscape (sediment, nutrient yields)
_pw plant and weather (LAI, biomass, yield, temperature, stress)
_cha channel routing (legacy: flow, sediment, nutrients)
_sd_cha sd_channel routing (water body storage, in, out)
_aqu aquifer storage and fluxes
_res reservoir storage and fluxes
_pest pesticide
_salt salt ions
_cs constituents
_carbon soil carbon pools
_chanbud channel sediment budget
_chamorph channel morphology

Intervals (the time aggregation):

Suffix Meaning
_day one row per simulated day
_mon one row per month
_yr one row per year
_aa one row, average annual over the print window

Each interval is enabled independently in print.prt. A row in print.prt named hru_wb with y in the avann column produces hru_wb_aa.txt; with y in the daily column it also produces hru_wb_day.txt. The file is opened in output_landscape_init.f90 only if the matching switch is y.

Per-group pages

  • Naming convention. The full grammar and the print.prt mapping.
  • Water balance. The *_wb_*.txt columns: precipitation, ET, runoff, percolation, soil and snow storage.
  • Channel and sediment. The legacy channel_*.txt and the sd_channel channel_sd_*.txt columns, including sediment and nutrient routing.
  • Aquifer, reservoir, plant. The aquifer_*.txt, reservoir_*.txt, crop_yld_*.txt, and plant/water-stress (*_pw_*.txt) columns.
  • Checker and diagnostics. The always-on diagnostic files: checker.out, diagnostics.out, simulation.out, files_out.out.
  • Post-processing helpers. The two Python scripts shipped in test/ for regression checks and CSV conversion.

Output index file

When SWAT+ runs, it writes a master index files_out.out listing every output file actually opened during that run. The first column is a short tag (HRU, BASIN, CHK, CHN, AQU, RES, ...) and the second column is the filename. Open files_out.out first to see exactly which outputs your print.prt produced.