Hello, this is Steve Regan of the Modeling of Watershed Systems project.
This presentation describes streamflow routing modules in PRMS-IV.
There are four streamflow routing modules, strmflow, strmflow_in_out, muskingum, and
muskingum_lake.
The control parameter strmflow_module is used to select the streamflow routing module.
The muskingum_lake module is described in a separate presentation.
Another module that can be used to compute streamflow in addition to the streamflow modules
is the subbasin module.
It computes flows, climate, and storage values for groups of HRUs.
Thus, it can be used to compute streamflow at points of interest as defined by the outlet
of each subbasin.
The subbasin module is described in the Summary Output Modules presentation.
The most basic and initial streamflow routing module is the strmflow module.
It is principally used in small model domains where the assumption that daily computed surface
runoff, interflow, and groundwater discharge for all HRUs leaves the basin.
There are no module specific parameters or options with the strmflow module.
It sums up the components of flow and outflow as basin area-weighted averages.
The streamflow_in_out module is another fairly simple module.
It computes the outflow from each segment as equal to all the inflows to that segment.
Inflows to each segment are streamflow from upstream segments and lateral flows, which
are surface runoff, interflow, and groundwater discharge generated from all HRUs associated
with the segment.
Unlike the strmflow module, several dimensions and parameters are specified that define the
routing order of the stream segments and optionally a parameter, obsin_segment, to specify that
the inflow to a segment is set to measured streamflow that is specified in the Data File.
Parameter obsin_segment can be useful to set the inflow to a segment below a reservoir
to the measured flow so that streamflow at downstream gages can be used for calibration
and evaluation purposes.
However, using obsin_segment does not conserve mass.
Parameters hru_segment and tosegment specify the connectivity within the stream network.
An HRU can be associated with a segment or no segment using parameter hru_segment.
A segment can be associated with another segment or no segment, such as an outlet segment,
using parameter tosegment.
Based on the values of tosegment PRMS determines the routing order of the stream network such
that computations for all upstream segments are computed before a downstream segment.
Parameters hru_segment and tosegment are used with the muskingum and muskingum_lake modules
as well.
Module strmflow_in_out computes more variables than the strmflow module as values can be
computed for each segment.
Variables with names having the prefix “seginc” are flows for each segment.
These are the incremental flows in the stream network.
Variables with names having the prefix “seg” are flows for each segment plus all associated
upstream segments.
These are the cumulative flows within the stream network.
When an HRU is not associated with a segment, such as a closed‑basin HRU, any surface
runoff, interflow, and groundwater discharge does not enter the stream network, and is
not included in variables basin_cfs, flow_out, and basin_stflow_out.
However, flows from unconnected HRUs are included in the variable basin_stflow_in and the model
domain-wide components of flow variables, basin_sroff_cfs, basin_ssflow_cfs, and basin_gwflow_cfs.
If parameter obsin_segment is not used and all HRUs are associated with a segment, values
of variables basin_cfs, basin_cms, and basin_stflow_out are equal to the values computed in the strmflow
module.
The variables basin_sroff_cfs, basin_ssflow_cfs, basin_gwflow_cfs, and basin_stflow_in are
always equal to the values computed in the strmflow module.
The muskingum module routes flow within each segment using the Muskingum method, allowing
for flow attenuation and water storage in each stream segment.
To activate the Muskingum module specify muskingum for the control parameter strmflow_module.
The Muskingum method assumes that the travel time in each segment is 24 hours or less and
that there is a single‑stage discharge relationship.
The single‑stage discharge relationship means that different flow attenuation and
segment storage as a function of stage is not accounted for, which might be important
for large streams and to account for overbank flows.
Additionally the Muskingum method does not allow for critical flows where there might
be two values of discharge for a particular stage within the segment.
The muskingum module is recommended for large model domains where flow through the stream
networks is greater than a day.
It is used in the National Hydrologic Model.
In addition to parameters obsin_segment, hru_segment, and tosegment as described for the strmflow_in_out
module, the muskingum module has two additional parameters that define travel time, K_coef,
and flow attenuation, x_coef.
These parameters are used to compute the coefficients in the Muskingum flow routing equation.
A third parameter, segment_flow_init, can be used to specify the streamflow in each
segment as the antecedent condition for the first time step, otherwise the initial flows
are set to zero.
The next two slides are excerpts from the PRMS-IV manual that show the Muskingum equations
used in the muskingum module.
I won’t go over them in the presentation.
See Linsley and Kohler, 1982 or Leopold and Dunne, 1978 for detailed descriptions of the
Muskingum method.
The Muskingum routing parameters can be computed in various ways.
A method that we use is to compute the slope and stream order for each segment, which are
then used to set the travel time parameter, K_coef.
Our assumption is that the stream order is correlated to the Manning's roughness coefficient.
See the presentation on the geospatial fabric for a description of how we compute values
for K_coef.
Of course, if you have access to Manning's roughness coefficients for each stream segment,
you could use them and segment slopes to compute a time travel.
For this example computation of K_coef, there are travel times greater than 24—the darker
lines, with a maximum of 39.1092.
When values of K_coef are greater than 24 for a segment, it's recommended that the segment
be split into multiple segments as values specified greater than 24, are set to 24 by
PRMS.
In addition to the variables computed by the strmflow_in_out module, variables segment_delta_flow
and basin_segment_storage are computed to represent water storage in the stream network.
As the muskingum module computes attenuation of the flood wave and storage within each
segment, the values of output variables in common with the strmflow_in_out module can
be very different.
See the PRMS-IV manual for a more detailed explanation of the streamflow modules.
The manual can downloaded from this webpage.
Be sure to download the Changes in the specification of user inputs document, which provides updated
tables.
Table 2 contains descriptions of available modules.
Table 1-3 contains descriptions of all parameters that can be specified in the Parameter File.
Table 1-5 contains descriptions of all variables that can be output to the various output files.
The FAQ tab can be very helpful as it provides common questions with answers that users have
submitted to the MoWS group over the years.
If you have questions about the streamflow modules or need help for other issues related
to PRMS you can click on the Help tab and fill out the contact form.