5.1.007 bug: subcatchment runoff under reported for long durations of very small flows (<0.001cfs)

Rob James

It seems the new minimum runoff flow criteria of 0.001 cfs for reporting can result in a significant discrepancy between system inflow and outflow volumes in the output file time series. Especially evident in models with many subcatchments and many time steps with very small runoff flows, this removal of small values can create the disconcerting effect of more outflow than inflow in the hydraulic routing time series output by SWMM.

This does not affect continuity errors or hydraulic computations, it only affects Subcatchment Runoff time series and System Inflow time series written to the output file.

Work around:

For long term continuous modeling, time series statistics may be more accurate when performed on the node's lateral inflow time series instead of the subcatchment's runoff time series.

Suggested resolution:

In subcatch_getResults() in subcatch.c, runoff is set to zero if less than a defined minimum runoff flow:

if ( runoff < MIN_RUNOFF_FLOW ) runoff = 0.0;

and MIN_RUNOFF_FLOW is defined in consts.h:

// Definition of measureable runoff flow & depth
#define   MIN_RUNOFF_FLOW    0.001          // cfs

The defined minimum runoff flow is approximately equal to flow from 1 acre area of 0.001in/hr, however is it now common for smaller subcatchments to be used. 

Reducing MIN_RUNOFF_FLOW to a smaller value (e.g. 0.00001 cfs) or removing the check altogether are two options for avoiding this issue.