Online Guide to MODFLOW-2005

SWR - Surface-Water Routing Process

Hide Navigation Pane

SWR - Surface-Water Routing Process

Previous topic Next topic No directory for this topic Expand/collapse all hidden text  

SWR - Surface-Water Routing Process

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for expanding text JavaScript is required for the print function  

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://pubs.er.usgs.gov/publication/tm6A40

Related Packages

(STR) 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.

Text—is a character variable (up to 199 characters) that starts in column 2. Any characters can be included in Text. The # character must be in column 1. Text is written to the Listing File.

Data Set 1a.

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

NREACHES—an integer value equal to the number of surface-water reaches (features) that are active during thesimulation. The value of NREACHES also represents the number of lines of data to be included in Item 4a and the num­ber of times Item 4a and 4b must be repeated.

ISWRONLY—an integer value used as a flag for writing aquifer-reach leakage values. If ISWRONLY > 0, theMODFLOW boundary (IBOUND) array defined in the Basic (BAS) Package of the groundwater flow process is set to zero making all groundwater model cells inactive (see Harbaugh, 2005, p. 4-1 – 4-2) and disabling SWR1 aquifer-reach exchanges. If ISWRONLY ≤ 0, the groundwater process uses the boundary array defined in the BAS Package.

ISWRCBC—an integer value used as a flag for writing aquifer-reach leakage values and evapotranspiration values beneath model-based reaches. If ISWRCBC > 0, it is the unit number to which unformatted leakage between each reach and corresponding finite-difference cell will be saved to a file whenever the cell-by-cell budget has been speci­fied in Output Control Option (see Harbaugh, 2005, p. 8-17—8-21). If ISWRCBC = 0, leakage values will not be printed or saved. If ISWRCBC < 0, aquifer-reach leakage values and evapotranspiration values beneath model-based reaches will be printed in the main listing file whenever a cell-by-cell budget has been specified in Output Control.

ISWRPRGF—an integer value used as a flag for writing to a separate formatted or unformatted binary file the stage and all information about inflows and outflows from each reach group. If ISWRPRGF > 0, then ISWRPRGF also repre­sents the unit number to which all information for each reach group will be saved to a separate file using a comma-separated-value format. If ISWRPRGF < 0, |ISWRPRGF| is the unit number to which the stage and all information on inflows and outflows for each reach group will be saved to a binary file. Data for reach groups is saved to the |ISWRPRGF| unit number with a frequency equal to RTPRN or at the SWR1 time step corresponding to the end of each MODFLOW time step if RTPRN = 0.0.

ISWRPSTG—an integer value used as a flag for writing to a separate formatted or unformatted binary file the stage for each reach. If ISWRPSTG > 0, then ISWRPSTG also represents the unit number to which all reach stage data will be saved to a separate file using a comma-spaced-value format. If ISWRPSTG < 0, |ISWRPSTG| is the unit number to which the stage for each reach will be saved to a binary file. Data for reach stage is saved to the |ISWRPSTG| unit number with a frequency equal to RTPRN or at the SWR1 time step corresponding to the end of each MODFLOW time step if RTPRN = 0.0.

ISWRPQAQ—an integer value used as a flag for writing to a separate formatted or unformatted binary file the aquifer-reach exchanges from each reach; the stream stage, depth, wetted perimeter, and streambed conductance; and the head difference and gradient from the reach to the groundwater. If ISWRPQAQ > 0, then ISWRPQAQ also represents the unit number to which all reach aquifer-reach data will be saved to a separate file using a comma-spaced-value format. If ISWRPQAQ < 0, |ISWRPQAQ| is the unit number to which the aquifer-reach and related variables for each reach will be saved to a binary file. Aquifer-reach exchange data for each reach is saved to the |ISWRPQAQ| unit number with a frequency equal to RTPRN or at the SWR1 time step corresponding to the end of each MODFLOW time step if RTPRN = 0.0.

ISWRPQM—an integer value used as a flag for writing to a separate formatted or unformatted binary file the lateral flow and velocity for each reach connection. Non-zero velocities are only reported for reach connections without surface-water control structures. If ISWRPQM > 0, then ISWRPQM also represents the unit number to which all reach lateral flow and velocity data will be saved to a separate file using a comma-spaced-value format. If ISWRPQM < 0, |ISWRPQM| is the unit number to which the lateral flow and velocity data for each reach connection will be saved to a binary file. Lateral-flow data for each reach connection is saved to the |ISWRPQM| unit number with a frequency equal to RTPRN or at the SWR1 time step corresponding to the end of each MODFLOW time step if RTPRN = 0.0.

ISWRPSTR—an integer value used as a flag for writing to a separate formatted or unformatted binary file the structure flow, upstream stage, downstream stage, gate elevation, and gate opening data for each structure. If ISWRPSTR > 0, then ISWRPSTR also represents the unit number to which all structure data will be saved to a separate file using a comma-spaced-value format. If ISWRPSTR < 0, |ISWRPSTR| is the unit number to which the structure data will be saved to a binary file. Structure data are saved to the |ISWRPSTR| unit number with a frequency equal to RTPRN or at the SWR1 time step corresponding to the end of each MODFLOW time step if RTPRN = 0.0.

ISWRPFRN—an integer value used as a flag for writing summary information on the maximum Froude number for reaches simulated by the diffusive-wave approximation for each SWR1 time step to the MODFLOW LST file. A sum­mary of the maximum Froude number for all SWR1 time steps is also summarized in the MODFLOW LST file at the end of the last MODFLOW time step in the last stress period.

Option—is an optional list of character values.

AUXILIARY abc” or “AUX abc” —defines an auxiliary variable, named “abc”, will be read for each SWR1 reach I item 15. Up to 20 variables can be specified, each of which must be preceeded by “AUXILIARY” or “AUX.” These variables currently are not used by the SWR1 process, but they will be available for use by other processes.

SWROPTIONS”—indicates optional SWR1 control variables will be specified in item 1b.

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]

CSWROPT—string value that represents a keyword for an optional SWR1 control variable. Available optional keywords include:

PRINT_SWR_TO_SCREEN, Iteration data for each SWR1 time step is reported to the screen.

SAVE_SWRDT, The SWR1 time step length for each SWR1 time step is written to an ASCII or binary output file.

SAVE_AVERAGE_RESULTS, Average simulated results for each SWR1 output time (RTPRN) will be written to the listing file. to ASCII and binary output files.

SAVE_CONVERGENCE_HISTORY, The convergence history for each SWR1 time step is written to an ASCII output file (IOPTUNIT is required and defines the convergence history output unit number). Convergence history is written using a column format with a separate row for each SWR1 time step.

SAVE_RIVER_PACKAGE, A standard MODFLOW river (RIV) package is written to an ASCII output file (IOPTUNIT is required and defines the river package output unit number). SWR1 data for all active SWR1 reaches (ISWRBND ≠ 0) are written at the SWR1 output frequency (RTPRN). Selecting this option will disable the SAVE_RIVER_PACKAGE_ALL option.

SAVE_RIVER_PACKAGE_ALL, A standard MODFLOW river (RIV) package is written to an ASCII output file (IOPTUNIT is required and defines the river package output unit number). SWR1 data for all SWR1 reaches (active and inactive) are written at the SWR1 output frequency (RTPRN). Selecting this option will disable the SAVE_RIVER_PACKAGE option.

SAVE_SWROBSERVATIONS, Simulated reach stage, water depth, flow to another reach, baseflow, and/or structure flow to another reach at select locations will be written to an ASCII or binary output file (IOPTUNIT is required and defines the SWR1 observation output unit number). Average simulated results for each SWR1 output time are saved to the observation file if SAVE_AVERAGE_RESULTS is specified in Item 1b. Selecting this option will disable the SAVE_SWROBSERVATIONS_ALL option. Data is saved with a frequency equal to RTPRN.

