SWR - Surface-Water Routing Process

  • Scroll to top of this topic Scroll to Top of Page

  • Print the current topic Print Topic

  • Expand/collapse expanding elements on page Show/Hide Expanders

Abbreviation in Name file

SWR

Purpose

The SWR1 Process is designed to simulate surface-water routing in one- and two-dimensional surface-water features and surface-water/groundwater interactions.

Documentation

Hughes, J.D., Langevin, C.D., Chartier, K.L., and White, J.T., 2012, Documentation of the Surface-Water Routing (SWR1) Process for modeling surface-water flow with the U.S. Geological Survey Modular Ground-Water Model (MODFLOW-2005): U.S. Geological Survey Techniques and Methods, book 6, chap. A40 (Version 1.0), 113 p. https://doi.org/10.3133/tm6A40

SWR1_AdditionsForNWT_1.01.0.txt

SWRProcessInputInstructions_v1.03.pdf

SWRProcessInputInstructions_v1.04.pdf

Related Packages

(STR) package

Streamflow-Routing (SFR) package

Important Subroutines

SWR1 List Utility Subroutine SSWRLSTRD

SWR1 Time Series Utility Subroutine SSWR_RDTABDATA

SWR1 Direct Runoff Subroutine (SSWR_RDDRO)

Supported in

MODFLOW-2005

MODFLOW-NWT

MODFLOW-OWHM

Other Notes

The stream network is assumed to remain fixed in space over the duration of a simulation. However, the active part of the stream network can be made to vary over time by making selected reaches inactive for selected stress periods. Inactive reaches would be specified by setting the reach ISWRBND in Item 6 to zero for the specific stress periods when they are known to be inactive or dry.

If the finite-difference cell corresponding to a surface-water reach is inactive, no aquifer-reach exchanges are allowed.

Overland runoff in the Unsaturated Zone Flow package can be directed toward reaches in the Surface Water Flow process by specifying the reach number plus 100,000 in IRUNBND.

Each record must be no more than 200 characters in length.

The SWR1 Process input file consists of input items numbered 0 through 14, each consisting of one or more records. These data are used to specify information about the locations, interconnections, flows, physical and hydraulic properties of surface-water features, as well as specifying certain output control options.

All input variables are read using free format, unless specifically indicated otherwise. In free format, variables are separated by one or more spaces, or by a comma and (optionally) one or more spaces. Thus, in free format, a blank field cannot be used to set a variable value to zero.

When directly inputting list data for datasets in the SWR1 input file, one line of a file is used for each reach for which data are specified. Each line explicitly includes the data values and any necessary indices. For example, data set 6 includes two types of data for each reach (a reach index and a boundary type flag), and each line of data includes both data types. The order of the entries in the list do not matter except for data sets 11b, 11c, and 13b. The direct approach of reading list data is implemented by a SWR1 utility subroutine (SSWRLSTRD), which provides a common mechanism for reading list data required for the SWR1 Process. Detailed input instructions for SSWRLSTRD are contained in the Input Instructions for SWR1 List Utility Subroutine section.

When directly inputting two-dimensional real data, the form of input is to read the values one row at a time, starting with the first row. Within a row, columns are read across a line of a file starting with column one. If one line cannot hold all columns in a row, additional lines are used as required. Because the data are read in this prescribed row/column order, the row and column do not need to be explicitly indicated.

The direct approach for reading two-dimensional real data is implemented by the MODFLOW utility U2DREL subroutine, which provides a common mechanism for reading the data required for the SWR1 Process. This subroutine starts by reading a “control line,” which is read from the data file for the process that requires the layer data. If all the cells have the same value, the value is specified on the control line, and reading separate values for each cell is not necessary. If the values vary among cells, lines containing the values for all cells are read either from the SWR1 input file, or from the file indicated in the control line. The format for reading the values also is specified in the control line. Thus, a great deal of flexibility is allowed regarding the organization of the input data for a simulation. Detailed input instructions for U2DREL are contained in the Input Instructions for Array Reading Utility Subroutines section of the MODFLOW-2005 documentation (Harbaugh 2005, p. 8-57 – 8-59).

Use of aquifer properties to define conductance values for surface-water features in the SWR1 Process relies on either the horizontal (HY) hydraulic conductivity in the Block-Centered Flow (BCF) Package or the horizontal (HK) hydraulic conductivity data in the Layer Property Flow (LPF) or the Hydrogeologic-Unit Flow (HUF) Packages. When using the BCF Package, the right digit of LTYPE (LAYCON) must be equal to one (1) or three (3), or the model will yield an error and stop execution.

External time series files can be used to define rainfall (RAIN), evaporation (EVAP), lateral flows (QLATFLOW), control-elevation criterion (STRCRIT), and specified discharge or specified gate opening data (STRVAL) for operable control structures for select reaches and structures, and specified stage data (STRVAL) for stage-dependent boundary structures (ISTRTYPE=12). SWR1 time-step lengths can also be specified using an external time series file. Including the USE_TABFILES keyword in Item 1b and adding a tabular data section in the SWR1 input file results in use of a SWR1 utility subroutine (SSWR_RDTABDATA) to process time series data. The SSWR_RDTABDATA subroutine provides a common mechanism for reading optional time series data in the SWR1 Process from ASCII and binary (UNFORMATTED) files. Multiple external time series files can be specified but must be included in the NAM file. Detailed input instructions for SSWR_RDTABDATA are contained in the Input Instructions for SWR1 Time Series Utility Subroutine section.

