GMS:STR/SFR Packages

From XMS Wiki
Jump to navigationJump to search
MODFLOW Commands
Building a MODFLOW Model
Packages Supported in GMS
Saving a MODFLOW Simulation
Importing MODFLOW Files
Unsupported MODFLOW Features
MODFLOW Display Options
MODFLOW Post-Processing Viewing Options
Reading a MODFLOW Simulation











The Stream (written STR or STR1) and Streamflow-Routing (SFR2) packages are used to simulate the interaction between surficial streams and the groundwater. These packages are somewhat similar to the River package in that water can move from the stream to the aquifer or from the aquifer to the stream depending on the relative differences in the stream stage and the water table elevations. However, unlike the River package, flow is routed through the stream. For the STR package, simple channel hydraulics and Manning's equation are used to compute the stage in the stream. The SFR package has more sophisticated hydraulics and routing options.

Note: If using both STR and SFR in the same project, they should not be used in the same coverage.

Stream Network

When either the STR or SFR package is used, a complete, ordered stream network must be defined as shown in the following figure.

Ordered stream network used by the STR or SFR packages

A stream network is composed of reaches and segments. A reach is the portion of a stream that lies inside a single cell. A single cell may contain multiple reaches. A segment is a group of reaches that forms one section of the stream. The reaches within a segment are always numbered from upstream to downstream. The segments should also be numbered from upstream to downstream.

The incoming flowrate may only be defined for the topmost segments (segments 1, 4, and 6 in the above figure) and is typically entered as a positive value to represent the amount of flow in the stream channel. Flow is then routed and combined to get the incoming flowrate for the other segments. An exception to this is a diversion such as the canal at segment #2 in the above figure. In this case the flowrate into the diversion should be specified. The flow to the diversion would be subtracted from the flow coming out of segment #1 and whatever is left over would be routed to segment #3.

Defining Streams

Unlike other packages in GMS, a stream network cannot be created by selecting cells in the grid and manually assigning values to the cells. Due to the complex nature of the input and the requirement that the data be ordered in a specific fashion, a stream network can only be created using a series of Stream Arcs in the Map module. The cell-by-cell values are automatically created and properly ordered when the Map → MODFLOW command is selected.

There are some restrictions on the STR and SFR conceptual models:

  • STR and SFR stream arcs cannot both exist in the same coverage because of the stream numbering issues.
  • All STR (or SFR) arcs must be in one coverage. There cannot be two or more coverages to represent the stream network.
  • SFR – All downstream streams must be diversions except for one. The variable OUTSEG is the segment number of the downstream segment that is not a diversion.
  • SFR – If the current segment has the diversion flag set then IUPSEG is the id of the upstream segment.

Set Arc Directions from Stream Data

Right-clicking on a coverage containing STR streams shows a Set Arc Directions From Stream Data menu item. This operation will cause all stream arcs to point downhill based on the elevation of the top of the river sediments as defined at the nodes.

STR Package

The MODFLOW Stream (STR) Package dialog
The STR package is accessible in the STR Package tutorial.

In the input file for the STR package, each reach is assigned the following values:

  • ijk indices of cell
  • segment ID
  • reach ID
  • stage (typically starting stage)
  • conductance
  • conductance factor (multipled by the conductance during parameter estimation)
  • Elevation of the bottom of the streambed
  • Elevation of the top of the streambed

Each segment is assigned the following values:

  • incoming flow (for top segments and diversions)
  • width
  • slope
  • roughness coefficient
  • IDs of tributaries (upstream segments)
  • ID of upstream segment (for diversions only)

When Manning's equation is used to route the flow through the network, the stream channels are assumed to have a rectangular cross section.

When the Map → MODFLOW command is selected, GMS automatically does the following: classifies all of the cells beneath the streams as reaches, builds segments, numbers the reaches and segments, and assigns the appropriate values to the reaches and segments. These values defined at the nodes are linearly interpolated across the arcs when the model is converted. The slope assigned to reaches is computed by dividing the difference in the streambed top elevations at the ends of the arc by the arc length multiplied by the sinuosity factor.

The STR Package Dialog

Once the Map → MODFLOW command is selected and the stream data have been assigned to the grid cells, the data can be viewed and some of the input values can be edited using the Stream Package dialog. The options for the Stream Package dialog include:

Calculate Stage

The Calculate stage toggle is used to specify whether the Stream package should compute the stages (specified stages are initial values only) or whether the specified stages should be used directly.

SFR2 Package

The MODFLOW Stream (SFR2) Package dialog

Support for the SFR2 package was added at GMS version 7.0.

The SFR2 Package Dialog

Once the Map → MODFLOW command is selected and the stream data have been assigned to the grid cells, the data can be viewed and some of the input values can be edited using the MODFLOW Stream (SFR2) Package dialog. Stream segments and reaches cannot be created in the MODFLOW Stream (SFR2) Package dialog—creation can only be done via the Map → MODFLOW command. The MODFLOW Stream (SFR2) Package dialog has two spreadsheets, one showing stream segments and one showing stream reaches. For a further explanation of the columns in each spreadsheet, refer to the Online Guide to MODFLOW. The SFR2 Package Dialog is accessible through the SFR2 Package tutorial.

Note: GMS does not currently support the optional parameters ISFROPT, NSTRAIL, ISUZN, and NSFRSETS which are all defaulted to zero by GMS.


If the Save ISTCB2 info to *.istcb2 text file option is on, MODFLOW will save more stream related data to a text file which has the same prefix as the other MODFLOW files and a "*.istcb2" extension. This text file will be displayed in the MODFLOW Solution in the Project Explorer when the solution is imported. The data in this file includes information on "inflows and outflows from each reach; on stream depth, width, and streambed conductance; and on head difference and gradient across the streambed."

If the Save ISTCB2 info to *.istcb2 text file option is off, streamflow out of each reach will be saved to the CCF file if the Save cell by cell flow terms to *.ccf file is on in the Output Control dialog.

Starting at GMS 9.0, this information is saved to a second CCF file that will appear in the solution as "CCF2". This is so that the stream flow out of each reach is not included in the flows in and out of the aquifer in the flow budget. The total stream flow out of each reach is displayed at the bottom of the flow budget.


The stream flow out of each reach is stored in the ccf file under the heading STREAMFLOW_OUT. GMS can convert data in the CCF file to 3D grid datasets that can be contoured by right-clicking on the CCF file in the Project Explorer and using the CCF → Datasets right-click command. If in the CCF file multiple flows are listed for the same cell, GMS sums them so that there is only one value for each cell in the resulting dataset. With most data this makes sense because the data represents the total flow into our out of the aquifer due to the BC (wells, river etc). The STREAMFLOW_OUT data is treated the same way, but in this case it doesn't make sense to sum the values because they don't represent flow to or from the aquifer. The problem becomes evident wherever there is more than one stream reach in a cell, which happens wherever a stream segment begins/ends in a cell. The STREAMFLOW_OUT dataset value will be the sum of all the reaches in the cell, which can make it appear as if much more water is flowing down the stream than there should be in that cell. If using SFR2, the user should save the istcb2 data as a text file (described above) which lists the streamflow out of each segment and reach separately. Despite this problem, the STREAMFLOW_OUT dataset can still be useful for contouring and display purposes.