SAVE_SWROBSERVATIONS_ALL, Simulated reach stage, water depth, flow to another reach, baseflow, and/or structure flow to another reach at select locations for each SWR time step will be written to an ASCII or binary output file (IOPTUNIT is required and defines the the SWR1 observation output unit number). Selecting this option will disable the SAVE_SWROBSERVATIONS option.

USE_TABFILES, Tabular data are specified in item 4c and 4d.

USE_DIRECT_RUNOFF, Direct runoff to specified SWR1 reaches will be calculated based on information provided in an external ASCII input file (see Input Instructions for SWR Direct Runoff File). IOPTUNIT is required and defines the SWR1 direct runoff input unit number.

USE_NONCONVERGENCE_CONTINUE, The simulation will continue even if convergence is not achieved in the MODFLOW groundwater flow process and/or the SWR1 Process (non-convergence continuation option).

USE_UPSTREAM_WEIGHTING, An upstream-weighting approach will be used to simulate lateral flow between reach groups that use the diffusive-wave approximation (IROUTETYPE = 3). The area and wetted perimeter of the reach-group with the highest stage are used in equation 6.

USE_INEXACT_NEWTON, An inexact Newton method will be used. See appendix 3 for further details on the inexact Newton method implement with the iterative Krylov solvers available with SWR1.

USE_STEADYSTATE_STORAGE, The pseudo-transient continuation approach is used for steady-state stress periods.

USE_LAGGED_OPR_DATA, The current estimates of reach stages and flows are used to surface water control structure operations.

USE_LINEAR_DEPTH_SCALING, Linear-depth scaling is used.

USE_DIAGONAL_SCALING, The Jacobian is scaled using symmetric diagonal scaling. Selecting this option will disable the USE_L2NORM_SCALING option.

USE_L2NORM_SCALING, The Jacobian is scaled using symmetric ℓ2-norm scaling. Selecting this option will disable the USE_DIAGONAL_SCALING option.

USE_RCMREORDERING, Active reach groups are reordered using reverse Cuthill-Mckee reordering. Selecting this option will disable the USE_RCMREORDERING_IF_IMPROVEMENT option.

USE_RCMREORDERING_IF_IMPROVEMENT, Active reach groups are only reordered if reverse Cuthill-Mckee reordering reduces the Jacobian bandwidth. Selecting this option will disable the USE_RCMREORDERING option.

USE_IMPLICIT_NEWTON_CORRECTION keyword for implicitly calculating the Newton correction term for the groundwater flow equation. This option requires solving SWR1 equations using the current and perturbed heads. As a result, SWR1 Process runtimes will be approximately a factor of 2 greater.

USE_EXPLICIT_NEWTON_CORRECTION keyword for explicitly calculating the Newton correction term for the groundwater flow equation. This option calculates the Newton correction terms using the current SWR1 stage solution and current and perturbed heads within the aquifer-reach exchange calculation routine (SSWR_CALC_QAQ). This option does not have a significant effect on SWR1 Process runtimes and is sufficient for the  test problems evaluated.

By default, Newton corrections are not calculated. Only one of the keywords USE_IMPLICIT_NEWTON_CORRECTION or USE_EXPLICIT_NEWTON_CORRECTION should be used if Newton correction terms for the SWR1 Process are desired. As a result, SWR1 Process runtimes will be approximately a factor of 2 greater.

USE_FRACTIONAL_TOLR, The PTOLR value specified in Item 3 represents a fractional value. Residual convergence is achieved when the ratio of the residual to the average of the inflow and outflow for a reach group is less than or equal to PTOLR. Selecting this option will disable the USE_L2NORM_TOLR option.

USE_L2NORM_TOLR, The PTOLR value specified in Item 3 represents a ℓ2-norm. Residual convergence is achieved when the ℓ2-norm for all active reach groups is less than or equal to PTOLR. Selecting this option will disable the USE_FRACTIONAL_TOLR option.

USE_GLOBAL_TOLA, The TOLA value specified in Item 3 represents a global surface-water/groundwater exchange convergence criterion. Surface-water/groundwater exchange convergence is achieved when the absolute value of sum of the discrepancies between MODFLOW and SWR1 for all active reaches is less than or equal to TOLA. Selecting this option will disable the USE_ABSOLUTE_TOLA option.

USE_ABSOLUTE_TOLA, The TOLA value specified in Item 3 represents an absolute surface-water/groundwater exchange convergence criterion. Surface-water/groundwater exchange convergence is achieved when the absolute value of the discrepancy between MODFLOW and SWR1 for each active reaches is less than or equal to TOLA. Selecting this option will disable the USE_GLOBAL_TOLA option.

END, Keyword for terminating item 1b. This keyword is required.

The order of keywords specified in item 1b is not important with the exception of the END keyword which must be the last entry in item 1b. Unrecognized keywords are ignored.

IOPTUNIT—as integer that represents the unit number to which the optional SWR1 output will be saved. If IOPTUNIT > 0, data will be saved to an ASCII file with unit number IOPTUNIT using a comma-spaced-value format. If IOPTUNIT < 0, |IOPTUNIT| is the unit number of the binary file to which the optional output data will be saved. IOPTUNIT is only specified for the CSWROPT keywords SAVE_SWRDT, SAVE_CONVERGENCE_HISTORY, SAVE_RIVER_PACKAGE, SAVE_RIVER_PACKAGE_ALL, SAVE_SWROBSERVATIONS, SAVE_SWROBSERVATIONS_ALL,and USE_DIRECT_RUNOFF. IOPTUNIT must be > 0 (ASCII file) for the direct runoff input file (USE_DIRECT_RUNOFF) and convergence history (SAVE_CONVERGENCE_HISTORY) and river (RIV) package (SAVE_RIVER_PACKAGE and SAVE_RIVER_PACKAGE_ALL) output files.

Data Set 2

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

Only 200 characters are read from this line. All the numbers must fit within that limit.

DLENCONV— a real value (or conversion factor) used in converting flow terms that use gravitational acceleration to consistent length units. DLENCONV is used to calculate correct structure flows for fixed and operable surface-water structures defined in Item 8 (ISTRTYPE = 5, 6, 7, 8, and 9). DLENCONV is also used to calculate correct discharges from active reaches using the diffusive-wave approximation (IROUTETYPE = 3). If fixed and operable control structures are not simulated and the diffusive-wave approximation is not used in a simulation (IROUTETYPE = 1 or 2), then a value of 1.0 can be entered.  DLENCONVshould be set to 3.28081, 1.0, and 100.0 when using length units (LENUNI) of feet, meters, or centimeters in the simulation, respectively (see Harbaugh 2005, p. 3-7).

TIMECONV— a real value (or conversion factor) used in converting flow terms that use gravitational acceleration to consistent time units. TIMECONV is used to calculate correct structure flows for fixed and operable surface water struc­tures defined in Item 8 (ISTRTYPE = 5, 6, 7, 8, and 9). TIMECONV is also used to calculate correct discharges from active reaches using the diffusive-wave approximation (IROUTETYPE = 3). If fixed and operable control structures are not simulated and the diffusive-wave approximation is not used in a simulation (IROUTETYPE = 1 or 2), then a value of 1.0 can be entered. TIMECONV should be set to 1.0, 60.0, 3,600.0, 86,400.0, and 31,557,600.0 when using time units (ITMUNI) of seconds, minutes, hours, days, or years in the simulation, respectively (see Harbaugh 2005,p. 3-7).