Direct surface runoff can be calculated by SWR using two-dimensional arrays defining cell-reach mapping, direct runoff rates, and multipliers for direct runoff rates. Direct surface runoff data is read from an external ASCII file.

The SWR1 Process does not support use of parameters, but functionality has been included to define surface-water geometry entries that can be distributed to multiple reaches. Functionality also has been added to the SWR1 Process to permit inclusion of comments (denoted with a # in column 1) and blank lines between records for Items 0 through 14:

FOR EACH SIMULATION

Data Set 0

[#Text]

Item 0 is optional—# must be in column 1. Item 0 can be repeated multiple times.

Data Set 1a.

NREACHES ISWRONLY ISWRCBC ISWRPRGF ISWRPSTG ISWRPQAQ ISWRPQM ISWRPSTR ISWRPFRN [Option]

If SWROPTIONS option specified in Item 1a:

Item 1b is read only if SWROPTIONS is specified in Option in Item 1a. Item 1b can include multiple SWR1 options, on separate lines, but must be terminated using the keyword “END”.

Data Set 1b

CSWROPT [IOPTUNIT]

Data Set 2

DLENCONV TIMECONV RTINI RTMIN RTMAX RTPRN RTMULT NTMULT DMINGRAD DMINDPTH [DMAXRAI DMAXSTG DMAXINF]

Data Set 3

ISOLVER NOUTER NINNER IBT TOLS TOLR TOLA DAMPSS DAMPTR IPRSWR MUTSWR [IPC][NLEVELS] [DROPTOL] [IBTPRT] [PTOLR]

Item 4a and 4b are read by subroutine SSWRLSTRD and must be repeated NREACHES times.

The stream network is assumed to remain fixed in space over the duration of a simulation. However, the active part of the stream network can be made to vary over time by making selected reaches inactive for selected stress periods. Inactive reaches would be specified by setting the reach ISWRBND in Item 6 to zero for the specific stress periods when they are known to be inactive or dry.

If the finite-difference cell corresponding to a surface-water reach is inactive, no aquifer-reach exchanges are allowed.

Data Set 4a

IRCH4A IROUTETYPE IRGNUM KRCH IRCH JRCH RLEN

Data Set 4b

IRCH4B NCONN ICONN(1)…ICONN(NCONN)

Item 4c and 4d are read only if the USE_TABFILES optional keyword is specified in Item 1b. Item 4d must be repeated NTABS times.

If USE_TABFILES optional keyword is specified in Item 1a:

Data Set 4c

If USE_TABFILES optional keyword is specified in Item 1a and NTABS > 0. See SWR1 Time Series Utility Subroutine SSWR_RDTABDATA.

Data Set 4d

ITAB CTABTYPE ITABUNIT CINTP [CTABRCH] [ITABRCH(1)…ITABRCH(NTABRCH)]

If SAVE_SWROBSERVATIONS or SAVE_SWROBSERVATIONS_ALL optional keyword is specified in Item 1b:

Data Set 4e

If SAVE_SWROBSERVATIONS or SAVE_SWROBSERVATIONS_ALL optional keyword is specified in Item 1b and NOBS > 0: Item 4f must be repeated NOBS times.

Data Set 4f

COBSNAME COBSTYPE IOBSLOC [IOBSLOC2] [IOBSLAY]

FOR EACH STRESS PERIOD

Data Set 5

ITMP IRDBND IRDRAI IRDEVP IRDLIN IRDGEO IRDSTR IRDSTG IPTFLG [IRDAUX]

If ITMP > 0, read Items 6, 7, 8, 9, 10, 11, 12, 13, 14, and/or 15 based on values specified in Item 5:

If IRDBND > 0:

Data Set 6

IBNDRCH ISWRBND

Item 6 is read by subroutine SSWRLSTRD and must be repeated IRDBND times. IRDBND must be equal to NREACHES on the first stress period. If IRDBND = 0 reach boundary data from the previous stress period will be reused.

If |IRDRAI| > 0:

If IRDRAI = 0 reach rainfall data from the previous stress period will be reused. Item 7a is read by subroutine SSWRLSTRD, must be repeated IRDRAI times, and is only specified if IRDRAI > 0. Item 7b is read by subroutine U2DREL and is only specified if IRDRAI < 0.

Data Set 7a

IRAIRCH RAIN

Data Set 7b

[RAIN2D (NCOL, NROW)] -- U2DREL

If |IRDEVP| > 0:

If IRDEVP = 0 reach evaporation data from the previous stress period will be reused. Item 8a is read by subroutine SSWRLSTRD, must be repeated IRDEVP times, and is only specified if IRDEVP > 0. Item 8b is read by subroutine U2DREL and is only specified if IRDEVP < 0.

Data Set 8a

IEVPRCH EVAP

Data Set 8b

[EVAP2D (NCOL, NROW)] -- U2DREL

If |IRDLIN| > 0:

If IRDLIN = 0 reach lateral flow data from the previous stress period will be reused. Item 9a is read by subroutine SSWRLSTRD, must be repeated IRDLIN times, and is only specified if IRDLIN > 0. Item 9b is read by subroutine U2DREL and is only specified if IRDLIN < 0.

Data Set 9a

ILINRCH QLATFLOW

Data Set 9b

[QLATFLOW2D (NCOL, NROW)] -- U2DREL

If IRDGEO > 0:

Item 10 is read by subroutine SSWRLSTRD and must be repeated IRDGEO times. IRDGEO must be equal to NREACHES on the first stress period. If IRDGEO < 1 geometry data from the previous stress period will be reused.

Data Set 10

IGMODRCH IGEONUMR GZSHIFT

If IRDGEO > 0:

If IRDGEO < 1 geometry data from the previous stress period will be reused. Item 11a to 11c must be repeated for each unique IGEONUM defined in Item 11. Item 11a will contain 6 to 10 variables; depending on the values of IGEOTYPE and IGCNDOP. IGEOTYPE defines the geometry type and IGCNDOP defines how the surface-water/groundwater conductance will be calculated.

Item 11b and 11c may include no input when all are defined by data in Item 11a or they may include as many as 5 variables depending if IGEOTYPE = 3 or 4. Item 11b and 11c are read by subroutine SSWRLSTRD and are repeated NGEOPTS times for each Item 11a entry (IRDGEO data) where IGEOTYPE = 3 or 4, respectively.

Data Set 11a

IGEONUM IGEOTYPE IGCNDOP GMANNING [NGEOPTS] [GWIDTH] [GBELEV] [GSSLOPE] [GCND] [GLK] [GCNDLN] [GETEXTD]

If IGEOTYPE = 3 repeat NGEOPTS times:

Data Set 11b

XB(1) ELEVB(1)

XB(2) ELEVB(2)

. . .

XB(NGEOPTS) ELEVB(NGEOPTS)

If IGEOTYPE = 4 repeat NGEOPTS times:

Data Set 11c

ELEV(1) VOL(1) WETPER(1) SAREA(1) XAREA(1)

ELEV(2) VOL(2) WETPER(2) SAREA(2) XAREA(2)

. . .

ELEV(NGEOPTS) VOL(NGEOPTS) WETPER(NGEOPTS) SAREA(NGEOPTS) XAREA(NGEOPTS)

If IRDSTR > 0:

Item 12 is read by subroutine SSWRLSTRD and must be repeated IRDSTR times. If IRDSTR < 1, structure data from the previous stress period will be reused.

Data Set 12

ISMODRCH NSTRUCT

If IRDSTR > 0:

If IRDSTR < 1 structure data from the previous stress period will be reused. Items 13a, 13b, and 13c must be repeated the sum of NSTRUCT defined in Item 12. Item 13 will contain 5 to 12 variables depending on the values of ISTRTYPE, which defines the data requirements for the specific structure type. Item 13b may include no input when all are defined by data in Item 13a or it may include 5 to 9 variables. Item 13c may include no input when all are defined by data in Item 13a or they may include 2 variables depending if ISTRTYPE = 4. Item 13c is read by sub­routine SSWRLSTRD and is repeated NSTRPTS times for each Item 13a entry (ISTRRCH-ISTRNUM combination) where ISTRTYPE = 4.

Data Set 13a

ISTRRCH ISTRNUM ISTRCONN ISTRTYPE [NSTRPTS] [STRCD] [STRCD2] [STRCD3] [STRINV] [STRINV2] [STRWID] [STRWID2] [STRLEN] [STRLEN2] [STRMAN] [STRWSMO] [STRVAL] [ISTRDIR] [ISFRSEG] [ISFRRCH]

Each record must be no more than 200 characters in length.

Data Set 13b

[CSTROTYP] [ISTRORCH] [ISTROQCON] [CSTROLO] [CSTRCRIT] [STRCRITC] [STRRT] [STRMAX]  [CSTRVAL]

Data Set 13c

STRELEV(1) STRQ(1)

STRELEV(2) STRQ(2)

. . .

STRELEV(NSTRPTS) STRQ(NSTRPTS)

If |IRDSTG| > 0:

If IRDSTG = 0 stage data from the previous stress period will be reused for constant-stage reaches. Item 14a is read by subroutine SSWRLSTRD and must be repeated IRDSTG times and is only specified if IRDSTG > 0. Item 14b is read by subroutine U2DREL and is only specified if IRDSTG < 0.

Data Set 14a

IRCHSTG STAGE

Data Set 14b

[STAGE2D (NCOL, NROW)] -- U2DREL

If IRDAUX > 0 and auxiliary variables specified in item 1a:

If IRDAUX = 0 auxiliary data from the previous stress period will be reused. Item 15 is read by subroutine SSWRL­STRD and must be repeated IRDAUX times and is only specified if IRDAUX > 0.

Data Set 15

IRCHAUX [xyz]