Naming convention
Filename grammar¶
scopeidentifies the spatial unit.groupidentifies the variable family.intervalidentifies the time aggregation.extistxt(always) andcsv(whencsvout = yinprint.prt).
Examples that the source actually opens:
hru_wb_day.txt
hru_wb_mon.txt
hru_wb_yr.txt
hru_wb_aa.txt
basin_wb_aa.txt
lsunit_wb_aa.txt
hru-lte_wb_aa.txt
hru_nb_aa.txt
hru_ls_aa.txt
hru_pw_aa.txt
basin_aqu_aa.txt
basin_res_aa.txt
basin_cha_aa.txt
basin_sd_cha_aa.txt
channel_sd_day.txt
channel_day.txt
aquifer_day.txt
reservoir_day.txt
crop_yld_aa.txt
crop_yld_yr.txt
Scopes¶
The scope prefix maps to a writer subroutine:
| Scope | Writer | Loop body |
|---|---|---|
hru_ |
hru_output.f90 |
one record per HRU |
hru-lte_ |
hru_lte_output.f90 |
one record per HRU-LTE |
lsunit_ |
lsu_output.f90 |
one record per landscape unit |
ru_ |
ru_output.f90 |
one record per routing unit |
region_ |
lsreg_output.f90 |
one record per region per landuse |
basin_ |
basin_output.f90, basin_aquifer_output.f90, basin_channel_output.f90, basin_sdchannel_output.f90, basin_reservoir_output.f90 |
one record (basin sum or average) |
channel_ |
channel_output.f90 |
one record per legacy channel object |
channel_sd (file group sd_cha) |
sd_channel_output.f90 |
one record per sd_channel object |
aquifer_ |
aquifer_output.f90 |
one record per aquifer |
reservoir_ |
reservoir_output.f90 |
one record per reservoir |
wetland_ |
wetland_output.f90 |
one record per wetland |
recall_ |
recall_output.f90 |
one record per recall object |
crop_yld_ |
hru_output.f90 (last block) |
one record per HRU per plant |
Groups¶
The group token identifies the column family. Each writer holds its own Fortran derived type and the columns are the fields of that type in declaration order.
| Group | Type | Module |
|---|---|---|
_wb |
output_waterbal |
src/output_landscape_module.f90 |
_nb |
output_nutbal |
src/output_landscape_module.f90 |
_ls |
output_losses |
src/output_landscape_module.f90 |
_pw |
output_plantweather |
src/output_landscape_module.f90 |
_cha |
ch_output |
src/channel_module.f90 |
_sd_cha |
water_body plus two hyd_output records (in, out) |
src/water_body_module.f90, src/hydrograph_module.f90 |
_aqu |
aquifer_dynamic |
src/aquifer_module.f90 |
_res |
water_body plus two hyd_output records (in, out) |
src/water_body_module.f90, src/hydrograph_module.f90 |
_pest |
pesticide processes types | src/output_ls_pesticide_module.f90, others |
_salt |
salt ion types | src/salt_module.f90 |
_cs |
constituents types | src/cs_module.f90 |
_carbon, _soilcarb, _rescarb, _plcarb |
carbon pool types | src/output_landscape_module.f90, src/carbon_module.f90 |
Intervals¶
| Suffix | Meaning | print.prt column |
|---|---|---|
_day |
one row per day | daily |
_mon |
one row per month | monthly |
_yr |
one row per year | yearly |
_aa |
one row, average annual over the print window | avann |
The print window is the simulation range minus nyskip warm-up years (set in the first table of print.prt).
print.prt toggle¶
print.prt has a table of object groups, one row per group, with four columns (daily, monthly, yearly, avann). Each cell is y or n. The file is opened only if the cell is y. The toggles set pco%<group>%<d|m|y|a> (read in print_read.f90) and the file is opened in output_landscape_init.f90 or one of the header_*.f90 files.
Example: in refdata/Ames_sub1/print.prt, the row
opens hru_wb_aa.txt only. The other three (day, mon, yr) are not written.
A separate row, csvout, switches on the matching .csv variant for every enabled file.
crop_yld in print.prt accepts n, a (annual only), y (yearly only), or b (both). Other groups use the four-column form.
Subdaily output¶
When time%step > 1 (subdaily simulation), additional *_subday.txt files are written. The current subdaily channel writer is in sd_channel_output.f90 (channel_sd_subday.txt, unit 2508).
Always-on outputs¶
A few files are not controlled by print.prt and are written every run:
simulation.out. Daily progress log written frommain.f90andtime_control.f90.files_out.out. Index of every output file opened, written fromproc_bsn.f90.diagnostics.out. Warnings about missing input references, opened inproc_bsn.f90.checker.out. HRU-level parameter sanity dump, written inproc_hru.f90.erosion.out. USLE inputs and outputs per HRU.success.fin. Empty marker created on successful completion.
See Checker and diagnostics for the column-level breakdown.