RTINI—a real value that defines the initial SWR1 time-step length to use in the first MODFLOW time step of the first stress period. RTINI should be ≥ RTMIN and ≤ RTMAX. Value is in units of time and must be consistent with the defined MODFLOW time unit.

RTMIN—a real value that defines the minimum SWR1 time-step length to use. RTMIN should be > 0.0. Typical values of RTMIN are between 1 and 30 seconds but is dependent on the magnitude of streamflow. Value is in units of time and must be consistent with the defined MODFLOW time unit.

RTMAX—a real value that defines the maximum SWR1 time-step length to use. RTMAX should be ≥ RTMIN and ≤ the minimum MODFLOW time-step length. Adaptive time stepping is disabled if RTMAX = RTMIN. Typical values of RTMAX are between 1 and 24 hours but are dependent on the magnitude of streamflow. Value is in units of time and must be consistent with the defined MODFLOW time unit.

RTPRN—a real value that defines the frequency of SWR1 results output to ASCII or binary result files (ISWRPSTG, ISWRPQAQ, and/or ISWRPQM). Results are saved to SWR1 output files for SWR1 time steps cor­responding to the end of each MODFLOW time step if RTPRN = 0.0. If RTPRN > 0.0, RTPRN should be ≥ RTMIN. Value is in units of time and must be consistent with the defined MODFLOW time unit. See also SAVE_SWROBSERVATIONS.

RTMULT—a real value that defines the multiplier used to increase the SWR1 time-step length. Adaptive time stepping is disabled if RTMULT = 1.0. Typical values of RTMULT are between 1.0 and 1.2. RTMULT should be ≥ 1.

NTMULT—an integer value that defines the frequency of SWR1 time-step length increases. The SWR1 time-step length is increased only when SWR1 solver convergence is achieved, the SWR1 time-step length is less than the maximum time-step length for the stress period defined by DMAXRAI, the maximum stage change in any reach are less than DMAXSTG, and the maximum inflow to any reach is less than DMAXINF on NTMULT consecutive SWR1 time steps within a single MODFLOW time step. NTMULT values ranging from 2 to 10 have been found to work reasonably well in the test cases evaluated. NTMULT should be > 1.

DMINGRAD— a real value used to define the water-surface gradient that must be exceeded for surface-water flow to be simulated in reach groups or structures using the diffusive-wave approximation (IROUTETYPE = 3). DMINGRAD can be set to any real number if all reach groups in a simulations use the reservoir-routing approximation (IROUTETYPE = 1 or 2). A non-zero value should only be used in cases where small gradients are causing numerical instabilities or with SWR1 datasets with a large number of reach groups to reduce numerical overhead; in these cases DMINGRAD values ranging between 1.0×10-9 and 1.0×10-12 have been found to be reasonable.

DMINDPTH— a real value used to define the minimum reach depth where outflows (evaporation, aquifer-reach exchanges, and diffusive wave flow) are permitted. Sigmoid-depth scaling is the default depth scaling approach used. Scaling is not applied if DMINDPTH = 0.0. Value is in units of length and must be consistent with the MODFLOW length unit. A value of 1×10-3 m has been found to work well in the test simulations evaluated.

DMAXRAI— a real value used to define the maximum rainfall rate for SWR1 reaches in the current MODFLOW stress period. The SWR1 time step is reduced using equation 57 if the rainfall in any reach exceeds DMAXRAI. Rainfall is not used to adjust SWR1 time steps if DMAXRAI ≤ 0.0. DMAXRAI is only specified for SWR1 simulations with RTMIN < RTMAX and RTMULT > 1.0. Value is in units of length per time and must be consistent with MODFLOW length and time units.

DMAXSTG— a real value used to define the maximum stage change permitted in a SWR1 time step. The SWR1 time step is reduced using equation 59 if the stage change in any reach exceeds DMAXSTG. Simulated stage changes are not used to adjust SWR1 time steps if DMAXSTG ≤ 0.0. DMAXSTG is only specified for SWR1 simulations with RTMIN < RTMAX and RTMULT > 1.0. Value is in units of length and must be consistent with MODFLOW length unit.

DMAXINF— a real value used to define the maximum net inflow change permitted in a SWR1 time step. The SWR1 time step is reduced using equation 60 if the net inflow change in any reach exceeds DMAXINF. Simulated net inflow changes are not used to adjust SWR1 time steps if DMAXINF ≤ 0.0. DMAXINF is only specified for SWR1 simu­lations with RTMIN < RTMAX and RTMULT > 1.0. Value is in units of cubic length per time (L3/T) and must be consistent with MODFLOW length and time units.

Data Set 3

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

ISOLVER—an integer value that defines the solver used by the SWR1 Process to solve the defined surface-water equations for each reach group.

ISOLVER = 1, LU decomposition using Crout’s algorithm (Crout, 1941) based on Press and others (1990, 1999).

ISOLVER = 2, Biconjugate gradient stabilized method (bi-CGSTAB) based on Barrett and others (1994), and Kelley (1995).

ISOLVER = 3, GMRES method based on Brown and Saad (1990), Jones and Woodward (2001), and Saad and Schultz (1986).

NOUTER—an integer value that defines the maximum number of outer iterations used to resolve non-linearities for all solvers. NOUTER must be > 0 and is generally less than 100.

NINNER—an integer value that defines the maximum number of inner iterations used within the preconditioned biconjugate gradient solver (ISOLVER = 2) and GMRES solver (ISOLVER = 3). NINNER also defines the maxi­mum number of iterations to perform before restarting GMRES (ISOLVER = 3) and reduced storage requirements for the method. Typical values for the biconjugate gradient stabilized method range from 10 to 30. Typical values for the GMRES method range from 5 to 30. NINNER is not used for ISOLVER = 1 and can be set to any positive value greater than 0.

IBT—an integer value that defines whether line search is enabled (IBT > 1) or disabled (IBT ≤ 1). IBT also defines the maximum number of line search iterations to perform (if IBT > 1) at the end of each outer iteration to minimize the ℓ2-norm using Brent’s method (Press and others, 1990). Line search should be disabled (IBT ≤ 1) if DAMPSS and/or DAMPTR values other than 1.0 are specified.

TOLS—a real value that defines the tolerance level for reach group stages used to evaluate convergence for stage within the selected numerical solver and to trigger increases and decreases in the SWR1 time step when adaptive time step­ping is enabled. Value is in units of length and must be consistent with the MODFLOW length unit. Usually a value of 1.0×10-9 is sufficient when units of feet or meters are used in the model.

TOLR—a real value that defines the tolerance level for reach group flow residuals to evaluate convergence for flow within the selected numerical solver and to trigger increases and decreases in the SWR1 time step when adaptive time stepping is enabled. Value is in units of length cubed per time, and must be consistent with MODFLOW length and time units. Usually a value of 1.0×10-1 is sufficient for the flow-residual criteria when meters and seconds are the defined MODFLOW length and time.

TOLA—a real value that defines the tolerance level for relative differences in surface-water/groundwater exchanges between SWR1 and MODFLOW at the end of each MODFLOW outer iteration (Picard iteration). Convergence of surface-water/groundwater exchanges between successive MODFLOW outer iterations is disabled if TOLA is less than or equal to zero. Disabling the tolerance level for surface-water/groundwater exchanges may be appropriate for models in which groundwater levels do not change noticeably from one MODFLOW time step to another; the validity of this assumption can be evaluated by looking at the differences in SWR1 and MODFLOW calculated aquifer-reach exchanges printed in the MODFLOW listing file. Use of TOLA may improve results in cases where use of lagged heads in SWR1 formulate subroutines (GWF2SWR1FM) allow convergence of MODFLOW’s iterative solvers on the first outer iteration but will increase run-times. Value is relative and unitless. Usually a value of 0.01 is sufficient.

DAMPSS—a real value that defines the steady-state dampening factor that is applied for each inner iteration of the selected linear solver. Acceleration can be applied to the inner iteration of the selected linear solver by specifying DAMPSS values greater than 1.0. DAMPSS values between 0.1 and 0.5 have been found to work well for steady-state stress periods. Dampening/acceleration is not applied if a DAMPSS value of 0.0 is specified (DAMPSS is reset to 1.0). DAMPSS should be set to 1.0 if IBT is greater than 1.

DAMPTR—a real value that defines the transient dampening factor that is applied for each inner iteration of the selected linear solver. Acceleration can be applied to the inner iteration of the selected linear solver by specifying DAMPTR values greater than 1.0. Dampening/acceleration is not applied if a DAMPTR value less than or equal to 0.0 is specified (DAMPTR is reset to 1.0). DAMPTR should be set to 1.0 if IBT is greater than 1.

IPRSWR—an integer value used as the printout interval for convergence information for the SWR1 Process. SWR1 convergence information is written to the MODFLOW listing file every IPRSWR MODFLOW time steps. If IPRSWR is less than 1 it is changed to 999. This printout also occurs at the end of each MODFLOW stress period regardless of the value of IPRSWR.

MUTSWR—an integer value used as a flag that controls printing of convergence information for the SWR1 Process:

MUTSWR = 0, is for printing tables of the final maximum absolute residual for each SWR1 time step.

MUTSWR = 1, is for printing only the total number of iterations in each SWR1 time step.

MUTSWR = 2, is for no printing.

MUTSWR = 3, is for printing only if convergence fails for at least one SWR1 time step in a MODFLOW time step.

IPC—an integer value that defines the preconditioner with the iterative solver used by the SWR1 Process to solve the defined surface-water equations for each reach group. IPC is only defined if ISOLVER > 1.

IPC = 0, No preconditioning.

IPC = 1, Jacobi preconditioning.

IPC = 2, ILU(0) preconditioning.

IPC = 3, MILU(0) preconditioning.

IPC = 4, ILUT preconditioning.

NLEVELS—an integer value that defines the maximum number of levels to use for each row of U and each row of L. NLEVELS values between 5 and 10 have been found to work well for the test problems evaluated. NLEVELS is only specified if IPC = 4.

DROPTOL—a real value that defines the threshold for dropping small terms in the factorization. A DROPTOL value of 1×10-3 has been found to work well for the test problems evaluated. DROPTOL is only specified if IPC = 4.

IBTPRT—an integer value used as a flag for writing a summary of line-search information to the MODFLOW listing file for each SWR1 outer iteration when line search is attempted. Line-search information summarized includes the SWR1 outer iteration number, number of line search iterations, initial ℓ2-norm of the residual, final ℓ2-norm of the residual, final relaxation parameter value (λ), and whether the estimated stage was updated at the end of the line search routine. If IBTPRT > 0, then summary line-search data are written to the MODFLOW listing file every IBTPRT SWR1 outer iteration when line search is attempted. IBTPRT is only specified if IBT > 1.

PTOLR—a real value that defines the alternative tolerance level for reach group flow residuals to evaluate convergence for flow within the selected numerical solver and to trigger increases and decreases in the SWR1 time steps when adaptive time stepping is enabled. PTOLR is only specified if USE_FRACTIONAL_TOLR or USE_L2NORM_TOLR is specified in Item 1b. If USE_L2NORM_TOLR is specified in Item 1b, value is in units of length cubed per time, and must be consistent with MODFLOW length and time units. Otherwise, the PTOLR value is unitless.

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

IRCH4A— an integer value equal to the number of the reach. IRCH4A must be greater than zero and less than or equal to NREACHES. IRCH4A data can be specified in any order but each entry must be assigned a unique number and be in the range of 1 to NREACHES.

IROUTETYPE—an integer value that defines the surface-water equation used in each reach.

IROUTETYPE = 1, Level-pool reservoir routing.

IROUTETYPE = 2, Tilted-pool reservoir routing.

IROUTETYPE = 3, Diffusive-wave approximation.

IROUTETYPE = 4, Kinematic-wave approximation.

IRGNUM— an integer value for defining a reach group number for the reach. IRGNUM can be any integer value.

KRCH—an integer value equal to the layer number of the cell containing the reach. If KRCH < 1, the reach can span multiple layers that are defined using geometric data specified in Item 11 for the reach.  A reach can be connected to multiple layers from a specific layer by specifying a negative layer number for the starting layer. For example, a reach will be connected to layers 2 to NLAY if KRCH = -2 is specified for a reach. KRCH must be set to 1 for reaches that cover an entire finite-difference cell (IGEOTYPE = 5; see Item 11a).

IRCH—an integer value equal to the row number of the cell containing the reach.

JRCH—an integer value equal to the column number of the cell containing the reach.

RLEN—a real number equal to the length of reach within this finite-difference cell. The length of a reach can exceed the finite-difference cell dimensions because of the meandering nature of many one-dimensional surface-water features. The length is used to calculate the reach conductance for this reach for several leakage options. RLEN can be defined as any value for reaches defined as IGEOTYPE = 4 and 5 (see the description of Item 11 variables).

Data Set 4b

IRCH4B NCONN ICONN(1)…ICONN(NCONN)

IRCH4B— an integer value equal to the number of the reach. IRCH4B must be greater than zero and less than or equal to NREACHES. IRCH4B data can be specified in any order but each entry must be assigned a unique number and be in the range of 1 to NREACHES.

NCONN—an integer value that defines the number of reaches reach IRCH4B is connected to.

ICONN— an integer list equal to the reach numbers connected to reach IRCH4B. ICONN must be in the range of 1 to NREACHES and includes NCONN ICONN entries.

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

NTABS— an integer value equal to the number of tabular data items specified in Item 4d.

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)]

ITAB— an integer value that specifies the number of tabular data item. ITAB value is the tabular data item that will be referred to by CSTRVAL and CSTRCRIT in Items 13a or 13b. Tabular data items specified in Item 4d do not need to be specified in numerical order.

CTABTYPE— a string value that specifies the data type the selected tabular data item represents.

CTABTYPE = RAIN, the tabular data item represents rainfall data.

CTABTYPE = EVAP, the tabular data item represents evaporation data.

CTABTYPE = LATFLOW, the tabular data item represents lateral flow data.

CTABTYPE = STAGE, the tabular data item represents stage data for constant stage reaches.

CTABTYPE = STRUCTURE, the tabular data item represents structure data. Structure data can be either structure operation criteria, specified discharge, or gate opening data for operable structures and is defined in Items 13a and 13b.

CTABTYPE = TIME, the tabular data item represents SWR1 time-step length data. CTABTYPE = TIME should only be specified once in Item 4d and overrides SWR1 time step data (RTINI, RTMIN, RTMAX, RTMULT, and NTMULT) specified in Item 2.

ITABUNIT—an non-zero integer value that defines the unit number of the tabular data file. The file unit number ITABUNIT must be specified in the NAM file using the keyword DATA if ITABUNIT is greater than 0 or the keyword DATA(BINARY) if ITABUNIT is less than 0.

CINTP— a string value that specifies the interpolation applied to the selected tabular data item.

CINTP = NONE, the tabular data value closest to but greater than or equal to the end of the current SWR1 time step is used to define the data value for the current SWR1 time step.

CINTP = AVERAGE, the temporally weighted average of all tabular data values from the end of the previous SWR1 time step to the end of the current SWR1 time step is used to define the data value for the current SWR1 time step.

CINTP = INTERPOLATE, the two tabular data values closest to the end of the current SWR1 time step are used to interpolate the data value for the the current SWR1 time step.

CTABRCH— a string variable that is used to define the number of reaches that the tabular data will be applied to. The tabular data can be applied to all reaches in the SWR1 dataset by specifying CTABRCH = ALL. If CTABRCH is not equal to ALL, an integer value must be specified. This variable is only specified for CTABTYPE values other than TIME and STRUCTURE.

ITABRCH— an integer list equal to the reach numbers that use the tabular data. ITABRCH must be in the range of 1 to NREACHES and includes INT(CTABRCH) ITABRCH entries. This variable is only specified if CTABRCH values other than ALL are specified.

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

Data Set 4e

NOBS— an integer value equal to the number of observation data items specified in Item 4f.

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]

COBSNAME— a string value that defines the name of the observation. COBSNAME can consist of 1 to 20 characters.

COBSTYPE— a string value that specifies the data type the selected observation data item represents.

COBSTYPE = STAGE, the observation data item represents reach stage.
COBSTYPE = DEPTH, the observation data item represents reach water depth.
COBSTYPE = RBOTTOM, the observation data item represents reach bottom elevation.
COBSTYPE = FLOW, the observation data item represents reach flow to an adjacent reach.
COBSTYPE = STRUCTURE, the observation data item represents structure flow from one reach to an adjacent reach.
COBSTYPE = BASEFLOW, the the observation data item represents reach baseflow for a specified layer or all connected layers.

IOBSLOC— an integer value that defines the reach number of the observation. IOBSLOC must be in the range of 1 to NREACHES.

IOBSLOC2— an integer value that defines the connected reach number or the IOBSLOC reach structure number for the observation. This variable is specified only if COBSTYPE is FLOW or STRUCTURE. IOBSLOC2 must be in the range of 1 to NREACHES for COBSNAME = FLOW. IOBSLOC2 must be in the range of 1 to NSTRUCT for COBSNAME = STRUCTURE.

IOBSLAY— an integer value that defines the layer number for the observation. This variable is specified only if COBSTYPE is BASEFLOW. IOBSLAY must be in the range of 0 to NLAY; an IOBSLAY value of 0 indicates the total BASEFLOW for all connected layers is desired.

FOR EACH STRESS PERIOD

Data Set 5

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

ITMP— an integer value for reusing SWR1 reach data that can change each stress period. ITMP must be greater than zero for the first stress period of a simulation. For subsequent stress periods, if ITMP is less than or equal to zero, data from the previous stress period will be used.

IRDBND—an integer value that defines the number of reaches where boundary data will be modified during the current MODFLOW stress period. IRDBND must be equal to NREACHES for the first stress period of a simulation. For sub­sequent stress periods, if IRDBND > 0 boundary data are specified in Item 6; however if IRDBND ≤ 0, boundary values from the previous stress period will be used. For all stress periods, IRDBND must not exceed NREACHES.

IRDRAI—an integer value that defines the number of reaches where rainfall data will be modified during the current MODFLOW stress period. If IRDRAI > 0, reach rainfall data are specified in Item 7a. If IRDRAI < 0, rainfall data are specified for all reaches in Item 7b using two-dimensional arrays and read using U2DREL. For the first stress period, rainfall rates of 0.0 [L/T] are used for all reaches if IRDRAI = 0 or for reaches not defined in Item 7a if IRDRAI > 0. For subsequent stress periods, if IRDRAI = 0 reach rainfall data from the previous stress period will be used for all reaches not using external time series files. For all stress periods, IRDRAI must not exceed NREACHES.

IRDEVP—an integer value that defines the number of reaches where evaporation data will be modified during the current MODFLOW stress period. If IRDEVP > 0, reach evaporation data are specified in Item 8a. If IRDEVP < 0, evapo­ration data are specified for all reaches in Item 8b using two-dimensional arrays and read using U2DREL. For the first stress period, evaporation rates of 0.0 [L/T] are used for all reaches if IRDEVP = 0 or for reaches not defined in Item 8a if IRDEVP > 0. For subsequent stress periods, if IRDEVP = 0 reach evaporation data from the previous stress period will be used for all reaches not using external time series files. For all stress periods, IRDEVP must not exceed NREACHES.

IRDLIN—an integer value that defines the number of reaches where lateral flow data will be modified during the current MODFLOW stress period. If IRDLIN > 0, reach lateral flow data are specified in Item 9a. If IRDLIN < 0, lateral flow data are specified for all reaches in Item 9b using two-dimensional arrays and read using U2DREL. For the first stress period, lateral flow rates of 0.0 [L3/T] are used for all reaches if IRDLIN = 0 or for reaches not defined in Item 9a if IRDLIN > 0. For subsequent stress periods, if IRDLIN = 0 reach lateral flow data from the previous stress period will be used for all reaches not using external time series files. For all stress periods, IRDLIN must not exceed NREACHES.

IRDGEO—an integer value that defines the number of reaches where geometry data will be modified during the current MODFLOW stress period. If IRDGEO > 0, reach geometry data are specified in Items 10 and 11. IRDGEO must be equal to NREACHES for the first stress period of a simulation. For subsequent stress periods, if IRDGEO ≤ 0, geom­etry data from the previous stress period will be used for all reaches. For all stress periods, IRDGEO must not exceed NREACHES.

IRDSTR—an integer value that defines the number of reaches where structure data will be modified during the cur­rent MODFLOW stress period. If IRDSTR > 0, structure data are specified in Items 12 and 13, however if IRDSTR ≤ 0, structure data from the previous stress period will be used for all reaches. IRDSTR can be zero on the first stress period, indicating that no control structures are present in the model. For all stress periods, IRDSTR must not exceed NREACHES.

IRDSTG—an integer value that defines the number of reaches where stage data will be modified during the current MODFLOW stress period. If IRDSTG > 0, stage data are specified for all reaches in Item 14a. If IRDSTG < 0, stage data are specified for all reaches in Item 14b using a two-dimensional array and read using U2DREL. IRDSTG must be equal to NREACHES or less than zero for the first stress period of a simulation to define an initial stage above sum of the reach bottom (GBELEV) and the minimum reach depth (DMINDPTH). For subsequent stress periods, IRDSTG values not equal to zero only need to be specified for subsequent stress periods if constant-stage reaches with stages different from the previous stress period are defined for the stress period (ISWRBND for reach < 0) or to rede­fine reach offsets for reservoir-routing reaches. If constant-stage reaches are defined, IRDSTG > 0, and IRDSTG < NREACHES, stage data from the previous stress period will be used for reaches not specified in Item 14a and not using external time series files. For all stress periods, IRDSTG must not exceed NREACHES.

IPTFLG—an integer value for printing input and processed data specified for this stress period. If IPTFLG > 0, input and processed data for this stress period will be printed. If IPTFLG = 0, input and processed data for this stress period will not be printed.

IRDAUX—an optional integer value that defines the number of reaches that auxiliary data will be modified during the current MODFLOW stress period. If IRDAUX > 0 and auxiliary variables are specified in item 1a, auxiliary data are specified in Item 15. IRDAUX only needs to be specified for SWR1 datasets that have auxiliary variables defined in item 1a; IRDAUX is ignored for SWR1 datasets that do not include auxiliary variables. If IRDAUX < 1 or is not specified, auxiliary data are specified in Item 15 and data from the previous stress period will be used for all reaches. IRDAUX must be equal to NREACHES for the first stress period of a simulation for SWR1 datasets with auxiliary vari­ables defined in item 1a. For all stress periods, IRDAUX must not exceed NREACHES.

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.

IBNDRCH— an integer value equal to the number of the reach. IBNDRCH must be greater than zero and less than or equal to NREACHES. IBNDRCH data can be specified in any order, but each entry must be assigned a unique number.

ISWRBND— an integer value defining the boundary value for reach IBNDRCH. This variable is only specified if IRDBND > 0.

ISWRBND < 0, Constant-stage reach.

ISWRBND = 0, Inactive reach.

ISWRBND > 0, Active reach.

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

IRAIRCH— an integer value equal to the number of the reach. IRAIRCH must be greater than zero and less than or equal to NREACHES. IRAIRCH data can be specified in any order, but each entry must be assigned a unique number.

RAIN—a real value that is the volumetric rate per unit area of water added by precipitation directly onto the reach (in units of length per time).

Data Set 7b

[RAIN2D (NCOL, NROW)] -- U2DREL

RAIN2D— an array of positive real values used to define the volumetric rate per unit area of water added by precipitation directly onto the reach (in units of length per time). This array is only specified if IRDRAI < 0.

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

IEVPRCH— an integer value equal to the number of the reach. IEVPRCH must be greater than zero and less than or equal to NREACHES. IEVPRCH data can be specified in any order, but each entry must be assigned a unique number.

EVAP—a real value that is the volumetric rate per unit area of water removed by evaporation directly from the reach (in units of length per time). EVAP is defined as a positive value.

Data Set 8b

[EVAP2D (NCOL, NROW)] -- U2DREL

EVAP2D— an array of positive real values used to define the volumetric rate per unit area of water removed by evaporation directly from the reach (in units of length per time). This array is only specified if IRDEVP < 0.

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

ILINRCH— an integer value equal to the number of the reach. ILINRCH must be greater than zero and less than or equal to NREACHES. ILINRCH data can be specified in any order, but each entry must be assigned a unique number.

QLATFLOW—a real value that is the lateral flow (in units of cubic length per time) entering or leaving the reach. Point inflows and distributed lateral flows must be combined in QLATFLOW. The value can be any number.

Data Set 9b

[QLATFLOW2D (NCOL, NROW)] -- U2DREL

QLATFLOW2D— an array of real values used to define the volumetric rate of water added or subtracted from all reaches in the model grid cell (in units of cubic length per time). Lateral flow data are applied to individual reaches by scaling model grid cell value by the ratio of the length of the reach to the total length of reaches in the model grid cell. This array is only specified if IRDLIN < 0.

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

IGMODRCH— an integer value equal to the number of the reach. IGMODRCH must be greater than zero and less than or equal to NREACHES. IGMODRCH data can be specified in any order but each entry must be assigned a unique number.

IGEONUMR— an integer value for defining the geometry data defined in Item 11a associated with the reach. IGEONUMR can change each stress period but must be greater than zero and less than IRDGEO for the first stress period. If IGEONUMR < 1, geometry data for the reach from the previous stress period is reused.

GZSHIFT—a real value that is the vertical offset (in units of length) to apply to geometry data (IGEONUM) associated with the reach and defined in Item 11a. The value can be any number. If IGEONUMR < 1, geometry data for the reach from the previous stress period is reused and GZSHIFT is not used for reach IGMODRCH and GZSHIFT can be any value.

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]

IGEONUM— an integer value that defines the number of the geometry entry. IGEONUM must be greater than zero and less than or equal to IRDGEO. IGEONUM data can be specified in any order, but each entry must be assigned a unique number. Reaches having IGEONUMR equal to IGEONUM are assigned geometry data for IGEONUM.

IGEOTYPE—an integer value that defines the geometry type.

IGEOTYPE = 1, Rectangular cross section.

IGEOTYPE = 2, Trapezoidal cross section.

IGEOTYPE = 3, Irregular cross section.

IGEOTYPE = 4, Specified stage, volume, wetted perimeter, surface area, cross-sectional area relationship.

IGEOTYPE = 5, Surface-water feature covering the entire finite-difference cell.

IGCNDOP—an integer value that defines the approach used to calculate conductance for the geometry entry.

IGCNDOP = 0, Fixed conductance is specified for the geometry entry.

IGCNDOP = 1, Conductance is calculated using specified leakance coefficient, reach length, and simulated wetted perimeter.

IGCNDOP = 2, Conductance is calculated using the horizontal hydraulic conductivity, reach length, and simulated wetted perimeter.

IGCNDOP = 3, Conductance is calculated using an assumed serial connection (harmonic mean) of the specified leakance coefficient and horizontal hydraulic conductivity.

GMANNING—a real number that is Manning’s roughness coefficient for the geometry entry (in units of seconds per m1/3 and equivalent to published dimensionless Manning’s roughness coefficients). This value is only used for reaches associated with this IGEONUM and using the diffusive-wave approximation (IROUTETYPE = 3) to solve for surface-water flow between reach groups or reaches connected using an uncontrolled discharge connection structure (ISTRTYPE = 2).

NGEOPTS—an integer value that defines the number of points used to define the geometry. This variable is only specified if IGEOTYPE = 3 or 4.

GWIDTH—a real number that defines the bottom width of the rectangular or trapezoidal cross-section (in units of length). This variable is only specified if IGEOTYPE = 1 or 2.

GBELEV—a real number that defines the bottom elevation of the rectangular or trapezoidal cross-section (in units of length). This variable is only specified if IGEOTYPE = 1 or 2.

GSSLOPE—a real number that defines the side slope of the trapezoidal cross-section (in units of length per length). This variable is only specified if IGEOTYPE = 2.

GCND—a real number that defines the conductance (in units of length squared per time) of the geometry entry. If a reach associated with this geometry type spans more than one layer (KRCH < 0), GCND is internally distributed based on the length of the wetted perimeter in the layer relative to the total wetted perimeter of the reach. This variable is only specified if IGCNDOP = 0.

GLK—a real number that defines the leakance coefficient (in units of time-1) of the geometry entry. This variable is only specified if IGCNDOP = 1 or 3.

GCNDLN—a real number that defines the average horizontal distance from the reach to the center of the finite-difference grid (in units of length). This variable is only specified if IGCNDOP = 2 or 3.

GETEXTD—a real number that defines the extinction depth (in units of length) for evapotranspiration from groundwater for cases where simulated evaporation for the reach is less than EVAP. This variable is only specified if IGEOTYPE = 5.

If IGEOTYPE = 3 repeat NGEOPTS times:

Data Set 11b

XB(1) ELEVB(1)

XB(2) ELEVB(2)

. . .

XB(NGEOPTS) ELEVB(NGEOPTS)

XB(i)—a real value that is the distance relative to the left bank (in units of length) of the geometry type (when looking downstream). By definition, the first of NGEOPTS values represents the left edge of the cross-section; values for remaining points should be equal to or less than the previous distance.

ELEVB(i)—a real value that is the elevation (in units of length) of the cross-section point at XB(i).

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)

ELEV(i)—a real value that is the elevation (in units of length) of the geometry type. By definition, the first of NGEOPTS values represents the lowest elevation; values for remaining points should be greater than the previous elevation.

VOL(i)—a real value that is the volume (in units of length cubed) of the geometry type at ELEV(i). By definition, the first of NGEOPTS values represents the smallest volume (and will likely be zero); values for remaining points should be greater than or equal to the previous volume.

WETPER(i)—a real value that is the wetted perimeter (in units of length) of the geometry type at ELEV(i). By definition, the first of NGEOPTS values represents the smallest wetted perimeter (and will likely be zero); values for remaining points should be greater than or equal to the previous wetted perimeter.

SAREA(i)—a real value that is the surface area (in units of length squared) of the geometry type at ELEV(i). By definition, the first of NGEOPTS values represents the smallest surface area (and will likely be zero); values for remaining points should be greater than or equal to the previous surface area.

XAREA(i)—a real value that is the cross-sectional area (in units of length squared) of the geometry type at ELEV(i). By definition, the first of NGEOPTS values represents the smallest cross-sectional area (and will likely be zero); values for remaining points should be greater than or equal to the previous cross-sectional area. The cross-sectional area is used for conveyance calculations for reaches using the diffusive-wave approximation (IROUTETYPE = 3) to solve for surface-water flow.

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

ISMODRCH—an integer value equal to the number of the reach. ISMODRCH must be greater than zero and less than or equal to NREACHES. ISMODRCH data can be specified in any order, but each entry must be assigned a unique number.

NSTRUCT—an integer value for defining the number of structures associated with the reach. NSTRUCT can change each stress period. If NSTRUCT < 0, structure data from the previous stress period are reused for reach ISMODRCH. If NSTRUCT < 0 on the first stress period, the reach is assumed to have no structures.

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]

ISTRRCH—an integer value equal to the number of the reach. ISTRRCH must be greater than zero and less than or equal to NREACHES. ISTRRCH data can be specified in any order, but each reach identified in Item 12 with a NSTRUCT value greater than zero must be included in Item 13 or structure flow will not be simulated for reach ISTRRCH.

ISTRNUM—an integer value that defines the number of the structure located in reach ISTRRCH. ISTRNUM must be greater than zero and less than or equal to NSTRUCT defined for reach ISMODRCH in Item 12. ISTRNUM data can be specified in any order but a total of NSTRUCT structures should defined for reach ISTRRCH. Must be 0 if: (1) ISTRTYPE=11; or (2) SFR is specified in the MODFLOW-NWT name file and ISFRSEG and ISFRRCH > 0.

ISTRCONN—an integer value equal to the reach number structure ISTRNUM is connected to. ISTRCONN must be less than or equal to NREACHES and consistent with the reach connectivity defined in ITEM 4b(ICONN(1…NCONN)). Values of ISTRCONN equal to zero indicate that the tailwater end of the structure is unconnected. ISTRCONN must be zero if ISTRTYPE equals 11 or 12.

ISTRTYPE—an integer value that defines the structure type.

ISTRTYPE = -2, Uncontrolled discharge connection structure with a user-specified structure invert elevation. This option is used to define a zero-depth gradient boundary condition for unconnected reaches (ISTRCONN = 0).

ISTRTYPE = 0, No structure.

ISTRTYPE = 1, Specified elevation excess volume structure.

ISTRTYPE = 2, Uncontrolled discharge connection structure. If the reach is unconnected (ISTRCONN = 0), this option is used to define a critical-depth boundary condition.

ISTRTYPE = 3, Pump.

ISTRTYPE = 4, Specified stage-discharge relation.

ISTRTYPE = 5, Culvert.

ISTRTYPE = 6, Fixed crest weir.

ISTRTYPE = 7, Fixed gated spillway (underflow gate).

ISTRTYPE = 8, Movable crest weir (overflow gate).

ISTRTYPE = 9, Gated spillway (underflow gate).

ISTRTYPE = 10, Generalized spillway equation based on the equation 11 of Ansar, M., and Chen, Z. (2009) Journal of Hydraulic Engineering Doi: 10.1061/(ASCE)0733-9429(2009)135:7(602).

ISTRTYPE = 11, Inflow structure from SFR2 segment ISFRSEG and reach ISFRRCH. ISTRCONN must be 0 if ISTRTYPE=11.

ISTRTYPE = 12, Stage-dependent boundary flux based on Manning’s equation (eq. 6). ISTRCONN must be 0 if ISTRTYPE=12.

ISTRTYPE = 13, Overbank flow structure based on the fixed crest weir. Can only be used for non-model-based reaches (IGEOTYPE=1, 2, 3, or 4) coupled to a model-based reach (IGEOTYPE=5).

NSTRPTS—an integer value that defines the number of stage-discharge entries in Item 13c. NSTRPTS must be greater than zero but is only specified if ISTRTYPE = 4.

STRCD—a real number that is a weir discharge coefficient (dimensionless) for the structure entry. This variable is only specified if ISTRTYPE = 5, 6, 7, 8, 9, 10, or 13.

STRCD2—a real number that is an orifice discharge coefficient (dimensionless) for the structure entry. This variable is only specified if ISTRTYPE = 5, 7, 9, or 10.

STRCD3—a real number that is the dimensionless submergence exponent for the structure. A value of 0.5 is sufficient if specific data are not available for a structure. This variable is only specified if ISTRTYPE = 6, 7, 8, 9, 10, or 13.

STRINV—a real number that is the structure invert elevation (units of length) for the structure entry. This variable is only specified if ISTRTYPE = -2, 5, 6, 7, 8, 9, or 10.

STRINV2—a real number that is the downstream invert elevation (units of length) for the structure entry. This variable is only specified if ISTRTYPE = 5.

STRWID—a real number that is the structure width (units of length) perpendicular to flow for the structure. This variable is only specified if ISTRTYPE = 5, 6, 7, 8, 9, or 10. If ISTRTYPE = 5 and STRWID > 0, the culvert is circular and STRWID is the diameter of the culvert. If ISTRTYPE = 5 and STRWID < 0, the culvert is rectangular and |STRWID| is the culvert span.

STRWID2—a real number that is the culvert rise (units of length). This variable is only specified if ISTRTYPE = 5 and STRWID < 0.

STRLEN—a real number that is the culvert length (units of length). This variable is only required if ISTRTYPE = 5 or 12. This variable is optional if ISTRTYPE = -2 or 2 and defines the distance from ISTRRCH to the structure, otherwise STRLEN is internally set to one-half of the reach length (RLEN) of reach ISTRRCH. If ISTRTYPE = -2 or 2 and this variable is greater than zero, it defines the distance from ISTRRCH to the structure. If ISTRTYPE = -2 or 2 and this variable is less than or equal to zero, STRLEN is internally set to one-half of the reach length (RLEN) of reach ISTRRCH.

STRLEN2—a real number that is the culvert length or distance from the center of the reach to the structure (units of length). This variable is optional if ISTRTYPE = -2 or 2 and defines the distance from ISTRCONN to the structure, otherwise STRLEN2 is internally set to one-half of the reach length (RLEN) of reach ISTRCONN. If ISTRTYPE = -2 or 2 and this variable is greater than zero, it defines the distance from ISTRCONN to the structure. If ISTRTYPE = -2 or 2 and this variable is less than or equal to zero, STRLEN2 is internally set to one-half of the reach length (RLEN) of reach ISTRCONN.

STRMAN—a real number that is the culvert Manning’s roughness coefficient. This variable is only specified ISTRTYPE = 5.

STRWSMO

STRWSMO—a real number and a flag that defines the smoothing method and depth interval used to smooth the structure width for the overbank flow structure (ISTRTYPE=13). STRWSMO values less than zero indicate linear smoothing of the structure width smoothing will be applied for water depths less than |STRWSMO| length units above the structure invert. STRWSMO values greater than zero indicate sigmoid smoothing will be applied for water depths less than STRWSMO length units above the structure invert. Structure width smoothing will not be applied is STRWSMO is equal to zero.

STRVAL—a real number that is the inital flow rate (units of length3 per time) or gate opening (units of length) for the structure. If ISTRTYPE = 6 or 7, STRVAL is the gate opening for the stress period. This variable is only specified if ISTRTYPE = 3, 6, 7, 8, 9,10, 12, or 13. Tabular data from an external file will be used to define STRVAL for ISTRTYPE = 12 if STRVAL begins with the characters TABDATA (for example TABDATA001); STRVAL will be parsed to determine the tabular data item to use to define STRVAL data for the stage-dependent boundary flux structure.

ISTRDIR—an integer value that defines directional limits on flow for the structure. This variable is only specified if ISTRTYPE = 5, 6, 7, 8, 9, or 10.

ISTRDIR < 0, Restriction of flow from ISTRCONN to ISTRRCH.

ISTRDIR = 0, Bi-directional flow is allowed.

ISTRDIR > 0, Restriction of flow from ISTRRCH to ISTRCONN.

SFR2 segment that (1) supplies downstream segment discharge to SWR1 reach ISTRRCH or (2) SFR2 segment that receives SWR2 surface-water control structure discharge. ISFRSEG is not read if SFR is not specified in the  MODFLOW-NWT name file or if ISTRCONN is not equal to zero.

SFR2 reach in SFR2 segment ISFRSEG that receives SWR2 surface-water control structure discharge. Any SFR2 reach number can be specified if ISTRTYPE=11. ISFRRCH is not read if SFR is not specified in the MODFLOW-NWT name file or if ISTRCONN is not equal to zero.

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

Data Set 13b

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

CSTROTYP—a string variable that is used to set the SWR1 data type used to control structure operations. This variable is only specified if ISTRTYPE = 1, 3, 8, 9, or 10.

CSTROTYP = STAGE, simulated SWR1 stages at a user-defined reach will be used to operate the structure.

CSTROTYP = FLOW, simulated SWR1 flow at a user-defined reach connection will be used to operate the structure. A CSTROTYP = FLOW is not supported for ISTRTYPE = 1.

ISTRORCH—an integer value that defines the reach that will be used to operate the structure. This variable is only specified if ISTRTYPE = 3, 8, 9, or 10.

ISTROQCON—an integer value that defines the reach connection for reach ISTRORCH that will be used to operate the structure. This variable is only specified if ISTRTYPE = 3, 8, 9, or 10 and CSTROTYP = FLOW.

CSTROLO—a string variable that is a logical operation used to determine if a structure should be operated. This variable is only specified if ISTRTYPE = 3, 8, 9, or 10.

CSTROLO = GE, the structure will be operated when the STAGE in reach ISTRORCH or FLOW at the connection between reach ISTRORCH and ISTROQCON is greater than or equal to the specified structure criteria STRCRIT.

CSTROLO = LT, the structure will be operated when the STAGE in reach ISTRORCH or FLOW at the connection between reach ISTRORCH and ISTROQCON is less than the specified structure criteria STRCRIT.

CSTRCRIT—a string variable that is used to set the flag (ISTRTSTYPE) determining if tabular data from an external file will be used to define the control-elevation or control-flow criterion (STRCRIT – units of length or length3 per time) for the structure. Tabular data from an external file will be used to define STRCRIT if CSTRCRIT begins with the characters TABDATA (for example TABDATA001). CSTRCRIT will be parsed to determine the tabular data item to use to define STRCRIT data for the structure. The tabular data defining STRCRIT must be defined in the tabular data section (Item 4d) and specified in the NAM file using the keyword DATA. The text appearing  immediately following TABDATA will be interpreted as the unit number of the tab file specified in the Name File. Tabular data cannot be used to define the control-elevation control-flow criterion for a structure if tabular data are used to define STRVAL (see the description for CSTRVAL). If CSTRCRIT does not begin with TABDATA, CSTRCRIT will be converted to a real number repre­senting STRCRIT. STRCRIT is the control-elevation control-flow criterion that is evaluated in REACH ISTRORCH to determine if a structure should be operated. This variable is only specified if ISTRTYPE = 1, 3, 8, 9, or 10.

STRCRITC—a real number that is the control offset criterion (units of length or length3 per time) that must be evaluated in REACH ISTRORCH prior to closing the structure. The closing elevation is calculated by adding STRCRITC and STRCRIT. This variable is only specified if ISTRTYPE = 3, 8, 9, or 10.

STRRT—a real number that is pump startup rate (units of length3 per time2) or the opening rate (units of length per time or length3 per time2) of the operable structure. This variable is only specified if ISTRTYPE = 3, 8, 9, or 10.

STRMAX—a real number that is the maximum discharge rate (units of length3 per time) or the maximum opening(units of length) of the structure. This variable is only specified if ISTRTYPE = 1, 3, 8, 9, or 10.

CSTRVAL— a optional string variable that is used to set the flag (ISTRTSTYPE) determining if tabular data from an external file will be used to define the discharge (units of length3 per time) or gate opening (units of length) for the structure. Tabular data from an external file will be used to define STRVAL if CSTRVAL begins with the characters TABDATA (for example TABDATA001). CSTRVAL will be parsed to determine the tabular data item to use to define STRVAL data for the structure. The tabular data defining STRVAL must be defined in the tabular data section (Item 4d) and specified in the NAM file using the keyword DATA. Tabular data cannot be used to define the gate opening or discharge for a structure if tabular data are used to define STRCRIT (see the description for CSTRCRIT). If CSTRVAL does not begin with TABDATA, the variable is ignored and STRVAL will be calculated using the defined structure operation data. This optional variable is only specified if ISTRTYPE = 1, 3, 8, 9, or 10.

Data Set 13c

STRELEV(1) STRQ(1)

STRELEV(2) STRQ(2)

. . .

STRELEV(NSTRPTS) STRQ(NSTRPTS)

STRELEV(i)—a real value that is the elevation (in units of length) of the structure. By definition, the first of NSTRPTS values represents the lowest elevation; values for remaining points should be greater than the previous elevation. This variable is only specified if ISTRTYPE = 4.

STRQ(i)—a real value that is the flow rate (units of length cubed per time) for the structure entry STRELEV(i). This variable is only specified if ISTRTYPE = 4.

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

IRCHSTG— an integer value equal to the number of the reach. |IRCHSTG| must be greater than zero and less than or equal to NREACHES. |IRCHSTG| data can be specified in any order, but each entry must be assigned a unique number. If IRCHSTG < 0, stage data for reach |IRCHSTG| is defined using the current stage for reach int(STAGE). IRCHSTG cannot be less than 0 on the first stress period.

STAGE—a real value that is the stage for the reach or reach used to define the stage for reach IRCHSTG (if IRCHSTG<0). On the first stress period, STAGE must be defined for all reaches (NREACHES) with a stage > DMINDPTH and represents initial stages for the surface-water system. For subsequent stress periods, STAGE only needs to be specified for constant-stage reaches (ISWRBND < 0) or to change the reach offset for reaches using the reservoir-routing approximation (IROUTETYPE = 1 or 2) to simulate surface-water flow; STAGE values are not used to update stages for inactive and active reaches (ISWRBND = 1). If IRCHSTG < 0, int(STAGE) defines the reach that will be used to define the stage data for reach |IRCHSTG|.

Data Set 14b

[STAGE2D (NCOL, NROW)] -- U2DREL

STAGE2D—an array of positive real values used to define the stage for each reach in model grid cell (in units of length). This array is only specified if IRDSTG < 0. On the first stress period, STAGE2D represents initial stages for the surface-water system. For subsequent stress periods, STAGE2D is used to change the stage in constant-stage reaches (ISWRBND < 0) and/or reach offsets for reaches using the tilted-pool reservoir-routing approximation(IROUTETYPE = 2) to simulate surface-water flow.

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]

IRCHAUX— an integer value equal to the number of the reach. IRCHAUX must be greater than zero and less than or equal to NREACHES. IRCHAUX data can be specified in any order, but each entry must be assigned a unique number.

[xyz]—real values representing auxiliary variables for the reach. On the first stress period, [xyz] must be defined for all auxiliary variables defined in item 1a for all reaches. The [xyz] values must be defined in the order used to define the variables in item 1a.