MODFLOW Input Output
MODFLOW Input Output
MODFLOW Input Output
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Running a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Form of Input Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Block and Keyword Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Specification of Block Information in OPEN/CLOSE File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
File Name Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Lengths of Character Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Integer and Floating Point Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Array Input (READARRAY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
READARRAY Control Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
READARRAY Variable Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
READARRAY Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Description of Binary Array Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DIS Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DISV Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
DISU Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
List Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Description of Binary List Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Processing of Program Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Supported Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Scope of Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Example of Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Simulation Name File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Temporal Discretization (TDIS) Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Adaptive Time Step (ATS) Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Groundwater Flow (GWF) Model Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Information for Existing MODFLOW Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Units of Length and Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Steady-State Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ii
Volumetric Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Cell-By-Cell Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
GWF Model Name File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Structured Discretization (DIS) Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Discretization by Vertices (DISV) Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Unstructured Discretization (DISU) Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Initial Conditions (IC) Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Output Control (OC) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Observation (OBS) Utility for a GWF Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Example Observation Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Node Property Flow (NPF) Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Time-Varying Hydraulic Conductivity (TVK) Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Horizontal Flow Barrier (HFB) Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Structure of Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Explanation of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Example Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
iii
Figures
1. Schematic diagram showing the vertices and cells defined using the Discretization by Ver-
tices Package. The list of vertices used to define each cell must be in clockwise order. From
Langevin and others (2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2. Illustration of a simple stream network having seven reaches with a junction having two
reaches, a confluence of two reaches, and the resulting reach connectivity . . . . . . . . . . . . . . . . . . . . . 120
3. Illustration of a irregular cross section used to compute depth, wetted top width, wetted
perimeter, and wetted cross-sectional area for a stream reach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4. Illustrations of variously defined n-point cross-sections that show how wetted perimeter will
vary depending on the stage and the number of points used to define the cross-section . . . . . . . . . . 132
Tables
1. Character variable maximum sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. IPRN Code and corresponding print formats for array readers. These print codes determine
how the user-provided array is written to the list file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Components and subcomponents that are read using Input Data Processor (IDP) routines . . . . . . . . 14
5. Model types available in Version mf6.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6. Exchange types available in Version mf6.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7. Ftype values described in this report. The Pname column indicates whether or not a package
name can be provided in the name file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8. Available GWF model observation types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
xiii
Introduction
MODFLOW 6 is a command line executable program that reads input from ASCII text files, and option-
ally from binary files. MODFLOW 6 writes simulation output to ASCII text and binary files. MODFLOW 6
itself, like its predecessors, does not provide any graphical output, though users may decide to adopt a Graph-
ical User Interface (GUI) for preparing model input and visualizing model output. This document provides
details on the format of the input files and the format of the output files. Details on the numerical methods and
the underlying theory for MODFLOW 6 are described in separate reports (Hughes and others, 2017; Langevin
and others, 2017; Provost and others, 2017; Langevin and others, 2020; Hughes and others, 2022a; Langevin
and others, 2022; Hughes and others, 2022b; Langevin and others, 2024). Instructions for preparing the input
or visualizing the output is beyond the scope of this report.
Running a Simulation
MODFLOW 6 is run from the command line by entering the name of the MODFLOW 6 executable pro-
gram. If the run is successful, it will conclude with a statement about normal termination.
MODFLOW 6
U.S. GEOLOGICAL SURVEY MODULAR HYDROLOGIC MODEL
VERSION 6.5.0 05/23/2024
This software has been approved for release by the U.S. Geological
Survey (USGS). Although the software has been subjected to rigorous
review, the USGS reserves the right to update the software as needed
pursuant to further analysis and review. No warranty, expressed or
implied, is made by the USGS or the U.S. Government as to the
functionality of the software and related material nor shall the
fact of release constitute any such warranty. Furthermore, the
software is released on condition that neither the USGS nor the U.S.
Government shall be held liable for any damages resulting from its
authorized or unauthorized use. Also refer to the USGS Water
Resources Software User Rights Notice for complete use, copyright,
and distribution information.
MODFLOW 6 includes a number of switches that can be passed to the program in order to get additional
information. The available switches can be found by running MODFLOW 6 with the -h switch, for help. In
this case MODFLOW 6 will produce the following.
mf6 - MODFLOW 6.5.0 05/23/2024 (compiled May 23 2024 18:02:47)
usage: mf6 run MODFLOW 6 using "mfsim.nam"
or: mf6 [options] retrieve program information
2 MODFLOW 6 – Description of Input and Output
[1] https://github.com/MODFLOW-USGS/modflow6/issues
MODFLOW 6 requires that a simulation name file (described in a subsequent section titled “Simulation Name
File”) be present in the working directory. This simulation name file must be named “mfsim.nam”. If the
mfsim.nam file is not located in the present working directory, then MODFLOW 6 will terminate with the fol-
lowing error.
ERROR REPORT:
During execution MODFLOW 6 creates a simulation output file, called a listing file, with the name
“mfsim.lst”. This file contains general simulation information, including information about exchanges
between models, timing, and solver progress. Separate listing files are also written for each individual model.
These listing files contains the details for the specific models.
In the event that MODFLOW 6 encounters an error, the error message is written to the command line win-
dow as well as to the simulation listing file. The error message will also contain the name of the file that was
being read when the error occurred, if possible. This information can be used to diagnose potential causes of
the error.
MODFLOW 6 differs from its predecessors in the form of the input. Whereas previous MODFLOW ver-
sions read numerical values, arrays, and lists in a highly structured form, MODFLOW 6 reads information in
the form of blocks and keywords. MODFLOW 6 also reads arrays and lists of information, but these arrays
and lists are tagged with identifying block names or keywords. MODFLOW 6 will terminate with an error if it
detects an unrecognized block or keyword.
Form of Input Instructions 3
This example shows the items that may be specified with this OPTIONS block. Optional items are enclosed
between “[” and “]” symbols. The “<” and “>” symbols indicate a variable that must be provided by the
user. In this case, auxiliary is an array of size naux. Because there are bracket symbols around the entire
item, the user it not required to specify anything for this item. Likewise, the user may or may not invoke the
“PRINT_INPUT” option. Lastly, the user can specify “MAXIMUM_ITERATION” followed by a numeric value for
“maxsfrit”. If the user does not specify an optional item, then a default condition will apply. Behavior of the
default condition is described in the input instructions for that item.
A valid user input block for OPTIONS might be:
#This is my options block
BEGIN OPTIONS
AUXILIARY temperature salinity
MAXIMUM_ITERATION 10
4 MODFLOW 6 – Description of Input and Output
END OPTIONS
For most blocks, information can be read from a separate text file. In this case, all of the information for
the block must reside in the text file. The file name is specified using the OPEN/CLOSE keyword as the first
and only entry in the block as follows:
#This is an alternative options block
BEGIN OPTIONS
OPEN/CLOSE myoptblock.txt
END OPTIONS
When MODFLOW encounters the OPEN/CLOSE keyword, the program opens the specified file on unit 99
and continues processing the information in the file as if it were within the block itself. When the program
reaches the end of the file, the file is closed, and the program returns to reading the original package file. The
next line after the OPEN/CLOSE line must end the block.
Some blocks do not support the OPEN/CLOSE capability. A list of all of the blocks, organized by com-
ponent and input file type, are listed in a table in appendix A. This table also indicates the blocks that do not
support the OPEN/CLOSE capability.
Some blocks may require that a file name be entered. Although spaces within a file name are not generally
recommended, they can be specified if the entire file name is enclosed within single quotes, which means that
the file name itself cannot have a single quote within it. On Windows computers, file names are not case sen-
sitive, and thus, “model.dis” can be referenced within the input files as “MODEL.DIS”. On some other oper-
ating systems, however, file names are case sensitive and the case used in the input instructions must exactly
reflect the case used to name the file.
Character variables, which are used to store names of models, packages, observations and other objects,
are limited in the number of characters that can be used. Table 1 lists the limit used for each type of character
variable.
Form of Input Instructions 5
Real Variables
KIND: 8
TINY (smallest non-zero value): 2.225074-308
HUGE (largest value): 1.797693+308
PRECISION: 15
SIZE IN BITS: 64
Integer Variables
KIND: 4
HUGE (largest value): 2147483647
SIZE IN BITS: 32
Logical Variables
KIND: 4
SIZE IN BITS: 32
This information indicates that real variables have about 15 digits of precision. The smallest positive non-
zero value that can be stored is 2.2e-308. The largest value that can be stored is 1.8e+308. If the user enters
a value in an input file that cannot be stored, such as 1.9335e-310 for example, then the program can produce
unexpected results. This does not affect an exact value of zero, which can be stored accurately. Integer vari-
ables also have a maximum and minimum value, which is about 2 billion. Values larger and smaller than this
cannot be stored. These numbers are rarely exceeded for most practical problems, but as the size of models
(number of nodes) increase into the billions, then the program may need to be recompiled using a larger size
for integer variables. Long integers are used to calculate the amount of memory allocated in the memory man-
ager:
MEMORY MANAGER TOTAL STORAGE BY DATA TYPE, IN MEGABYTES
-------------------------------
ALLOCATED
DATA TYPE MEMORY
-------------------------------
Character 1.53300000E-03
6 MODFLOW 6 – Description of Input and Output
Logical 4.40000000E-05
Integer 100.03799
Real 223.43994
-------------------------------
Total 323.47951
-------------------------------
Currently, standard precision 4 byte logical variables are used throughout the program.
In this example, the uppercase ARRAY1 is a text string that is recognized by the program. While reading
through the DATA block, the program would recognize ARRAY1, and would then use READARRAY to fill
array1 with nval values.
With CONSTANT, all values in the array are set equal to constant.
2. INTERNAL [FACTOR <factor>] [IPRN <iprn>]
With INTERNAL, the individual array elements will be read from the same file that contains the control line.
3. OPEN/CLOSE <fname> [FACTOR <factor>] [(BINARY)] [IPRN <iprn>]
With OPEN/CLOSE, the array will be read from the file whose name is specified by fname. This file will be
opened just prior to reading the array and closed immediately after the array is read. A file that is read using
this control line can contain only a single array.
IPRN <iprn>—are a keyword and a flag that indicates whether the array being read should be written to the
Listing File after the array has been read and a code for indicating the format that should be used when
the array is written. The format codes are the same as for MODFLOW-2005. IPRN is set to zero when
the specified value exceeds those defined. If IPRN is less than zero or if the keyword and flag are omitted,
the array will not be printed. This IPRN capability is not functional for all data sets, and will eventually
become unsupported for all packages. For some packages that have transitioned to the new input data
processor, the EXPORT_ARRAY_ASCII option can be specified in the package OPTIONS block. When
this option is active, input arrays will be written to external text files.
Table 2. IPRN Code and corresponding print formats for array readers. These print codes determine how the user-provided
array is written to the list file.
READARRAY Examples
The following examples use free-format control lines for reading an array. The example array is a real
array consisting of 4 rows with 7 columns per row:
CONSTANT 5.7 This sets an entire array to the value "5.7".
INTERNAL FACTOR 1.0 IPRN 3 This reads the array values from the
1.2 3.7 9.3 4.2 2.2 9.9 1.0 file that contains the control line.
3.3 4.9 7.3 7.5 8.2 8.7 6.6 Thus, the values immediately follow the
8 MODFLOW 6 – Description of Input and Output
Some arrays define information that is required for the entire model grid, or part of a model grid. This
type of information is provided in a special type of data block called a “GRIDDATA” block. For example,
hydraulic conductivity is required for every cell in the model grid. Hydraulic conductivity is read from a
“GRIDDATA” block in the MODFLOW 6 GWF NPF Package input file. For GRIDDATA arrays with one
value for every cell in the model grid, the arrays can optionally be read in a LAYERED format, in which an
array is provided for each layer of the grid. Alternatively, the array can be read for the entire model grid. As
an example, consider the GRIDDATA block for the MODFLOW 6 GWF or GWT IC Package shown below:
BEGIN GRIDDATA
STRT [LAYERED]
<strt(nodes)> -- READARRAY
END GRIDDATA
Here, the initial heads for the model are provided in the strt array. If the optional LAYERED keyword
is present, then a separate array is provided for each layer. If the LAYERED keyword is not present, then the
entire starting head array is read at once. The LAYERED keyword may be useful to discretization packages
of type DIS and DISV, which support the concept of layers. Models defined with the DISU Package are not
layered.
For a structured DIS model, the READARRAY utility is used to read arrays that are dimensioned to the
full size of the grid (of size nlay*nrow*ncol). This utility first reads an array name, which associates the
input to be read with the desired array. For these arrays, an optional keyword “LAYERED” can be located
next to the array name. If “LAYERED” is detected, then a control line is provided for each layer and the array
is filled with values for each model layer. If the “LAYERED” keyword is absent, then a single control line is
used and the entire array is filled at once.
For example, the following block shows one way the MODFLOW 6 GWF model starting head array
(STRT) could be specified for a model with 4 layers. Following the array name and the “LAYERED” keyword
are four control lines, one for each layer.
STRT LAYERED
CONSTANT 10.0 #layer 1
CONSTANT 10.0 #layer 2
CONSTANT 10.0 #layer 3
CONSTANT 10.0 #layer 4
In this next example, the “LAYERED” keyword is absent. In this case, the control line applies to the entire
strt array. One control line is required, and a constant value of 10.0 will be assigned to STRT for all cells in
the model grid.
STRT
CONSTANT 10.0 #applies to all cells in the grid
In the next example, the “LAYERED” keyword is present and binary files are used for each layer. A con-
trol line with the “BINARY” keyword is required for each layer.
STRT LAYERED
OPEN/CLOSE strt.layer1.bin (BINARY) #layer1
OPEN/CLOSE strt.layer2.bin (BINARY) #layer2
OPEN/CLOSE strt.layer3.bin (BINARY) #layer3
OPEN/CLOSE strt.layer4.bin (BINARY) #layer4
In the next example, the “LAYERED” keyword is absent. In this case, a single control line with the
“BINARY” keyword is required and the binary file will include the entire data array.
STRT
OPEN/CLOSE strt.bin (BINARY) #layers1-4
Form of Input Instructions 9
A consequence of the way binary input files have been implemented in MODFLOW 6, simulated depen-
dent variable binary output (for example, head and concentration) cannot be used as binary array input for a
model. Instead, simulated dependent variable binary output must be processed and split into separate binary
files for each layer or combined into a single array equal to the size of the grid (for DIS grids this would be an
array equal to NCOL * NROW * NLAY).
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: DATA
where
The values specified for M1, M2, and M3 in Record 1 are dependent on the grid type and if the “LAYERED”
keyword is present on the READARRAY control line. For binary array data, KSTP, KPER, PERTIM, TOTIM,
and TEXT can be set to any value. Binary array input file specifications for each discretization type are given
below.
DIS Grids
For DIS grids, M1=NCOL, M2=NROW, and M3=ILAY when the “LAYERED” keyword is present on the
READARRAY control line. For this case, record 1 and 2 should be written as:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: ((DATA(J,I,ILAY),J=1,NCOL),I=1,NROW)
where
For DIS grids, M1=NCOL*NROW*NLAY, M2=1, and M3=1 when the “LAYERED” keyword is absent on the
READARRAY control line. For this case, record 1 and 2 should be written as:
10 MODFLOW 6 – Description of Input and Output
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: (((DATA(J,I,K),J=1,NCOL),I=1,NROW),K=1,NLAY)
where
DISV Grids
For DISV grids, M1=NCPL, M2=1, and M3=ILAY when the “LAYERED” keyword is present on the
READARRAY control line. For this case, record 1 and 2 should be written as:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: (DATA(J,ILAY),J=1,NCPL)
where
For DISV grids, M1=NCPL*NLAY, M2=1, and M3=1 when the “LAYERED” keyword is absent on the READAR-
RAY control line. For this case, record 1 and 2 should be written as:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: ((DATA(J,K),J=1,NCPL),K=1,NLAY)
DISU Grids
For DISU grids, M1=NODES, M2=1, M3=1. For this case, record 1 and 2 should be written as:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,M1,M2,M3
Record 2: (DATA(N),N=1,NODES)
where
List Input
Some items consist of several variables, such as layer, row, column, stage, and conductance, for example.
List input refers to a block of data with a separate item on each line. For some common list types, the first set
of variables is a cell identifier (denoted as cellid in this guide), such as layer, row, and column. With lists,
the input data for each item must start on a new line. All variables for an item are assumed to be contained in a
single line. Each input variable has a data type, which can be Double Precision, Integer, or Character. Integers
are whole numbers and must not include a decimal point or exponent. Double Precision numbers can include
a decimal point and an exponent. If no decimal point is included in the entered value, then the decimal point is
assumed to be at the right side of the value. Any printable character is allowed for character variables.
Variables starting with the letters I-N are most commonly integers; however, in some instances, a charac-
ter string may start with the letters I-N. Variables starting with the letters A-H and O-Z are primarily double
precision numbers; however, these variable names may also be used for character data. In MODFLOW 6 all
Form of Input Instructions 11
variables are explicitly declared within the source code, as opposed to the implicit type declaration in previous
MODFLOW versions. This explicit declaration means that the variable type can be easily determined from the
source code.
Free formatting is used throughout the input instructions. With free format, values are not required to
occupy a fixed number of columns in a line. Each value can occupy one or more columns as required to rep-
resent the value; however, the values must still be included in the prescribed order. One or more spaces, or a
single comma optionally combined with spaces, must separate adjacent values. Also, a numeric value of zero
must be explicitly represented with 0 and not by one or more spaces when free format is used, because detect-
ing the difference between a space that represents 0 and a space that represents a value separator is not possi-
ble. Free format is similar to Fortran’s list directed input.
Two capabilities included in Fortran’s list-directed input are not included in the free-format input imple-
mented in MODFLOW 6. Null values in which input values are left unchanged from their previous values are
not allowed. In general, MODFLOW’s input values are not defined prior to their input. A “/” cannot be used
to terminate an input line without including values for all the variables; data values for all required input vari-
ables must be explicitly specified on an input line. For character data, MODFLOW’s free format implemen-
tation is less stringent than the list-directed input of Fortran. Fortran requires character data to be delineated
by apostrophes. MODFLOW does not require apostrophes unless a blank or a comma is part of a character
variable.
As an example of a list, consider the PERIOD block for the GHB Package. The input format is shown
below:
BEGIN PERIOD <iper>
<cellid(ncelldim)> <bhead> <cond> [<aux(naux)>] [<boundname>]
<cellid(ncelldim)> <bhead> <cond> [<aux(naux)>] [<boundname>]
...
END PERIOD
Each line represents a separate item, which consists of variables. In this case, the first variable of the item,
cellid is an array of size ncelldim. The next two variables of the item are bhead and cond. Lastly, the item
has two optional variables, aux and boundname. Three of the variables shown in the list are colored in blue.
Variables that are colored in blue mean that they can be represented with a time series. The time series capabil-
ity is described in the section on Time-Variable Input in this document.
The following is simple example of a PERIOD block for the GHB Package, which shows how a list is
entered by the user.
BEGIN PERIOD 1
# lay row col stage cond
1 13 1 988.0 0.038
1 14 9 1045.0 0.038
END PERIOD
As described earlier in the section on “Block and Keyword Input,” block information can be read from a
separate text file. To activate reading a list from separate text file, the first and only entry in the block must be
a control line of the following form:
OPEN/CLOSE <fname>
where fname is the name of the file containing the list. Lists for the stress packages (CHD, WEL, DRN, RIV,
GHB, RCH, and EVT) have an additional BINARY option. The BINARY option is not supported for the
advanced stress packages (LAK, MAW, SFR, UZF, LKT, MWT, SFT, UZT). The BINARY options is speci-
fied as follows:
OPEN/CLOSE <fname> [(BINARY)]
If the (BINARY) keyword is found on the control line, then the file is opened as an unformatted file on
unit 99, and the list is read. There are a number of requirements for using the (BINARY) option for lists. All
12 MODFLOW 6 – Description of Input and Output
stress package lists begin with integer values for the cellid (layer, row, and column, for example). These val-
ues must be represented as integer numbers in the unformatted file. Also, all auxiliary data must be included
in the binary file; auxiliary data must be represented as double precision numbers. Lastly, the (BINARY)
option does not support entry of boundname, and so the BOUNDNAMES option should not be activated in
the OPTIONS block for the package.
CELLID is the cell identifier, and depends on the type of grid that is used for the simulation.;
RLIST is a double precision two-dimensional array of size (NDAT,NLIST) containing the stress package
PERIOD data;
NDAT is the number of columns in RLIST, which is the number of columns of real data in the stress package
PERIOD data;
AUXVAR is a double precision two-dimensional array of size (NAUX,NLIST) containing the auxiliary data for
the stress package PERIOD data;
NAUX is the number of columns in AUXVAR, which is the number of columns of real auxiliary data the in
stress package PERIOD data;
NLIST is the size of the list;
For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses
the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretiza-
tion (DISU) input file, CELLID is the node number for the cell. NLIST must be less than or equal to MAXBOUND
for a stress package. NAUX is determined by the number of AUXILIARY variable names define in the OPTIONS
block for the stress package.
Supported Components
A specific set of MODFLOW 6 components has been updated in the current version to use the IDP rou-
tines, as shown in Table 3. Two integration steps have been taken for each file type listed in the table. First,
IDP has been updated to support the reading and loading of variable input data for the component. File types
listed in the table, each previously read and processed by the component, are now processed by IDP. Second,
Processing of Program Input 13
the component itself has been refactored to retrieve input from managed memory locations in a predictable
way. Components and associated file types shown in table 3 are described in more detail in later sections of
this document.
14 MODFLOW 6 – Description of Input and Output
Table 3. Components and subcomponents that are read using Input Data Processor (IDP) routines.
Scope of Change
The Input Data Processor introduces transparent changes that are beyond the scope of this document.
Input logging differences, however, are readily apparent when comparing to earlier versions of MODFLOW 6.
These differences are primarily related to timing as input files processed by IDP are read before the simula-
tion has been created. Logging appears in the simulation log (mfsim.lst) in part because simulation models and
their associated listing files do not exist at the time when input is read. In addition, input logging reflects only
what was read and loaded to memory as further processing and use is deferred to the simulation components
that the input is intended for. Summaries of memory managed variables, including input data variables loaded
by IDP, are possible to view in the simulation listing files with a Simulation Name File option described later.
Example of Logging
Below is an example of simulation logging (to the mfsim.lst output file) for two model package input files
read and loaded by IDP routines. The first logging block results from processing a DIS6 input file and the sec-
ond logging block results from processing an NPF6 input file. Variable names in the blocks are described in
later sections of this document.
Structure of Blocks
BEGIN OPTIONS
[CONTINUE]
[NOCHECK]
[MEMORY_PRINT_OPTION <memory_print_option>]
[MAXERRORS <maxerrors>]
[PRINT_INPUT]
[HPC6 FILEIN <hpc6_filename>]
END OPTIONS
BEGIN TIMING
TDIS6 <tdis6>
END TIMING
BEGIN MODELS
<mtype> <mfname> <mname>
<mtype> <mfname> <mname>
...
END MODELS
BEGIN EXCHANGES
<exgtype> <exgfile> <exgmnamea> <exgmnameb>
<exgtype> <exgfile> <exgmnamea> <exgmnameb>
...
END EXCHANGES
Explanation of Variables
Block: OPTIONS
CONTINUE—keyword flag to indicate that the simulation should continue even if one or more solutions do not
converge.
NOCHECK—keyword flag to indicate that the model input check routines should not be called prior to each time
step. Checks are performed by default.
Simulation Name File 17
memory_print_option—is a flag that controls printing of detailed memory manager usage to the end of the sim-
ulation list file. NONE means do not print detailed information. SUMMARY means print only the total mem-
ory for each simulation component. ALL means print information for each variable stored in the memory
manager. NONE is default if MEMORY_PRINT_OPTION is not specified.
maxerrors—maximum number of errors that will be stored and printed.
PRINT_INPUT—keyword to activate printing of simulation input summaries to the simulation list file (mfsim.lst).
With this keyword, input summaries will be written for those packages that support newer input data model
routines. Not all packages are supported yet by the newer input data model routines.
HPC6—keyword to specify that record corresponds to a hpc file.
FILEIN—keyword to specify that an input filename is expected next.
hpc6_filename—name of input file to define HPC file settings for the HPC package. See the “HPC File” section
for instructions for preparing HPC input files.
Block: TIMING
Block: MODELS
Block: EXCHANGES
Block: SOLUTIONGROUP
group_num—is the group number of the solution group. Solution groups must be numbered sequentially, starting
with group number one.
mxiter—is the maximum number of outer iterations for this solution group. The default value is 1. If there is
only one solution in the solution group, then MXITER must be 1.
slntype—is the type of solution. The Integrated Model Solution (IMS6) and Explicit Model Solution (EMS6)
are the only supported options in this version.
slnfname—name of file containing solution input.
slnmnames—is the array of model names to add to this solution. The number of model names is determined by
the number of model names the user provides on this line.
18 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[TIME_UNITS <time_units>]
[START_DATE_TIME <start_date_time>]
[ATS6 FILEIN <ats6_filename>]
END OPTIONS
BEGIN DIMENSIONS
NPER <nper>
END DIMENSIONS
BEGIN PERIODDATA
<perlen> <nstp> <tsmult>
<perlen> <nstp> <tsmult>
...
END PERIODDATA
Explanation of Variables
Block: OPTIONS
time_units—is the time units of the simulation. This is a text string that is used as a label within model out-
put files. Values for time_units may be “unknown”, “seconds”, “minutes”, “hours”, “days”, or “years”. The
default time unit is “unknown”.
start_date_time—is the starting date and time of the simulation. This is a text string that is used as a label
within the simulation list file. The value has no effect on the simulation. The recommended format for the
starting date and time is described at https://www.w3.org/TR/NOTE-datetime.
ATS6—keyword to specify that record corresponds to an adaptive time step (ATS) input file. The behavior of ATS
and a description of the input file is provided separately.
FILEIN—keyword to specify that an input filename is expected next.
ats6_filename—defines an adaptive time step (ATS) input file defining ATS controls. Records in the ATS file
can be used to override the time step behavior for selected stress periods.
Block: DIMENSIONS
Block: PERIODDATA
BEGIN OPTIONS
TIME_UNITS DAYS
END OPTIONS
BEGIN DIMENSIONS
NPER 2
END DIMENSIONS
BEGIN PERIODDATA
365.00 1 1.0 Items: PERLEN NSTP TSMULT
365.00 10 1.2 Items: PERLEN NSTP TSMULT
END PERIODDATA
22 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXATS <maxats>
END DIMENSIONS
BEGIN PERIODDATA
<iperats> <dt0> <dtmin> <dtmax> <dtadj> <dtfailadj>
<iperats> <dt0> <dtmin> <dtmax> <dtadj> <dtfailadj>
...
END PERIODDATA
Explanation of Variables
Block: DIMENSIONS
maxats—is the number of records in the subsequent perioddata block that will be used for adaptive time stepping.
Adaptive Time Step (ATS) Utility 23
Block: PERIODDATA
iperats—is the period number to designate for adaptive time stepping. The remaining ATS values on this line
will apply to period iperats. iperats must be greater than zero. A warning is printed if iperats is greater than
nper.
dt0—is the initial time step length for period iperats. If dt0 is zero, then the final step from the previous stress
period will be used as the initial time step. The program will terminate with an error message if dt0 is nega-
tive.
dtmin—is the minimum time step length for this period. This value must be greater than zero and less than
dtmax. dtmin must be a small value in order to ensure that simulation times end at the end of stress periods
and the end of the simulation. A small value, such as 1.e-5, is recommended.
dtmax—is the maximum time step length for this period. This value must be greater than dtmin.
dtadj—is the time step multiplier factor for this period. If the number of outer solver iterations are
less than the product of the maximum number of outer iterations (OUTER_MAXIMUM) and
ATS_OUTER_MAXIMUM_FRACTION (an optional variable in the IMS input file with a default value of
1/3), then the time step length is multiplied by dtadj. If the number of outer solver iterations are greater than
the product of the maximum number of outer iterations and ATS_OUTER_MAXIMUM_FRACTION, then
the time step length is divided by dtadj. dtadj must be zero, one, or greater than one. If dtadj is zero or one,
then it has no effect on the simulation. A value between 2.0 and 5.0 can be used as an initial estimate.
dtfailadj—is the divisor of the time step length when a time step fails to converge. If there is solver failure,
then the time step will be tried again with a shorter time step length calculated as the previous time step
length divided by dtfailadj. dtfailadj must be zero, one, or greater than one. If dtfailadj is zero or one, then
time steps will not be retried with shorter lengths. In this case, the program will terminate with an error, or
it will continue of the CONTINUE option is set in the simulation name file. Initial tests with this variable
should be set to 5.0 or larger to determine if convergence can be achieved.
BEGIN dimensions
MAXATS 2
END dimensions
BEGIN perioddata
# per dt0 dtmin dtmax dtadj dtfailadj
2 100.0 1.0E-5 1000.0 2.0 5.0
7 10.0 1.0E-5 100.0 1.7 2.0
END perioddata
24 MODFLOW 6 – Description of Input and Output
1. The GWF Model in MODFLOW 6 supports three alternative input packages for specifying the grid used to dis-
cretize the groundwater system.
∙ The Discretization (DIS) Package defines a grid based on layers, rows, and columns. In this report, this type
of grid is referred to as a “regular MODFLOW grid” because it corresponds to traditional MODFLOW grids.
An interior cell in a regular MODFLOW grid is connected to four adjacent cells in the same layer, to one
overlying cell, and to one underlying cell.
∙ The Discretization by Vertices (DISV) Package defines a grid using a list of (𝑥, 𝑦) vertex pairs and the
number of layers. A list of vertices is provided by the user to define a two-dimensional horizontal grid in
plan view. This list of vertices may define a regular MODFLOW grid, or they may define more complex
Groundwater Flow (GWF) Model Input 25
grids, such as grids consisting of triangles, hexagons, or Voronoi polygons, for example. This same two-
dimensional horizontal grid applies to each layer in the model. Cells defined using the DISV Package are
referenced by layer number and by the cell number within the horizontal grid. Within a layer, a cell may be
horizontally connected to any number of surrounding cells in that layer. In the vertical direction a cell can be
connected to only one overlying cell and only one underlying cell. Grids defined with the DISV Package are
considered to be unstructured.
∙ The unstructured Discretization (DISU) Package is the most flexible of the three packages and is patterned
after the unstructured grid implemented in MODFLOW-USG. For each cell, the user specifies a list of con-
nected cells and the connection properties. When the DISU Package is used, cells are referenced only by their
cell number; unlike the MODFLOW-USG approach, there is no concept of a layer in the DISU Package in
MODFLOW 6, but cells may still overlie or underlie one another.
2. For the three grid types supported in the GWF Model (DIS, DISV, and DISU), cells can be permanently excluded
from the grid for the simulation. Input values (such as hydraulic conductivity) are still required for these excluded
cells, and the program will write special codes or zero values for output, but the program does not allocate memory
or store values for excluded cells during run time. In this case, the matrix equations are formulated for a reduced
system in which only the included cells are numbered. Users can also mark excluded cells as “vertical pass-
through cells,” but this option is only available for DIS and DISV grids. When these vertical pass-through cells are
encountered, the program connects the cells overlying and underlying the pass-through cell. This capability allows
“pinched” cells to be removed from the solution. These options to exclude cells or exclude them as pass-through
cells are available through specification of the IDOMAIN array.
3. There is no longer a Basic Package input file. Initial head values are specified using an Initial Conditions (IC) Pack-
age, and constant heads are specified using the Time Varying Specified Head (CHD) Package. Cells that are perma-
nently excluded from the simulation can be eliminated using the IDOMAIN capability entered through the DIS or
DISV Packages. For a cell that may transition from inactive (“dry”) to active (“wet”) during a simulation, the user
can start the cell as inactive by assigning an initial head below the cell bottom.
4. The Newton-Raphson formulations and accompanying upstream weighting schemes implemented in MODFLOW-
NWT and MODFLOW-USG for handling dry or nearly dry cells have been synthesized into a single formulation.
The Newton-Raphson formulation in the GWF Model for MODFLOW 6 remains an optional alternative to the stan-
dard formulation used in most previous MODFLOW versions. Much of the Langevin and others (2017) report is
focused on systematically explaining standard and Newton-Raphson formulations for the GWF Model and its pack-
ages.
5. Information on temporal discretization, such as number of stress periods, period lengths, number of time steps, and
time step multipliers, is specified at the simulation level, rather than for an individual model. This information is
provided in the Timing Module, which controls the temporal discretization and applies to all models within a sim-
ulation. The Timing Module is part of the MODFLOW 6 framework and is described separately in Hughes and
others (2017).
6. Aquifer properties used to calculate hydraulic conductance are specified in the Node Property Flow (NPF) Package.
In MODFLOW 6, the NPF Package calculates intercell conductance values, manages cell wetting and drying, and
adds Newton-Raphson terms for intercell flow expressions. The NPF Package allows individual cells to be desig-
nated as confined or convertible; this was not an option in previous MODFLOW versions as the designation was by
layer. The NPF Package also has several options for simulating drainage problems and problems involving perched
aquifers where an active cell overlies a partially saturated cell. The default NPF Package behavior (in which none
of these options are set) is the most stable for typical groundwater problems. The default NPF Package behavior
does not correspond to the default behavior for other MODFLOW internal flow packages. The NPF Package does
not support quasi-3D confining units. The NPF Package replaces the Layer Property Flow (LPF), Block-Centered
Flow (BCF), and Upstream Weighting (UPW) Packages from previous MODFLOW versions. Capabilities of the
Hydrogeologic Unit Flow (HUF) Package (Anderman and Hill, 2000, 2003) are not supported in the GWF Model
of MODFLOW 6.
7. Aquifer storage properties are specified in the Storage (STO) Package. If the STO Package is excluded for a model,
then the model represents steady-state conditions. If the STO Package is included, users can specify steady-state or
transient conditions by stress period as needed. Compressible storage contributions are no longer approximated as
26 MODFLOW 6 – Description of Input and Output
zero for unconfined layers; contributions from pore drainage and compressible storage are separated in the model
output.
8. The Horizontal Flow Barrier (HFB) Package (Hsieh and Freckleton, 1993; Harbaugh, 2005) in MODFLOW 6
allows barrier properties and locations to change by stress period. The capability to change barriers by stress period
was not supported in previous MODFLOW versions.
9. The GWF Model in MODFLOW 6 allows multiple stress packages of the same type to be specified for a single
GWF Model. This capability is also available in MODFLOW-CDSS (Banta, 2011). Package entries written to the
budget file and budget terms in the listing file are written separately for each package.
10. Input of boundary conditions for simulation in multiple stress periods is entered differently than for previous MOD-
FLOW versions. Boundary conditions are specified for a stress period in a “PERIOD” block. These boundary con-
ditions remain active at their specified values until a subsequent “PERIOD” block is encountered or the end of the
simulation is reached. Individual entries within the “PERIOD” block can be specified as a time-series entry. Values
for these variables, which may correspond to a well pumping rate or a drain conductance, for example, are interpo-
lated from a time-series dataset, for each time step, using several different interpolation options.
11. The Flow and Head Boundary (FHB) Package (Leake and Lilly, 1997; Harbaugh, 2005) is not supported in MOD-
FLOW 6; however, its capabilities can be replicated using the WEL Package, the CHD Package, and the new time-
series capability.
12. There is one Evapotranspiration (EVT) Package for MODFLOW 6. The MODFLOW 6 EVT Package contains the
functionality of the MODFLOW-2005 EVT Package, the Segmented Evapotranspiration (ETS) Package (Banta,
2000), and the Riparian Evapotranspiration (RIP-ET) Package (Maddock and others, 2012).
13. A new Multi-Aquifer Well (MAW) Package replaces the Multi-Node Well (MNW1 and MNW2) Packages (Hal-
ford and Hanson, 2002; Konikow and others, 2009). The new package does not contain all of the options available
in MNW1 and MNW2, but it does contain the most commonly used ones. It also has new capabilities for simu-
lating flowing wells. The MAW Package is solved as part of the matrix solution and is tightly coupled with the
GWF Model. This tight coupling with the GWF Model may substantially improve convergence for simulations of
groundwater flow to multi-aquifer wells.
14. Most capabilities of the Stream (STR) and Streamflow Routing (SFR) Packages (Prudic, 1989; Prudic and others,
2004; Niswonger and Prudic, 2005) are included in MODFLOW 6 as a new SFR Package. The new SFR Package
contains all of the functionality of the SFR Package in MODFLOW-2005 with the following exceptions: (a) the
concept of a “segment” has been eliminated, and (b) unsaturated zone flow beneath stream reaches cannot be simu-
lated.
15. A new Lake (LAK) Package replaces the existing MODFLOW Lake Packages (Merritt and Konikow, 2000). In
addition to being able to represent lakes that are incised into the model grid, the new LAK Package can also repre-
sent sub-grid scale lakes that are conceptualized as being on top of the model. The status of a lake can change dur-
ing the simulation between ACTIVE, INACTIVE, and CONSTANT. The new package contains most of the capabilities
available in previous LAK Packages, including the ability to apply recharge and evapotranspiration to underlying
cells if the lake is dry. The LAK Package documented here does not represent unsaturated zone flow beneath a lake
or support for the coalescing lake option described in Merritt and Konikow (2000).
16. A new Unsaturated Zone Flow (UZF) Package, based on the one described by Niswonger and others (2006), is
included in the GWF Model of MODFLOW 6. The new UZF Package allows the UZF capabilities to be applied to
only selected cells of the GWF model. The new UZF Package also supports a multi-layer option, which allows for
vertical heterogeneity in unsaturated zone properties.
17. A new Water Mover (MVR) Package is included in MODFLOW 6. The MVR Package can be used to transfer
water from individual “provider” features of selected packages (WEL, DRN, RIV, GHB, MAW, SFR, LAK, and
UZF) to individual ”receiver” features of the advanced packages (MAW, SFR, LAK, and UZF). Simple rules are
used to determine how much of the available water is moved from the provider to the receiver, which allows man-
agement controls to be represented.
Groundwater Flow (GWF) Model Input 27
18. A new Skeletal Storage, Compaction, and Subsidence (CSUB) Package was added to MODFLOW 6 in version
6.1.0. The CSUB Package is documented in Hughes and others (2022b). The one-dimensional effective-stress
based compaction theory implemented in the CSUB Package is based on Leake and Galloway (2007). The numer-
ical approach used for delay interbeds in the CSUB package is based on Hoffmann and others (2003) and uses
the same one-dimensional effective-stress based compaction theory as coarse-grained and fine-grained no-delay
interbed sediments.
19. MODFLOW 6 contains a flexible new Observation (OBS) capability, which allows the user to define many differ-
ent types of continuous-in-time observations. The new OBS capability replaces the Observation Process (Hill and
others, 2000), the Gage Package, and the HYDMOD capability (Hanson and Leake, 1999) in previous MODFLOW
versions. Flow, head, and drawdown observations can be obtained for the GWF Model. Flow and other package-
specific observations, such as the head in a multi-aquifer well or lake stage, for example, can also be obtained.
These observed values can be used subsequently with a parameter estimation program or they can be used to make
time-series plots of a wide range of simulated values. The new OBS capability does not support specification of
field-measured observations, calculation of residuals, or interpolation within a grid, as was supported in previous
versions of the MODFLOW OBS Process.
20. The GWF Model described in this report does not support the following list of packages and capabilities. Support
for some of these capabilities may be added in future MODFLOW 6 versions.
In addition to this list of major differences, there are other differences between MODFLOW 6 and previous MOD-
FLOW versions in terms of the input and output files and the way users interact with the program. These differences
include:
1. The MODFLOW 6 program begins by reading a simulation name file. The simulation name file must be named
“mfsim.nam.”
2. All real variables in MODFLOW 6 are declared as double precision floating point numbers. Real variables written
to binary output files are also written in double precision.
3. Unit numbers are no longer specified by the user. Unit numbers are determined automatically by MODFLOW 6
based upon user-provided file names.
4. The GWF Model name file contains a list of packages that are active for the model. Names for output files are not
specified in the name file. Names for output files, such as the head and budget files are specified in the OC Package.
5. The EXTERNAL option for reading arrays and lists is no longer supported; however, the OPEN/CLOSE option is
still supported. The SFAC option for lists is no longer supported; however, many packages allow for specification
of an auxiliary variable which can serve as a multiplier on a column of values in the list.
6. The CHD Package contains new flexibility. Cells can transition between constant-head cells and active cells during
the simulation. This was not allowed in previous MODFLOW versions. Also, the CHD Packages no longer per-
forms linear interpolation between a starting (shead) and ending head (ehead). Only a single head value is provided
for each constant-head cell. The capability to linearly interpolate a head value for each time step within a stress
period is available through the use of time series.
28 MODFLOW 6 – Description of Input and Output
7. There are two different forms of input for the RCH and EVT Packages: array-based input and list-based input. For
models that use DIS Package, the RCH and EVT input can be provided as arrays, which is consistent with previ-
ous MODFLOW versions. To use array input, the user must specify the READASARRAYS keyword in the options
block. The READASARRAYS option can also be used for models that use the DISV Package. If the READASAR-
RAYS option is not specified, then input to the RCH and EVT Packages is provided in list form. List-based input is
the only option supported when the DISU Package is used.
List-based input offers several advantages over the array-based input for specifying recharge and evapotranspira-
tion. First, multiple list entries can be specified for a single cell. This makes it possible to divide a cell into mul-
tiple areas, and assign a different recharge or evapotranspiration rate for each area (perhaps based on land use or
some other criteria). In this case, the user would likely specify an auxiliary variable to serve as a multiplier. This
multiplier would be calculated by the user and provided in the input file as the fractional cell are for the individual
recharge entries. Another advantage to using list-based input for specifying recharge is that “boundnames” can be
specified. Boundnames work with the Observations capability and can be used to sum recharge or evapotranspi-
ration rates for entries with the same boundname. A disadvantage of the list-based input is that one cannot easily
assign recharge or evapotranspiration rates to the entire model without specifying a list of model cells. For this rea-
son MODFLOW 6 also supports array-based input.
8. Calculation and reporting of drawdown for the model grid is no longer supported, as this calculation is easily per-
formed as a postprocessing step. Calculation of drawdown is supported as an observation type by the OBS Pack-
age; drawdown is calculated as the difference between the starting head specified in the IC Package and the calcu-
lated head.
9. There are differences in the output files created by MODFLOW 6, such as:
∙ A separate listing file is written for the simulation. This simulation listing file contains information about the
simulation, including solver information. Separate listing files are written for each GWF Model that is part of
the simulation.
∙ Unformatted head files written by MODFLOW 6 are consistent with those written by previous MODFLOW
versions; however, all real values are written in double precision.
∙ The budget file written by the GWF Model is always written in “compact” form (as opposed to full three-
dimensional arrays) and uses new method codes, which allow model and package names to be written to the
file. Simulated intercell flows are always written in a compressed sparse row format, even for regular MOD-
FLOW grids.
∙ Information about the GWF Model grid is written to a separate file, called a “binary grid file” each time the
model runs. The binary grid file can be used by postprocessing programs for subsequent analysis. The format
of the binary grid file is described in a section on “Binary Output Files.”
Steady-State Simulations
A steady-state simulation is represented by a single stress period having a single time step with the storage term set
to zero. Setting the number and length of stress periods and time steps is the responsibility of the Timing Module of the
MODFLOW 6 framework. The length of the stress period and time step will not affect the head solution because the
time derivative is not calculated in a steady-state problem. Setting the storage term to zero is the responsibility of the
Storage Package. Most other packages need not "know" that a simulation is steady state.
A GWF Model also can be mixed transient and steady state because each stress period can be designated transient
or steady state. Thus, a GWF Model can start with a steady-state stress period and continue with one or more transient
stress periods. The settings for controlling steady-state and transient options are in the Storage Package. If the Storage
Package is not specified for a GWF Model, then the storage terms are zero and the GWF Model will be steady state.
Volumetric Budget
A summary of all inflows (sources) and outflows (sinks) of water is called a water budget. The water budget for
the GWF Model is termed a volumetric budget because volumes of water and volumetric flow rates are involved; thus
strictly speaking, a volumetric budget is not a mass balance, although this term has been used in other model reports.
MODFLOW 6 calculates a water budget for the overall model as a check on the acceptability of the solution, and to pro-
vide a summary of the sources and sinks of water to the flow system. The water budget is printed to the GWF Model
Listing File for selected time steps.
Numerical solution techniques for simultaneous equations do not always result in a correct answer; in particular,
iterative solvers may stop iterating before a sufficiently close approximation to the solution is attained. A water budget
provides an indication of the overall acceptability of the solution. The system of equations solved by the model actually
consists of a flow continuity statement for each model cell. Continuity should also exist for the total flows into and out
of the model—that is, the difference between total inflow and total outflow should equal the total change in storage. In
the model program, the water budget is calculated independently of the equation solution process, and in this sense may
provide independent evidence of a valid solution.
The total budget as printed in the output does not include internal flows between model cells—only flows into or out
of the model as a whole. For example, flow to or from rivers, flow to or from constant-head cells, and flow to or from
wells are all included in the overall budget terms. Flow into and out of storage is also considered part of the overall bud-
get inasmuch as accumulation in storage effectively removes water from the flow system and storage release effectively
adds water to the flow—even though neither process, in itself, involves the transfer of water into or out of the ground-
water regime. Each hydrologic package calculates its own contribution to the budget.
For every time step, the budget subroutine of each hydrologic package calculates the rate of flow into and out of the
system due to the process simulated by the package. The inflows and outflows for each component of flow are stored
separately. Most packages deal with only one such component of flow. In addition to flow, the volumes of water entering
and leaving the model during the time step are calculated as the product of flow rate and time-step length. Cumulative
volumes, from the beginning of the simulation, are then calculated and stored.
The GWF Model uses the inflows, outflows, and cumulative volumes to write the budget to the Listing File at the
times requested by the model user. When a budget is written, the flow rates for the last time step and cumulative volumes
from the beginning of simulation are written for each component of flow. Inflows are written separately from outflows.
Following the convention indicated above, water entering storage is treated as an outflow (that is, as a loss of water from
the flow system) while water released from storage is treated as an inflow (that is, a source of water to the flow system).
In addition, total inflow and total outflow are written, as well as the difference between total inflow and outflow. The
difference is then written as a percentage error, calculated using the formula:
100(𝐼𝑁 − 𝑂𝑈 𝑇 )
𝐷= (1)
(𝐼𝑁 + 𝑂𝑈 𝑇 )/2
where 𝐷 is the percentage error term, 𝐼𝑁 is the total inflow to the system, and 𝑂𝑈 𝑇 is the total outflow.
If the model equations are solved correctly, the percentage error should be small. In general, flow rates may be taken
as an indication of solution validity for the time step to which they apply, while cumulative volumes are an indication of
validity for the entire simulation up to the time of the output. The budget is written to the GWF Model Listing File at the
end of each stress period whether requested or not.
30 MODFLOW 6 – Description of Input and Output
Cell-By-Cell Flows
In some situations, calculating flow terms for various subregions of the model is useful. To facilitate such calcu-
lations, provision has been made to save flow terms for individual cells in a separate binary file so they can be used in
computations external to the model itself. These individual cell flows are referred to here as “cell-by-cell” flow terms and
are of four general types: (1) cell-by-cell stress flows, or flows into or from an individual cell caused by one of the exter-
nal stresses represented in the model, such as evapotranspiration or recharge; (2) cell-by-cell storage terms, which give
the rate of accumulation or depletion of storage in an individual cell; and (3) internal cell-by-cell flows, which are actu-
ally the flows across individual cell faces—that is, between adjacent model cells. These four kinds of cell-by-cell flow
terms are discussed further in subsequent paragraphs. To save any of these cell-by-cell terms, two flags in the model
input must be set. The input to the Output Control file indicates the time steps for which cell-by-cell terms are to be
saved. In addition, each hydrologic package includes an option called SAVE_FLOWS that must be set if the cell-by-cell
terms computed by that package are to be saved. Thus, if the appropriate option in the Evapotranspiration Package input
is set, cell-by-cell evapotranspiration terms will be saved for each time step for which the saving of cell-by-cell flow is
requested through the Output Control Option. Only flow values are saved in the cell-by-cell files; neither water volumes
nor cumulative water volumes are included. The flow dimensions are volume per unit time, where volume and time are
in the same units used for all model input data. The cell-by-cell flow values are stored in unformatted form to make the
most efficient use of disk space; see the Budget File section toward the end of this user guide for information on how the
data are written to a file.
The cell-by-cell storage term gives the net flow to or from storage in a variable-head cell. The net storage for each
cell in the grid is saved in transient simulations if the appropriate flags are set. Withdrawal from storage in the cell is
considered positive, whereas accumulation in storage is considered negative.
The cell-by-cell constant-head flow term gives the flow into or out of an individual constant-head cell (specified with
the CHD Package). This term is always associated with the constant-head cell itself, rather than with the surrounding
cells that contribute or receive the flow. A constant-head cell may be surrounded by as many as six adjacent variable-
head cells for a regular grid or any number of cells for the other grid types. The cell-by-cell calculation provides a sin-
gle flow value for each constant-head cell, representing the algebraic sum of the flows between that cell and all of the
adjacent variable-head cells. A positive value indicates that the net flow is away from the constant-head cell (into the
variable-head part of the grid); a negative value indicates that the net flow is into the constant-head cell.
The internal cell-by-cell flow values represent flows across the individual faces of a model cell. Flows between cells
are written in the compressed row storage format, whereby the flow between cell 𝑛 and each one of its connecting 𝑚
neighbor cells are contained in a single one-dimensional array. Flows are positive for the cell in question. Thus the flow
reported for cell 𝑛 and its connection with cell 𝑚 is opposite in sign to the flow reported for cell 𝑚 and its connection
with cell 𝑛. These internal cell-by-cell flow values are useful in calculations of the groundwater flow into various subre-
gions of the model, or in constructing flow vectors.
Cell-by-cell stress flows are flow rates into or out of the model, at a particular cell, owing to one particular external
stress. For example, the cell-by-cell evapotranspiration term for cell 𝑛 would give the flow out of the model by evapo-
transpiration from cell 𝑛. Cell-by-cell stress flows are considered positive if flow is into the cell, and negative if out of
the cell.
Groundwater Flow (GWF) Model Input 31
Structure of Blocks
BEGIN OPTIONS
[LIST <list>]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[NEWTON [UNDER_RELAXATION]]
END OPTIONS
BEGIN PACKAGES
<ftype> <fname> [<pname>]
<ftype> <fname> [<pname>]
...
END PACKAGES
Explanation of Variables
Block: OPTIONS
list—is name of the listing file to create for this GWF model. If not specified, then the name of the list file will
be the basename of the GWF model name file and the ’.lst’ extension. For example, if the GWF name file is
called “my.model.nam” then the list file will be called “my.model.lst”.
PRINT_INPUT—keyword to indicate that the list of all model stress package information will be written to the
listing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of all model package flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that all model package flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
NEWTON—keyword that activates the Newton-Raphson formulation for groundwater flow between connected, con-
vertible groundwater cells and stress packages that support calculation of Newton-Raphson terms for ground-
water exchanges. Cells will not dry when this option is used. By default, the Newton-Raphson formulation is
not applied.
UNDER_RELAXATION—keyword that indicates whether the groundwater head in a cell will be under-relaxed
when water levels fall below the bottom of the model below any given cell. By default, Newton-Raphson
UNDER_RELAXATION is not applied.
Block: PACKAGES
ftype—is the file type, which must be one of the following character values shown in table 7. Ftype may be
entered in any combination of uppercase and lowercase.
32 MODFLOW 6 – Description of Input and Output
fname—is the name of the file containing the package input. The path to the file should be included if the file is
not located in the folder where the program was run.
pname—is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed in
PNAME. PNAME character values are read and stored by the program for stress packages only. These names
may be useful for labeling purposes when multiple stress packages of the same type are located within a sin-
gle GWF Model. If PNAME is specified for a stress package, then PNAME will be used in the flow budget
table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME is case
insensitive and is stored in all upper case letters.
Table 7. Ftype values described in this report. The Pname column indicates whether or not a package name can be provided in
the name file.
PRINT_FLOWS
SAVE_FLOWS
END OPTIONS
Structure of Blocks
BEGIN OPTIONS
[LENGTH_UNITS <length_units>]
[NOGRB]
[XORIGIN <xorigin>]
[YORIGIN <yorigin>]
[ANGROT <angrot>]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN DIMENSIONS
NLAY <nlay>
NROW <nrow>
NCOL <ncol>
END DIMENSIONS
BEGIN GRIDDATA
DELR
<delr(ncol)> -- READARRAY
DELC
<delc(nrow)> -- READARRAY
TOP
<top(ncol, nrow)> -- READARRAY
BOTM [LAYERED]
<botm(ncol, nrow, nlay)> -- READARRAY
[IDOMAIN [LAYERED]
<idomain(ncol, nrow, nlay)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
length_units—is the length units used for this model. Values can be “FEET”, “METERS”, or “CENTIME-
TERS”. If not specified, the default is “UNKNOWN”.
NOGRB—keyword to deactivate writing of the binary grid file.
xorigin—x-position of the lower-left corner of the model grid. A default value of zero is assigned if not speci-
fied. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so
that postprocessors can locate the grid in space.
yorigin—y-position of the lower-left corner of the model grid. If not specified, then a default value equal to zero
is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file
so that postprocessors can locate the grid in space.
angrot—counter-clockwise rotation angle (in degrees) of the lower-left corner of the model grid. If not specified,
then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is
written to the binary grid file so that postprocessors can locate the grid in space.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: DIMENSIONS
Groundwater Flow (GWF) Model Input 35
Block: GRIDDATA
EXPLANATION
2 Cell center and cell number
4 Vertex and vertex number
Figure 1. Schematic diagram showing the vertices and cells defined using the Discretization by Vertices Package. The list of
vertices used to define each cell must be in clockwise order. From Langevin and others (2017).
Structure of Blocks
BEGIN OPTIONS
[LENGTH_UNITS <length_units>]
[NOGRB]
[XORIGIN <xorigin>]
[YORIGIN <yorigin>]
[ANGROT <angrot>]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN DIMENSIONS
NLAY <nlay>
Groundwater Flow (GWF) Model Input 37
NCPL <ncpl>
NVERT <nvert>
END DIMENSIONS
BEGIN GRIDDATA
TOP
<top(ncpl)> -- READARRAY
BOTM [LAYERED]
<botm(ncpl, nlay)> -- READARRAY
[IDOMAIN [LAYERED]
<idomain(ncpl, nlay)> -- READARRAY]
END GRIDDATA
BEGIN VERTICES
<iv> <xv> <yv>
<iv> <xv> <yv>
...
END VERTICES
BEGIN CELL2D
<icell2d> <xc> <yc> <ncvert> <icvert(ncvert)>
<icell2d> <xc> <yc> <ncvert> <icvert(ncvert)>
...
END CELL2D
Explanation of Variables
Block: OPTIONS
length_units—is the length units used for this model. Values can be “FEET”, “METERS”, or “CENTIME-
TERS”. If not specified, the default is “UNKNOWN”.
NOGRB—keyword to deactivate writing of the binary grid file.
xorigin—x-position of the origin used for model grid vertices. This value should be provided in a real-world
coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not
affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in
space.
yorigin—y-position of the origin used for model grid vertices. This value should be provided in a real-world
coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does
not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the
grid in space.
angrot—counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-
world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT
does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate
the grid in space.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: DIMENSIONS
Block: GRIDDATA
top—is the top elevation for each cell in the top model layer.
38 MODFLOW 6 – Description of Input and Output
Block: VERTICES
iv—is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT.
xv—is the x-coordinate for the vertex.
yv—is the y-coordinate for the vertex.
Block: CELL2D
icell2d—is the CELL2D number. Records in the CELL2D block must be listed in consecutive order from the
first to the last.
xc—is the x-coordinate for the cell center.
yc—is the y-coordinate for the cell center.
ncvert—is the number of vertices required to define the cell. There may be a different number of vertices for
each cell.
icvert—is an array of integer values containing vertex numbers (in the VERTICES block) used to define the
cell. Vertices must be listed in clockwise order. Cells that are connected must share vertices.
BEGIN CELL2D
1 .25 .75 4 1 2 5 4
2 .75 .75 4 2 3 6 5
3 .25 .25 4 4 5 8 7
4 .75 .25 4 5 6 9 8
END CELL2D
40 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[LENGTH_UNITS <length_units>]
[NOGRB]
[XORIGIN <xorigin>]
[YORIGIN <yorigin>]
[ANGROT <angrot>]
[VERTICAL_OFFSET_TOLERANCE <vertical_offset_tolerance>]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN DIMENSIONS
NODES <nodes>
NJA <nja>
[NVERT <nvert>]
END DIMENSIONS
BEGIN GRIDDATA
TOP
<top(nodes)> -- READARRAY
BOT
<bot(nodes)> -- READARRAY
AREA
<area(nodes)> -- READARRAY
[IDOMAIN
<idomain(nodes)> -- READARRAY]
END GRIDDATA
BEGIN CONNECTIONDATA
IAC
<iac(nodes)> -- READARRAY
JA
<ja(nja)> -- READARRAY
IHC
<ihc(nja)> -- READARRAY
CL12
<cl12(nja)> -- READARRAY
HWVA
<hwva(nja)> -- READARRAY
[ANGLDEGX
<angldegx(nja)> -- READARRAY]
END CONNECTIONDATA
Groundwater Flow (GWF) Model Input 41
BEGIN VERTICES
[<iv> <xv> <yv>
<iv> <xv> <yv>
...]
END VERTICES
BEGIN CELL2D
[<icell2d> <xc> <yc> <ncvert> <icvert(ncvert)>
<icell2d> <xc> <yc> <ncvert> <icvert(ncvert)>
...]
END CELL2D
Explanation of Variables
Block: OPTIONS
length_units—is the length units used for this model. Values can be “FEET”, “METERS”, or “CENTIME-
TERS”. If not specified, the default is “UNKNOWN”.
NOGRB—keyword to deactivate writing of the binary grid file.
xorigin—x-position of the origin used for model grid vertices. This value should be provided in a real-world
coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not
affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in
space.
yorigin—y-position of the origin used for model grid vertices. This value should be provided in a real-world
coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does
not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the
grid in space.
angrot—counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-
world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT
does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate
the grid in space.
vertical_offset_tolerance—checks are performed to ensure that the top of a cell is not higher than the bot-
tom of an overlying cell. This option can be used to specify the tolerance that is used for checking. If top of
a cell is above the bottom of an overlying cell by a value less than this tolerance, then the program will not
terminate with an error. The default value is zero. This option should generally not be used.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: DIMENSIONS
Block: GRIDDATA
top—is the top elevation for each cell in the model grid.
42 MODFLOW 6 – Description of Input and Output
Block: CONNECTIONDATA
iac—is the number of connections (plus 1) for each cell. The sum of all the entries in IAC must be equal to NJA.
ja—is a list of cell number (n) followed by its connecting cell numbers (m) for each of the m cells connected to
cell n. The number of values to provide for cell n is IAC(n). This list is sequentially provided for the first
to the last cell. The first value in the list must be cell n itself, and the remaining cells must be listed in an
increasing order (sorted from lowest number to highest). Note that the cell and its connections are only sup-
plied for the GWF cells and their connections to the other GWF cells. Also note that the JA list input may be
divided such that every node and its connectivity list can be on a separate line for ease in readability of the
file. To further ease readability of the file, the node number of the cell whose connectivity is subsequently
listed, may be expressed as a negative number, the sign of which is subsequently converted to positive by the
code.
ihc—is an index array indicating the direction between node n and all of its m connections. If IHC = 0 then cell n
and cell m are connected in the vertical direction. Cell n overlies cell m if the cell number for n is less than m;
cell m overlies cell n if the cell number for m is less than n. If IHC = 1 then cell n and cell m are connected
in the horizontal direction. If IHC = 2 then cell n and cell m are connected in the horizontal direction, and
the connection is vertically staggered. A vertically staggered connection is one in which a cell is horizontally
connected to more than one cell in a horizontal connection.
cl12—is the array containing connection lengths between the center of cell n and the shared face with each adja-
cent m cell.
hwva—is a symmetric array of size NJA. For horizontal connections, entries in HWVA are the horizontal width
perpendicular to flow. For vertical connections, entries in HWVA are the vertical area for flow. Thus, values
in the HWVA array contain dimensions of both length and area. Entries in the HWVA array have a one-to-
one correspondence with the connections specified in the JA array. Likewise, there is a one-to-one correspon-
dence between entries in the HWVA array and entries in the IHC array, which specifies the connection type
(horizontal or vertical). Entries in the HWVA array must be symmetric; the program will terminate with an
error if the value for HWVA for an n to m connection does not equal the value for HWVA for the correspond-
ing n to m connection.
angldegx—is the angle (in degrees) between the horizontal x-axis and the outward normal to the face between
a cell and its connecting cells. The angle varies between zero and 360.0 degrees, where zero degrees points
in the positive x-axis direction, and 90 degrees points in the positive y-axis direction. ANGLDEGX is only
needed if horizontal anisotropy is specified in the NPF Package, if the XT3D option is used in the NPF Pack-
age, or if the SAVE_SPECIFIC_DISCHARGE option is specified in the NPF Package. ANGLDEGX does
not need to be specified if these conditions are not met. ANGLDEGX is of size NJA; values specified for ver-
tical connections and for the diagonal position are not used. Note that ANGLDEGX is read in degrees, which
is different from MODFLOW-USG, which reads a similar variable (ANGLEX) in radians.
Block: VERTICES
iv—is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT.
xv—is the x-coordinate for the vertex.
yv—is the y-coordinate for the vertex.
Block: CELL2D
Groundwater Flow (GWF) Model Input 43
icell2d—is the cell2d number. Records in the CELL2D block must be listed in consecutive order from 1 to
NODES.
xc—is the x-coordinate for the cell center.
yc—is the y-coordinate for the cell center.
ncvert—is the number of vertices required to define the cell. There may be a different number of vertices for
each cell.
icvert—is an array of integer values containing vertex numbers (in the VERTICES block) used to define the
cell. Vertices must be listed in clockwise order.
BEGIN OPTIONS
LENGTH_UNITS METERS
END OPTIONS
BEGIN DIMENSIONS
NODES 9
NJA 33
END DIMENSIONS
BEGIN GRIDDATA
TOP
CONSTANT 0.
BOT
CONSTANT -10
AREA
INTERNAL FACTOR 1
10000 10000 10000 10000 10000 10000 10000 10000 10000
END GRIDDATA
BEGIN CONNECTIONDATA
IHC
CONSTANT 1
IAC
INTERNAL FACTOR 1
3 4 3 4 5 4 3 4 3
JA
INTERNAL FACTOR 1
1 2 4
2 1 3 5
3 2 6
4 1 5 7
5 2 4 6 8
6 3 5 9
7 4 8
8 5 7 9
9 6 8
CL12
INTERNAL FACTOR 1
0 50 50
0 50 50 50
0 50 50
0 50 50 50
0 50 50 50 50
0 50 50 50
0 50 50
0 50 50 50
0 50 50
HWVA
INTERNAL FACTOR 1
44 MODFLOW 6 – Description of Input and Output
0 100 100
0 100 100 100
0 100 100
0 100 100 100
0 100 100 100 100
0 100 100 100
0 100 100
0 100 100 100
0 100 100
END CONNECTIONDATA
Groundwater Flow (GWF) Model Input 45
Structure of Blocks
BEGIN GRIDDATA
STRT [LAYERED]
<strt(nodes)> -- READARRAY
END GRIDDATA
Explanation of Variables
Block: OPTIONS
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
strt—is the initial (starting) head—that is, head at the beginning of the GWF Model simulation. STRT must be
specified for all simulations, including steady-state simulations. One value is read for every model cell. For
simulations in which the first stress period is steady state, the values used for STRT generally do not affect the
simulation (exceptions may occur if cells go dry and (or) rewet). The execution time, however, will be less
if STRT includes hydraulic heads that are close to the steady-state solution. A head value lower than the cell
bottom can be provided if a cell should start as dry.
Structure of Blocks
Explanation of Variables
Block: OPTIONS
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
SAVE—keyword to indicate that information will be saved this stress period.
PRINT—keyword to indicate that information will be printed this stress period.
rtype—type of information to save or print. Can be BUDGET or HEAD.
ocsetting—specifies the steps for which the data will be saved.
ALL
FIRST
LAST
FREQUENCY <frequency>
STEPS <steps(<nstp)>
BEGIN OPTIONS
HEAD FILEOUT AdvGW_tidal.hds
BUDGET FILEOUT AdvGW_tidal.cbc
HEAD PRINT_FORMAT COLUMNS 100 WIDTH 15 DIGITS 4 GENERAL
END OPTIONS
BEGIN PERIOD 1
PRINT HEAD FIRST
PRINT HEAD LAST
PRINT BUDGET LAST
SAVE HEAD ALL
SAVE BUDGET ALL
END PERIOD
BEGIN PERIOD 25
PRINT HEAD STEPS 6 12 23
48 MODFLOW 6 – Description of Input and Output
Structure of Blocks
Explanation of Variables
Block: OPTIONS
digits—Keyword and an integer digits specifier used for conversion of simulated values to text on output. If not
specified, the default is the maximum number of digits stored in the program (as written with the G0 Fortran
specifier). When simulated values are written to a comma-separated value text file specified in a CONTIN-
UOUS block below, the digits specifier controls the number of significant digits with which simulated values
are written to the output file. The digits specifier has no effect on the number of significant digits with which
the simulation time is written for continuous observations. If DIGITS is specified as zero, then observations
are written with the default setting, which is the maximum number of digits.
PRINT_INPUT—keyword to indicate that the list of observation information will be written to the listing file
immediately after it is read.
Block: CONTINUOUS
id2—Text identifying cell adjacent to cell identified by ID. The form of ID2 is as described for ID. ID2 is used
for intercell-flow observations of a GWF model, for three observation types of the LAK Package, for two
observation types of the MAW Package, and one observation type of the UZF Package.
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[PRINT_FLOWS]
[ALTERNATIVE_CELL_AVERAGING <alternative_cell_averaging>]
[THICKSTRT]
[VARIABLECV [DEWATERED]]
[PERCHED]
[REWET WETFCT <wetfct> IWETIT <iwetit> IHDWET <ihdwet>]
[XT3D [RHS]]
[SAVE_SPECIFIC_DISCHARGE]
[SAVE_SATURATION]
[K22OVERK]
[K33OVERK]
[TVK6 FILEIN <tvk6_filename>]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN GRIDDATA
ICELLTYPE [LAYERED]
<icelltype(nodes)> -- READARRAY
K [LAYERED]
<k(nodes)> -- READARRAY
[K22 [LAYERED]
<k22(nodes)> -- READARRAY]
[K33 [LAYERED]
<k33(nodes)> -- READARRAY]
[ANGLE1 [LAYERED]
<angle1(nodes)> -- READARRAY]
[ANGLE2 [LAYERED]
<angle2(nodes)> -- READARRAY]
[ANGLE3 [LAYERED]
<angle3(nodes)> -- READARRAY]
[WETDRY [LAYERED]
<wetdry(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that budget flow terms will be written to the file specified with “BUDGET
SAVE FILE” in Output Control.
PRINT_FLOWS—keyword to indicate that calculated flows between cells will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period. This option can produce extremely large list files because all cell-by-cell flows are printed. It should
only be used with the NPF Package for models that have a small number of cells.
alternative_cell_averaging—is a text keyword to indicate that an alternative method will be used
for calculating the conductance for horizontal cell connections. The text value for ALTERNA-
TIVE_CELL_AVERAGING can be “LOGARITHMIC”, “AMT-LMK”, or “AMT-HMK”. “AMT-LMK”
signifies that the conductance will be calculated using arithmetic-mean thickness and logarithmic-mean
52 MODFLOW 6 – Description of Input and Output
hydraulic conductivity. “AMT-HMK” signifies that the conductance will be calculated using arithmetic-mean
thickness and harmonic-mean hydraulic conductivity. If the user does not specify a value for ALTERNA-
TIVE_CELL_AVERAGING, then the harmonic-mean method will be used. This option cannot be used if the
XT3D option is invoked.
THICKSTRT—indicates that cells having a negative ICELLTYPE are confined, and their cell thickness for conduc-
tance calculations will be computed as STRT-BOT rather than TOP-BOT. This option should be used with
caution as it only affects conductance calculations in the NPF Package.
VARIABLECV—keyword to indicate that the vertical conductance will be calculated using the saturated thickness
and properties of the overlying cell and the thickness and properties of the underlying cell. If the DEWA-
TERED keyword is also specified, then the vertical conductance is calculated using only the saturated thick-
ness and properties of the overlying cell if the head in the underlying cell is below its top. If these keywords
are not specified, then the default condition is to calculate the vertical conductance at the start of the simu-
lation using the initial head and the cell properties. The vertical conductance remains constant for the entire
simulation.
DEWATERED—If the DEWATERED keyword is specified, then the vertical conductance is calculated using only the
saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top.
PERCHED—keyword to indicate that when a cell is overlying a dewatered convertible cell, the head difference used
in Darcy’s Law is equal to the head in the overlying cell minus the bottom elevation of the overlying cell. If
not specified, then the default is to use the head difference between the two cells.
REWET—activates model rewetting. Rewetting is off by default.
wetfct—is a keyword and factor that is included in the calculation of the head that is initially established at a cell
when that cell is converted from dry to wet.
iwetit—is a keyword and iteration interval for attempting to wet cells. Wetting is attempted every IWETIT iter-
ation. This applies to outer iterations and not inner iterations. If IWETIT is specified as zero or less, then the
value is changed to 1.
ihdwet—is a keyword and integer flag that determines which equation is used to define the initial head at cells
that become wet. If IHDWET is 0, h = BOT + WETFCT (hm - BOT). If IHDWET is not 0, h = BOT + WET-
FCT (THRESH).
XT3D—keyword indicating that the XT3D formulation will be used. If the RHS keyword is also included, then
the XT3D additional terms will be added to the right-hand side. If the RHS keyword is excluded, then the
XT3D terms will be put into the coefficient matrix. Use of XT3D will substantially increase the computa-
tional effort, but will result in improved accuracy for anisotropic conductivity fields and for unstructured
grids in which the CVFD requirement is violated. XT3D requires additional information about the shapes
of grid cells. If XT3D is active and the DISU Package is used, then the user will need to provide in the DISU
Package the angldegx array in the CONNECTIONDATA block and the VERTICES and CELL2D blocks.
RHS—If the RHS keyword is also included, then the XT3D additional terms will be added to the right-hand side.
If the RHS keyword is excluded, then the XT3D terms will be put into the coefficient matrix.
SAVE_SPECIFIC_DISCHARGE—keyword to indicate that x, y, and z components of specific discharge will be
calculated at cell centers and written to the budget file, which is specified with “BUDGET SAVE FILE” in
Output Control. If this option is activated, then additional information may be required in the discretization
packages and the GWF Exchange package (if GWF models are coupled). Specifically, ANGLDEGX must be
specified in the CONNECTIONDATA block of the DISU Package; ANGLDEGX must also be specified for
the GWF Exchange as an auxiliary variable.
SAVE_SATURATION—keyword to indicate that cell saturation will be written to the budget file, which is specified
with “BUDGET SAVE FILE” in Output Control. Saturation will be saved to the budget file as an auxiliary
variable saved with the DATA-SAT text label. Saturation is a cell variable that ranges from zero to one and
can be used by post processing programs to determine how much of a cell volume is saturated. If ICELL-
TYPE is 0, then saturation is always one.
K22OVERK—keyword to indicate that specified K22 is a ratio of K22 divided by K. If this option is specified, then
the K22 array entered in the NPF Package will be multiplied by K after being read.
Groundwater Flow (GWF) Model Input 53
K33OVERK—keyword to indicate that specified K33 is a ratio of K33 divided by K. If this option is specified, then
the K33 array entered in the NPF Package will be multiplied by K after being read.
TVK6—keyword to specify that record corresponds to a time-varying hydraulic conductivity (TVK) file. The
behavior of TVK and a description of the input file is provided separately.
FILEIN—keyword to specify that an input filename is expected next.
tvk6_filename—defines a time-varying hydraulic conductivity (TVK) input file. Records in the TVK file can be
used to change hydraulic conductivity properties at specified times or stress periods.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
icelltype—flag for each cell that specifies how saturated thickness is treated. 0 means saturated thickness is
held constant; >0 means saturated thickness varies with computed head when head is below the cell top;
<0 means saturated thickness varies with computed head unless the THICKSTRT option is in effect. When
THICKSTRT is in effect, a negative value for ICELLTYPE indicates that the saturated thickness value used
in conductance calculations in the NPF Package will be computed as STRT-BOT and held constant. If the
THICKSTRT option is not in effect, then negative values provided by the user for ICELLTYPE are automati-
cally reassigned by the program to a value of one.
k—is the hydraulic conductivity. For the common case in which the user would like to specify the horizontal
hydraulic conductivity and the vertical hydraulic conductivity, then K should be assigned as the horizontal
hydraulic conductivity, K33 should be assigned as the vertical hydraulic conductivity, and K22 and the three
rotation angles should not be specified. When more sophisticated anisotropy is required, then K corresponds
to the K11 hydraulic conductivity axis. All included cells (IDOMAIN > 0) must have a K value greater than
zero.
k22—is the hydraulic conductivity of the second ellipsoid axis (or the ratio of K22/K if the K22OVERK option
is specified); for an unrotated case this is the hydraulic conductivity in the y direction. If K22 is not included
in the GRIDDATA block, then K22 is set equal to K. For a regular MODFLOW grid (DIS Package is used)
in which no rotation angles are specified, K22 is the hydraulic conductivity along columns in the y direction.
For an unstructured DISU grid, the user must assign principal x and y axes and provide the angle for each cell
face relative to the assigned x direction. All included cells (IDOMAIN > 0) must have a K22 value greater
than zero.
k33—is the hydraulic conductivity of the third ellipsoid axis (or the ratio of K33/K if the K33OVERK option is
specified); for an unrotated case, this is the vertical hydraulic conductivity. When anisotropy is applied, K33
corresponds to the K33 tensor component. All included cells (IDOMAIN > 0) must have a K33 value greater
than zero.
angle1—is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the first of three
sequential rotations of the hydraulic conductivity ellipsoid. With the K11, K22, and K33 axes of the ellipsoid
initially aligned with the x, y, and z coordinate axes, respectively, ANGLE1 rotates the ellipsoid about its
K33 axis (within the x - y plane). A positive value represents counter-clockwise rotation when viewed from
any point on the positive K33 axis, looking toward the center of the ellipsoid. A value of zero indicates that
the K11 axis lies within the x - z plane. If ANGLE1 is not specified, default values of zero are assigned to
ANGLE1, ANGLE2, and ANGLE3, in which case the K11, K22, and K33 axes are aligned with the x, y, and
z axes, respectively.
angle2—is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the second
of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotation by ANGLE1
described above, ANGLE2 rotates the ellipsoid about its K22 axis (out of the x - y plane). An array can be
specified for ANGLE2 only if ANGLE1 is also specified. A positive value of ANGLE2 represents clockwise
rotation when viewed from any point on the positive K22 axis, looking toward the center of the ellipsoid. A
value of zero indicates that the K11 axis lies within the x - y plane. If ANGLE2 is not specified, default val-
ues of zero are assigned to ANGLE2 and ANGLE3; connections that are not user-designated as vertical are
assumed to be strictly horizontal (that is, to have no z component to their orientation); and connection lengths
are based on horizontal distances.
54 MODFLOW 6 – Description of Input and Output
angle3—is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the third of
three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotations by ANGLE1 and
ANGLE2 described above, ANGLE3 rotates the ellipsoid about its K11 axis. An array can be specified for
ANGLE3 only if ANGLE1 and ANGLE2 are also specified. An array must be specified for ANGLE3 if
ANGLE2 is specified. A positive value of ANGLE3 represents clockwise rotation when viewed from any
point on the positive K11 axis, looking toward the center of the ellipsoid. A value of zero indicates that the
K22 axis lies within the x - y plane.
wetdry—is a combination of the wetting threshold and a flag to indicate which neighboring cells can cause a cell
to become wet. If WETDRY < 0, only a cell below a dry cell can cause the cell to become wet. If WETDRY
> 0, the cell below a dry cell and horizontally adjacent cells can cause a cell to become wet. If WETDRY is
0, the cell cannot be wetted. The absolute value of WETDRY is the wetting threshold. When the sum of BOT
and the absolute value of WETDRY at a dry cell is equaled or exceeded by the head at an adjacent cell, the
cell is wetted. WETDRY must be specified if “REWET” is specified in the OPTIONS block. If “REWET” is
not specified in the options block, then WETDRY can be entered, and memory will be allocated for it, even
though it is not used.
BEGIN OPTIONS
SAVE_FLOWS
END OPTIONS
BEGIN GRIDDATA
#
#icelltype(nodes) is 0:confined, 1:convertible
ICELLTYPE
constant 0
#
# horizontal hydraulic conductivity
K
constant 1.0
#
# vertical hydraulic conductivity
K33
constant 0.1
END GRIDDATA
Groundwater Flow (GWF) Model Input 55
Structure of Blocks
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that information for each change to the hydraulic conductivity in a cell will
be written to the model listing file.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
tvksetting—line of information that is parsed into a property name keyword and values. Property name key-
words that can be used to start the TVKSETTING string include: K, K22, and K33.
K <k>
K22 <k22>
K33 <k33>
56 MODFLOW 6 – Description of Input and Output
k—is the new value to be assigned as the cell’s hydraulic conductivity from the start of the specified stress period,
as per K in the NPF package. If the OPTIONS block includes a TS6 entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
k22—is the new value to be assigned as the cell’s hydraulic conductivity of the second ellipsoid axis (or the ratio
of K22/K if the K22OVERK NPF package option is specified) from the start of the specified stress period, as
per K22 in the NPF package. For an unrotated case this is the hydraulic conductivity in the y direction. If the
OPTIONS block includes a TS6 entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
k33—is the new value to be assigned as the cell’s hydraulic conductivity of the third ellipsoid axis (or the ratio of
K33/K if the K33OVERK NPF package option is specified) from the start of the specified stress period, as per
K33 in the NPF package. For an unrotated case, this is the vertical hydraulic conductivity. If the OPTIONS
block includes a TS6 entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
BEGIN OPTIONS
TS6 FILEIN tvk_cells.ts
# Note: Time-series file tvk_cells.ts defines time series cells_kz
END OPTIONS
# Cell 5 will have its K value changed to 1e-3 in the first time step of
# stress period 2, and changed once more to 1e-4 in the first time step of
# stress period 4.
#
# Cells 101 and 108 will have their respective K33 values changed according
# to the time series cells_kz specified in the file tvk_cells.ts. Note that
# these values may continue to change beyond stress period 2, depending on
# the duration of the time series cells_sy.
#
# No changes are made in stress period 1 due to an absence of a block
# for that period; cells maintain the initial property values specified in
# the NPF package for the entirety of that period.
BEGIN PERIOD 2
5 K 1e-3
101 K33 cells_kz
108 K33 cells_kz
END PERIOD
BEGIN PERIOD 4
5 K 1e-4
END PERIOD
# After the last specified change (or after the last specified time record,
# when a time series is used), each affected cell will retain its latest
# changed value for the remainder of the simulation.
Groundwater Flow (GWF) Model Input 57
Structure of Blocks
BEGIN DIMENSIONS
MAXHFB <maxhfb>
END DIMENSIONS
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of horizontal flow barriers will be written to the listing file imme-
diately after it is read.
Block: DIMENSIONS
maxhfb—integer value specifying the maximum number of horizontal flow barriers that will be entered in this
input file. The value of MAXHFB is used to allocate memory for the horizontal flow barriers.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid1—identifier for the first cell. For a structured grid that uses the DIS input file, CELLID1 is the layer, row,
and column numbers of the cell. For a grid that uses the DISV input file, CELLID1 is the layer number and
CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then
CELLID1 is the node numbers for the cell. The barrier is located between cells designated as CELLID1 and
CELLID2. For models that use the DIS and DISV grid types, the layer number for CELLID1 and CELLID2
must be the same. For all grid types, cells must be horizontally adjacent or the program will terminate with an
error.
cellid2—identifier for the second cell. See CELLID1 for description of how to specify.
58 MODFLOW 6 – Description of Input and Output
hydchr—is the hydraulic characteristic of the horizontal-flow barrier. The hydraulic characteristic is the barrier
hydraulic conductivity divided by the width of the horizontal-flow barrier. If the hydraulic characteristic is
negative, then the absolute value of HYDCHR acts as a multiplier to the conductance between the two model
cells specified as containing the barrier. For example, if the value for HYDCHR was specified as -1.5, the
conductance calculated for the two cells would be multiplied by 1.5.
BEGIN OPTIONS
PRINT_INPUT
END OPTIONS
BEGIN DIMENSIONS
MAXHFB 1
END DIMENSIONS
BEGIN PERIOD 1
#L1 R1 C1 L2 R2 C2 HYDCHR
1 1 4 1 1 5 0.1
END PERIOD 1
Groundwater Flow (GWF) Model Input 59
Structure of Blocks
BEGIN GRIDDATA
ICONVERT [LAYERED]
<iconvert(nodes)> -- READARRAY
SS [LAYERED]
<ss(nodes)> -- READARRAY
SY [LAYERED]
<sy(nodes)> -- READARRAY
END GRIDDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that cell-by-cell flow terms will be written to the file specified with “BUDGET
SAVE FILE” in Output Control.
STORAGECOEFFICIENT—keyword to indicate that the SS array is read as storage coefficient rather than specific
storage.
SS_CONFINED_ONLY—keyword to indicate that compressible storage is only calculated for a convertible cell
(ICONVERT>0) when the cell is under confined conditions (head greater than or equal to the top of the cell).
This option has no effect on cells that are marked as being always confined (ICONVERT=0). This option is
identical to the approach used to calculate storage changes under confined conditions in MODFLOW-2005.
TVS6—keyword to specify that record corresponds to a time-varying storage (TVS) file. The behavior of TVS and
a description of the input file is provided separately.
FILEIN—keyword to specify that an input filename is expected next.
tvs_filename—defines a time-varying storage (TVS) input file. Records in the TVS file can be used to change
specific storage and specific yield properties at specified times or stress periods.
Block: GRIDDATA
60 MODFLOW 6 – Description of Input and Output
iconvert—is a flag for each cell that specifies whether or not a cell is convertible for the storage calculation. 0
indicates confined storage is used. >0 indicates confined storage is used when head is above cell top and a
mixed formulation of unconfined and confined storage is used when head is below cell top.
ss—is specific storage (or the storage coefficient if STORAGECOEFFICIENT is specified as an option). Spe-
cific storage values must be greater than or equal to 0. If the CSUB Package is included in the GWF model,
specific storage must be zero for every cell.
sy—is specific yield. Specific yield values must be greater than or equal to 0. Specific yield does not have to be
specified if there are no convertible cells (ICONVERT=0 in every cell).
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
STEADY-STATE—keyword to indicate that stress period IPER is steady-state. Steady-state conditions will apply
until the TRANSIENT keyword is specified in a subsequent BEGIN PERIOD block. If the CSUB Package is
included in the GWF model, only the first and last stress period can be steady-state.
TRANSIENT—keyword to indicate that stress period IPER is transient. Transient conditions will apply until the
STEADY-STATE keyword is specified in a subsequent BEGIN PERIOD block.
BEGIN OPTIONS
SAVE_FLOWS
END OPTIONS
BEGIN GRIDDATA
#cell storage conversion 0:confined, 1:convertible
ICONVERT
constant 1
#specific storage (for all model cells)
SS
constant 1.e-5
#specific yield (specified by layer because of LAYERED keyword)
SY LAYERED
constant 0.2
constant 0.15
constant 0.15
END GRIDDATA
BEGIN PERIOD 1
STEADY-STATE
END PERIOD
BEGIN PERIOD 2
TRANSIENT
END PERIOD
BEGIN PERIOD 4
STEADY-STATE
END PERIOD
Groundwater Flow (GWF) Model Input 61
Structure of Blocks
Explanation of Variables
Block: OPTIONS
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
tvssetting—line of information that is parsed into a property name keyword and values. Property name key-
words that can be used to start the TVSSETTING string include: SS and SY.
62 MODFLOW 6 – Description of Input and Output
SS <ss>
SY <sy>
ss—is the new value to be assigned as the cell’s specific storage (or storage coefficient if the STORAGECOEF-
FICIENT STO package option is specified) from the start of the specified stress period, as per SS in the STO
package. Specific storage values must be greater than or equal to 0. If the OPTIONS block includes a TS6
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
sy—is the new value to be assigned as the cell’s specific yield from the start of the specified stress period, as per
SY in the STO package. Specific yield values must be greater than or equal to 0. If the OPTIONS block
includes a TS6 entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
BEGIN OPTIONS
TS6 FILEIN tvs_cells.ts
# Note: Time-series file tvs_cells.ts defines time series cells_sy
END OPTIONS
# Cell 45 will have its SS value changed to 1e-6 in the first time step of
# stress period 2, and changed once more to 1e-7 in the first time step of
# stress period 4.
#
# Cells 188 and 291 will have their respective SY values changed according
# to the time series cells_sy specified in the file tvs_cells.ts. Note that
# these values may continue to change beyond stress period 2, depending on
# the duration of the time series cells_sy.
#
# No changes are made in stress period 1 due to an absence of a block
# for that period; cells maintain the initial property values specified in
# the STO package for the entirety of that period.
BEGIN PERIOD 2
45 SS 1e-6
188 SY cells_sy
291 SY cells_sy
END PERIOD
BEGIN PERIOD 4
45 SS 1e-7
END PERIOD
# After the last specified change (or after the last specified time record,
# when a time series is used), each affected cell will retain its latest
# changed value for the remainder of the simulation.
Groundwater Flow (GWF) Model Input 63
Structure of Blocks
BEGIN DIMENSIONS
NINTERBEDS <ninterbeds>
[MAXSIG0 <maxsig0>]
END DIMENSIONS
BEGIN GRIDDATA
CG_SKE_CR
<cg_ske_cr(nodes)> -- READARRAY
CG_THETA
<cg_theta(nodes)> -- READARRAY
[SGM
<sgm(nodes)> -- READARRAY]
[SGS
<sgs(nodes)> -- READARRAY]
END GRIDDATA
BEGIN PACKAGEDATA
<icsubno> <cellid(ncelldim)> <cdelay> <pcs0> <thick_frac> <rnb> <ssv_cc> <sse_cr> <theta> <kv> <h0> [<boundname>]
<icsubno> <cellid(ncelldim)> <cdelay> <pcs0> <thick_frac> <rnb> <ssv_cc> <sse_cr> <theta> <kv> <h0> [<boundname>]
...
END PACKAGEDATA
64 MODFLOW 6 – Description of Input and Output
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of CSUB cells.
PRINT_INPUT—keyword to indicate that the list of CSUB information will be written to the listing file immedi-
ately after it is read.
SAVE_FLOWS—keyword to indicate that cell-by-cell flow terms will be written to the file specified with “BUDGET
SAVE FILE” in Output Control.
gammaw—unit weight of water. For freshwater, GAMMAW is 9806.65 Newtons/cubic meters or 62.48 lb/cubic
foot in SI and English units, respectively. By default, GAMMAW is 9806.65 Newtons/cubic meters.
beta—compressibility of water. Typical values of BETA are 4.6512e-10 1/Pa or 2.2270e-8 lb/square foot in SI
and English units, respectively. By default, BETA is 4.6512e-10 1/Pa.
HEAD_BASED—keyword to indicate the head-based formulation will be used to simulate coarse-grained
aquifer materials and no-delay and delay interbeds. Specifying HEAD_BASED also specifies the INI-
TIAL_PRECONSOLIDATION_HEAD option.
INITIAL_PRECONSOLIDATION_HEAD—keyword to indicate that preconsolidation heads will be specified for no-
delay and delay interbeds in the PACKAGEDATA block. If the SPECIFIED_INITIAL_INTERBED_STATE
option is specified in the OPTIONS block, user-specified preconsolidation heads in the PACKAGEDATA
block are absolute values. Otherwise, user-specified preconsolidation heads in the PACKAGEDATA block
are relative to steady-state or initial heads.
ndelaycells—number of nodes used to discretize delay interbeds. If not specified, then a default value of 19 is
assigned.
COMPRESSION_INDICES—keyword to indicate that the recompression (CR) and compression (CC) indices are
specified instead of the elastic specific storage (SSE) and inelastic specific storage (SSV) coefficients. If not
specified, then elastic specific storage (SSE) and inelastic specific storage (SSV) coefficients must be speci-
fied.
UPDATE_MATERIAL_PROPERTIES—keyword to indicate that the thickness and void ratio of coarse-grained and
interbed sediments (delay and no-delay) will vary during the simulation. If not specified, the thickness and
void ratio of coarse-grained and interbed sediments will not vary during the simulation.
CELL_FRACTION—keyword to indicate that the thickness of interbeds will be specified in terms of the fraction of
cell thickness. If not specified, interbed thicknness must be specified.
SPECIFIED_INITIAL_INTERBED_STATE—keyword to indicate that absolute preconsolidation stresses
(heads) and delay bed heads will be specified for interbeds defined in the PACKAGEDATA block.
The SPECIFIED_INITIAL_INTERBED_STATE option is equivalent to specifying the SPECI-
FIED_INITIAL_PRECONSOLITATION_STRESS and SPECIFIED_INITIAL_DELAY_HEAD. If SPEC-
IFIED_INITIAL_INTERBED_STATE is not specified then preconsolidation stress (head) and delay bed head
Groundwater Flow (GWF) Model Input 65
values specified in the PACKAGEDATA block are relative to simulated values of the first stress period if
steady-state or initial stresses and GWF heads if the first stress period is transient.
SPECIFIED_INITIAL_PRECONSOLIDATION_STRESS—keyword to indicate that absolute preconsolida-
tion stresses (heads) will be specified for interbeds defined in the PACKAGEDATA block. If SPECI-
FIED_INITIAL_PRECONSOLITATION_STRESS and SPECIFIED_INITIAL_INTERBED_STATE are
not specified then preconsolidation stress (head) values specified in the PACKAGEDATA block are relative
to simulated values if the first stress period is steady-state or initial stresses (heads) if the first stress period is
transient.
SPECIFIED_INITIAL_DELAY_HEAD—keyword to indicate that absolute initial delay bed head will be specified
for interbeds defined in the PACKAGEDATA block. If SPECIFIED_INITIAL_DELAY_HEAD and SPEC-
IFIED_INITIAL_INTERBED_STATE are not specified then delay bed head values specified in the PACK-
AGEDATA block are relative to simulated values if the first stress period is steady-state or initial GWF heads
if the first stress period is transient.
EFFECTIVE_STRESS_LAG—keyword to indicate the effective stress from the previous time step will be used to
calculate specific storage values. This option can 1) help with convergence in models with thin cells and
water table elevations close to land surface; 2) is identical to the approach used in the SUBWT package for
MODFLOW-2005; and 3) is only used if the effective-stress formulation is being used. By default, current
effective stress values are used to calculate specific storage values.
STRAIN_CSV_INTERBED—keyword to specify the record that corresponds to final interbed strain output.
FILEOUT—keyword to specify that an output filename is expected next.
interbedstrain_filename—name of the comma-separated-values output file to write final interbed strain
information.
STRAIN_CSV_COARSE—keyword to specify the record that corresponds to final coarse-grained material strain
output.
coarsestrain_filename—name of the comma-separated-values output file to write final coarse-grained mate-
rial strain information.
COMPACTION—keyword to specify that record corresponds to the compaction.
compaction_filename—name of the binary output file to write compaction information.
COMPACTION_ELASTIC—keyword to specify that record corresponds to the elastic interbed compaction binary
file.
elastic_compaction_filename—name of the binary output file to write elastic interbed compaction informa-
tion.
COMPACTION_INELASTIC—keyword to specify that record corresponds to the inelastic interbed compaction
binary file.
inelastic_compaction_filename—name of the binary output file to write inelastic interbed compaction infor-
mation.
COMPACTION_INTERBED—keyword to specify that record corresponds to the interbed compaction binary file.
interbed_compaction_filename—name of the binary output file to write interbed compaction information.
COMPACTION_COARSE—keyword to specify that record corresponds to the elastic coarse-grained material com-
paction binary file.
coarse_compaction_filename—name of the binary output file to write elastic coarse-grained material com-
paction information.
ZDISPLACEMENT—keyword to specify that record corresponds to the z-displacement binary file.
zdisplacement_filename—name of the binary output file to write z-displacement information.
PACKAGE_CONVERGENCE—keyword to specify that record corresponds to the package convergence comma spaced
values file.
package_convergence_filename—name of the comma spaced values output file to write package convergence
information.
66 MODFLOW 6 – Description of Input and Output
Block: DIMENSIONS
ninterbeds—is the number of CSUB interbed systems. More than 1 CSUB interbed systems can be assigned to
a GWF cell; however, only 1 GWF cell can be assigned to a single CSUB interbed system.
maxsig0—is the maximum number of cells that can have a specified stress offset. More than 1 stress offset can be
assigned to a GWF cell. By default, MAXSIG0 is 0.
Block: GRIDDATA
cg_ske_cr—is the initial elastic coarse-grained material specific storage or recompression index. The recom-
pression index is specified if COMPRESSION_INDICES is specified in the OPTIONS block. Specified
or calculated elastic coarse-grained material specific storage values are not adjusted from initial values if
HEAD_BASED is specified in the OPTIONS block.
cg_theta—is the initial porosity of coarse-grained materials.
sgm—is the specific gravity of moist or unsaturated sediments. If not specified, then a default value of 1.7 is
assigned.
sgs—is the specific gravity of saturated sediments. If not specified, then a default value of 2.0 is assigned.
Block: PACKAGEDATA
icsubno—integer value that defines the CSUB interbed number associated with the specified PACKAGEDATA
data on the line. CSUBNO must be greater than zero and less than or equal to NINTERBEDS. CSUB infor-
mation must be specified for every CSUB cell or the program will terminate with an error. The program will
also terminate with an error if information for a CSUB interbed number is specified more than once.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
cdelay—character string that defines the subsidence delay type for the interbed. Possible subsidence package
CDELAY strings include: NODELAY–character keyword to indicate that delay will not be simulated in the
interbed. DELAY–character keyword to indicate that delay will be simulated in the interbed.
pcs0—is the initial offset from the calculated initial effective stress or initial preconsolidation stress in the
interbed, in units of height of a column of water. PCS0 is the initial preconsolidation stress if SPECI-
FIED_INITIAL_INTERBED_STATE or SPECIFIED_INITIAL_PRECONSOLIDATION_STRESS are spec-
ified in the OPTIONS block. If HEAD_BASED is specified in the OPTIONS block, PCS0 is the initial offset
from the calculated initial head or initial preconsolidation head in the CSUB interbed and the initial precon-
solidation stress is calculated from the calculated initial effective stress or calculated initial geostatic stress,
respectively.
thick_frac—is the interbed thickness or cell fraction of the interbed. Interbed thickness is specified as a fraction
of the cell thickness if CELL_FRACTION is specified in the OPTIONS block.
rnb—is the interbed material factor equivalent number of interbeds in the interbed system represented by the
interbed. RNB must be greater than or equal to 1 if CDELAY is DELAY. Otherwise, RNB can be any value.
Groundwater Flow (GWF) Model Input 67
ssv_cc—is the initial inelastic specific storage or compression index of the interbed. The compression index is
specified if COMPRESSION_INDICES is specified in the OPTIONS block. Specified or calculated interbed
inelastic specific storage values are not adjusted from initial values if HEAD_BASED is specified in the
OPTIONS block.
sse_cr—is the initial elastic coarse-grained material specific storage or recompression index of the interbed. The
recompression index is specified if COMPRESSION_INDICES is specified in the OPTIONS block. Specified
or calculated interbed elastic specific storage values are not adjusted from initial values if HEAD_BASED is
specified in the OPTIONS block.
theta—is the initial porosity of the interbed.
kv—is the vertical hydraulic conductivity of the delay interbed. KV must be greater than 0 if CDELAY is
DELAY. Otherwise, KV can be any value.
h0—is the initial offset from the head in cell cellid or the initial head in the delay interbed. H0 is the initial head
in the delay bed if SPECIFIED_INITIAL_INTERBED_STATE or SPECIFIED_INITIAL_DELAY_HEAD
are specified in the OPTIONS block. H0 can be any value if CDELAY is NODELAY.
boundname—name of the CSUB cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
sig0—is the stress offset for the cell. SIG0 is added to the calculated geostatic stress for the cell. SIG0 is spec-
ified only if MAXSIG0 is specified to be greater than 0 in the DIMENSIONS block. If the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
BEGIN DIMENSIONS
NINTERBEDS 4
MAXSIG0 1
END DIMENSIONS
BEGIN GRIDDATA
# compression indices of coarse grained aquifer materials
cg_ske_cr LAYERED
CONSTANT 0.01
CONSTANT 0.01
68 MODFLOW 6 – Description of Input and Output
CONSTANT 0.01
CONSTANT 0.01
# porosity of coarse grained aquifer materials
cg_theta LAYERED
CONSTANT 0.45
CONSTANT 0.45
CONSTANT 0.45
CONSTANT 0.45
# specific gravity of saturated sediment
SGS LAYERED
CONSTANT 2.0
CONSTANT 2.0
CONSTANT 2.0
CONSTANT 2.0
# specific gravity of moist sediment
SGM LAYERED
CONSTANT 1.7
CONSTANT 1.7
CONSTANT 1.7
CONSTANT 1.7
END GRIDDATA
BEGIN PACKAGEDATA
# icsubsno cellid cdelay pcs0 thick_frac rnb ssv_cc sse_cr theta kv h0 boundname
1 1 1 6 delay 15.0 0.450 1.0 0.25 0.01 0.45 0.1 15. nsystm0
2 1 1 7 nodelay 15.0 0.450 1.0 0.25 0.01 0.45 0.0 0.0 nsystm1
3 1 1 8 nodelay 15.0 0.450 1.0 0.25 0.01 0.45 0.0 0.0 nsystm1
4 1 1 9 delay 15.0 0.450 1.0 0.25 0.01 0.45 0.1 15. nsystm2
END PACKAGEDATA
BEGIN PERIOD 1
# stress offset for stress period 1
1 1 6 1700.00000000
END PERIOD
𝑁 𝑅𝐻𝑂𝑆𝑃
∑︁𝐸𝐶𝐼𝐸𝑆
𝜌 = 𝐷𝐸𝑁 𝑆𝐸𝑅𝐸𝐹 + 𝐷𝑅𝐻𝑂𝐷𝐶𝑖 (𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 − 𝐶𝑅𝐻𝑂𝑅𝐸𝐹𝑖 ) (2)
𝑖=1
where 𝜌 is the calculated density, 𝐷𝐸𝑁 𝑆𝐸𝑅𝐸𝐹 is the density of a reference fluid, typically taken to be freshwater at a
temperature of 25 degrees Celsius; 𝑁 𝑅𝐻𝑂𝑆𝑃 𝐸𝐶𝐼𝐸𝑆 is the number of chemical species that contribute to the density
calculation, 𝐷𝑅𝐻𝑂𝐷𝐶𝑖 is the parameter that describes how density changes as a function of concentration for chemical
species 𝑖 (i.e. the slope of a line that relates density to concentration), 𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 is the concentration of
species 𝑖, and 𝐶𝑅𝐻𝑂𝑅𝐸𝐹𝑖 is the concentration of species 𝑖 in the reference fluid, which is normally set to zero.
Stress Packages
For head-dependent stress packages, the BUY Package may require fluid density and elevation for each head-
dependent boundary so that the model can use a variable-density form of Darcy’s Law to calculate flow between the
boundary and the aquifer. By default, the boundary elevation is set equal to the cell elevation. For water-table conditions,
the cell elevation is calculated as bottom elevation plus half of saturation multiplied by the cell thickness. If desired, the
user can more precisely locate the boundary elevation by specifying an auxiliary variable with the name “ELEVATION”.
The program will use the values in this column as the boundary elevation. A situation where this may be required is for
river or general-head boundaries that are conceptualized as being on top of a model cell. In those cases, an ELEVATION
column should be specified and the values set to the top of the cell or some other appropriate elevation that corresponds
to where the boundary stage applies.
By default, the boundary density is set equal to DENSEREF, commonly specified as the density of freshwater; how-
ever, there are two other options for setting the density of a boundary package. The first is to assign an auxiliary variable
with the name “DENSITY”. If this auxiliary variable is detected, then the density value in this column will be assigned
to the density for the boundary. Alternatively, a density value can be calculated for each boundary using the density
equation of state and one or more concentrations provided as auxiliary variables. In this case, the user must assign one
auxiliary variable for each AUXSPECIESNAME listed in the PACKAGEDATA block below. Thus, there must be
NRHOSPECIES auxiliary variables, each with the identical name as those specified in PACKAGEDATA. The BUY
Package will calculate the density for each boundary using these concentrations and the values specified for DENSEREF,
DRHODC, and CRHOREF. If the boundary package contains an auxiliary variable named DENSITY and also contains
AUXSPECIESNAME auxiliary variables, then the boundary density value will be assigned to the one in the DENSITY
auxiliary variable.
A GWT Model can be used to calculate concentrations for the advanced stress packages (LAK, SFR, MAW, and
UZF) if corresponding advanced transport packages are specified (LKT, SFT, MWT, and UZT). The advanced stress
packages have an input option called FLOW_PACKAGE_AUXILIARY_NAME. When activated, this option will result
in the simulated concentration for a lake or other feature being copied from the advanced transport package into the aux-
iliary variable for the corresponding GWF stress package. This means that the density for a lake or stream, for example,
can be dynamically updated during the simulation using concentrations from advanced transport packages that are fed
into auxiliary variables in the advanced stress packages, and ultimately used by the BUY Package to calculate a fluid
density using the equation of state. This concept also applies when multiple GWT Models are used simultaneously to
simulate multiple species. In this case, multiple auxiliary variables are required for an advanced stress package, with
each one representing a concentration from a different GWT Model.
72 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
NRHOSPECIES <nrhospecies>
END DIMENSIONS
BEGIN PACKAGEDATA
<irhospec> <drhodc> <crhoref> <modelname> <auxspeciesname>
<irhospec> <drhodc> <crhoref> <modelname> <auxspeciesname>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
HHFORMULATION_RHS—use the variable-density hydraulic head formulation and add off-diagonal terms to the
right-hand. This option will prevent the BUY Package from adding asymmetric terms to the flow matrix.
Groundwater Flow (GWF) Model Input 73
denseref—fluid reference density used in the equation of state. This value is set to 1000. if not specified as an
option.
DENSITY—keyword to specify that record corresponds to density.
FILEOUT—keyword to specify that an output filename is expected next.
densityfile—name of the binary output file to write density information. The density file has the same format
as the head file. Density values will be written to the density file whenever heads are written to the binary
head file. The settings for controlling head output are contained in the Output Control option.
Block: DIMENSIONS
nrhospecies—number of species used in density equation of state. This value must be one or greater if the BUY
package is activated.
Block: PACKAGEDATA
irhospec—integer value that defines the species number associated with the specified PACKAGEDATA data on
the line. IRHOSPECIES must be greater than zero and less than or equal to NRHOSPECIES. Information
must be specified for each of the NRHOSPECIES species or the program will terminate with an error. The
program will also terminate with an error if information for a species is specified more than once.
drhodc—real value that defines the slope of the density-concentration line for this species used in the density
equation of state.
crhoref—real value that defines the reference concentration value used for this species in the density equation of
state.
modelname—name of GWT model used to simulate a species that will be used in the density equation of state.
This name will have no effect if the simulation does not include a GWT model that corresponds to this GWF
model.
auxspeciesname—name of an auxiliary variable in a GWF stress package that will be used for this species to
calculate a density value. If a density value is needed by the Buoyancy Package then it will use the concentra-
tion values in this AUXSPECIESNAME column in the density equation of state. For advanced stress pack-
ages (LAK, SFR, MAW, and UZF) that have an associated advanced transport package (LKT, SFT, MWT,
and UZT), the FLOW_PACKAGE_AUXILIARY_NAME option in the advanced transport package can be
used to transfer simulated concentrations into the flow package auxiliary variable. In this manner, the Buoy-
ancy Package can calculate density values for lakes, streams, multi-aquifer wells, and unsaturated zone flow
cells using simulated concentrations.
BEGIN OPTIONS
DENSEREF 1000.
END OPTIONS
BEGIN DIMENSIONS
NRHOSPECIES 2
END DIMENSIONS
BEGIN PACKAGEDATA
#ISPEC DRHODC CRHOREF MODELNAME AUXSPECIESNAME
1 0.7 0. GWT-1 SALINITY
2 -0.375 25. GWT-2 TEMPERATURE
END PACKAGEDATA
74 MODFLOW 6 – Description of Input and Output
𝑁 𝑉 𝐼𝑆𝐶𝑆𝑃
∑︁𝐸𝐶𝐼𝐸𝑆
𝜇 = 𝑉 𝐼𝑆𝐶𝑅𝐸𝐹 + 𝐷𝑉 𝐼𝑆𝐶𝐷𝐶𝑖 (𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 − 𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 ) (3)
𝑖=1
where 𝜇 is the calculated viscosity, 𝑉 𝐼𝑆𝐶𝑅𝐸𝐹 is the viscosity of a reference fluid, typically taken to be freshwater at
a temperature of 20 degrees Celsius, 𝑁 𝑉 𝐼𝑆𝐶𝑆𝑃 𝐸𝐶𝐼𝐸𝑆 is the number of chemical species that contribute to the vis-
cosity calculation, 𝐷𝑉 𝐼𝑆𝐶𝐷𝐶𝑖 is the parameter that describes how viscosity changes linearly as a function of concen-
tration for chemical species 𝑖 (i.e. the slope of a line that relates viscosity to concentration), 𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 is
the concentration of species 𝑖, and 𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 is the reference concentration for species 𝑖 corresponding to when the
viscosity of the reference fluid is equal to 𝑉 𝐼𝑆𝐶𝑅𝐸𝐹 , which is normally set to a concentration of zero.
In many applications, variations in temperature have a greater effect on fluid viscosity than variations in solute con-
centration. When a GWT model is formulated such that one of the transported “species” is heat (thermal energy), with
“concentration” used to represent temperature (Zheng, 2010), the viscosity can vary linearly with temperature, as it can
with any other “concentration.” In that case, 𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 and 𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 represent the simulated and
reference temperatures, respectively, and 𝐷𝑉 𝐼𝑆𝐶𝐷𝐶𝑖 represents the rate at which viscosity changes with temperature.
In addition, the viscosity formula can optionally include a nonlinear dependence on temperature. In that case, equation 3
becomes
𝑁 𝑉 𝐼𝑆𝐶𝑆𝑃
∑︁𝐸𝐶𝐼𝐸𝑆
𝜇 = 𝜇𝑇 (𝑇 ) + 𝐷𝑉 𝐼𝑆𝐶𝐷𝐶𝑖 (𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 − 𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 ) (4)
𝑖=1
where the first term on the right-hand side, 𝜇𝑇 (𝑇 ), is a nonlinear function of temperature, and the summation corre-
sponds to the summation in equation 3, in which one of the “species” is heat. The nonlinear term in equation 4 is of the
form
[︂ ]︂
−𝐴3 (𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 −𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 )
(𝐶𝑂𝑁 𝐶𝐸𝑁 𝑇 𝑅𝐴𝑇 𝐼𝑂𝑁𝑖 +𝐴4 )(𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 +𝐴4 )
𝜇𝑇 (𝑇 ) = 𝐶𝑉 𝐼𝑆𝐶𝑅𝐸𝐹𝑖 · 𝐴2 (5)
where the coefficients 𝐴2 , 𝐴3 , and 𝐴4 are specified by the user. Values for 𝐴2 , 𝐴3 , and 𝐴4 are commonly 10, 248.7, and
133.15, respectively (Langevin and others, 2008; Voss, 1984).
Stress Packages
For head-dependent stress packages, the VSC Package can adjust the conductance used to calculate flow between the
boundary and the aquifer to account for variations in viscosity. Conductance is assumed to vary inversely with viscosity.
By default, the boundary viscosity is set equal to VISCREF, which, for freshwater, is typically set equal to 1.0.
However, there are two additional options for setting the viscosity of a boundary package. The first is to assign an aux-
iliary variable with the name “VISCOSITY”. If an auxiliary variable named “VISCOSITY” is detected, then it will be
assigned as the viscosity of the fluid entering from the boundary. Alternatively, a viscosity value can be calculated for
each boundary using the viscosity equation described above and one or more concentrations provided as auxiliary vari-
ables. In this case, the user must assign one auxiliary variable for each AUXSPECIESNAME listed in the PACKAGE-
DATA block below. Thus, there must be NVISCSPECIES auxiliary variables, each with the identical name as those
Groundwater Flow (GWF) Model Input 75
specified in PACKAGEDATA. The VSC Package will calculate the viscosity for each boundary using these concentra-
tions and the values specified for VISCREF, DVISCDC, and CVISCREF. If the boundary package contains an auxiliary
variable named VISCOSITY and also contains AUXSPECIESNAME auxiliary variables, then the boundary viscosity
value will be assigned to the one in the VISCOSITY auxiliary variable.
A GWT Model can be used to calculate concentrations for the advanced stress packages (LAK, SFR, MAW, and
UZF) if corresponding advanced transport packages are specified (LKT, SFT, MWT, and UZT). The advanced stress
packages have an input option called FLOW_PACKAGE_AUXILIARY_NAME. When activated, this option will result
in the simulated concentration for a lake or other feature being copied from the advanced transport package into the aux-
iliary variable for the corresponding GWF stress package. This means that the viscosity for a lake or stream, for exam-
ple, can be dynamically updated during the simulation using concentrations from advanced transport packages that are
fed into auxiliary variables in the advanced stress packages, and ultimately used by the VSC Package to calculate a fluid
viscosity. This concept also applies when multiple GWT Models are used simultaneously to simulate multiple species. In
this case, multiple auxiliary variables are required for an advanced stress package, with each one representing a concen-
tration from a different GWT Model.
Structure of Blocks
BEGIN DIMENSIONS
NVISCSPECIES <nviscspecies>
END DIMENSIONS
76 MODFLOW 6 – Description of Input and Output
BEGIN PACKAGEDATA
<iviscspec> <dviscdc> <cviscref> <modelname> <auxspeciesname>
<iviscspec> <dviscdc> <cviscref> <modelname> <auxspeciesname>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
viscref—fluid reference viscosity used in the equation of state. This value is set to 1.0 if not specified as an
option.
temperature_species_name—string used to identify the auxspeciesname in PACKAGEDATA that corresponds
to the temperature species. There can be only one occurrence of this temperature species name in the PACK-
AGEDATA block or the program will terminate with an error. This value has no effect if viscosity does not
depend on temperature.
thermal_formulation—may be used for specifying which viscosity formulation to use for the temperature
species. Can be either LINEAR or NONLINEAR. The LINEAR viscosity formulation is the default.
thermal_a2—is an empirical parameter specified by the user for calculating viscosity using a nonlinear formula-
tion. If A2 is not specified, a default value of 10.0 is assigned (Voss, 1984).
thermal_a3—is an empirical parameter specified by the user for calculating viscosity using a nonlinear formula-
tion. If A3 is not specified, a default value of 248.37 is assigned (Voss, 1984).
thermal_a4—is an empirical parameter specified by the user for calculating viscosity using a nonlinear formula-
tion. If A4 is not specified, a default value of 133.15 is assigned (Voss, 1984).
VISCOSITY—keyword to specify that record corresponds to viscosity.
FILEOUT—keyword to specify that an output filename is expected next.
viscosityfile—name of the binary output file to write viscosity information. The viscosity file has the same
format as the head file. Viscosity values will be written to the viscosity file whenever heads are written to the
binary head file. The settings for controlling head output are contained in the Output Control option.
Block: DIMENSIONS
nviscspecies—number of species used in the viscosity equation of state. If either concentrations or temperature
(or both) are used to update viscosity then then nrhospecies needs to be at least one.
Block: PACKAGEDATA
iviscspec—integer value that defines the species number associated with the specified PACKAGEDATA data
entered on each line. IVISCSPECIES must be greater than zero and less than or equal to NVISCSPECIES.
Information must be specified for each of the NVISCSPECIES species or the program will terminate with an
error. The program will also terminate with an error if information for a species is specified more than once.
dviscdc—real value that defines the slope of the line defining the linear relationship between viscosity and tem-
perature or between viscosity and concentration, depending on the type of species entered on each line. If the
value of AUXSPECIESNAME entered on a line corresponds to TEMPERATURE_SPECIES_NAME (in the
OPTIONS block), this value will be used when VISCOSITY_FUNC is equal to LINEAR (the default) in the
OPTIONS block. When VISCOSITY_FUNC is set to NONLINEAR, a value for DVISCDC must be speci-
fied though it is not used.
cviscref—real value that defines the reference temperature or reference concentration value used for this species
in the viscosity equation of state. If AUXSPECIESNAME entered on a line corresponds to TEMPERA-
TURE_SPECIES_NAME (in the OPTIONS block), then CVISCREF refers to a reference temperature, other-
wise it refers to a reference concentration.
Groundwater Flow (GWF) Model Input 77
modelname—name of a GWT model used to simulate a species that will be used in the viscosity equation of state.
This name will have no effect if the simulation does not include a GWT model that corresponds to this GWF
model.
auxspeciesname—name of an auxiliary variable in a GWF stress package that will be used for this species to
calculate the viscosity values. If a viscosity value is needed by the Viscosity Package then it will use the tem-
perature or concentration values associated with this AUXSPECIESNAME in the viscosity equation of state.
For advanced stress packages (LAK, SFR, MAW, and UZF) that have an associated advanced transport pack-
age (LKT, SFT, MWT, and UZT), the FLOW_PACKAGE_AUXILIARY_NAME option in the advanced
transport package can be used to transfer simulated temperature or concentration(s) into the flow package
auxiliary variable. In this manner, the Viscosity Package can calculate viscosity values for lakes, streams,
multi-aquifer wells, and unsaturated zone flow cells using simulated concentrations.
BEGIN OPTIONS
VISCREF 8.904E-04
THERMAL_FORMULATION NONLINEAR
THERMAL_A2 10.0
THERMAL_A3 248.37
THERMAL_A4 133.15
VISCOSITY FILEOUT GWF-VSC.vsc.bin
END OPTIONS
BEGIN DIMENSIONS
NVISCSPECIES 2
END DIMENSIONS
BEGIN PACKAGEDATA
# ISPEC DVISCDC CVISCREF MODELNAME AUXSPECIESNAME
1 1.92e-6 0.0 GWT-SALT SALINITY
2 0.00 25.0 GWT-TEMP TEMPERATURE
END PACKAGEDATA
78 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
Groundwater Flow (GWF) Model Input 79
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of CHD head value.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of constant-head cells.
PRINT_INPUT—keyword to indicate that the list of constant-head information will be written to the listing file
immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of constant-head flow rates will be printed to the listing file for
every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Out-
put Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that constant-head flow terms will be written to the file specified with “BUD-
GET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the constant-head package. See the “Observation
utility” section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s)
supported by the constant-head package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of constant-head cells that will be specified for use
during any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
head—is the head at the boundary. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
aux—represents the values of the auxiliary variables for each constant head. The values of auxiliary variables
must be present for each constant head. The values must be specified in the order of the auxiliary variables
specified in the OPTIONS block. If the package supports time series and the Options block includes a TIME-
SERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
boundname—name of the constant head boundary cell. BOUNDNAME is an ASCII character variable that can
contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be
enclosed within single quotes.
80 MODFLOW 6 – Description of Input and Output
BEGIN PERIOD 1
#l r c head temperature boundname
1 1 2 100. 20.5 chd_1_2
1 1 3 100. 20.4 chd_1_3
END PERIOD 1
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of well flow rate.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of well cells.
82 MODFLOW 6 – Description of Input and Output
PRINT_INPUT—keyword to indicate that the list of well information will be written to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of well flow rates will be printed to the listing file for every stress
period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Control
option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that well flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
auto_flow_reduce—keyword and real value that defines the fraction of the cell thickness used as an interval
for smoothly adjusting negative pumping rates to 0 in cells with head values less than or equal to the bottom
of the cell. Negative pumping rates are adjusted to 0 or a smaller negative value when the head in the cell is
equal to or less than the calculated interval above the cell bottom. AUTO_FLOW_REDUCE is set to 0.1 if
the specified value is less than or equal to zero. By default, negative pumping rates are not reduced during
a simulation. This AUTO_FLOW_REDUCE option only applies to wells in model cells that are marked as
“convertible” (ICELLTYPE /= 0) in the Node Property Flow (NPF) input file. Reduction in flow will not
occur for wells in cells marked as confined (ICELLTYPE = 0).
AUTO_FLOW_REDUCE_CSV—keyword to specify that record corresponds to the AUTO_FLOW_REDUCE out-
put option in which a new record is written for each well and for each time step in which the user-requested
extraction rate is reduced by the program.
FILEOUT—keyword to specify that an output filename is expected next.
afrcsvfile—name of the comma-separated value (CSV) output file to write information about well extraction
rates that have been reduced by the program. Entries are only written if the extraction rates are reduced.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Well package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the Well package.
MOVER—keyword to indicate that this instance of the Well Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of wells cells that will be specified for use during any
stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
Groundwater Flow (GWF) Model Input 83
q—is the volumetric well rate. A positive value indicates recharge (injection) and a negative value indicates dis-
charge (extraction). If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
aux—represents the values of the auxiliary variables for each well. The values of auxiliary variables must be
present for each well. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the well cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
#wells 1 and 2
7 102 17 -19000 275.9 17.6 CW_1
9 192 44 -13000 280.0 24.0 CW_2
#wells 3 through 5
9 109 67 -24000 295.1 12.1 CW_3
10 43 17 -12000 301.3 9.6 CW_4
11 12 17 -17000 315.0 18.6 CW_5
END PERIOD
BEGIN OPTIONS
DIGITS 7
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of drain conductance.
86 MODFLOW 6 – Description of Input and Output
auxdepthname—name of a variable listed in AUXILIARY that defines the depth at which drainage discharge
will be scaled. If a positive value is specified for the AUXDEPTHNAME AUXILIARY variable, then
ELEV is the elevation at which the drain starts to discharge and ELEV + DDRN (assuming DDRN is the
AUXDEPTHNAME variable) is the elevation when the drain conductance (COND) scaling factor is 1. If a
negative drainage depth value is specified for DDRN, then ELEV + DDRN is the elevation at which the drain
starts to discharge and ELEV is the elevation when the conductance (COND) scaling factor is 1. A linear-
or cubic-scaling is used to scale the drain conductance (COND) when the Standard or Newton-Raphson For-
mulation is used, respectively. This discharge scaling option is described in more detail in Chapter 3 of the
Supplemental Technical Information.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of drain cells.
PRINT_INPUT—keyword to indicate that the list of drain information will be written to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of drain flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that drain flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Drain package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the Drain package.
MOVER—keyword to indicate that this instance of the Drain Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of drains cells that will be specified for use during any
stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
elev—is the elevation of the drain. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
Groundwater Flow (GWF) Model Input 87
cond—is the hydraulic conductance of the interface between the aquifer and the drain. If the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
aux—represents the values of the auxiliary variables for each drain. The values of auxiliary variables must be
present for each drain. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the drain cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
#The following block of drains will be activated for for the entire stress period
BEGIN PERIOD 1
#node elevation conductance boundname
73 10.2 1000. my_drn
76 10.2 1000. my_drn
79 10.2 1000. my_drn
80 10.2 1000. my_drn
81 10.2 1000. my_drn
END PERIOD
BEGIN OPTIONS
DIGITS 8
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of riverbed conductance.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of river cells.
PRINT_INPUT—keyword to indicate that the list of river information will be written to the listing file immediately
after it is read.
90 MODFLOW 6 – Description of Input and Output
PRINT_FLOWS—keyword to indicate that the list of river flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that river flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the River package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the River package.
MOVER—keyword to indicate that this instance of the River Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of rivers cells that will be specified for use during any
stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
stage—is the head in the river. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
cond—is the riverbed hydraulic conductance. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value.
rbot—is the elevation of the bottom of the riverbed. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
aux—represents the values of the auxiliary variables for each river. The values of auxiliary variables must be
present for each river. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the river cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Groundwater Flow (GWF) Model Input 91
BEGIN OPTIONS
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
BOUNDNAMES
TS6 FILEIN river_stages.ts
END OPTIONS
begin dimensions
MAXBOUND 20
end dimensions
BEGIN PERIOD 1
# layer row col stage cond rbot BoundName
1 3 1 river_stage_1 1001. 35.9
1 4 2 river_stage_1 1002. 35.8
1 5 3 river_stage_1 1003. 35.7
1 5 4 river_stage_1 1004. 35.6
1 6 5 river_stage_1 1005. 35.5
1 6 6 river_stage_1 1006. 35.4 riv1_c6
1 6 7 river_stage_1 1007. 35.3 riv1_c7
1 5 8 river_stage_1 1008. 35.2
1 5 9 river_stage_1 1009. 35.1
1 5 10 river_stage_1 1010. 35.0
1 10 1 river_stage_2 1001. 36.9 riv2_upper
1 9 2 river_stage_2 1002. 36.8 riv2_upper
1 8 3 river_stage_2 1003. 36.7 riv2_upper
1 7 4 river_stage_2 1004. 36.6
1 7 5 river_stage_2 1005. 36.5
1 6 6 river_stage_2 1006. 36.4 riv2_c6
1 6 7 river_stage_2 1007. 36.3 riv2_c7
1 7 8 river_stage_2 1008. 36.2
1 7 9 river_stage_2 1009. 36.1
1 7 10 river_stage_2 1010. 36.0
END PERIOD
BEGIN OPTIONS
DIGITS 7
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of general-head boundary conductance.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of general-head boundary
cells.
94 MODFLOW 6 – Description of Input and Output
PRINT_INPUT—keyword to indicate that the list of general-head boundary information will be written to the list-
ing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of general-head boundary flow rates will be printed to the listing
file for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is
no Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step
of each stress period.
SAVE_FLOWS—keyword to indicate that general-head boundary flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the General-Head Boundary package. See the
“Observation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists
observation type(s) supported by the General-Head Boundary package.
MOVER—keyword to indicate that this instance of the General-Head Boundary Package can be used with the Water
Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the
package to store the available, provided, and received water.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of general-head boundary cells that will be specified
for use during any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
bhead—is the boundary head. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
cond—is the hydraulic conductance of the interface between the aquifer cell and the boundary. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
aux—represents the values of the auxiliary variables for each general-head boundary. The values of auxiliary
variables must be present for each general-head boundary. The values must be specified in the order of the
auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
boundname—name of the general-head boundary cell. BOUNDNAME is an ASCII character variable that can
contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be
enclosed within single quotes.
Groundwater Flow (GWF) Model Input 95
BEGIN OPTIONS
PRINT_INPUT (echo input to listing file)
PRINT_FLOWS (print the flows to the listing file)
TS6 FILEIN tides.ts
BOUNDNAMES
END OPTIONS
# Dimensions block
BEGIN DIMENSIONS
MAXBOUND 15
END DIMENSIONS
BEGIN OPTIONS
DIGITS 7
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
98 MODFLOW 6 – Description of Input and Output
FIXED_CELL—indicates that recharge will not be reassigned to a cell underlying the cell specified in the list if the
specified cell is inactive.
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of recharge.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of recharge cells.
PRINT_INPUT—keyword to indicate that the list of recharge information will be written to the listing file immedi-
ately after it is read.
PRINT_FLOWS—keyword to indicate that the list of recharge flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that recharge flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Recharge package. See the “Observation util-
ity” section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s)
supported by the Recharge package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of recharge cells cells that will be specified for use
during any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
recharge—is the recharge flux rate (𝐿𝑇 −1 ). This rate is multiplied inside the program by the surface area of
the cell to calculate the volumetric recharge rate. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
Groundwater Flow (GWF) Model Input 99
aux—represents the values of the auxiliary variables for each recharge. The values of auxiliary variables must be
present for each recharge. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the recharge cell. BOUNDNAME is an ASCII character variable that can contain as many
as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
BEGIN OPTIONS
AUXILIARY var1 var2 mult
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
BOUNDNAMES
TS6 FILEIN recharge_rates.ts
# Note: Time-series file recharge_rates.ts defines time series rch_1
AUXMULTNAME mult
END OPTIONS
BEGIN DIMENSIONS
MAXBOUND 10
END DIMENSIONS
BEGIN PERIOD 1
# Lay Row Col Rate Var1 Var2 mult BoundName
1 1 1 rch_1 1.0 2.0 1.0 Rch-1-1
1 1 2 rch_1 1.1 2.1 1.0 Rch-1-2
1 1 3 rch_1 1.2 2.2 0.5
1 2 1 rch_1 1.3 2.3 1.0 Rch-2-1
1 2 2 rch_1 1.4 2.4 1.0 Rch-2-2
1 2 3 rch_1 1.5 2.5 1.0
1 2 4 rch_1 1.6 2.6 0.5
1 3 1 rch_1 1.7 2.7 1.0
1 3 2 rch_1 1.8 2.8 1.0
1 3 3 rch_1 1.9 2.9 1.0
END PERIOD
BEGIN OPTIONS
PRINT_INPUT
END OPTIONS
Structure of Blocks
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, the
array-based input specified by the user will replace the arrays currently in memory. If an array is not specified in the
period block, then that array will retain its present values in memory. With the array-based input, the user must specify
a recharge rate of zero in order to turn recharge off for a stress period. This behavior is different from list-based input in
which an empty PERIOD block results in no stresses being applied.
Explanation of Variables
Block: OPTIONS
READASARRAYS—indicates that array-based input will be used for the Recharge Package. This keyword must be
specified to use array-based input. When READASARRAYS is specified, values must be provided for every
cell within a model layer, even those cells that have an IDOMAIN value less than one. Values assigned to
cells with IDOMAIN values less than one are not used and have no effect on simulation results.
102 MODFLOW 6 – Description of Input and Output
FIXED_CELL—indicates that recharge will not be reassigned to a cell underlying the cell specified in the list if the
specified cell is inactive.
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of recharge.
PRINT_INPUT—keyword to indicate that the list of recharge information will be written to the listing file immedi-
ately after it is read.
PRINT_FLOWS—keyword to indicate that the list of recharge flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that recharge flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
TAS6—keyword to specify that record corresponds to a time-array-series file.
FILEIN—keyword to specify that an input filename is expected next.
tas6_filename—defines a time-array-series file defining a time-array series that can be used to assign time-
varying values. See the “Time-Variable Input” section for instructions on using the time-array series capabil-
ity.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Recharge package. See the “Observation util-
ity” section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s)
supported by the Recharge package.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
irch—IRCH is the layer number that defines the layer in each vertical column where recharge is applied. If
IRCH is omitted, recharge by default is applied to cells in layer 1. IRCH can only be used if READASAR-
RAYS is specified in the OPTIONS block. If IRCH is specified, it must be specified as the first variable in the
PERIOD block or MODFLOW will terminate with an error.
recharge—is the recharge flux rate (𝐿𝑇 −1 ). This rate is multiplied inside the program by the surface area of the
cell to calculate the volumetric recharge rate. The recharge array may be defined by a time-array series (see
the “Using Time-Array Series in a Package” section).
aux—is an array of values for auxiliary variable aux(iaux), where iaux is a value from 1 to naux, and aux(iaux)
must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable.
If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified
here for the auxiliary variable is the same as auxmultname, then the recharge array will be multiplied by this
array.
Groundwater Flow (GWF) Model Input 103
BEGIN OPTIONS
AUXILIARY var1 var2 mymult
READASARRAYS
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
AUXMULTNAME mymult
END OPTIONS
BEGIN PERIOD 1
# recharge rate
RECHARGE
constant 0.0040
END PERIOD
104 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
NSEG <nseg>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
Groundwater Flow (GWF) Model Input 105
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
FIXED_CELL—indicates that evapotranspiration will not be reassigned to a cell underlying the cell specified in the
list if the specified cell is inactive.
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of evapotranspiration rate.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of evapotranspiration cells.
PRINT_INPUT—keyword to indicate that the list of evapotranspiration information will be written to the listing
file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of evapotranspiration flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that evapotranspiration flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Evapotranspiration package. See the “Obser-
vation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists observation
type(s) supported by the Evapotranspiration package.
SURF_RATE_SPECIFIED—indicates that the proportion of the evapotranspiration rate at the ET surface will be
specified as PETM0 in list input.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of evapotranspiration cells cells that will be specified
for use during any stress period.
nseg—number of ET segments. Default is one. When NSEG is greater than 1, the PXDP and PETM arrays must
be of size NSEG - 1 and be listed in order from the uppermost segment down. Values for PXDP must be
listed first followed by the values for PETM. PXDP defines the extinction-depth proportion at the bottom
of a segment. PETM defines the proportion of the maximum ET flux rate at the bottom of a segment.
Block: PERIOD
106 MODFLOW 6 – Description of Input and Output
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
surface—is the elevation of the ET surface (𝐿). If the Options block includes a TIMESERIESFILE entry (see
the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
rate—is the maximum ET flux rate (𝐿𝑇 −1 ). If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value.
depth—is the ET extinction depth (𝐿). If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
pxdp—is the proportion of the ET extinction depth at the bottom of a segment (dimensionless). pxdp is an array
of size (nseg - 1). Values in pxdp must be greater than 0.0 and less than 1.0. pxdp values for a cell must
increase monotonically. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
petm—is the proportion of the maximum ET flux rate at the bottom of a segment (dimensionless). petm is an
array of size (nseg - 1). If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
petm0—is the proportion of the maximum ET flux rate that will apply when head is at or above the ET surface
(dimensionless). PETM0 is read only when the SURF_RATE_SPECIFIED option is used. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
aux—represents the values of the auxiliary variables for each evapotranspiration. The values of auxiliary vari-
ables must be present for each evapotranspiration. The values must be specified in the order of the auxiliary
variables specified in the OPTIONS block. If the package supports time series and the Options block includes
a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
boundname—name of the evapotranspiration cell. BOUNDNAME is an ASCII character variable that can contain
as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
BEGIN DIMENSIONS
MAXBOUND 10
NSEG 3
END DIMENSIONS
BEGIN PERIOD 1
# Lay Row Col SURFACE RATE DEPTH PXDP1 PXDP2 PETM1 PETM2 Mult Name
1 1 13 110.0 et_rate 10.0 0.2 0.5 0.3 0.1 0.2 ET-1
1 2 13 110.0 et_rate 10.0 0.2 0.5 0.3 0.1 0.4 ET-2
1 3 13 110.0 et_rate 10.0 0.2 0.5 0.3 0.1 0.6 ET-3
1 4 13 110.0 et_rate 10.0 0.2 0.5 0.3 0.1 0.8 ET-4
1 5 13 110.0 2.e-2 10.0 0.2 0.5 0.3 0.1 1.0 ET-5
1 6 13 110.0 2.e-2 10.0 0.2 0.5 0.3 0.1 1.0 ET-6
1 7 13 110.0 2.e-2 10.0 0.2 0.5 0.3 0.1 0.7 ET-7
1 8 13 110.0 2.e-2 10.0 0.2 0.5 0.3 0.1 0.5 ET-8
1 9 13 110.0 2.e-2 10.0 0.2 0.5 0.3 0.1 0.3 ET-9
1 10 13 110.0 et_rate 10.0 0.2 0.5 0.3 0.1 0.1 ET-10
END PERIOD
BEGIN OPTIONS
PRINT_INPUT
END OPTIONS
Structure of Blocks
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, the
array-based input specified by the user will replace the arrays currently in memory. If an array is not specified in the
period block, then that array will retain its present values in memory. With the array-based input, the user must specify
a evapotranspiration rate of zero in order to turn evapotranspiration off for a stress period. This behavior is different from
list-based input in which an empty PERIOD block results in no stresses being applied.
Explanation of Variables
Block: OPTIONS
Groundwater Flow (GWF) Model Input 109
READASARRAYS—indicates that array-based input will be used for the Evapotranspiration Package. This keyword
must be specified to use array-based input. When READASARRAYS is specified, values must be provided
for every cell within a model layer, even those cells that have an IDOMAIN value less than one. Values
assigned to cells with IDOMAIN values less than one are not used and have no effect on simulation results.
FIXED_CELL—indicates that evapotranspiration will not be reassigned to a cell underlying the cell specified in the
list if the specified cell is inactive.
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of evapotranspiration rate.
PRINT_INPUT—keyword to indicate that the list of evapotranspiration information will be written to the listing
file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of evapotranspiration flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that evapotranspiration flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TAS6—keyword to specify that record corresponds to a time-array-series file.
FILEIN—keyword to specify that an input filename is expected next.
tas6_filename—defines a time-array-series file defining a time-array series that can be used to assign time-
varying values. See the Time-Variable Input section for instructions on using the time-array series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Evapotranspiration package. See the “Obser-
vation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists observation
type(s) supported by the Evapotranspiration package.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ievt—IEVT is the layer number that defines the layer in each vertical column where evapotranspiration is
applied. If IEVT is omitted, evapotranspiration by default is applied to cells in layer 1. If IEVT is specified, it
must be specified as the first variable in the PERIOD block or MODFLOW will terminate with an error.
surface—is the elevation of the ET surface (𝐿).
rate—is the maximum ET flux rate (𝐿𝑇 −1 ).
depth—is the ET extinction depth (𝐿).
aux—is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and
AUX(IAUX) must be listed as part of the auxiliary variables. A separate array can be specified for each aux-
iliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the
value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate
will be multiplied by this array.
110 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
READASARRAYS
AUXILIARY var1 var2
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
END OPTIONS
BEGIN PERIOD 1
#For a structured grid, IEVT defaults to model
# layer 1, so no need to enter IEVT here.
Structure of Blocks
BEGIN DIMENSIONS
NMAWWELLS <nmawwells>
END DIMENSIONS
BEGIN PACKAGEDATA
<ifno> <radius> <bottom> <strt> <condeqn> <ngwfnodes> [<aux(naux)>] [<boundname>]
<ifno> <radius> <bottom> <strt> <condeqn> <ngwfnodes> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
BEGIN CONNECTIONDATA
<ifno> <icon> <cellid(ncelldim)> <scrn_top> <scrn_bot> <hk_skin> <radius_skin>
<ifno> <icon> <cellid(ncelldim)> <scrn_top> <scrn_bot> <hk_skin> <radius_skin>
...
END CONNECTIONDATA
All of the advanced stress package information in the PERIOD block will continue to apply for subsequent stress periods
until the end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encoun-
tered only the wells specified in the new period block will be changed. A well not specified in the new period block will
continue to behave according to its specification in the previous PERIOD block. Note that this behavior is different from
the simple stress packages (CHD, WEL, DRN, RIV, GHB, RCH and EVT), in which any stress not specified in a new
PERIOD block will be removed. To turn off all of the advanced stresses for a stress period, a PERIOD block must be
112 MODFLOW 6 – Description of Input and Output
specified with settings that deactivate the wells. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of multi-aquifer well cells.
PRINT_INPUT—keyword to indicate that the list of multi-aquifer well information will be written to the listing file
immediately after it is read.
PRINT_HEAD—keyword to indicate that the list of multi-aquifer well heads will be printed to the listing file for
every stress period in which “HEAD PRINT” is specified in Output Control. If there is no Output Control
option and PRINT_HEAD is specified, then heads are printed for the last time step of each stress period.
PRINT_FLOWS—keyword to indicate that the list of multi-aquifer well flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that multi-aquifer well flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
HEAD—keyword to specify that record corresponds to head.
headfile—name of the binary output file to write head information.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
NO_WELL_STORAGE—keyword that deactivates inclusion of well storage contributions to the multi-aquifer well
package continuity equation.
FLOW_CORRECTION—keyword that activates flow corrections in cases where the head in a multi-aquifer well is
below the bottom of the screen for a connection or the head in a convertible cell connected to a multi-aquifer
well is below the cell bottom. When flow corrections are activated, unit head gradients are used to calculate
the flow between a multi-aquifer well and a connected GWF cell. By default, flow corrections are not made.
FLOWING_WELLS—keyword that activates the flowing wells option for the multi-aquifer well package.
shutdown_theta—value that defines the weight applied to discharge rate for wells that limit the water
level in a discharging well (defined using the HEAD_LIMIT keyword in the stress period data). SHUT-
DOWN_THETA is used to control discharge rate oscillations when the flow rate from the aquifer is less
than the specified flow rate from the aquifer to the well. Values range between 0.0 and 1.0, and larger val-
ues increase the weight (decrease under-relaxation) applied to the well discharge rate. The HEAD_LIMIT
option has been included to facilitate backward compatibility with previous versions of MODFLOW but use
of the RATE_SCALING option instead of the HEAD_LIMIT option is recommended. By default, SHUT-
DOWN_THETA is 0.7.
Groundwater Flow (GWF) Model Input 113
shutdown_kappa—value that defines the weight applied to discharge rate for wells that limit the water
level in a discharging well (defined using the HEAD_LIMIT keyword in the stress period data). SHUT-
DOWN_KAPPA is used to control discharge rate oscillations when the flow rate from the aquifer is less
than the specified flow rate from the aquifer to the well. Values range between 0.0 and 1.0, and larger values
increase the weight applied to the well discharge rate. The HEAD_LIMIT option has been included to facil-
itate backward compatibility with previous versions of MODFLOW but use of the RATE_SCALING option
instead of the HEAD_LIMIT option is recommended. By default, SHUTDOWN_KAPPA is 0.0001.
MAW_FLOW_REDUCE_CSV—keyword to specify that record corresponds to the output option in which a new record
is written for each multi-aquifer well and for each time step in which the user-requested extraction or injec-
tion rate is reduced by the program.
mfrcsvfile—name of the comma-separated value (CSV) output file to write information about multi-aquifer
well extraction or injection rates that have been reduced by the program. Entries are only written if the
extraction or injection rates are reduced.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the MAW package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the MAW package.
MOVER—keyword to indicate that this instance of the MAW Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
Block: DIMENSIONS
nmawwells—integer value specifying the number of multi-aquifer wells that will be simulated for all stress peri-
ods.
Block: PACKAGEDATA
ifno—integer value that defines the feature (well) number associated with the specified PACKAGEDATA data
on the line. IFNO must be greater than zero and less than or equal to NMAWWELLS. Multi-aquifer well
information must be specified for every multi-aquifer well or the program will terminate with an error. The
program will also terminate with an error if information for a multi-aquifer well is specified more than once.
radius—radius for the multi-aquifer well. The program will terminate with an error if the radius is less than or
equal to zero.
bottom—bottom elevation of the multi-aquifer well. If CONDEQN is SPECIFIED, THIEM, SKIN, or COM-
POSITE, BOTTOM is set to the cell bottom in the lowermost GWF cell connection in cases where the
specified well bottom is above the bottom of this GWF cell. If CONDEQN is MEAN, BOTTOM is set
to the lowermost GWF cell connection screen bottom in cases where the specified well bottom is above
this value. The bottom elevation defines the lowest well head that will be simulated when the NEWTON
UNDER_RELAXATION option is specified in the GWF model name file. The bottom elevation is also used
to calculate volumetric storage in the well.
strt—starting head for the multi-aquifer well. The program will terminate with an error if the starting head is
less than the specified well bottom.
condeqn—character string that defines the conductance equation that is used to calculate the saturated conduc-
tance for the multi-aquifer well. Possible multi-aquifer well CONDEQN strings include: SPECIFIED–
character keyword to indicate the multi-aquifer well saturated conductance will be specified. THIEM–
character keyword to indicate the multi-aquifer well saturated conductance will be calculated using the Thiem
114 MODFLOW 6 – Description of Input and Output
equation, which considers the cell top and bottom, aquifer hydraulic conductivity, and effective cell and well
radius. SKIN–character keyword to indicate that the multi-aquifer well saturated conductance will be cal-
culated using the cell top and bottom, aquifer and screen hydraulic conductivity, and well and skin radius.
CUMULATIVE–character keyword to indicate that the multi-aquifer well saturated conductance will be
calculated using a combination of the Thiem and SKIN equations. MEAN–character keyword to indicate
the multi-aquifer well saturated conductance will be calculated using the aquifer and screen top and bottom,
aquifer and screen hydraulic conductivity, and well and skin radius. The CUMULATIVE conductance equa-
tion is identical to the SKIN LOSSTYPE in the Multi-Node Well (MNW2) package for MODFLOW-2005.
The program will terminate with an error condition if CONDEQN is SKIN or CUMULATIVE and the calcu-
lated saturated conductance is less than zero; if an error condition occurs, it is suggested that the THEIM or
MEAN conductance equations be used for these multi-aquifer wells.
ngwfnodes—integer value that defines the number of GWF nodes connected to this (IFNO) multi-aquifer well.
NGWFNODES must be greater than zero.
aux—represents the values of the auxiliary variables for each multi-aquifer well. The values of auxiliary variables
must be present for each multi-aquifer well. The values must be specified in the order of the auxiliary vari-
ables specified in the OPTIONS block. If the package supports time series and the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
boundname—name of the multi-aquifer well cell. BOUNDNAME is an ASCII character variable that can contain
as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
Block: CONNECTIONDATA
ifno—integer value that defines the feature (well) number associated with the specified CONNECTIONDATA
data on the line. IFNO must be greater than zero and less than or equal to NMAWWELLS. Multi-aquifer
well connection information must be specified for every multi-aquifer well connection to the GWF model
(NGWFNODES) or the program will terminate with an error. The program will also terminate with an error
if connection information for a multi-aquifer well connection to the GWF model is specified more than once.
icon—integer value that defines the GWF connection number for this multi-aquifer well connection entry.
ICONN must be greater than zero and less than or equal to NGWFNODES for multi-aquifer well IFNO.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell. One or more screened intervals can be connected to the same
CELLID if CONDEQN for a well is MEAN. The program will terminate with an error if MAW wells using
SPECIFIED, THIEM, SKIN, or CUMULATIVE conductance equations have more than one connection to
the same CELLID.
scrn_top—value that defines the top elevation of the screen for the multi-aquifer well connection. If CONDEQN
is SPECIFIED, THIEM, SKIN, or COMPOSITE, SCRN_TOP can be any value and is set to the top of the
cell. If CONDEQN is MEAN, SCRN_TOP is set to the multi-aquifer well connection cell top if the specified
value is greater than the cell top. The program will terminate with an error if the screen top is less than the
screen bottom.
scrn_bot—value that defines the bottom elevation of the screen for the multi-aquifer well connection. If COND-
EQN is SPECIFIED, THIEM, SKIN, or COMPOSITE, SCRN_BOT can be any value and is set to the bottom
of the cell. If CONDEQN is MEAN, SCRN_BOT is set to the multi-aquifer well connection cell bottom if
the specified value is less than the cell bottom. The program will terminate with an error if the screen bottom
is greater than the screen top.
hk_skin—value that defines the skin (filter pack) hydraulic conductivity (if CONDEQN for the multi-aquifer
well is SKIN, CUMULATIVE, or MEAN) or conductance (if CONDEQN for the multi-aquifer well is
SPECIFIED) for each GWF node connected to the multi-aquifer well (NGWFNODES). If CONDEQN is
SPECIFIED, HK_SKIN must be greater than or equal to zero. HK_SKIN can be any value if CONDEQN is
Groundwater Flow (GWF) Model Input 115
THIEM. Otherwise, HK_SKIN must be greater than zero. If CONDEQN is SKIN, the contrast between the
cell transmissivity (the product of geometric mean horizontal hydraulic conductivity and the cell thickness)
and the well transmissivity (the product of HK_SKIN and the screen thicknesses) must be greater than one
in node CELLID or the program will terminate with an error condition; if an error condition occurs, it is sug-
gested that the HK_SKIN be reduced to a value less than K11 and K22 in node CELLID or the THEIM or
MEAN conductance equations be used for these multi-aquifer wells.
radius_skin—real value that defines the skin radius (filter pack radius) for the multi-aquifer well.
RADIUS_SKIN can be any value if CONDEQN is SPECIFIED or THIEM. If CONDEQN is SKIN, CUMU-
LATIVE, or MEAN, the program will terminate with an error if RADIUS_SKIN is less than or equal to the
RADIUS for the multi-aquifer well.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the well number associated with the specified PERIOD data on the line. IFNO
must be greater than zero and less than or equal to NMAWWELLS.
mawsetting—line of information that is parsed into a keyword and values. Keyword values that can be
used to start the MAWSETTING string include: STATUS, FLOWING_WELL, RATE, WELL_HEAD,
HEAD_LIMIT, SHUT_OFF, RATE_SCALING, and AUXILIARY.
STATUS <status>
FLOWING_WELL <fwelev> <fwcond> <fwrlen>
RATE <rate>
WELL_HEAD <well_head>
HEAD_LIMIT <head_limit>
SHUT_OFF <minrate> <maxrate>
RATE_SCALING <pump_elevation> <scaling_length>
AUXILIARY <auxname> <auxval>
status—keyword option to define well status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE.
FLOWING_WELL—keyword to indicate the well is a flowing well. The FLOWING_WELL option can be used to
simulate flowing wells when the simulated well head exceeds the specified drainage elevation.
fwelev—elevation used to determine whether or not the well is flowing.
fwcond—conductance used to calculate the discharge of a free flowing well. Flow occurs when the head in the
well is above the well top elevation (FWELEV).
fwrlen—length used to reduce the conductance of the flowing well. When the head in the well drops below the
well top plus the reduction length, then the conductance is reduced. This reduction length can be used to
improve the stability of simulations with flowing wells so that there is not an abrupt change in flowing well
rates.
rate—is the volumetric pumping rate for the multi-aquifer well. A positive value indicates recharge and a nega-
tive value indicates discharge (pumping). RATE only applies to active (STATUS is ACTIVE) multi-aquifer
wells. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section),
values can be obtained from a time series by entering the time-series name in place of a numeric value. By
default, the RATE for each multi-aquifer well is zero.
well_head—is the head in the multi-aquifer well. WELL_HEAD is only applied to constant head (STATUS is
CONSTANT) and inactive (STATUS is INACTIVE) multi-aquifer wells. If the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value. The program will terminate with an error if
WELL_HEAD is less than the bottom of the well.
116 MODFLOW 6 – Description of Input and Output
head_limit—is the limiting water level (head) in the well, which is the minimum of the well RATE or the well
inflow rate from the aquifer. HEAD_LIMIT can be applied to extraction wells (RATE < 0) or injection wells
(RATE > 0). HEAD_LIMIT can be deactivated by specifying the text string ‘OFF’. The HEAD_LIMIT
option is based on the HEAD_LIMIT functionality available in the MNW2 (Konikow and others, 2009) pack-
age for MODFLOW-2005. The HEAD_LIMIT option has been included to facilitate backward compatibility
with previous versions of MODFLOW but use of the RATE_SCALING option instead of the HEAD_LIMIT
option is recommended. By default, HEAD_LIMIT is ‘OFF’.
SHUT_OFF—keyword for activating well shut off capability. Subsequent values define the minimum and maxi-
mum pumping rate that a well must exceed to shutoff or reactivate a well, respectively, during a stress period.
SHUT_OFF is only applied to injection wells (RATE< 0) and if HEAD_LIMIT is specified (not set to
‘OFF’). If HEAD_LIMIT is specified, SHUT_OFF can be deactivated by specifying a minimum value equal
to zero. The SHUT_OFF option is based on the SHUT_OFF functionality available in the MNW2 (Konikow
and others, 2009) package for MODFLOW-2005. The SHUT_OFF option has been included to facilitate
backward compatibility with previous versions of MODFLOW but use of the RATE_SCALING option
instead of the SHUT_OFF option is recommended. By default, SHUT_OFF is not used.
minrate—is the minimum rate that a well must exceed to shutoff a well during a stress period. The well will shut
down during a time step if the flow rate to the well from the aquifer is less than MINRATE. If a well is shut
down during a time step, reactivation of the well cannot occur until the next time step to reduce oscillations.
MINRATE must be less than maxrate.
maxrate—is the maximum rate that a well must exceed to reactivate a well during a stress period. The well will
reactivate during a timestep if the well was shutdown during the previous time step and the flow rate to the
well from the aquifer exceeds maxrate. Reactivation of the well cannot occur until the next time step if a well
is shutdown to reduce oscillations. maxrate must be greater than MINRATE.
RATE_SCALING—activate rate scaling. If RATE_SCALING is specified, both PUMP_ELEVATION and SCAL-
ING_LENGTH must be specified. RATE_SCALING cannot be used with HEAD_LIMIT. RATE_SCALING
can be used for extraction or injection wells. For extraction wells, the extraction rate will start to decrease
once the head in the well lowers to a level equal to the pump elevation plus the scaling length. If the head in
the well drops below the pump elevation, then the extraction rate is calculated to be zero. For an injection
well, the injection rate will begin to decrease once the head in the well rises above the specified pump eleva-
tion. If the head in the well rises above the pump elevation plus the scaling length, then the injection rate will
be set to zero.
pump_elevation—is the elevation of the multi-aquifer well pump (PUMP_ELEVATION). PUMP_ELEVATION
should not be less than the bottom elevation (BOTTOM) of the multi-aquifer well.
scaling_length—height above the pump elevation (SCALING_LENGTH). If the simulated well head is below
this elevation (pump elevation plus the scaling length), then the pumping rate is reduced.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
begin options
print_input
print_head
print_flows
Groundwater Flow (GWF) Model Input 117
boundnames
head fileout maw-1.head.bin
budget fileout maw-1.cbc
end options
begin dimensions
nmawwells 2
end dimensions
begin packagedata
# ifno radius bottom strt condeqn ngwnodes name
1 0.15 -100.0 9.14 thiem 2 pwell
2 0.25 -100.0 9.14 thiem 1 iwell
end packagedata
begin connectiondata
# ifno conn l r c stop sbot k rskin
1 1 1 51 51 0 0 0 0
1 2 2 51 51 0 0 0 0
2 1 2 2 2 0 0 0 0
end connectiondata
begin period 1
1 rate_scaling -90. 5.
1 rate -1767.
2 status inactive
end period
begin options
print_input
print_head
print_flows
boundnames
end options
begin dimensions
nmawwells 2
end dimensions
begin packagedata
# ifno radius bottom strt condeqn ngwnodes name
1 0.15 -100.0 9.14 mean 2 pwell
2 0.25 -100.0 9.14 mean 1 iwell
end packagedata
begin connectiondata
# ifno conn l r c stop sbot k rskin
1 1 1 51 51 0. -100. 361. .25
1 2 2 51 51 0. -100. 361. .25
2 1 2 2 2 -50. -100. 361 .50
end connectiondata
begin period 1
1 rate_scaling -90. 5.
1 rate -1767.
2 status inactive
end period
2 status active
2 rate 529.
1 rate -2767.
end period
begin options
print_input
print_head
print_flows
boundnames
flowing_wells
end options
begin dimensions
nmawwells 1
end dimensions
begin packagedata
# ifno radius bottom strt condeqn ngwnodes name
1 0.15 -514.9 9.14 specified 2 ntwell
end packagedata
begin connectiondata
# ifno conn l r c stop sbot k rskin
1 1 1 51 51 -50 -514.9 111.3763 0
1 2 2 51 51 -50 -514.9 445.9849 0
end connectiondata
begin period 1
1 rate 0
1 flowing_well 0. 7500. 0.5
end period
BEGIN OPTIONS
DIGITS 10
PRINT_INPUT
END OPTIONS
D U
1 2
D U
U 5
EXPLANATION
Reach connections 3
Stream
Reach connectivity Reach connection
D
reach connections Flow direction
U
1 -2 5 Stream reach number
U Upstream end of reach
2 1 -3 -5
4 D Downstream end of reach
3 2 -4
4 3 -7
5 2 -6 U
D
6
6 5 -7 7
D
7 4 6
D
Figure 2. Simple stream network having seven reaches with a junction having two reaches, a confluence of two reaches, and
the resulting reach connectivity. Downstream connections for a reach must include the reach as an upstream connection for all
downstream connections to the reach. Downstream connections for a reach are denoted with a negative reach number.
Structure of Blocks
BEGIN DIMENSIONS
NREACHES <nreaches>
END DIMENSIONS
BEGIN PACKAGEDATA
<ifno> <cellid(ncelldim)> <rlen> <rwid> <rgrd> <rtp> <rbth> <rhk> <man> <ncon> <ustrf> <ndv> [<aux(naux)>] [<boundname>]
<ifno> <cellid(ncelldim)> <rlen> <rwid> <rgrd> <rtp> <rbth> <rhk> <man> <ncon> <ustrf> <ndv> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
BEGIN CONNECTIONDATA
<ifno> [<ic(ncon(ifno))>]
<ifno> [<ic(ncon(ifno))>]
...
END CONNECTIONDATA
All of the advanced stress package information in the PERIOD block will continue to apply for subsequent stress periods
until the end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encoun-
tered only the reaches specified in the new period block will be changed. A reach not specified in the new period block
will continue to behave according to its specification in the previous PERIOD block. Note that this behavior is different
from the simple stress packages (CHD, WEL, DRN, RIV, GHB, RCH and EVT), in which any stress not specified in a
new PERIOD block will be removed. To turn off all of the advanced stresses for a stress period, a PERIOD block must
be specified with settings that deactivate the reaches. If a PERIOD block is not specified for the first stress period, then
no stresses will be applied.
122 MODFLOW 6 – Description of Input and Output
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of stream reach cells.
PRINT_INPUT—keyword to indicate that the list of stream reach information will be written to the listing file
immediately after it is read.
PRINT_STAGE—keyword to indicate that the list of stream reach stages will be printed to the listing file for every
stress period in which “HEAD PRINT” is specified in Output Control. If there is no Output Control option
and PRINT_STAGE is specified, then stages are printed for the last time step of each stress period.
PRINT_FLOWS—keyword to indicate that the list of stream reach flow rates will be printed to the listing file for
every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Out-
put Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that stream reach flow terms will be written to the file specified with “BUD-
GET FILEOUT” in Output Control.
STAGE—keyword to specify that record corresponds to stage.
stagefile—name of the binary output file to write stage information.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
PACKAGE_CONVERGENCE—keyword to specify that record corresponds to the package convergence comma spaced
values file.
package_convergence_filename—name of the comma spaced values output file to write package convergence
information.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the SFR package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the SFR package.
MOVER—keyword to indicate that this instance of the SFR Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
Groundwater Flow (GWF) Model Input 123
maximum_picard_iterations—integer value that defines the maximum number of Streamflow Routing picard
iterations allowed when solving for reach stages and flows as part of the GWF formulate step. Picard itera-
tions are used to minimize differences in SFR package results between subsequent GWF picard (non-linear)
iterations as a result of non-optimal reach numbering. If reaches are numbered in order, from upstream to
downstream, MAXIMUM_PICARD_ITERATIONS can be set to 1 to reduce model run time. By default,
MAXIMUM_PICARD_ITERATIONS is equal to 100.
maximum_iterations—integer value that defines the maximum number of Streamflow Routing Newton-
Raphson iterations allowed for a reach. By default, MAXIMUM_ITERATIONS is equal to 100. MAXI-
MUM_ITERATIONS would only need to be increased from the default value if one or more reach in a simu-
lation has a large water budget error.
maximum_depth_change—real value that defines the depth closure tolerance. By default, MAXI-
MUM_DEPTH_CHANGE is equal to 1 × 10−5 . The MAXIMUM_STAGE_CHANGE would only need to
be increased or decreased from the default value if the water budget error for one or more reach is too small
or too large, respectively.
length_conversion—real value that is used to convert user-specified Manning’s roughness coefficients
from meters to model length units. LENGTH_CONVERSION should be set to 3.28081, 1.0, and 100.0
when using length units (LENGTH_UNITS) of feet, meters, or centimeters in the simulation, respectively.
LENGTH_CONVERSION does not need to be specified if LENGTH_UNITS are meters.
time_conversion—real value that is used to convert user-specified Manning’s roughness coefficients from
seconds to model time units. TIME_CONVERSION should be set to 1.0, 60.0, 3,600.0, 86,400.0, and
31,557,600.0 when using time units (TIME_UNITS) of seconds, minutes, hours, days, or years in the sim-
ulation, respectively. TIME_CONVERSION does not need to be specified if TIME_UNITS are seconds.
Block: DIMENSIONS
nreaches—integer value specifying the number of stream reaches. There must be NREACHES entries in the
PACKAGEDATA block.
Block: PACKAGEDATA
ifno—integer value that defines the feature (reach) number associated with the specified PACKAGEDATA data
on the line. IFNO must be greater than zero and less than or equal to NREACHES. Reach information must
be specified for every reach or the program will terminate with an error. The program will also terminate with
an error if information for a reach is specified more than once.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell. For reaches that are not connected to an underlying GWF cell,
a zero should be specified for each grid dimension. For example, for a DIS grid a CELLID of 0 0 0 should be
specified. Reach-aquifer flow is not calculated for unconnected reaches. The keyword NONE can be still be
specified to identify unconnected reaches for backward compatibility with previous versions of MODFLOW
6 but eventually NONE will be deprecated and will cause MODFLOW 6 to terminate with an error.
rlen—real value that defines the reach length. RLEN must be greater than zero.
rwid—real value that defines the reach width. RWID must be greater than zero.
rgrd—real value that defines the stream gradient (slope) across the reach. RGRD must be greater than zero.
rtp—real value that defines the bottom elevation of the reach.
rbth—real value that defines the thickness of the reach streambed. RBTH can be any value if the reach is not
connected to an underlying GWF cell. Otherwise, RBTH must be greater than zero.
rhk—real or character value that defines the hydraulic conductivity of the reach streambed. RHK can be any pos-
itive value if the reach is not connected to an underlying GWF cell. Otherwise, RHK must be greater than
zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), val-
ues can be obtained from a time series by entering the time-series name in place of a numeric value.
124 MODFLOW 6 – Description of Input and Output
man—real or character value that defines the Manning’s roughness coefficient for the reach. MAN must be greater
than zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section),
values can be obtained from a time series by entering the time-series name in place of a numeric value.
ncon—integer value that defines the number of reaches connected to the reach. If a value of zero is specified for
NCON an entry for IFNO is still required in the subsequent CONNECTIONDATA block.
ustrf—real value that defines the fraction of upstream flow from each upstream reach that is applied as upstream
inflow to the reach. The sum of all USTRF values for all reaches connected to the same upstream reach must
be equal to one and USTRF must be greater than or equal to zero. If the Options block includes a TIME-
SERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
ndv—integer value that defines the number of downstream diversions for the reach.
aux—represents the values of the auxiliary variables for each stream reach. The values of auxiliary variables must
be present for each stream reach. The values must be specified in the order of the auxiliary variables specified
in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIES-
FILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the
time-series name in place of a numeric value.
boundname—name of the stream reach cell. BOUNDNAME is an ASCII character variable that can contain as
many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within
single quotes.
Block: CROSSSECTIONS
ifno—integer value that defines the feature (reach) number associated with the specified cross-section table file
on the line. IFNO must be greater than zero and less than or equal to NREACHES. The program will also
terminate with an error if table information for a reach is specified more than once.
TAB6—keyword to specify that record corresponds to a cross-section table file.
FILEIN—keyword to specify that an input filename is expected next.
tab6_filename—character string that defines the path and filename for the file containing cross-section
table data for the reach. The TAB6_FILENAME file includes the number of entries in the file and the
station elevation data in terms of the fractional width and the reach depth. Instructions for creating the
TAB6_FILENAME input file are provided in SFR Reach Cross-Section Table Input File section.
Block: CONNECTIONDATA
ifno—integer value that defines the feature (reach) number associated with the specified CONNECTIONDATA
data on the line. IFNO must be greater than zero and less than or equal to NREACHES. Reach connection
information must be specified for every reach or the program will terminate with an error. The program will
also terminate with an error if connection information for a reach is specified more than once.
ic—integer value that defines the reach number of the reach connected to the current reach and whether it is con-
nected to the upstream or downstream end of the reach. Negative IC numbers indicate connected reaches are
connected to the downstream end of the current reach. Positive IC numbers indicate connected reaches are
connected to the upstream end of the current reach. The absolute value of IC must be greater than zero and
less than or equal to NREACHES. IC should not be specified when NCON is zero but must be specified oth-
erwise.
Block: DIVERSIONS
ifno—integer value that defines the feature (reach) number associated with the specified DIVERSIONS data on
the line. IFNO must be greater than zero and less than or equal to NREACHES. Reach diversion informa-
tion must be specified for every reach with a NDV value greater than 0 or the program will terminate with an
error. The program will also terminate with an error if diversion information for a given reach diversion is
specified more than once.
Groundwater Flow (GWF) Model Input 125
idv—integer value that defines the downstream diversion number for the diversion for reach IFNO. IDV must be
greater than zero and less than or equal to NDV for reach IFNO.
iconr—integer value that defines the downstream reach that will receive the diverted water. IDV must be greater
than zero and less than or equal to NREACHES. Furthermore, reach ICONR must be a downstream connec-
tion for reach IFNO.
cprior—character string value that defines the the prioritization system for the diversion, such as when insuffi-
cient water is available to meet all diversion stipulations, and is used in conjunction with the value of FLOW
value specified in the STRESS_PERIOD_DATA section. Available diversion options include: (1) CPRIOR
= ‘FRACTION’, then the amount of the diversion is computed as a fraction of the streamflow leaving reach
IFNO (𝑄𝐷𝑆 ); in this case, 0.0 ≤ DIVFLOW ≤ 1.0. (2) CPRIOR = ‘EXCESS’, a diversion is made only if
𝑄𝐷𝑆 for reach IFNO exceeds the value of DIVFLOW. If this occurs, then the quantity of water diverted is
the excess flow (𝑄𝐷𝑆 − DIVFLOW) and 𝑄𝐷𝑆 from reach IFNO is set equal to DIVFLOW. This represents
a flood-control type of diversion, as described by Danskin and Hanson (2002). (3) CPRIOR = ‘THRESH-
OLD’, then if 𝑄𝐷𝑆 in reach IFNO is less than the specified diversion flow DIVFLOW, no water is diverted
from reach IFNO. If 𝑄𝐷𝑆 in reach IFNO is greater than or equal to DIVFLOW, DIVFLOW is diverted and
𝑄𝐷𝑆 is set to the remainder (𝑄𝐷𝑆 − DIVFLOW)). This approach assumes that once flow in the stream is suf-
ficiently low, diversions from the stream cease, and is the ‘priority’ algorithm that originally was programmed
into the STR1 Package (Prudic, 1989). (4) CPRIOR = ‘UPTO’ – if 𝑄𝐷𝑆 in reach IFNO is greater than or
equal to the specified diversion flow DIVFLOW, 𝑄𝐷𝑆 is reduced by DIVFLOW. If 𝑄𝐷𝑆 in reach IFNO is
less than DIVFLOW, DIVFLOW is set to 𝑄𝐷𝑆 and there will be no flow available for reaches connected to
downstream end of reach IFNO.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (reach) number associated with the specified PERIOD data on the
line. IFNO must be greater than zero and less than or equal to NREACHES.
sfrsetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the SFRSETTING string include: STATUS, BEDK, MANNING, STAGE, INFLOW, RAINFALL,
EVAPORATION, RUNOFF, DIVERSION, UPSTREAM_FRACTION, and AUXILIARY.
STATUS <status>
BEDK <bedk>
MANNING <manning>
STAGE <stage>
INFLOW <inflow>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
DIVERSION <idv> <divflow>
UPSTREAM_FRACTION <upstream_fraction>
CROSS_SECTION TAB6 FILEIN <tab6_filename>
AUXILIARY <auxname> <auxval>
status—keyword option to define stream reach status. STATUS can be ACTIVE, INACTIVE, or SIMPLE. The
SIMPLE STATUS option simulates streamflow using a user-specified stage for a reach or a stage set to the
top of the reach (depth = 0). In cases where the simulated leakage calculated using the specified stage exceeds
the sum of inflows to the reach, the stage is set to the top of the reach and leakage is set equal to the sum of
inflows. Upstream fractions should be changed using the UPSTREAM_FRACTION SFRSETTING if the
status for one or more reaches is changed to ACTIVE or INACTIVE. For example, if one of two downstream
connections for a reach is inactivated, the upstream fraction for the active and inactive downstream reach
should be changed to 1.0 and 0.0, respectively, to ensure that the active reach receives all of the downstream
outflow from the upstream reach. By default, STATUS is ACTIVE.
126 MODFLOW 6 – Description of Input and Output
bedk—real or character value that defines the hydraulic conductivity of the reach streambed. BEDK can be any
positive value if the reach is not connected to an underlying GWF cell. Otherwise, BEDK must be greater
than zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section),
values can be obtained from a time series by entering the time-series name in place of a numeric value.
manning—real or character value that defines the Manning’s roughness coefficient for the reach. MANNING
must be greater than zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
stage—real or character value that defines the stage for the reach. The specified STAGE is only applied if the
reach uses the simple routing option. If STAGE is not specified for reaches that use the simple routing option,
the specified stage is set to the top of the reach. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
inflow—real or character value that defines the volumetric inflow rate for the streamflow routing reach. If the
Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value. By default, inflow
rates are zero for each reach.
rainfall—real or character value that defines the volumetric rate per unit area of water added by precipitation
directly on the streamflow routing reach. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value. By default, rainfall rates are zero for each reach.
evaporation—real or character value that defines the volumetric rate per unit area of water subtracted by evap-
oration from the streamflow routing reach. A positive evaporation rate should be provided. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value. If the volumetric evaporation
rate for a reach exceeds the sources of water to the reach (upstream and specified inflows, rainfall, and runoff
but excluding groundwater leakage into the reach) the volumetric evaporation rate is limited to the sources of
water to the reach. By default, evaporation rates are zero for each reach.
runoff—real or character value that defines the volumetric rate of diffuse overland runoff that enters the stream-
flow routing reach. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value. If the volumetric runoff rate for a reach is negative and exceeds inflows to the reach (upstream and
specified inflows, and rainfall but excluding groundwater leakage into the reach) the volumetric runoff rate
is limited to inflows to the reach and the volumetric evaporation rate for the reach is set to zero. By default,
runoff rates are zero for each reach.
DIVERSION—keyword to indicate diversion record.
idv—an integer value specifying which diversion of reach IFNO that DIVFLOW is being specified for. Must be
less or equal to ndv for the current reach (IFNO).
divflow—real or character value that defines the volumetric diversion (DIVFLOW) rate for the streamflow rout-
ing reach. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section),
values can be obtained from a time series by entering the time-series name in place of a numeric value.
upstream_fraction—real value that defines the fraction of upstream flow (USTRF) from each upstream reach
that is applied as upstream inflow to the reach. The sum of all USTRF values for all reaches connected to the
same upstream reach must be equal to one.
CROSS_SECTION—keyword to specify that record corresponds to a reach cross-section.
TAB6—keyword to specify that record corresponds to a cross-section table file.
FILEIN—keyword to specify that an input filename is expected next.
tab6_filename—character string that defines the path and filename for the file containing cross-section
table data for the reach. The TAB6_FILENAME file includes the number of entries in the file and the
station elevation data in terms of the fractional width and the reach depth. Instructions for creating the
TAB6_FILENAME input file are provided in SFR Reach Cross-Section Table Input File section.
Groundwater Flow (GWF) Model Input 127
BEGIN OPTIONS
UNIT_CONVERSION 1.486
BOUNDNAMES
PRINT_STAGE
PRINT_FLOWS
STAGE FILEOUT sfr-1.stage.bin
BUDGET FILEOUT sfr-1.cbc
END OPTIONS
BEGIN PACKAGEDATA
#ifno k i j rlen rwid rgrd rtp rbth rhk man ncon ustrf ndv boundname
1 1 1 1 4500. 12 8.67E-04 1093.048 3.0 0.00003 0.03 1 1.0 0 reach1
2 1 2 2 7000. 12 8.67E-04 1088.059 3.0 0.00003 0.03 2 1.0 0 reach2
3 1 3 3 6000. 12 8.67E-04 1082.419 3.0 0.00003 0.03 2 1.0 0 reach3
4 1 3 4 5550. 12 8.67E-04 1077.408 3.0 0.00003 0.03 3 1.0 1 reach4
5 1 4 5 6500. 12 9.43E-04 1071.934 3.0 0.00003 0.03 2 1.0 0
6 1 5 6 5000. 12 9.43E-04 1066.509 3.0 0.00003 0.03 2 1.0 0
7 1 6 6 5000. 12 9.43E-04 1061.792 3.0 0.00003 0.03 2 1.0 0
8 1 7 6 5000. 12 9.43E-04 1057.075 3.0 0.00003 0.03 2 1.0 0
9 1 8 6 5000. 12 9.43E-04 1052.359 3.0 0.00003 0.03 2 1.0 0
10 1 3 5 5000. 10 5.45E-04 1073.636 2.0 0.00003 0.03 2 0.0 0 canal
11 1 3 6 5000. 10 5.45E-04 1070.909 2.0 0.00003 0.03 2 1.0 0 canal
12 1 3 7 4500. 10 5.45E-04 1068.318 2.0 0.00003 0.03 2 1.0 0 canal
13 1 4 8 6000. 10 5.45E-04 1065.455 2.0 0.00003 0.03 2 1.0 0 canal
14 1 5 8 5000. 10 5.45E-04 1062.455 2.0 0.00003 0.03 2 1.0 0 canal
15 1 6 8 2000. 10 5.45E-04 1060.545 2.0 0.00003 0.03 2 1.0 0 canal
16 1 5 10 2500. 10 1.81E-03 1077.727 3.0 0.00003 0.03 1 1.0 0
17 1 5 9 5000. 10 1.81E-03 1070.909 3.0 0.00003 0.03 2 1.0 0
18 1 6 8 3500. 10 1.81E-03 1063.182 3.0 0.00003 0.03 2 1.0 0
19 1 6 8 4000. 15 1.00E-03 1058.000 3.0 0.00003 0.03 3 1.0 0
20 1 7 7 5000. 15 1.00E-03 1053.500 3.0 0.00003 0.03 2 1.0 0
21 1 8 7 3500. 15 1.00E-03 1049.250 3.0 0.00003 0.03 2 1.0 0
22 1 8 6 2500. 15 1.00E-03 1046.250 3.0 0.00003 0.03 2 1.0 0
23 1 9 6 5000. 12 9.09E-04 1042.727 3.0 0.00003 0.03 3 1.0 0
24 1 10 7 5000. 12 9.09E-04 1038.182 3.0 0.00003 0.03 2 1.0 0
25 1 11 7 5000. 12 9.09E-04 1033.636 3.0 0.00003 0.03 2 1.0 0
26 1 12 7 5000. 12 9.09E-04 1029.091 3.0 0.00003 0.03 2 1.0 0
27 1 13 7 2000. 12 9.09E-04 1025.909 3.0 0.00003 0.03 2 1.0 0
28 1 14 9 5000. 55 9.67E-04 1037.581 3.0 0.00006 0.025 1 1.0 0
29 1 13 8 5500. 55 9.67E-04 1032.500 3.0 0.00006 0.025 2 1.0 0
30 1 13 7 5000. 55 9.67E-04 1027.419 3.0 0.00006 0.025 2 1.0 0
31 1 13 6 5000. 40 1.25E-03 1021.875 3.0 0.00006 0.025 3 1.0 0
32 1 13 5 5000. 40 1.25E-03 1015.625 3.0 0.00006 0.025 2 1.0 0
33 1 13 4 5000. 40 1.25E-03 1009.375 3.0 0.00006 0.025 2 1.0 0
34 1 13 3 5000. 40 1.25E-03 1003.125 3.0 0.00006 0.025 2 1.0 0
35 1 13 2 5000. 40 1.25E-03 996.8750 3.0 0.00006 0.025 2 1.0 0
128 MODFLOW 6 – Description of Input and Output
BEGIN CONNECTIONDATA
#ifno ic1 ic2 ic3
1 -2
2 1 -3
3 2 -4
4 3 -5 -10
5 4 -6
6 5 -7
7 6 -8
8 7 -9
9 8 -23
10 4 -11
11 10 -12
12 11 -13
13 12 -14
14 13 -15
15 14 -19
16 -17
17 16 -18
18 17 -19
19 15 18 -20
20 19 -21
21 20 -22
22 21 -23
23 9 22 -24
24 23 -25
25 24 -26
26 25 -27
27 26 -31
28 -29
29 28 -30
30 29 -31
31 27 30 -32
32 31 -33
33 32 -34
34 33 -35
35 34 -36
36 35 -37
37 36
END CONNECTIONDATA
BEGIN DIVERSIONS
# ifno idv iconr cprior
4 1 10 UPTO
END DIVERSIONS
BEGIN PERIOD 1
#ifno sfrsetting
1 inflow 25.
16 inflow 10.
28 inflow 150.
4 diversion 1 10.
10 status simple
11 status simple
12 status simple
13 status simple
14 status simple
15 status simple
10 stage 1075.5454
11 stage 1072.6363
12 stage 1069.8727
13 stage 1066.8181
14 stage 1063.6181
15 stage 1061.5818
Groundwater Flow (GWF) Model Input 129
END PERIOD
BEGIN OPTIONS
DIGITS 8
PRINT_INPUT
END OPTIONS
The approach used to represent irregular cross-sections in the SFR Package is a generalization of the 8-point cross-
section available in the SFR Package for previous versions of MODFLOW (Prudic and others, 2004). The station-height
data for irregular cross-sections is specified as xfraction and height data (fig. 3), which is converted to station position
using the specified reach width (RWID) and elevation using the specified bottom elevation of the reach (RTP). Fraction
values were specified for the station data to maintain use of the specified reach width for reaches using irregular cross-
sections. Furthermore, use of a maximum xfraction value less than or greater than one allows users to vary the width of a
reach during a simulation.
Manning’s roughness coefficient fractions can optionally be specified with the xfraction-height data for a irregular
cross-section to represent roughness coefficient variations in a channel (for example, different channel and overbank
Manning’s roughness coefficients). When Manning’s coefficient fractions are specified, the streamflow is calculated for
each segment of the cross-section and summed to calculate the total streamflow for a reach; this is the same approach
used in the SFR Package for previous versions of MODFLOW (Prudic and others, 2004) to calculate the stream flow
for the left bank, defined channel, and right bank. Fraction values are specified for irregular cross-section Manning’s
roughness coefficient data in order to allow users to also set Manning’s roughness coefficients in the stress period data
and using timeseries.
Reach width
(RWID)
Wetted top width
Height relative to reach bottom
Water Surface
Elevation
Depth
Wetted perimeter
Reach bottom
0
(RTP)
0 1
Fraction of the reach width (XFRACTION)
Figure 3. Irregular cross section used to compute depth, wetted top width, wetted perimeter, and wetted cross-sectional area
for a stream reach for the case where the maximum XFRACTION is one.
Where irregular cross sections are used to define cross-sectional stream geometries, the wetted perimeter used in
Manning’s equation [Equation 7-7, Langevin and others (2017)] depends on the number of points defining the cross sec-
tion and the simulated stage. Using only the minimum number of points (i.e., 2-point cross section), MODFLOW 6 does
not include perimeter lengths above the uppermost defined points in the wetted perimeter calculations. For example, the
2-point cross sections shown in fig. 4A-C depict the cross-sectional areas (light blue) and wetted perimeters (orange) cal-
culated by the SFR package and used in Langevin and others (2017) (Equation 7-7). In applications where the intent is
for the wetted perimeter to include the entire lengths of wetted sides, additional points above the maximum anticipated
stage should be defined (fig. 4D). Note that when the simulated stream stage rises above the points representing the top of
the channel, the additional cross-sectional flow area above the defined points will be accounted for but the corresponding
wetted perimeter will not extend above the defined points (fig. 4E,F).
Cross-Section tables are specified by including file names in the CROSSSECTIONS or PERIOD blocks of the SFR
Package for specific reaches. These file names correspond to a Streamflow Routing cross-section table input file. The
format of the Streamflow Routing cross-section table input file is described here.
132 MODFLOW 6 – Description of Input and Output
Figure 4. Example irregular cross-section geometries showing the corresponding wetted perimeter based on the number of
points that define a cross-section and the simulated stage. (A-C) Wetted perimeters (orange lines) for variously configured 2-
point cross-sections. (D-F) Wetted perimeters for variously configurated 4-point cross-sections.
Structure of Blocks
BEGIN DIMENSIONS
NROW <nrow>
NCOL <ncol>
END DIMENSIONS
BEGIN TABLE
<xfraction> <height> [<manfraction>]
<xfraction> <height> [<manfraction>]
...
END TABLE
Explanation of Variables
Block: DIMENSIONS
nrow—integer value specifying the number of rows in the reach cross-section table. There must be NROW rows
of data in the TABLE block.
ncol—integer value specifying the number of columns in the reach cross-section table. There must be NCOL
columns of data in the TABLE block. NCOL must be equal to 2 if MANFRACTION is not specified or 3
otherwise.
Block: TABLE
xfraction—real value that defines the station (x) data for the cross-section as a fraction of the width (RWID)
of the reach. XFRACTION must be greater than or equal to zero but can be greater than one. XFRACTION
values can be used to decrease or increase the width of a reach from the specified reach width (RWID).
height—real value that is the height relative to the top of the lowest elevation of the streambed (RTP) and corre-
sponding to the station data on the same line. HEIGHT must be greater than or equal to zero and at least one
cross-section height must be equal to zero.
Groundwater Flow (GWF) Model Input 133
manfraction—real value that defines the Manning’s roughness coefficient data for the cross-section as a frac-
tion of the Manning’s roughness coefficient for the reach (MAN) and corresponding to the station data on the
same line. MANFRACTION must be greater than zero. MANFRACTION is applied from the XFRACTION
value on the same line to the XFRACTION value on the next line. Although a MANFRACTION value is
specified on the last line, any value greater than zero can be applied to MANFRACTION(NROW). MAN-
FRACTION is only specified if NCOL is 3. If MANFRACTION is not specified, the Manning’s roughness
coefficient for the reach (MAN) is applied to the entire cross-section.
begin dimensions
nrow 11
ncol 3
end dimensions
begin table
# xfraction height manfraction
0.0 1.0 10.0
0.1 1.0 10.0
0.2 1.0 1.0
0.3 0.0 1.0
0.4 0.0 1.0
0.5 0.0 1.0
0.6 0.0 1.0
0.7 0.0 1.0
0.8 1.0 10.0
0.9 1.0 10.0
1.0 1.0 999.0 #any value can be used for manfraction
end table
134 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
NLAKES <nlakes>
NOUTLETS <noutlets>
NTABLES <ntables>
END DIMENSIONS
BEGIN PACKAGEDATA
<ifno> <strt> <nlakeconn> [<aux(naux)>] [<boundname>]
<ifno> <strt> <nlakeconn> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
All of the advanced stress package information in the PERIOD block will continue to apply for subsequent stress periods
until the end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encoun-
tered only the lakes specified in the new period block will be changed. A lake not specified in the new period block will
continue to behave according to its specification in the previous PERIOD block. Note that this behavior is different from
the simple stress packages (CHD, WEL, DRN, RIV, GHB, RCH and EVT), in which any stress not specified in a new
PERIOD block will be removed. To turn off all of the advanced stresses for a stress period, a PERIOD block must be
specified with settings that deactivate the lakes. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of lake cells.
PRINT_INPUT—keyword to indicate that the list of lake information will be written to the listing file immediately
after it is read.
PRINT_STAGE—keyword to indicate that the list of lake stages will be printed to the listing file for every stress
period in which “HEAD PRINT” is specified in Output Control. If there is no Output Control option and
PRINT_STAGE is specified, then stages are printed for the last time step of each stress period.
PRINT_FLOWS—keyword to indicate that the list of lake flow rates will be printed to the listing file for every stress
period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Control
option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that lake flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
STAGE—keyword to specify that record corresponds to stage.
stagefile—name of the binary output file to write stage information.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
PACKAGE_CONVERGENCE—keyword to specify that record corresponds to the package convergence comma spaced
values file.
136 MODFLOW 6 – Description of Input and Output
package_convergence_filename—name of the comma spaced values output file to write package convergence
information.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the LAK package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the LAK package.
MOVER—keyword to indicate that this instance of the LAK Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
surfdep—real value that defines the surface depression depth for VERTICAL lake-GWF connections. If speci-
fied, SURFDEP must be greater than or equal to zero. If SURFDEP is not specified, a default value of zero is
used for all vertical lake-GWF connections.
maximum_iterations—integer value that defines the maximum number of Newton-Raphson iterations allowed
for a lake. By default, MAXIMUM_ITERATIONS is equal to 100. MAXIMUM_ITERATIONS would only
need to be increased from the default value if one or more lakes in a simulation has a large water budget error.
maximum_stage_change—real value that defines the lake stage closure tolerance. By default, MAXI-
MUM_STAGE_CHANGE is equal to 1 × 10−5 . The MAXIMUM_STAGE_CHANGE would only need
to be increased or decreased from the default value if the water budget error for one or more lakes is too small
or too large, respectively.
time_conversion—real value that is used to convert user-specified Manning’s roughness coefficients or gravi-
tational acceleration used to calculate outlet flows from seconds to model time units. TIME_CONVERSION
should be set to 1.0, 60.0, 3,600.0, 86,400.0, and 31,557,600.0 when using time units (TIME_UNITS) of sec-
onds, minutes, hours, days, or years in the simulation, respectively. CONVTIME does not need to be speci-
fied if no lake outlets are specified or TIME_UNITS are seconds.
length_conversion—real value that is used to convert outlet user-specified Manning’s roughness
coefficients or gravitational acceleration used to calculate outlet flows from meters to model length
units. LENGTH_CONVERSION should be set to 3.28081, 1.0, and 100.0 when using length units
(LENGTH_UNITS) of feet, meters, or centimeters in the simulation, respectively. LENGTH_CONVERSION
does not need to be specified if no lake outlets are specified or LENGTH_UNITS are meters.
Block: DIMENSIONS
nlakes—value specifying the number of lakes that will be simulated for all stress periods.
noutlets—value specifying the number of outlets that will be simulated for all stress periods. If NOUTLETS is
not specified, a default value of zero is used.
ntables—value specifying the number of lakes tables that will be used to define the lake stage, volume relation,
and surface area. If NTABLES is not specified, a default value of zero is used.
Block: PACKAGEDATA
ifno—integer value that defines the feature (lake) number associated with the specified PACKAGEDATA data
on the line. IFNO must be greater than zero and less than or equal to NLAKES. Lake information must be
specified for every lake or the program will terminate with an error. The program will also terminate with an
error if information for a lake is specified more than once.
strt—real value that defines the starting stage for the lake.
Groundwater Flow (GWF) Model Input 137
nlakeconn—integer value that defines the number of GWF cells connected to this (IFNO) lake. There can only
be one vertical lake connection to each GWF cell. NLAKECONN must be greater than zero.
aux—represents the values of the auxiliary variables for each lake. The values of auxiliary variables must be
present for each lake. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the lake cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: CONNECTIONDATA
ifno—integer value that defines the feature (lake) number associated with the specified CONNECTIONDATA
data on the line. IFNO must be greater than zero and less than or equal to NLAKES. Lake connection infor-
mation must be specified for every lake connection to the GWF model (NLAKECONN) or the program will
terminate with an error. The program will also terminate with an error if connection information for a lake
connection to the GWF model is specified more than once.
iconn—integer value that defines the GWF connection number for this lake connection entry. ICONN must be
greater than zero and less than or equal to NLAKECONN for lake IFNO.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
claktype—character string that defines the lake-GWF connection type for the lake connection. Possible lake-
GWF connection type strings include: VERTICAL–character keyword to indicate the lake-GWF connection
is vertical and connection conductance calculations use the hydraulic conductivity corresponding to the 𝐾33
tensor component defined for CELLID in the NPF package. HORIZONTAL–character keyword to indicate
the lake-GWF connection is horizontal and connection conductance calculations use the hydraulic conductiv-
ity corresponding to the 𝐾11 tensor component defined for CELLID in the NPF package. EMBEDDEDH–
character keyword to indicate the lake-GWF connection is embedded in a single cell and connection con-
ductance calculations use the hydraulic conductivity corresponding to the 𝐾11 tensor component defined
for CELLID in the NPF package. EMBEDDEDV–character keyword to indicate the lake-GWF connection
is embedded in a single cell and connection conductance calculations use the hydraulic conductivity corre-
sponding to the 𝐾33 tensor component defined for CELLID in the NPF package. Embedded lakes can only be
connected to a single cell (NLAKECONN = 1) and there must be a lake table associated with each embedded
lake.
bedleak—real value or character string that defines the bed leakance for the lake-GWF connection. BEDLEAK
must be greater than or equal to zero, equal to the DNODATA value (3.0E+30), or specified to be NONE. If
DNODATA or NONE is specified for BEDLEAK, the lake-GWF connection conductance is solely a function
of aquifer properties in the connected GWF cell and lakebed sediments are assumed to be absent. Warning
messages will be issued if NONE is specified. Eventually the ability to specify NONE will be deprecated and
cause MODFLOW 6 to terminate with an error.
belev—real value that defines the bottom elevation for a HORIZONTAL lake-GWF connection. Any value can
be specified if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV. If CLAKTYPE is HORI-
ZONTAL and BELEV is not equal to TELEV, BELEV must be greater than or equal to the bottom of the
GWF cell CELLID. If BELEV is equal to TELEV, BELEV is reset to the bottom of the GWF cell CELLID.
telev—real value that defines the top elevation for a HORIZONTAL lake-GWF connection. Any value can be
specified if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV. If CLAKTYPE is HORIZON-
TAL and TELEV is not equal to BELEV, TELEV must be less than or equal to the top of the GWF cell CEL-
LID. If TELEV is equal to BELEV, TELEV is reset to the top of the GWF cell CELLID.
138 MODFLOW 6 – Description of Input and Output
connlen—real value that defines the distance between the connected GWF CELLID node and the lake for a
HORIZONTAL, EMBEDDEDH, or EMBEDDEDV lake-GWF connection. CONLENN must be greater
than zero for a HORIZONTAL, EMBEDDEDH, or EMBEDDEDV lake-GWF connection. Any value can
be specified if CLAKTYPE is VERTICAL.
connwidth—real value that defines the connection face width for a HORIZONTAL lake-GWF connection. CON-
NWIDTH must be greater than zero for a HORIZONTAL lake-GWF connection. Any value can be specified
if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV.
Block: TABLES
ifno—integer value that defines the feature (lake) number associated with the specified TABLES data on the line.
IFNO must be greater than zero and less than or equal to NLAKES. The program will terminate with an error
if table information for a lake is specified more than once or the number of specified tables is less than NTA-
BLES.
TAB6—keyword to specify that record corresponds to a table file.
FILEIN—keyword to specify that an input filename is expected next.
tab6_filename—character string that defines the path and filename for the file containing lake table data for
the lake connection. The TAB6_FILENAME file includes the number of entries in the file and the relation
between stage, volume, and surface area for each entry in the file. Lake table files for EMBEDDEDH and
EMBEDDEDV lake-GWF connections also include lake-GWF exchange area data for each entry in the file.
Instructions for creating the TAB6_FILENAME input file are provided in Lake Table Input File section.
Block: OUTLETS
outletno—integer value that defines the outlet number associated with the specified OUTLETS data on the line.
OUTLETNO must be greater than zero and less than or equal to NOUTLETS. Outlet information must be
specified for every outlet or the program will terminate with an error. The program will also terminate with an
error if information for a outlet is specified more than once.
lakein—integer value that defines the lake number that outlet is connected to. LAKEIN must be greater than
zero and less than or equal to NLAKES.
lakeout—integer value that defines the lake number that outlet discharge from lake outlet OUTLETNO is routed
to. LAKEOUT must be greater than or equal to zero and less than or equal to NLAKES. If LAKEOUT is
zero, outlet discharge from lake outlet OUTLETNO is discharged to an external boundary.
couttype—character string that defines the outlet type for the outlet OUTLETNO. Possible COUTTYPE strings
include: SPECIFIED–character keyword to indicate the outlet is defined as a specified flow. MANNING–
character keyword to indicate the outlet is defined using Manning’s equation. WEIR–character keyword to
indicate the outlet is defined using a sharp weir equation.
invert—real value that defines the invert elevation for the lake outlet. Any value can be specified if COUTTYPE
is SPECIFIED. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” sec-
tion), values can be obtained from a time series by entering the time-series name in place of a numeric value.
width—real value that defines the width of the lake outlet. Any value can be specified if COUTTYPE is SPEC-
IFIED. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section),
values can be obtained from a time series by entering the time-series name in place of a numeric value.
rough—real value that defines the roughness coefficient for the lake outlet. Any value can be specified if COUT-
TYPE is not MANNING. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
slope—real value that defines the bed slope for the lake outlet. Any value can be specified if COUTTYPE is
not MANNING. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
Groundwater Flow (GWF) Model Input 139
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
number—integer value that defines the lake or outlet number associated with the specified PERIOD data on the
line. NUMBER must be greater than zero and less than or equal to NLAKES for a lake number and less than
or equal to NOUTLETS for an outlet number.
laksetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the LAKSETTING string include both keywords for lake settings and keywords for outlet settings.
Keywords for lake settings include: STATUS, STAGE, RAINFALL, EVAPORATION, RUNOFF, INFLOW,
WITHDRAWAL, and AUXILIARY. Keywords for outlet settings include RATE, INVERT, WIDTH, SLOPE,
and ROUGH.
STATUS <status>
STAGE <stage>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
INFLOW <inflow>
WITHDRAWAL <withdrawal>
RATE <rate>
INVERT <invert>
WIDTH <width>
SLOPE <slope>
ROUGH <rough>
AUXILIARY <auxname> <auxval>
status—keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE.
stage—real or character value that defines the stage for the lake. The specified STAGE is only applied if the lake
is a constant stage lake. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
rainfall—real or character value that defines the rainfall rate (𝐿𝑇 −1 ) for the lake. Value must be greater than
or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
evaporation—real or character value that defines the maximum evaporation rate (𝐿𝑇 −1 ) for the lake. Value
must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
runoff—real or character value that defines the runoff rate (𝐿3 𝑇 −1 ) for the lake. Value must be greater than
or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
inflow—real or character value that defines the volumetric inflow rate (𝐿3 𝑇 −1 ) for the lake. Value must be
greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value. By default, inflow rates are zero for each lake.
withdrawal—real or character value that defines the maximum withdrawal rate (𝐿3 𝑇 −1 ) for the lake. Value
must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
140 MODFLOW 6 – Description of Input and Output
rate—real or character value that defines the extraction rate for the lake outflow. A positive value indicates
inflow and a negative value indicates outflow from the lake. RATE only applies to outlets associated with
active lakes (STATUS is ACTIVE). A specified RATE is only applied if COUTTYPE for the OUTLETNO
is SPECIFIED. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” sec-
tion), values can be obtained from a time series by entering the time-series name in place of a numeric value.
By default, the RATE for each SPECIFIED lake outlet is zero.
invert—real or character value that defines the invert elevation for the lake outlet. A specified INVERT value
is only used for active lakes if COUTTYPE for lake outlet OUTLETNO is not SPECIFIED. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
rough—real value that defines the roughness coefficient for the lake outlet. Any value can be specified if COUT-
TYPE is not MANNING. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
width—real or character value that defines the width of the lake outlet. A specified WIDTH value is only used for
active lakes if COUTTYPE for lake outlet OUTLETNO is not SPECIFIED. If the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
slope—real or character value that defines the bed slope for the lake outlet. A specified SLOPE value is only
used for active lakes if COUTTYPE for lake outlet OUTLETNO is MANNING. If the Options block includes
a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
BEGIN OPTIONS
PRINT_INPUT
BOUNDNAMES
PRINT_STAGE
PRINT_FLOWS
STAGE FILEOUT lak-1.stage.bin
BUDGET FILEOUT lak-1.cbc
END OPTIONS
BEGIN DIMENSIONS
NLAKES 1
NOUTLETS 1
END DIMENSIONS
BEGIN PACKAGEDATA
# ifno strt lakeconn boundname
1 110.00 57 LAKE_1
END PACKAGEDATA
BEGIN CONNECTIONDATA
# ifno iconn layer row column ctype bedleak belev telev dx width
Groundwater Flow (GWF) Model Input 141
BEGIN OUTLETS
# outletno lakein lakeout couttype invert width rough slope
1 1 0 SPECIFIED 0 0 0 0
END OUTLETS
BEGIN PERIOD 1
1 RAINFALL 0.0116
1 EVAPORATION 0.0103
END PERIOD
142 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
DIGITS 10
PRINT_INPUT
END OPTIONS
END CONTINUOUS
Groundwater Flow (GWF) Model Input 145
Structure of Blocks
BEGIN DIMENSIONS
NROW <nrow>
NCOL <ncol>
END DIMENSIONS
BEGIN TABLE
<stage> <volume> <sarea> [<barea>]
<stage> <volume> <sarea> [<barea>]
...
END TABLE
Explanation of Variables
Block: DIMENSIONS
nrow—integer value specifying the number of rows in the lake table. There must be NROW rows of data in the
TABLE block.
ncol—integer value specifying the number of columns in the lake table. There must be NCOL columns of data in
the TABLE block. For lakes with HORIZONTAL and/or VERTICAL CTYPE connections, NCOL must be
equal to 3. For lakes with EMBEDDEDH or EMBEDDEDV CTYPE connections, NCOL must be equal to 4.
Block: TABLE
stage—real value that defines the stage corresponding to the remaining data on the line.
volume—real value that defines the lake volume corresponding to the stage specified on the line.
sarea—real value that defines the lake surface area corresponding to the stage specified on the line.
barea—real value that defines the lake-GWF exchange area corresponding to the stage specified on the line.
BAREA is only specified if the CLAKTYPE for the lake is EMBEDDEDH or EMBEDDEDV.
begin table
# stage volume sarea
0 0. 0.
1 0.5 1.
2 1.0 2.
3 2.0 2.
4 3.0 2.
5 4.0 2.
146 MODFLOW 6 – Description of Input and Output
6 5.0 2.
7 6.0 2.
8 7.0 2.
9 8.0 2.
10 9.0 2.
end table
Groundwater Flow (GWF) Model Input 147
Structure of Blocks
BEGIN DIMENSIONS
NUZFCELLS <nuzfcells>
NTRAILWAVES <ntrailwaves>
NWAVESETS <nwavesets>
END DIMENSIONS
BEGIN PACKAGEDATA
<ifno> <cellid(ncelldim)> <landflag> <ivertcon> <surfdep> <vks> <thtr> <thts> <thti> <eps> [<boundname>]
<ifno> <cellid(ncelldim)> <landflag> <ivertcon> <surfdep> <vks> <thtr> <thts> <thti> <eps> [<boundname>]
...
END PACKAGEDATA
All of the advanced stress package information in the PERIOD block will continue to apply for subsequent stress periods
until the end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encoun-
tered only the UZF cells specified in the new period block will be changed. A UZF cell not specified in the new period
block will continue to behave according to its specification in the previous PERIOD block. Note that this behavior is
different from the simple stress packages (CHD, WEL, DRN, RIV, GHB, RCH and EVT), in which any stress not spec-
ified in a new PERIOD block will be removed. To turn off all of the advanced stresses for a stress period, a PERIOD
block must be specified with settings that deactivate the UZF cells. If a PERIOD block is not specified for the first stress
period, then no stresses will be applied.
148 MODFLOW 6 – Description of Input and Output
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of GWF cell area used by UZF cell.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of UZF cells.
PRINT_INPUT—keyword to indicate that the list of UZF information will be written to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of UZF flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that UZF flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
WATER_CONTENT—keyword to specify that record corresponds to unsaturated zone water contents.
wcfile—name of the binary output file to write water content information.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
PACKAGE_CONVERGENCE—keyword to specify that record corresponds to the package convergence comma spaced
values file.
package_convergence_filename—name of the comma spaced values output file to write package convergence
information.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the UZF package. See the “Observation utility”
section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s) sup-
ported by the UZF package.
MOVER—keyword to indicate that this instance of the UZF Package can be used with the Water Mover (MVR)
Package. When the MOVER option is specified, additional memory is allocated within the package to store
the available, provided, and received water.
SIMULATE_ET—keyword specifying that ET in the unsaturated (UZF) and saturated zones (GWF) will be simu-
lated. ET can be simulated in the UZF cell and not the GWF cell by omitting keywords LINEAR_GWET and
SQUARE_GWET.
Groundwater Flow (GWF) Model Input 149
LINEAR_GWET—keyword specifying that groundwater ET will be simulated using the original ET formulation of
MODFLOW-2005.
SQUARE_GWET—keyword specifying that groundwater ET will be simulated by assuming a constant ET rate
for groundwater levels between land surface (TOP) and land surface minus the ET extinction depth (TOP-
EXTDP). Groundwater ET is smoothly reduced from the PET rate to zero over a nominal interval at TOP-
EXTDP.
UNSAT_ETWC—keyword specifying that ET in the unsaturated zone will be simulated as a function of the specified
PET rate while the water content (THETA) is greater than the ET extinction water content (EXTWC).
UNSAT_ETAE—keyword specifying that ET in the unsaturated zone will be simulated using a capillary pressure
based formulation. Capillary pressure is calculated using the Brooks-Corey retention function.
Block: DIMENSIONS
nuzfcells—is the number of UZF cells. More than one UZF cell can be assigned to a GWF cell; however, only
one GWF cell can be assigned to a single UZF cell. If more than one UZF cell is assigned to a GWF cell,
then an auxiliary variable should be used to reduce the surface area of the UZF cell with the AUXMULT-
NAME option.
ntrailwaves—is the number of trailing waves. A recommended value of 7 can be used for NTRAILWAVES.
This value can be increased to lower mass balance error in the unsaturated zone.
nwavesets—is the number of wave sets. A recommended value of 40 can be used for NWAVESETS. This value
can be increased if more waves are required to resolve variations in water content within the unsaturated
zone.
Block: PACKAGEDATA
ifno—integer value that defines the feature (UZF object) number associated with the specified PACKAGEDATA
data on the line. IFNO must be greater than zero and less than or equal to NUZFCELLS. UZF information
must be specified for every UZF cell or the program will terminate with an error. The program will also ter-
minate with an error if information for a UZF cell is specified more than once.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
landflag—integer value set to one for land surface cells indicating that boundary conditions can be applied and
data can be specified in the PERIOD block. A value of 0 specifies a non-land surface cell.
ivertcon—integer value set to specify underlying UZF cell that receives water flowing to bottom of cell. If
unsaturated zone flow reaches the water table before the cell bottom, then water is added to the GWF cell
instead of flowing to the underlying UZF cell. A value of 0 indicates the UZF cell is not connected to an
underlying UZF cell.
surfdep—is the surface depression depth of the UZF cell.
vks—is the saturated vertical hydraulic conductivity of the UZF cell. This value is used with the Brooks-Corey
function and the simulated water content to calculate the partially saturated hydraulic conductivity.
thtr—is the residual (irreducible) water content of the UZF cell. This residual water is not available to plants and
will not drain into underlying aquifer cells.
thts—is the saturated water content of the UZF cell. The values for saturated and residual water content should
be set in a manner that is consistent with the specific yield value specified in the Storage Package. The satu-
rated water content must be greater than the residual content.
thti—is the initial water content of the UZF cell. The value must be greater than or equal to the residual water
content and less than or equal to the saturated water content.
150 MODFLOW 6 – Description of Input and Output
eps—is the exponent used in the Brooks-Corey function. The Brooks-Corey function is used by UZF to calcu-
lated hydraulic conductivity under partially saturated conditions as a function of water content and the user-
specified saturated hydraulic conductivity.
boundname—name of the UZF cell cell. BOUNDNAME is an ASCII character variable that can contain as many
as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (UZF object) number associated with the specified PERIOD data on
the line.
finf—real or character value that defines the applied infiltration rate of the UZF cell (𝐿𝑇 −1 ). If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
pet—real or character value that defines the potential evapotranspiration rate of the UZF cell and specified GWF
cell. Evapotranspiration is first removed from the unsaturated zone and any remaining potential evapotranspi-
ration is applied to the saturated zone. If IVERTCON is greater than zero then residual potential evapotran-
spiration not satisfied in the UZF cell is applied to the underlying UZF and GWF cells. PET is always speci-
fied, but is only used if SIMULATE_ET is specified in the OPTIONS block. If the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
extdp—real or character value that defines the evapotranspiration extinction depth of the UZF cell. If IVERT-
CON is greater than zero and EXTDP extends below the GWF cell bottom then remaining potential evapo-
transpiration is applied to the underlying UZF and GWF cells. EXTDP is always specified, but is only used
if SIMULATE_ET is specified in the OPTIONS block. If the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
extwc—real or character value that defines the evapotranspiration extinction water content of the UZF cell.
EXTWC is always specified, but is only used if SIMULATE_ET and UNSAT_ETWC are specified in the
OPTIONS block. The evapotranspiration rate from the unsaturated zone will be set to zero when the calcu-
lated water content is at or less than this value. The value for EXTWC cannot be less than the residual water
content, and if it is specified as being less than the residual water content it is set to the residual water content.
If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can
be obtained from a time series by entering the time-series name in place of a numeric value.
ha—real or character value that defines the air entry potential (head) of the UZF cell. HA is always specified, but
is only used if SIMULATE_ET and UNSAT_ETAE are specified in the OPTIONS block. If the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
hroot—real or character value that defines the root potential (head) of the UZF cell. HROOT is always specified,
but is only used if SIMULATE_ET and UNSAT_ETAE are specified in the OPTIONS block. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
rootact—real or character value that defines the root activity function of the UZF cell. ROOTACT is the length
of roots in a given volume of soil divided by that volume. Values range from 0 to about 3 𝑐𝑚−2 , depend-
ing on the plant community and its stage of development. ROOTACT is always specified, but is only used
if SIMULATE_ET and UNSAT_ETAE are specified in the OPTIONS block. If the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
Groundwater Flow (GWF) Model Input 151
aux—represents the values of the auxiliary variables for each UZF. The values of auxiliary variables must be
present for each UZF. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
BEGIN DIMENSIONS
NUZFCELLS 10
NTRAILWAVES 7
NWAVESETS 40
END DIMENSIONS
BEGIN PACKAGEDATA
1 1 1 1 1 1.0 1.0 0.05 0.35 0.1 4.0
2 1 1 2 1 1.0 1.0 0.05 0.35 0.1 4.0
3 1 1 3 1 1.0 1.0 0.05 0.35 0.1 4.0
4 1 1 4 1 1.0 1.0 0.05 0.35 0.1 4.0
5 1 1 5 1 1.0 1.0 0.05 0.35 0.1 4.0
6 1 1 6 1 1.0 1.0 0.05 0.35 0.1 4.0
7 1 1 7 1 1.0 1.0 0.05 0.35 0.1 4.0
8 1 1 8 1 1.0 1.0 0.05 0.35 0.1 4.0
9 1 1 9 1 1.0 1.0 0.05 0.35 0.1 4.0
10 1 1 10 1 1.0 1.0 0.05 0.35 0.1 4.0
END PACKAGEDATA
BEGIN PERIOD 1
2 0.00005 0.00002 2.0 0.10
3 0.00008 0.00002 2.0 0.10
4 0.00009 0.00002 2.0 0.10
5 0.0001 0.00002 2.0 0.10
6 0.0001 0.00002 2.0 0.10
7 0.00009 0.00002 2.0 0.10
8 0.00008 0.00002 2.0 0.10
9 0.00005 0.00002 2.0 0.10
END PERIOD
BEGIN PERIOD 2
2 0.00009 0.00003 2.0 0.10
3 0.0001 0.00003 2.0 0.10
4 0.0001 0.00003 2.0 0.10
5 0.00015 0.00003 2.0 0.10
6 0.00015 0.00003 2.0 0.10
7 0.0001 0.00003 2.0 0.10
8 0.0001 0.00003 2.0 0.10
9 0.00009 0.00003 2.0 0.10
END PERIOD
below the top of a UZF cell (water-content). The data required for each UZF Package observation type is defined in
table 22. Negative and positive values for uzf-gwrch, uzf-gwd, uzf-gwd-to-mvr, and uzf-gwet observations repre-
sent a loss from and gain to the GWF model, respectively. For all other flow terms, negative and positive values repre-
sent a loss from and gain from the UZF package, respectively.
∙ Well Package
∙ Drain Package
∙ River Package
∙ General-Head Boundary Package
∙ Multi-Aquifer Well Package
∙ Streamflow Routing Package
∙ Unsaturated Zone Flow Package
∙ Lake Package
Receivers are package features within the model that solve a continuity equation of inflows, outflows, and change in
storage. These features include multi-aquifer wells, streamflow routing reaches, lakes, and unsaturated zone flow cells.
The list of packages that can receive water is shorter than the provider list, because the WEL, DRN, RIV, and GHB Pack-
ages do not represent a continuity equation (boundary stages or elevations are specified by the user). Therefore, the list of
packages that can act as receivers are:
The program will terminate with an error if the MVR is used with an unsupported package type.
The MVR Package is based on the calculation of available water that can be moved from one package feature to
another. The equations used to determine how much water can be transferred are as follows, where 𝑄𝑃 is the flow
rate that can be supported by the provider (the available flow rate), and 𝑄𝑅 is the actual rate of water transferred to the
receiver.
⎧
⎨𝑄 − 𝑄 , if 𝑄 > 𝑄
𝑃 𝑆 𝑃 𝑆
𝑄𝑅 =
⎩0, otherwise
In the EXCESS case, any water that exceeds the user specified rate is provided to the receiver. No water is provided
to the receiver if the available water is less than the user specified value.
3. A THRESHOLD rate can be specified for 𝑄𝑆 such that
⎧
⎨0, if 𝑄𝑆 > 𝑄𝑃
𝑄𝑅 =
⎩𝑄𝑆 , otherwise
Groundwater Flow (GWF) Model Input 155
In the THRESHOLD case, no flow is provided to the receiver until the available water exceeds the user specified
𝑄𝑆 rate. Once the available water exceeds the user specified rate, then the 𝑄𝑆 rate is provided to the receiver.
4. An UPTO rate can be specified for 𝑄𝑆 such that
⎧
⎨𝑄 , if 𝑄 > 𝑄
𝑆 𝑃 𝑆
𝑄𝑅 =
⎩𝑄𝑃 , otherwise
In the UPTO case, all of the available water will be taken from the provider up to the 𝑄𝑆 value specified by the
user. Once 𝑄𝑆 is exceeded, the receiver will continue to get the 𝑄𝑆 value specified by the user.
In the MVR PERIOD block (as shown below), the user assigns the equation used for each individual entry by specifying
FACTOR, EXCESS, THRESHOLD, or UPTO to the input variable mvrtype.
Input to the Water Mover (MVR) Package is read from the file that has type “MVR6” in the Name File. Only one
MVR Package can be used per GWF Model.
Structure of Blocks
BEGIN DIMENSIONS
MAXMVR <maxmvr>
MAXPACKAGES <maxpackages>
END DIMENSIONS
BEGIN PACKAGES
[<mname>] <pname>
[<mname>] <pname>
...
END PACKAGES
All of the mover information in the PERIOD block will continue to apply for subsequent stress periods until the end of
the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of the
movers from the previous block are replaced with the movers in the new PERIOD block. Note that this behavior is dif-
ferent from the other advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the movers for a stress period,
a PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
movers will be applied until the iper value of the first PERIOD block in the file.
156 MODFLOW 6 – Description of Input and Output
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of MVR information will be written to the listing file immedi-
ately after it is read.
PRINT_FLOWS—keyword to indicate that the list of MVR flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
MODELNAMES—keyword to indicate that all package names will be preceded by the model name for the package.
Model names are required when the Mover Package is used with a GWF-GWF Exchange. The MODEL-
NAME keyword should not be used for a Mover Package that is for a single GWF Model.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
Block: DIMENSIONS
maxmvr—integer value specifying the maximum number of water mover entries that will specified for any stress
period.
maxpackages—integer value specifying the number of unique packages that are included in this water mover
input file.
Block: PACKAGES
mname—name of model containing the package. Model names are assigned by the user in the simulation name
file.
pname—is the name of a package that may be included in a subsequent stress period block. The package name
is assigned in the name file for the GWF Model. Package names are optionally provided in the name file. If
they are not provided by the user, then packages are assigned a default value, which is the package acronym
followed by a hyphen and the package number. For example, the first Drain Package is named DRN-1. The
second Drain Package is named DRN-2, and so forth.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
mname1—name of model containing the package, PNAME1.
pname1—is the package name for the provider. The package PNAME1 must be designated to provide water
through the MVR Package by specifying the keyword “MOVER” in its OPTIONS block.
id1—is the identifier for the provider. For the standard boundary packages, the provider identifier is the number
of the boundary as it is listed in the package input file. (Note that the order of these boundaries may change
by stress period, which must be accounted for in the Mover Package.) So the first well has an identifier of
one. The second is two, and so forth. For the advanced packages, the identifier is the reach number (SFR
Package), well number (MAW Package), or UZF cell number. For the Lake Package, ID1 is the lake outlet
number. Thus, outflows from a single lake can be routed to different streams, for example.
Groundwater Flow (GWF) Model Input 157
BEGIN OPTIONS
PRINT_INPUT
PRINT_FLOWS
END OPTIONS
BEGIN DIMENSIONS
MAXMVR 16
MAXPACKAGES 5
END DIMENSIONS
BEGIN PACKAGES
MAW-1
MAW-2
SFR-1
LAK-1
UZF-1
END PACKAGES
BEGIN PERIOD 1
# ***PROVIDER*** ***RECEIVER*** ***FLOW INFO**
# PAK1 PAK1RCH PAK2 PAK2RCH TYPE VALUE
MAW-1 1 MAW-2 21 EXCESS 5.00
MAW-1 11 SFR-1 77 FACTOR 0.25
MAW-1 21 UZF-1 93 FACTOR 0.01
MAW-1 21 LAK-1 3 FACTOR 1.00
Structure of Blocks
BEGIN DIMENSIONS
NUMGNC <numgnc>
NUMALPHAJ <numalphaj>
END DIMENSIONS
BEGIN GNCDATA
<cellidn> <cellidm> <cellidsj(numalphaj)> <alphasj(numalphaj)>
<cellidn> <cellidm> <cellidsj(numalphaj)> <alphasj(numalphaj)>
...
END GNCDATA
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of GNC information will be written to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of GNC flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
EXPLICIT—keyword to indicate that the ghost node correction is applied in an explicit manner on the right-hand
side of the matrix. The explicit approach will likely require additional outer iterations. If the keyword is
not specified, then the correction will be applied in an implicit manner on the left-hand side. The implicit
approach will likely converge better, but may require additional memory. If the EXPLICIT keyword is not
specified, then the BICGSTAB linear acceleration option should be specified within the LINEAR block of the
Sparse Matrix Solver.
Block: DIMENSIONS
Block: GNCDATA
cellidn—is the cellid of the cell, 𝑛, in which the ghost node is located. For a structured grid that uses the DIS
input file, CELLIDN is the layer, row, and column numbers of the cell. For a grid that uses the DISV input
file, CELLIDN is the layer number and CELL2D number for the two cells. If the model uses the unstructured
discretization (DISU) input file, then CELLIDN is the node number for the cell.
cellidm—is the cellid of the connecting cell, 𝑚, to which flow occurs from the ghost node. For a structured grid
that uses the DIS input file, CELLIDM is the layer, row, and column numbers of the cell. For a grid that uses
the DISV input file, CELLIDM is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM is the node number for the cell.
cellidsj—is the array of CELLIDS for the contributing j cells, which contribute to the interpolated head value
at the ghost node. This item contains one CELLID for each of the contributing cells of the ghost node. Note
that if the number of actual contributing cells needed by the user is less than NUMALPHAJ for any ghost
node, then a dummy CELLID of zero(s) should be inserted with an associated contributing factor of zero. For
a structured grid that uses the DIS input file, CELLID is the layer, row, and column numbers of the cell. For
a grid that uses the DISV input file, CELLID is the layer number and cell2d number for the two cells. If the
model uses the unstructured discretization (DISU) input file, then CELLID is the node number for the cell.
alphasj—is the contributing factors for each contributing node in CELLIDSJ. Note that if the number of actual
contributing cells is less than NUMALPHAJ for any ghost node, then dummy CELLIDS should be inserted
with an associated contributing factor of zero. The sum of ALPHASJ should be less than one. This is because
one minus the sum of ALPHASJ is equal to the alpha term (alpha n in equation 4-61 of the GWF Model
report) that is multiplied by the head in cell n.
BEGIN DIMENSIONS
NUMGNC 24
NUMALPHAJ 1
END DIMENSIONS
BEGIN GNCDATA
10 41 9 0.333333333333
10 43 11 0.333333333333
11 44 10 0.333333333333
11 46 12 0.333333333333
12 47 11 0.333333333333
12 49 13 0.333333333333
16 41 9 0.333333333333
16 59 20 0.333333333333
17 49 13 0.333333333333
17 67 21 0.333333333333
20 68 16 0.333333333333
20 86 24 0.333333333333
21 76 17 0.333333333333
21 94 25 0.333333333333
24 95 20 0.333333333333
24 113 28 0.333333333333
25 103 21 0.333333333333
25 121 32 0.333333333333
29 113 28 0.333333333333
29 115 30 0.333333333333
30 116 29 0.333333333333
160 MODFLOW 6 – Description of Input and Output
30 118 31 0.333333333333
31 119 30 0.333333333333
31 121 32 0.333333333333
END GNCDATA
Groundwater Flow (GWF) Model Input 161
Structure of Blocks
BEGIN OPTIONS
[AUXILIARY <auxiliary(naux)>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[CELL_AVERAGING <cell_averaging>]
[VARIABLECV [DEWATERED]]
[NEWTON]
[XT3D]
[GNC6 FILEIN <gnc6_filename>]
[MVR6 FILEIN <mvr6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN DIMENSIONS
NEXG <nexg>
END DIMENSIONS
BEGIN EXCHANGEDATA
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
...
END EXCHANGEDATA
Explanation of Variables
Block: OPTIONS
auxiliary—an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can
be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be avail-
able for use by other parts of the program. If an auxiliary variable with the name “ANGLDEGX” is found,
then this information will be used as the angle (provided in degrees) between the connection face normal
and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis.
The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the
cell in model 2 pointing away from the model 1 cell. Additional information on “ANGLDEGX” and when
it is required is provided in the description of the DISU Package. If an auxiliary variable with the name
“CDIST” is found, then this information will be used in the calculation of specific discharge within model
cells connected by the exchange. For a horizontal connection, CDIST should be specified as the horizontal
distance between the cell centers, and should not include the vertical component. For vertical connections,
CDIST should be specified as the difference in elevation between the two cell centers. Both ANGLDEGX
and CDIST are required if specific discharge is calculated for either of the groundwater models.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of GWF Exchange cells.
PRINT_INPUT—keyword to indicate that the list of exchange entries will be echoed to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of exchange flow rates will be printed to the listing file for every
stress period in which “SAVE BUDGET” is specified in Output Control.
162 MODFLOW 6 – Description of Input and Output
SAVE_FLOWS—keyword to indicate that cell-by-cell flow terms will be written to the budget file for each model
provided that the Output Control for the models are set up with the “BUDGET SAVE FILE” option.
cell_averaging—is a keyword and text keyword to indicate the method that will be used for calculating the
conductance for horizontal cell connections. The text value for CELL_AVERAGING can be “HARMONIC”,
“LOGARITHMIC”, or “AMT-LMK”, which means “arithmetic-mean thickness and logarithmic-mean
hydraulic conductivity”. If the user does not specify a value for CELL_AVERAGING, then the harmonic-
mean method will be used.
VARIABLECV—keyword to indicate that the vertical conductance will be calculated using the saturated thickness
and properties of the overlying cell and the thickness and properties of the underlying cell. If the DEWA-
TERED keyword is also specified, then the vertical conductance is calculated using only the saturated thick-
ness and properties of the overlying cell if the head in the underlying cell is below its top. If these keywords
are not specified, then the default condition is to calculate the vertical conductance at the start of the simu-
lation using the initial head and the cell properties. The vertical conductance remains constant for the entire
simulation.
DEWATERED—If the DEWATERED keyword is specified, then the vertical conductance is calculated using only the
saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top.
NEWTON—keyword that activates the Newton-Raphson formulation for groundwater flow between connected, con-
vertible groundwater cells. Cells will not dry when this option is used.
XT3D—keyword that activates the XT3D formulation between the cells connected with this GWF-GWF
Exchange.
FILEIN—keyword to specify that an input filename is expected next.
GNC6—keyword to specify that record corresponds to a ghost-node correction file.
gnc6_filename—is the file name for ghost node correction input file. Information for the ghost nodes are pro-
vided in the file provided with these keywords. The format for specifying the ghost nodes is the same as
described for the GNC Package of the GWF Model. This includes specifying OPTIONS, DIMENSIONS, and
GNCDATA blocks. The order of the ghost nodes must follow the same order as the order of the cells in the
EXCHANGEDATA block. For the GNCDATA, noden and all of the nodej values are assumed to be located
in model 1, and nodem is assumed to be in model 2.
MVR6—keyword to specify that record corresponds to a mover file.
mvr6_filename—is the file name of the water mover input file to apply to this exchange. Information for the
water mover are provided in the file provided with these keywords. The format for specifying the water
mover information is the same as described for the Water Mover (MVR) Package of the GWF Model, with
two exceptions. First, in the PACKAGES block, the model name must be included as a separate string before
each package. Second, the appropriate model name must be included before package name 1 and package
name 2 in the BEGIN PERIOD block. This allows providers and receivers to be located in both models listed
as part of this exchange.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—is the file name of the observations input file for this exchange. See the “Observation utility”
section for instructions for preparing observation input files. Table 44 lists observation type(s) supported by
the GWF-GWF package.
Block: DIMENSIONS
Block: EXCHANGEDATA
cellidm1—is the cellid of the cell in model 1 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM1 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM1 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM1 is the node number for the cell.
Groundwater Flow (GWF) Model Input 163
cellidm2—is the cellid of the cell in model 2 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM2 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM2 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM2 is the node number for the cell.
ihc—is an integer flag indicating the direction between node n and all of its m connections. If IHC = 0 then the
connection is vertical. If IHC = 1 then the connection is horizontal. If IHC = 2 then the connection is hori-
zontal for a vertically staggered grid.
cl1—is the distance between the center of cell 1 and the its shared face with cell 2.
cl2—is the distance between the center of cell 2 and the its shared face with cell 1.
hwva—is the horizontal width of the flow connection between cell 1 and cell 2 if IHC > 0, or it is the area perpen-
dicular to flow of the vertical connection between cell 1 and cell 2 if IHC = 0.
aux—represents the values of the auxiliary variables for each GWFGWF Exchange. The values of auxiliary vari-
ables must be present for each exchange. The values must be specified in the order of the auxiliary variables
specified in the OPTIONS block.
boundname—name of the GWF Exchange cell. BOUNDNAME is an ASCII character variable that can contain as
many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within
single quotes.
BEGIN DIMENSIONS
NEXG 36
END DIMENSIONS
#
# back
10 1 1 50. 17.67 33.33 100.99
10 2 1 50. 17.67 33.33 100.99
10 3 1 50. 17.67 33.33 100.99
11 4 1 50. 17.67 33.33 100.99
11 5 1 50. 17.67 33.33 100.99
11 6 1 50. 17.67 33.33 100.99
12 7 1 50. 17.67 33.33 100.99
12 8 1 50. 17.67 33.33 100.99
12 9 1 50. 17.67 33.33 100.99
#
# front
38 73 1 50. 17.67 33.33 100.99
38 74 1 50. 17.67 33.33 100.99
38 75 1 50. 17.67 33.33 100.99
39 76 1 50. 17.67 33.33 100.99
39 77 1 50. 17.67 33.33 100.99
39 78 1 50. 17.67 33.33 100.99
40 79 1 50. 17.67 33.33 100.99
40 80 1 50. 17.67 33.33 100.99
40 81 1 50. 17.67 33.33 100.99
END EXCHANGEDATA
BEGIN OPTIONS
DIGITS 10
PRINT_INPUT
END OPTIONS
1. The GWT Model simulates transport of a single chemical species; however, because MODFLOW 6 allows for mul-
tiple models of the same type to be included in a single simulation, multiple species can be represented by using
multiple GWT Models.
166 MODFLOW 6 – Description of Input and Output
2. For most simulations, the GWT Model needs groundwater flows for every cell in the model grid, for all boundary
conditions, for all advanced package flow terms, and for other terms, such as the flow of water in or out of stor-
age. The GWT Model can access these flows in a GWF Model that is running in the same simulation as the GWT
Model. Alternatively, the GWT Model can read binary head and budget files created from a previous GWF Model
simulation (provided these files contain all of the required information for all time steps); there is no specialized
flow and transport link file (Zheng and others, 2001) as there is for MT3D. Details on these two different use cases
are provided in the chapter on the FMI Package.
3. The GWT Model is based on a generalized control-volume finite-difference method, which means that solute trans-
port can be simulated using regular MODFLOW grids consisting of layers, rows, and columns, or solute transport
can be simulated using unstructured grids.
4. Advection can be simulated using central-in-space weighting, upstream weighting, or an implicit second-order
TVD scheme. The GWT model does not have the Method of Characteristics (particle-based approaches) or an
explicit TVD scheme. Consequently, the GWT Model may require a higher level of spatial discretization than other
transport models that use higher order terms for advection dominated systems. This can be an important limitation
for some problems, which require the preservation of sharp solute fronts.
5. Variable-density flow and transport can be simulated by including a GWF Model and a GWT Model in the same
MODFLOW 6 simulation. The Buoyancy Package should be activated for the GWF Model so that fluid density
is calculated as a function of simulated concentration. If more than one chemical species is represented then the
Buoyancy Package allows the simulated concentration for each of them to be used in the density equation of state.
Langevin and others (2020) describe the hydraulic-head formation that is implemented in the Buoyancy Package
for variable-density groundwater flow and present the results from MODFLOW 6 variable-density simulations. The
variable-density capabilities available in MODFLOW 6 replicate and extend the capabilities available in SEAWAT
to include the Newton flow formulation and unstructured grids, for example.
6. The GWT Model has a Source and Sink Mixing (SSM) Package for representing the effects of GWF stress package
inflows and outflows on simulated concentrations. There are two ways in which users can assign concentrations to
the individual features in these stress package. The first way is to activate a concentration auxiliary variable in the
corresponding GWF stress package. In the SSM input file, the user provides the name of the auxiliary variable to be
used for concentration. The second way is to create a special SPC file, which contains user-assigned time-varying
concentrations for stress package features.
7. The GWT model includes the MST and IST Packages. These two package collectively comprise the capabilities of
the MT3DMS Reactions Package.
8. The MST Package contains the linear, Freundlich, and Langmuir isotherms for representing sorption. The IST
Packages contains only the linear isotherm for representation of sorption.
9. The GWT model was designed so that the user can specify as many immobile domains and necessary to represent
observed contaminant transport patterns and solute breakthrough curves. The effects of an immobile domain are
represented using the Immobile Storage and Transfer (IST) Package, and the user can specify as many IST Pack-
ages as necessary.
10. A GWT-GWT Exchange (introduced in version 6.3.0) can be used to tightly couple multiple transport models, as
might be done in a nested grid configuration.
11. There is no option to automatically run the GWT Model to steady state using a single time step. This is an option
available in MT3DMS (Zheng, 2010). Steady state conditions must be determined by running the transport model
under transient conditions until concentrations stabilize.
12. The GWT Model described in this report is capable of simulating solute transport in the advanced stress packages
of MODFLOW 6, including the Lake, Streamflow Routing, Multi-Aquifer Well, Unsaturated Zone Transport Pack-
ages, and the Water Mover Package. The present implementation simulates solute advection between package fea-
tures, such as between two stream reaches, but dispersive transport is not represented. Likewise, solute transport
between the advanced packages and the aquifer occurs only through advection.
13. The GWT Model has not yet been programmed to work with the Skeletal Storage, Compaction, and Subsidence
(CSUB) Package for the GWF Model.
Groundwater Transport (GWT) Model Input 167
14. There are many other differences between the MODFLOW 6 GWT Model and other solute transport models that
work with MODFLOW, especially with regards to program design and input and output. Descriptions for the GWT
input and output are described here.
Time Stepping
For the present implementation of the GWT Model, all terms in the solute transport equation are solved implicitly.
With the implicit approach applied to the transport equation, it is possible to take relatively large time steps and effi-
ciently obtain a stable solution. If the time steps are too large, however, accuracy of the model results will suffer, so there
is usually some compromise required between the desired level of accuracy and length of the time step. An assessment
of accuracy can be performed by simply running simulations with shorter time steps and comparing results.
In MODFLOW 6 time step lengths are controlled by the user and specified in the Temporal Discretization (TDIS)
input file. When the flow model and transport model are included in the same simulation, then the length of the time step
specified in TDIS is used for both models. If the GWT Model runs in a separate simulation from the GWT Model, then
the time steps used for the transport model can be different, and likely shorter, than the time steps used for the flow solu-
tion. Instructions for specifying time steps are described in the TDIS section of this user guide; additional information on
GWF and GWT configurations are in the Flow Model Interface section.
168 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[LIST <list>]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
END OPTIONS
BEGIN PACKAGES
<ftype> <fname> [<pname>]
<ftype> <fname> [<pname>]
...
END PACKAGES
Explanation of Variables
Block: OPTIONS
list—is name of the listing file to create for this GWT model. If not specified, then the name of the list file will
be the basename of the GWT model name file and the ’.lst’ extension. For example, if the GWT name file is
called “my.model.nam” then the list file will be called “my.model.lst”.
PRINT_INPUT—keyword to indicate that the list of all model stress package information will be written to the
listing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of all model package flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that all model package flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
Block: PACKAGES
ftype—is the file type, which must be one of the following character values shown in table 24. Ftype may be
entered in any combination of uppercase and lowercase.
fname—is the name of the file containing the package input. The path to the file should be included if the file is
not located in the folder where the program was run.
pname—is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed
in PNAME. PNAME character values are read and stored by the program for stress packages only. These
names may be useful for labeling purposes when multiple stress packages of the same type are located within
a single GWT Model. If PNAME is specified for a stress package, then PNAME will be used in the flow
budget table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME
is case insensitive and is stored in all upper case letters.
Groundwater Transport (GWT) Model Input 169
Table 24. Ftype values described in this report. The Pname column indicates whether or not a package name can be provided
in the name file. The capability to provide a package name also indicates that the GWT Model can have more than one package
of that Ftype.
BEGIN PACKAGES
DIS6 transport.dis
IC6 transport.ic
MST6 transport.mst
ADV6 transport.adv
DSP6 transport.dsp
SSM6 transport.ssm
CNC6 transport01.cnc LEFT
CNC6 transport02.cnc RIGHT
SRC6 transport01.src LAY1
SRC6 transport02.src LAY2
SRC6 transport03.src LAY3
IST6 transport01.ist CLAY
IST6 transport02.ist SILT
OC6 transport.oc
END PACKAGES
170 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN GRIDDATA
STRT [LAYERED]
<strt(nodes)> -- READARRAY
END GRIDDATA
Explanation of Variables
Block: OPTIONS
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
strt—is the initial (starting) concentration—that is, concentration at the beginning of the GWT Model simula-
tion. STRT must be specified for all GWT Model simulations. One value is read for every model cell.
Structure of Blocks
Explanation of Variables
Block: OPTIONS
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
SAVE—keyword to indicate that information will be saved this stress period.
PRINT—keyword to indicate that information will be printed this stress period.
rtype—type of information to save or print. Can be BUDGET or CONCENTRATION.
ocsetting—specifies the steps for which the data will be saved.
ALL
FIRST
LAST
FREQUENCY <frequency>
STEPS <steps(<nstp)>
BEGIN OPTIONS
CONCENTRATION FILEOUT transport.ucn
CONCENTRATION PRINT_FORMAT COLUMNS 15 WIDTH 7 DIGITS 2 FIXED
END OPTIONS
BEGIN PERIOD 1
PRINT BUDGET ALL
SAVE CONCENTRATION ALL
PRINT CONCENTRATION ALL
END PERIOD
Groundwater Transport (GWT) Model Input 173
Structure of Blocks
Explanation of Variables
Block: OPTIONS
digits—Keyword and an integer digits specifier used for conversion of simulated values to text on output. If not
specified, the default is the maximum number of digits stored in the program (as written with the G0 Fortran
specifier). When simulated values are written to a comma-separated value text file specified in a CONTIN-
UOUS block below, the digits specifier controls the number of significant digits with which simulated values
are written to the output file. The digits specifier has no effect on the number of significant digits with which
the simulation time is written for continuous observations. If DIGITS is specified as zero, then observations
are written with the default setting, which is the maximum number of digits.
PRINT_INPUT—keyword to indicate that the list of observation information will be written to the listing file
immediately after it is read.
Block: CONTINUOUS
id2—Text identifying cell adjacent to cell identified by ID. The form of ID2 is as described for ID. ID2 is used
for intercell-flow observations of a GWF model, for three observation types of the LAK Package, for two
observation types of the MAW Package, and one observation type of the UZF Package.
Structure of Blocks
BEGIN OPTIONS
[SCHEME <scheme>]
END OPTIONS
Explanation of Variables
Block: OPTIONS
scheme—scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified, upstream
weighting is the default weighting scheme.
BEGIN OPTIONS
SCHEME UPSTREAM
END OPTIONS
176 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[XT3D_OFF]
[XT3D_RHS]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN GRIDDATA
[DIFFC [LAYERED]
<diffc(nodes)> -- READARRAY]
[ALH [LAYERED]
<alh(nodes)> -- READARRAY]
[ALV [LAYERED]
<alv(nodes)> -- READARRAY]
[ATH1 [LAYERED]
<ath1(nodes)> -- READARRAY]
[ATH2 [LAYERED]
<ath2(nodes)> -- READARRAY]
[ATV [LAYERED]
<atv(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
XT3D_OFF—deactivate the xt3d method and use the faster and less accurate approximation. This option may pro-
vide a fast and accurate solution under some circumstances, such as when flow aligns with the model grid,
there is no mechanical dispersion, or when the longitudinal and transverse dispersivities are equal. This
option may also be used to assess the computational demand of the XT3D approach by noting the run time
differences with and without this option on.
XT3D_RHS—add xt3d terms to right-hand side, when possible. This option uses less memory, but may require
more iterations.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
ath1—transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the second ellip-
soid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this
value controls spreading in the y direction. If mechanical dispersion is represented (by specifying any disper-
sivity values) then this array is required.
ath2—transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the third ellip-
soid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this
value controls spreading in the z direction. If this value is not specified and mechanical dispersion is repre-
sented, then this array is set equal to ATH1.
atv—transverse dispersivity when flow is in vertical direction. If flow is strictly vertical and directed in the
z direction, then this value controls spreading in the x and y directions. If this value is not specified and
mechanical dispersion is represented, then this array is set equal to ATH2.
BEGIN OPTIONS
END OPTIONS
BEGIN GRIDDATA
DIFFC
CONSTANT 1.e-9
ALH
CONSTANT 1.
ALV
CONSTANT 1.
ATH1
CONSTANT 0.1
ATH2
CONSTANT 0.1
ATV
CONSTANT 0.1
END GRIDDATA
178 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[PRINT_FLOWS]
[SAVE_FLOWS]
END OPTIONS
BEGIN SOURCES
<pname> <srctype> <auxname>
<pname> <srctype> <auxname>
...
END SOURCES
Explanation of Variables
Block: OPTIONS
Groundwater Transport (GWT) Model Input 179
PRINT_FLOWS—keyword to indicate that the list of SSM flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that SSM flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
Block: SOURCES
pname—name of the flow package for which an auxiliary variable contains a source concentration. If this flow
package is represented using an advanced transport package (SFT, LKT, MWT, or UZT), then the advanced
transport package will override SSM terms specified here.
srctype—keyword indicating how concentration will be assigned for sources and sinks. Keyword must be spec-
ified as either AUX or AUXMIXED. For both options the user must provide an auxiliary variable in the cor-
responding flow package. The auxiliary variable must have the same name as the AUXNAME value that
follows. If the AUX keyword is specified, then the auxiliary variable specified by the user will be assigned as
the concentration value for groundwater sources (flows with a positive sign). For negative flow rates (sinks),
groundwater will be withdrawn from the cell at the simulated concentration of the cell. The AUXMIXED
option provides an alternative method for how to determine the concentration of sinks. If the cell concentra-
tion is larger than the user-specified auxiliary concentration, then the concentration of groundwater withdrawn
from the cell will be assigned as the user-specified concentration. Alternatively, if the user-specified auxiliary
concentration is larger than the cell concentration, then groundwater will be withdrawn at the cell concentra-
tion. Thus, the AUXMIXED option is designed to work with the Evapotranspiration (EVT) and Recharge
(RCH) Packages where water may be withdrawn at a concentration that is less than the cell concentration.
auxname—name of the auxiliary variable in the package PNAME. This auxiliary variable must exist and be spec-
ified by the user in that package. The values in this auxiliary variable will be used to set the concentration
associated with the flows for that boundary package.
Block: FILEINPUT
pname—name of the flow package for which an SPC6 input file contains a source concentration. If this flow pack-
age is represented using an advanced transport package (SFT, LKT, MWT, or UZT), then the advanced trans-
port package will override SSM terms specified here.
SPC6—keyword to specify that record corresponds to a source sink mixing input file.
FILEIN—keyword to specify that an input filename is expected next.
spc6_filename—character string that defines the path and filename for the file containing source and sink input
data for the flow package. The SPC6_FILENAME file is a flexible input file that allows concentrations to be
specified by stress period and with time series. Instructions for creating the SPC6_FILENAME input file are
provided in the next section on file input for boundary concentrations.
MIXED—keyword to specify that these stress package boundaries will have the mixed condition. The MIXED con-
dition is described in the SOURCES block for AUXMIXED. The MIXED condition allows for water to be
withdrawn at a concentration that is less than the cell concentration. It is intended primarily for representing
evapotranspiration.
BEGIN OPTIONS
PRINT_FLOWS
SAVE_FLOWS
END OPTIONS
180 MODFLOW 6 – Description of Input and Output
BEGIN SOURCES
# pname srctype auxname
WEL-1 AUX CONCENTRATION
LAK-1 AUX CONCENTRATION
EVT-1 AUXMIXED ETCONC
END SOURCES
BEGIN FILEINPUT
GHB-1 SPC6 FILEINPUT mymodel.ghb1.spc
EVT-2 SPC6 FILEINPUT mymodel.evt2.spca MIXED
END FILEINPUT
Groundwater Transport (GWT) Model Input 181
As mentioned in the previous section on the SSM Package, concentrations can be specified for GWF stress packages
using auxiliary variables, or they can be specified using input files dedicated to this purpose. The Stress Package Con-
centrations (SPC) input file can be used to provide concentrations that are assigned for GWF sources and sinks. An SPC
input file can be list based or array based. List-based input files can be used for list-based GWF stress packages, such as
wells, drains, and rivers. Array-based input files can be used for array-based GWF stress packages, such as recharge and
evapotranspiration (provided the READASARRAYS options is used; these packages can also be provided in a list-based
format). Array-based SPC input files are discussed in the next section. This section describes the list-based input format
for the SPC input file.
An SPC6 file can be prepared to provide user-specified concentrations for a GWF stress package, such a Well or
General-Head Boundary Package, for example. One SPC6 file applies to one GWF stress package. Names for the SPC6
input files are provided in the FILEINPUT block of the SSM Package. SPC6 entries cannot be specified in the GWT
name file. Use of the SPC6 input file is an alternative to specifying stress package concentrations as auxiliary variables in
the flow model stress package.
The boundary number in the PERIOD block corresponds to the boundary number in the GWF stress period package.
Assignment of the boundary number is straightforward for the advanced packages (SFR, LAK, MAW, and UZF) because
the features in these advanced packages are defined once at the beginning of the simulation and they do not change. For
the other stress packages, however, the order of boundaries may change between stress periods. Consider the following
Well Package input file, for example:
BEGIN dimensions
MAXBOUND 3
END dimensions
BEGIN period 1
1 77 65 -2200 SHALLOW_WELL
2 77 65 -24.0 INTERMEDIATE_WELL
3 77 65 -6.20 DEEP_WELL
END period
BEGIN period 2
1 77 65 -1100 SHALLOW_WELL
3 77 65 -3.10 DEEP_WELL
2 77 65 -12.0 INTERMEDIATE_WELL
END period
In this Well input file, the order of the wells changed between periods 1 and 2. This reordering must be explicitly taken
into account by the user when creating an SSMI6 file, because the boundary number in the SSMI file corresponds to the
boundary number in the Well input file. In stress period 1, boundary number 2 is the INTERMEDIATE_WELL, whereas
in stress period 2, boundary number 2 is the DEEP_WELL. When using this SSMI capability to specify boundary con-
centrations, it is recommended that users write the corresponding GWF stress packages using the same number, cell loca-
tions, and order of boundary conditions for each stress period. In addition, users can activate the PRINT_FLOWS option
in the SSM input file. When the SSM Package prints the individual solute flows to the transport list file, it includes a col-
umn containing the boundary concentration. Users can check the boundary concentrations in this output to verify that
they are assigned as intended.
182 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of spc information will be written to the listing file immediately
after it is read.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of spc cells that will be specified for use during any
stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
bndno—integer value that defines the boundary package feature number associated with the specified PERIOD
data on the line. BNDNO must be greater than zero and less than or equal to MAXBOUND.
spcsetting—line of information that is parsed into a keyword and values. Keyword values that can be used to
start the SPCSETTING string include: CONCENTRATION.
CONCENTRATION <concentration>
concentration—is the boundary concentration. If the Options block includes a TIMESERIESFILE entry (see
the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value. By default, the CONCENTRATION for each boundary feature is zero.
Groundwater Transport (GWT) Model Input 183
BEGIN options
PRINT_INPUT
TS6 FILEIN transport.wel1.ts
END options
BEGIN DIMENSIONS
MAXBOUND 10
END DIMENSIONS
BEGIN PERIOD 1
1 concentration myconc1ts
2 concentration 100.
3 concentration 100.
4 concentration 100.
5 concentration 100.
6 concentration 100.
7 concentration 100.
8 concentration 100.
9 concentration 100.
10 concentration 100.
END period
Structure of Blocks
Explanation of Variables
Block: OPTIONS
READASARRAYS—indicates that array-based input will be used for the SPC Package. This keyword must be spec-
ified to use array-based input. When READASARRAYS is specified, values must be provided for every cell
within a model layer, even those cells that have an IDOMAIN value less than one. Values assigned to cells
with IDOMAIN values less than one are not used and have no effect on simulation results.
PRINT_INPUT—keyword to indicate that the list of spc information will be written to the listing file immediately
after it is read.
TAS6—keyword to specify that record corresponds to a time-array-series file.
FILEIN—keyword to specify that an input filename is expected next.
tas6_filename—defines a time-array-series file defining a time-array series that can be used to assign time-
varying values. See the Time-Variable Input section for instructions on using the time-array series capability.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
concentration—is the concentration of the associated Recharge or Evapotranspiration stress package. The con-
centration array may be defined by a time-array series (see the "Using Time-Array Series in a Package" sec-
tion).
Groundwater Transport (GWT) Model Input 185
BEGIN options
READASARRAYS
PRINT_INPUT
END options
BEGIN PERIOD 1
CONCENTRATION
INTERNAL FACTOR 1.0
0.00000000 1.00000000 2.00000000 3.00000000 4.00000000
5.00000000 6.00000000 7.00000000 8.00000000 9.00000000
10.00000000 11.00000000 12.00000000 13.00000000 14.00000000
15.00000000 16.00000000 17.00000000 18.00000000 19.00000000
20.00000000 21.00000000 22.00000000 23.00000000 24.00000000
END PERIOD
BEGIN PERIOD 3
CONCENTRATION
CONSTANT 0.0
END PERIOD
186 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[FIRST_ORDER_DECAY]
[ZERO_ORDER_DECAY]
[SORPTION <sorption>]
END OPTIONS
BEGIN GRIDDATA
POROSITY [LAYERED]
<porosity(nodes)> -- READARRAY
[DECAY [LAYERED]
<decay(nodes)> -- READARRAY]
[DECAY_SORBED [LAYERED]
<decay_sorbed(nodes)> -- READARRAY]
[BULK_DENSITY [LAYERED]
<bulk_density(nodes)> -- READARRAY]
[DISTCOEF [LAYERED]
<distcoef(nodes)> -- READARRAY]
[SP2 [LAYERED]
<sp2(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that MST flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
FIRST_ORDER_DECAY—is a text keyword to indicate that first-order decay will occur. Use of this keyword
requires that DECAY and DECAY_SORBED (if sorption is active) are specified in the GRIDDATA block.
ZERO_ORDER_DECAY—is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires
that DECAY and DECAY_SORBED (if sorption is active) are specified in the GRIDDATA block.
sorption—is a text keyword to indicate that sorption will be activated. Valid sorption options include LINEAR,
FREUNDLICH, and LANGMUIR. Use of this keyword requires that BULK_DENSITY and DISTCOEF are
specified in the GRIDDATA block. If sorption is specified as FREUNDLICH or LANGMUIR then SP2 is
also required in the GRIDDATA block.
Block: GRIDDATA
porosity—is the mobile domain porosity, defined as the mobile domain pore volume per mobile domain volume.
Additional information on porosity within the context of mobile and immobile domain transport simulations
is included in the MODFLOW 6 Supplemental Technical Information document.
decay—is the rate coefficient for first or zero-order decay for the aqueous phase of the mobile domain. A nega-
tive value indicates solute production. The dimensions of decay for first-order decay is one over time. The
dimensions of decay for zero-order decay is mass per length cubed per time. decay will have no effect on
simulation results unless either first- or zero-order decay is specified in the options block.
Groundwater Transport (GWT) Model Input 187
decay_sorbed—is the rate coefficient for first or zero-order decay for the sorbed phase of the mobile domain. A
negative value indicates solute production. The dimensions of decay_sorbed for first-order decay is one over
time. The dimensions of decay_sorbed for zero-order decay is mass of solute per mass of aquifer per time. If
decay_sorbed is not specified and both decay and sorption are active, then the program will terminate with an
error. decay_sorbed will have no effect on simulation results unless the SORPTION keyword and either first-
or zero-order decay are specified in the options block.
bulk_density—is the bulk density of the aquifer in mass per length cubed. bulk_density is not required unless
the SORPTION keyword is specified. Bulk density is defined as the mobile domain solid mass per mobile
domain volume. Additional information on bulk density is included in the MODFLOW 6 Supplemental Tech-
nical Information document.
distcoef—is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of
length cubed per mass. distcoef is not required unless the SORPTION keyword is specified.
sp2—is the exponent for the Freundlich isotherm and the sorption capacity for the Langmuir isotherm.
BEGIN OPTIONS
SORPTION linear
FIRST_ORDER_DECAY
END OPTIONS
BEGIN GRIDDATA
POROSITY
CONSTANT 0.1
DECAY
CONSTANT 0.001
DECAY_SORBED
CONSTANT 0.001
BULK_DENSITY
CONSTANT 1.
DISTCOEF
CONSTANT 0.01
END GRIDDATA
188 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[SORPTION]
[FIRST_ORDER_DECAY]
[ZERO_ORDER_DECAY]
[CIM FILEOUT <cimfile>]
[CIM PRINT_FORMAT COLUMNS <columns> WIDTH <width> DIGITS <digits> <format>]
END OPTIONS
BEGIN GRIDDATA
POROSITY [LAYERED]
<porosity(nodes)> -- READARRAY
VOLFRAC [LAYERED]
<volfrac(nodes)> -- READARRAY
ZETAIM [LAYERED]
<zetaim(nodes)> -- READARRAY
[CIM [LAYERED]
<cim(nodes)> -- READARRAY]
[DECAY [LAYERED]
<decay(nodes)> -- READARRAY]
[DECAY_SORBED [LAYERED]
<decay_sorbed(nodes)> -- READARRAY]
[BULK_DENSITY [LAYERED]
<bulk_density(nodes)> -- READARRAY]
[DISTCOEF [LAYERED]
<distcoef(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that IST flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
SORPTION—is a text keyword to indicate that sorption will be activated. Use of this keyword requires that
BULK_DENSITY and DISTCOEF are specified in the GRIDDATA block. The linear sorption isotherm is
the only isotherm presently supported in the IST Package.
Groundwater Transport (GWT) Model Input 189
FIRST_ORDER_DECAY—is a text keyword to indicate that first-order decay will occur. Use of this keyword
requires that DECAY and DECAY_SORBED (if sorption is active) are specified in the GRIDDATA block.
ZERO_ORDER_DECAY—is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires
that DECAY and DECAY_SORBED (if sorption is active) are specified in the GRIDDATA block.
CIM—keyword to specify that record corresponds to immobile concentration.
cimfile—name of the output file to write immobile concentrations. This file is a binary file that has the same
format and structure as a binary head and concentration file. The value for the text variable written to the file
is CIM. Immobile domain concentrations will be written to this file at the same interval as mobile domain
concentrations are saved, as specified in the GWT Model Output Control file.
PRINT_FORMAT—keyword to specify format for printing to the listing file.
columns—number of columns for writing data.
width—width for writing each number.
digits—number of digits to use for writing a number.
format—write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC.
Block: GRIDDATA
porosity—porosity of the immobile domain specified as the immobile domain pore volume per immobile
domain volume.
volfrac—fraction of the cell volume that consists of this immobile domain. The sum of all immobile domain
volume fractions must be less than one.
zetaim—mass transfer rate coefficient between the mobile and immobile domains, in dimensions of per time.
cim—initial concentration of the immobile domain in mass per length cubed. If CIM is not specified, then it is
assumed to be zero.
decay—is the rate coefficient for first or zero-order decay for the aqueous phase of the immobile domain. A neg-
ative value indicates solute production. The dimensions of decay for first-order decay is one over time. The
dimensions of decay for zero-order decay is mass per length cubed per time. Decay will have no effect on
simulation results unless either first- or zero-order decay is specified in the options block.
decay_sorbed—is the rate coefficient for first or zero-order decay for the sorbed phase of the immobile domain.
A negative value indicates solute production. The dimensions of decay_sorbed for first-order decay is one
over time. The dimensions of decay_sorbed for zero-order decay is mass of solute per mass of aquifer per
time. If decay_sorbed is not specified and both decay and sorption are active, then the program will terminate
with an error. decay_sorbed will have no effect on simulation results unless the SORPTION keyword and
either first- or zero-order decay are specified in the options block.
bulk_density—is the bulk density of this immobile domain in mass per length cubed. Bulk density is defined
as the immobile domain solid mass per volume of the immobile domain. bulk_density is not required unless
the SORPTION keyword is specified in the options block. If the SORPTION keyword is not specified in the
options block, bulk_density will have no effect on simulation results.
distcoef—is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions
of length cubed per mass. distcoef is not required unless the SORPTION keyword is specified in the options
block. If the SORPTION keyword is not specified in the options block, distcoef will have no effect on simu-
lation results.
BEGIN OPTIONS
SORPTION
FIRST_ORDER_DECAY
CIM FILEOUT gwtmodel.imd1.ucn
END OPTIONS
BEGIN GRIDDATA
ZETAIM
CONSTANT 0.01
THETAIM
CONSTANT 0.025
BULK_DENSITY
CONSTANT 0.25000000
DISTCOEF
CONSTANT 0.01000000
DECAY
CONSTANT 0.01000000
DECAY_SORBED
CONSTANT 0.01000000
END GRIDDATA
Groundwater Transport (GWT) Model Input 191
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of concentration value.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of constant concentration
cells.
192 MODFLOW 6 – Description of Input and Output
PRINT_INPUT—keyword to indicate that the list of constant concentration information will be written to the list-
ing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of constant concentration flow rates will be printed to the listing
file for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is
no Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step
of each stress period.
SAVE_FLOWS—keyword to indicate that constant concentration flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Constant Concentration package. See the
“Observation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists
observation type(s) supported by the Constant Concentration package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of constant concentrations cells that will be specified
for use during any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
conc—is the constant concentration value. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
aux—represents the values of the auxiliary variables for each constant concentration. The values of auxiliary vari-
ables must be present for each constant concentration. The values must be specified in the order of the aux-
iliary variables specified in the OPTIONS block. If the package supports time series and the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
boundname—name of the constant concentration cell. BOUNDNAME is an ASCII character variable that can
contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be
enclosed within single quotes.
Groundwater Transport (GWT) Model Input 193
BEGIN OPTIONS
PRINT_FLOWS
PRINT_INPUT
SAVE_FLOWS
END OPTIONS
BEGIN DIMENSIONS
MAXBOUND 1
END DIMENSIONS
BEGIN PERIOD 1
1 1 1 1.0
END PERIOD
BEGIN OPTIONS
DIGITS 8
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of mass loading rate.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of mass source cells.
PRINT_INPUT—keyword to indicate that the list of mass source information will be written to the listing file
immediately after it is read.
Groundwater Transport (GWT) Model Input 195
PRINT_FLOWS—keyword to indicate that the list of mass source flow rates will be printed to the listing file for
every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Out-
put Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that mass source flow terms will be written to the file specified with “BUD-
GET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Mass Source package. See the “Observation
utility” section for instructions for preparing observation input files. Tables 44 and 45 lists observation type(s)
supported by the Mass Source package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of sources cells that will be specified for use during
any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
smassrate—is the mass source loading rate. A positive value indicates addition of solute mass and a negative
value indicates removal of solute mass. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value.
aux—represents the values of the auxiliary variables for each mass source. The values of auxiliary variables must
be present for each mass source. The values must be specified in the order of the auxiliary variables specified
in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIES-
FILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the
time-series name in place of a numeric value.
boundname—name of the mass source cell. BOUNDNAME is an ASCII character variable that can contain as
many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within
single quotes.
BEGIN OPTIONS
PRINT_FLOWS
PRINT_INPUT
SAVE_FLOWS
END OPTIONS
BEGIN DIMENSIONS
MAXBOUND 1
END DIMENSIONS
BEGIN PERIOD 1
1 1 1 1.0
END PERIOD
BEGIN OPTIONS
DIGITS 7
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_CONCENTRATION]
[PRINT_FLOWS]
[SAVE_FLOWS]
[CONCENTRATION FILEOUT <concfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<ifno> <strt> [<aux(naux)>] [<boundname>]
<ifno> <strt> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWT name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
198 MODFLOW 6 – Description of Input and Output
Block: PACKAGEDATA
ifno—integer value that defines the feature (reach) number associated with the specified PACKAGEDATA data
on the line. IFNO must be greater than zero and less than or equal to NREACHES. Reach information must
be specified for every reach or the program will terminate with an error. The program will also terminate with
an error if information for a reach is specified more than once.
strt—real value that defines the starting concentration for the reach.
aux—represents the values of the auxiliary variables for each reach. The values of auxiliary variables must be
present for each reach. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
Groundwater Transport (GWT) Model Input 199
boundname—name of the reach cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (reach) number associated with the specified PERIOD data on the
line. IFNO must be greater than zero and less than or equal to NREACHES.
reachsetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the REACHSETTING string include: STATUS, CONCENTRATION, RAINFALL, EVAPORATION,
RUNOFF, and AUXILIARY. These settings are used to assign the concentration of associated with the cor-
responding flow terms. Concentrations cannot be specified for all flow terms. For example, the Streamflow
Package supports a “DIVERSION” flow term. Diversion water will be routed using the calculated concentra-
tion of the reach.
STATUS <status>
CONCENTRATION <concentration>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
INFLOW <inflow>
AUXILIARY <auxname> <auxval>
status—keyword option to define reach status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that concentration will be calculated for the reach. If a reach is
inactive, then there will be no solute mass fluxes into or out of the reach and the inactive value will be written
for the reach concentration. If a reach is constant, then the concentration for the reach will be fixed at the user
specified value.
concentration—real or character value that defines the concentration for the reach. The specified CONCEN-
TRATION is only applied if the reach is a constant concentration reach. If the Options block includes a
TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
rainfall—real or character value that defines the rainfall solute concentration (𝑀 𝐿−3 ) for the reach. If the
Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value.
evaporation—real or character value that defines the concentration of evaporated water (𝑀 𝐿−3 ) for the reach.
If this concentration value is larger than the simulated concentration in the reach, then the evaporated water
will be removed at the same concentration as the reach. If the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
runoff—real or character value that defines the concentration of runoff (𝑀 𝐿−3 ) for the reach. Value must
be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
inflow—real or character value that defines the concentration of inflow (𝑀 𝐿−3 ) for the reach. Value must
be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
200 MODFLOW 6 – Description of Input and Output
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_CONCENTRATION
PRINT_FLOWS
SAVE_FLOWS
CONCENTRATION FILEOUT gwt_sft_02.sft.bin
BUDGET FILEOUT gwt_sft_02.sft.bud
OBS6 FILEIN gwt_sft_02.sft.obs
END OPTIONS
BEGIN PACKAGEDATA
# L STRT aux1 aux2 bname
1 0.00000000 99.00000000 999.00000000 REACH1
2 0.00000000 99.00000000 999.00000000 REACH2
3 0.00000000 99.00000000 999.00000000 REACH3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
sft-2-fjf FLOW-JA-FACE 2 1
sft-3-fjf FLOW-JA-FACE 2 3
sft-4-fjf FLOW-JA-FACE 3 2
sft-5-fjf FLOW-JA-FACE MYREACH1
sft-6-fjf FLOW-JA-FACE MYREACH2
sft-7-fjf FLOW-JA-FACE MYREACH3
END continuous
Groundwater Transport (GWT) Model Input 203
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_CONCENTRATION]
[PRINT_FLOWS]
[SAVE_FLOWS]
[CONCENTRATION FILEOUT <concfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<ifno> <strt> [<aux(naux)>] [<boundname>]
<ifno> <strt> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWT name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
204 MODFLOW 6 – Description of Input and Output
Block: PACKAGEDATA
ifno—integer value that defines the feature (lake) number associated with the specified PACKAGEDATA data
on the line. IFNO must be greater than zero and less than or equal to NLAKES. Lake information must be
specified for every lake or the program will terminate with an error. The program will also terminate with an
error if information for a lake is specified more than once.
strt—real value that defines the starting concentration for the lake.
aux—represents the values of the auxiliary variables for each lake. The values of auxiliary variables must be
present for each lake. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
Groundwater Transport (GWT) Model Input 205
boundname—name of the lake cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (lake) number associated with the specified PERIOD data on the line.
IFNO must be greater than zero and less than or equal to NLAKES.
laksetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the LAKSETTING string include: STATUS, CONCENTRATION, RAINFALL, EVAPORATION,
RUNOFF, EXT-INFLOW, and AUXILIARY. These settings are used to assign the concentration of associated
with the corresponding flow terms. Concentrations cannot be specified for all flow terms. For example, the
Lake Package supports a “WITHDRAWAL” flow term. If this withdrawal term is active, then water will be
withdrawn from the lake at the calculated concentration of the lake.
STATUS <status>
CONCENTRATION <concentration>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
EXT-INFLOW <ext-inflow>
AUXILIARY <auxname> <auxval>
status—keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that concentration will be calculated for the lake. If a lake is inac-
tive, then there will be no solute mass fluxes into or out of the lake and the inactive value will be written for
the lake concentration. If a lake is constant, then the concentration for the lake will be fixed at the user speci-
fied value.
concentration—real or character value that defines the concentration for the lake. The specified CONCEN-
TRATION is only applied if the lake is a constant concentration lake. If the Options block includes a TIME-
SERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
rainfall—real or character value that defines the rainfall solute concentration (𝑀 𝐿−3 ) for the lake. If the
Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value.
evaporation—real or character value that defines the concentration of evaporated water (𝑀 𝐿−3 ) for the lake. If
this concentration value is larger than the simulated concentration in the lake, then the evaporated water will
be removed at the same concentration as the lake. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
runoff—real or character value that defines the concentration of runoff (𝑀 𝐿−3 ) for the lake. Value must be
greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
ext-inflow—real or character value that defines the concentration of external inflow (𝑀 𝐿−3 ) for the lake.
Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
206 MODFLOW 6 – Description of Input and Output
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_CONCENTRATION
PRINT_FLOWS
SAVE_FLOWS
CONCENTRATION FILEOUT gwt_lkt_02.lkt.bin
BUDGET FILEOUT gwt_lkt_02.lkt.bud
OBS6 FILEIN gwt_lkt_02.lkt.obs
END OPTIONS
BEGIN PACKAGEDATA
# ifno STRT aux1 aux2 bname
1 0.00000000 99.00000000 999.00000000 MYLAKE1
2 0.00000000 99.00000000 999.00000000 MYLAKE2
3 0.00000000 99.00000000 999.00000000 MYLAKE3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 7
PRINT_INPUT
END options
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_CONCENTRATION]
[PRINT_FLOWS]
[SAVE_FLOWS]
[CONCENTRATION FILEOUT <concfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<ifno> <strt> [<aux(naux)>] [<boundname>]
<ifno> <strt> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWT name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
210 MODFLOW 6 – Description of Input and Output
Block: PACKAGEDATA
ifno—integer value that defines the feature (well) number associated with the specified PACKAGEDATA data on
the line. IFNO must be greater than zero and less than or equal to NMAWWELLS. Well information must be
specified for every well or the program will terminate with an error. The program will also terminate with an
error if information for a well is specified more than once.
strt—real value that defines the starting concentration for the well.
aux—represents the values of the auxiliary variables for each well. The values of auxiliary variables must be
present for each well. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
Groundwater Transport (GWT) Model Input 211
boundname—name of the well cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (well) number associated with the specified PERIOD data on the line.
IFNO must be greater than zero and less than or equal to NMAWWELLS.
mwtsetting—line of information that is parsed into a keyword and values. Keyword values that can be used to
start the MWTSETTING string include: STATUS, CONCENTRATION, RATE, and AUXILIARY. These
settings are used to assign the concentration associated with the corresponding flow terms. Concentrations
cannot be specified for all flow terms. For example, the Multi-Aquifer Well Package supports a “WITH-
DRAWAL” flow term. If this withdrawal term is active, then water will be withdrawn from the well at the
calculated concentration of the well.
STATUS <status>
CONCENTRATION <concentration>
RATE <rate>
AUXILIARY <auxname> <auxval>
status—keyword option to define well status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that concentration will be calculated for the well. If a well is
inactive, then there will be no solute mass fluxes into or out of the well and the inactive value will be writ-
ten for the well concentration. If a well is constant, then the concentration for the well will be fixed at the user
specified value.
concentration—real or character value that defines the concentration for the well. The specified CONCEN-
TRATION is only applied if the well is a constant concentration well. If the Options block includes a TIME-
SERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
rate—real or character value that defines the injection solute concentration (𝑀 𝐿−3 ) for the well. If the Options
block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained
from a time series by entering the time-series name in place of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
PRINT_FLOWS
SAVE_FLOWS
CONCENTRATION FILEOUT gwt_mwt_02.mwt.bin
BUDGET FILEOUT gwt_mwt_02.mwt.bud
OBS6 FILEIN gwt_mwt_02.mwt.obs
END OPTIONS
BEGIN PACKAGEDATA
# ifno STRT aux1 aux2 bname
1 0.00000000 99.00000000 999.00000000 MYWELL1
2 0.00000000 99.00000000 999.00000000 MYWELL2
3 0.00000000 99.00000000 999.00000000 MYWELL3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 12
PRINT_INPUT
END options
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_CONCENTRATION]
[PRINT_FLOWS]
[SAVE_FLOWS]
[CONCENTRATION FILEOUT <concfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<ifno> <strt> [<aux(naux)>] [<boundname>]
<ifno> <strt> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWT name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
Groundwater Transport (GWT) Model Input 215
Block: PACKAGEDATA
ifno—integer value that defines the feature (UZF object) number associated with the specified PACKAGEDATA
data on the line. IFNO must be greater than zero and less than or equal to NUZFCELLS. Unsaturated zone
flow information must be specified for every UZF cell or the program will terminate with an error. The pro-
gram will also terminate with an error if information for a UZF cell is specified more than once.
strt—real value that defines the starting concentration for the unsaturated zone flow cell.
aux—represents the values of the auxiliary variables for each unsaturated zone flow. The values of auxiliary vari-
ables must be present for each unsaturated zone flow. The values must be specified in the order of the aux-
iliary variables specified in the OPTIONS block. If the package supports time series and the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
216 MODFLOW 6 – Description of Input and Output
boundname—name of the unsaturated zone flow cell. BOUNDNAME is an ASCII character variable that can
contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be
enclosed within single quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
ifno—integer value that defines the feature (UZF object) number associated with the specified PERIOD data on
the line. IFNO must be greater than zero and less than or equal to NUZFCELLS.
uztsetting—line of information that is parsed into a keyword and values. Keyword values that can be used to
start the UZTSETTING string include: STATUS, CONCENTRATION, INFILTRATION, UZET, and AUX-
ILIARY. These settings are used to assign the concentration of associated with the corresponding flow terms.
Concentrations cannot be specified for all flow terms.
STATUS <status>
CONCENTRATION <concentration>
INFILTRATION <infiltration>
UZET <uzet>
AUXILIARY <auxname> <auxval>
status—keyword option to define UZF cell status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that concentration will be calculated for the UZF cell. If a UZF
cell is inactive, then there will be no solute mass fluxes into or out of the UZF cell and the inactive value will
be written for the UZF cell concentration. If a UZF cell is constant, then the concentration for the UZF cell
will be fixed at the user specified value.
concentration—real or character value that defines the concentration for the unsaturated zone flow cell. The
specified CONCENTRATION is only applied if the unsaturated zone flow cell is a constant concentration
cell. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values
can be obtained from a time series by entering the time-series name in place of a numeric value.
infiltration—real or character value that defines the infiltration solute concentration (𝑀 𝐿−3 ) for the UZF
cell. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values
can be obtained from a time series by entering the time-series name in place of a numeric value.
uzet—real or character value that defines the concentration of unsaturated zone evapotranspiration water
(𝑀 𝐿−3 ) for the UZF cell. If this concentration value is larger than the simulated concentration in the UZF
cell, then the unsaturated zone ET water will be removed at the same concentration as the UZF cell. If the
Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
Groundwater Transport (GWT) Model Input 217
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_CONCENTRATION
PRINT_FLOWS
SAVE_FLOWS
CONCENTRATION FILEOUT gwt_02.uzt.bin
BUDGET FILEOUT gwt_02.uzt.bud
OBS6 FILEIN gwt_02.uzt.obs
END OPTIONS
BEGIN PACKAGEDATA
# ifno STRT aux1 aux2 bname
1 0.00000000 99.00000000 999.00000000 MYUZFCELL1
2 0.00000000 99.00000000 999.00000000 MYUZFCELL2
3 0.00000000 99.00000000 999.00000000 MYUZFCELL3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 7
PRINT_INPUT
END options
∙ Flows are provided by a corresponding GWF Model running in the same simulation—in this case, all groundwa-
ter flows are calculated by the corresponding GWF Model and provided through FMI to the transport model. This
is a common use case in which the user wants to run the flow and transport models as part of a single simulation.
The GWF and GWT models must be part of a GWF-GWT Exchange that is listed in mfsim.nam. If a GWF-GWT
Exchange is specified by the user, then the user does not need to specify an FMI Package input file for the simula-
tion, unless an FMI option is needed. If a GWF-GWT Exchange is specified and the FMI Package is specified, then
the PACKAGEDATA block below is not read or used.
∙ There is no groundwater flow and the user is interested only in the effects of diffusion, sorption, and decay or
production—in this case, FMI should not be provided in the GWT name file and the GWT model should not be
listed in any GWF-GWT Exchanges in mfsim.nam. In this case, all groundwater flows are assumed to be zero and
cells are assumed to be fully saturated. The SSM Package should not be activated in this case, because there can
be no sources or sinks of water. Likewise, none of the advanced transport packages (LKT, SFT, MWT, and UZT)
should be specified in the GWT name file. This type of model simulation without an FMI Package is included as an
option to represent diffusion, sorption, and decay or growth in the absence of any groundwater flow.
∙ Flows are provided from a previous GWF model simulation—in this case the FMI Package should be listed in the
GWT name file and the head and budget files should be listed in the FMI PACKAGEDATA block. In this case,
FMI reads the simulated head and flows from these files and makes them available to the transport model. There are
some additional considerations when the heads and flows are provided from binary files.
– The binary budget file must contain the simulated flows for all of the packages that were included in the GWF
model run. Saving of flows can be activated for all packages by specifying “SAVE_FLOWS” as an option
in the GWF name file. The GWF Output Control Package must also have “SAVE BUDGET ALL” specified.
The easiest way to ensure that all flows and heads are saved is to use the following simple form of a GWF
Output Control file:
BEGIN OPTIONS
HEAD FILEOUT mymodel.hds
BUDGET FILEOUT mymodel.bud
END OPTIONS
BEGIN PERIOD 1
SAVE HEAD ALL
SAVE BUDGET ALL
END PERIOD
– The binary budget file must have the same number of budget terms listed for each time step. This will always
be the case when the binary budget file is created by MODFLOW 6.
– The advanced flow packages (LAK, SFR, MAW, and UZF) all have options for saving a detailed budget file
the describes all of the flows for each lake, reach, well, or UZF cell. These budget files can also be used as
input to FMI if a corresponding advanced transport package is needed, such as LKT, SFT, MWT, and UZT. If
the Water Mover Package is also specified for the GWF Model, then the the budget file for the Water Mover
Package will also need to be specified as input to this FMI Package.
– The binary heads file must have heads saved for all layers in the model. This will always be the case when the
binary head file is created by MODFLOW 6. This was not always the case as previous MODFLOW versions
allowed different save options for each layer.
220 MODFLOW 6 – Description of Input and Output
– If the binary budget and head files have more than one time step for a single stress period, then the budget and
head information must be contained within the binary file for every time step in the simulation stress period.
– The binary budget and head files must correspond in terms of information stored for each time step and stress
period.
– If the binary budget and head files have information provided for only the first time step of a given stress
period, this information will be used for all time steps in that stress period in the GWT simulation. If the
final stress period (which may be the only stress period) in the binary budget and head files has information
provided for only one time step, this information will be used for any subsequent time steps and stress peri-
ods in the GWT simulation. This makes it possible to provide flows, for example, from a steady-state GWF
stress period and have those flows used for all GWT time steps in that stress period, for all remaining time
steps in the GWT simulation, or for all time steps throughout the entire GWT simulation. With this option, it
is possible to have smaller time steps in the GWT simulation than the time steps used in the GWF simulation.
Note that this cannot be done when the GWF and GWT models are run in the same simulation, because in
that case, both models are solved for each time step in the stress period, as listed in the TDIS Package. This
option for reading flows from a previous GWF simulation may offer an efficient alternative to running both
models in the same simulation, but it comes at the cost of having potentially very large budget files.
Determination of which FMI use case to invoke requires careful consideration of the different advantages and disadvan-
tages of each case. For example, running GWT and GWF in the same simulation can often be faster because GWF flows
are passed through memory to the GWT model instead of being written to files. The disadvantage of this approach is that
the same time step lengths must be used for both GWF and GWT. Ultimately, it should be relatively straightforward to
test different ways in which GWF and GWT interact and select the use case most appropriate for the particular problem.
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[FLOW_IMBALANCE_CORRECTION]
END OPTIONS
BEGIN PACKAGEDATA
<flowtype> FILEIN <fname>
<flowtype> FILEIN <fname>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that FMI flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
FLOW_IMBALANCE_CORRECTION—correct for an imbalance in flows by assuming that any residual flow error
comes in or leaves at the concentration of the cell. When this option is activated, the GWT Model budget
written to the listing file will contain two additional entries: FLOW-ERROR and FLOW-CORRECTION.
These two entries will be equal but opposite in sign. The FLOW-CORRECTION term is a mass flow that is
added to offset the error caused by an imprecise flow balance. If these terms are not relatively small, the flow
model should be rerun with stricter convergence tolerances.
Block: PACKAGEDATA
flowtype—is the word GWFBUDGET, GWFHEAD, GWFMOVER or the name of an advanced GWF stress
package. If GWFBUDGET is specified, then the corresponding file must be a budget file from a previous
GWF Model run. If an advanced GWF stress package name appears then the corresponding file must be the
budget file saved by a LAK, SFR, MAW or UZF Package.
Groundwater Transport (GWT) Model Input 221
BEGIN OPTIONS
FLOW_IMBALANCE_CORRECTION
END OPTIONS
BEGIN PACKAGEDATA
GWFBUDGET FILEIN ../flow/mygwfmodel.bud
GWFHEAD FILEIN ../flow/mygwfmodel.hds
GWFMOVER FILEIN ../flow/mygwfmodel.mvr.bud
LAK-1 FILEIN ../flow/mygwfmodel.lak.bud
SFR-1 FILEIN ../flow/mygwfmodel.sfr.bud
MAW-1 FILEIN ../flow/mygwfmodel.maw.bud
UZF-1 FILEIN ../flow/mygwfmodel.uzf.bud
LAK-2 FILEIN ../flow/mygwfmodel-2.lak.bud
END PACKAGEDATA
222 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
END OPTIONS
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of mover information will be written to the listing file immedi-
ately after it is read.
PRINT_FLOWS—keyword to indicate that the list of lake flow rates will be printed to the listing file for every stress
period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Control
option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that lake flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
BEGIN OPTIONS
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
BUDGET FILEOUT mygwtmodel.mvt.bud
END OPTIONS
Groundwater Transport (GWT) Model Input 223
Structure of Blocks
BEGIN OPTIONS
GWFMODELNAME1 <gwfmodelname1>
GWFMODELNAME2 <gwfmodelname2>
[AUXILIARY <auxiliary(naux)>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[ADV_SCHEME <adv_scheme>]
[DSP_XT3D_OFF]
[DSP_XT3D_RHS]
[MVT6 FILEIN <mvt6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN DIMENSIONS
NEXG <nexg>
END DIMENSIONS
BEGIN EXCHANGEDATA
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
...
END EXCHANGEDATA
Explanation of Variables
Block: OPTIONS
gwfmodelname1—keyword to specify name of first corresponding GWF Model. In the simulation name file, the
GWT6-GWT6 entry contains names for GWT Models (exgmnamea and exgmnameb). The GWT Model with
the name exgmnamea must correspond to the GWF Model with the name gwfmodelname1.
gwfmodelname2—keyword to specify name of second corresponding GWF Model. In the simulation name file,
the GWT6-GWT6 entry contains names for GWT Models (exgmnamea and exgmnameb). The GWT Model
with the name exgmnameb must correspond to the GWF Model with the name gwfmodelname2.
auxiliary—an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can
be provided. Most auxiliary variables will not be used by the GWT-GWT Exchange, but they will be avail-
able for use by other parts of the program. If an auxiliary variable with the name “ANGLDEGX” is found,
then this information will be used as the angle (provided in degrees) between the connection face normal and
the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The
connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in
model 2 pointing away from the model 1 cell. Additional information on “ANGLDEGX” is provided in the
description of the DISU Package. ANGLDEGX must be specified if dispersion is simulated in the connected
GWT models.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of GWT Exchange cells.
224 MODFLOW 6 – Description of Input and Output
PRINT_INPUT—keyword to indicate that the list of exchange entries will be echoed to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of exchange flow rates will be printed to the listing file for every
stress period in which “SAVE BUDGET” is specified in Output Control.
SAVE_FLOWS—keyword to indicate that cell-by-cell flow terms will be written to the budget file for each model
provided that the Output Control for the models are set up with the “BUDGET SAVE FILE” option.
adv_scheme—scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified,
upstream weighting is the default weighting scheme.
DSP_XT3D_OFF—deactivate the xt3d method for the dispersive flux and use the faster and less accurate approxi-
mation for this exchange.
DSP_XT3D_RHS—add xt3d dispersion terms to right-hand side, when possible, for this exchange.
FILEIN—keyword to specify that an input filename is expected next.
MVT6—keyword to specify that record corresponds to a transport mover file.
mvt6_filename—is the file name of the transport mover input file to apply to this exchange. Information for the
transport mover are provided in the file provided with these keywords.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—is the file name of the observations input file for this exchange. See the “Observation utility”
section for instructions for preparing observation input files. Table 45 lists observation type(s) supported by
the GWT-GWT package.
Block: DIMENSIONS
Block: EXCHANGEDATA
cellidm1—is the cellid of the cell in model 1 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM1 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM1 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM1 is the node number for the cell.
cellidm2—is the cellid of the cell in model 2 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM2 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM2 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM2 is the node number for the cell.
ihc—is an integer flag indicating the direction between node n and all of its m connections. If IHC = 0 then the
connection is vertical. If IHC = 1 then the connection is horizontal. If IHC = 2 then the connection is hori-
zontal for a vertically staggered grid.
cl1—is the distance between the center of cell 1 and the its shared face with cell 2.
cl2—is the distance between the center of cell 2 and the its shared face with cell 1.
hwva—is the horizontal width of the flow connection between cell 1 and cell 2 if IHC > 0, or it is the area perpen-
dicular to flow of the vertical connection between cell 1 and cell 2 if IHC = 0.
aux—represents the values of the auxiliary variables for each GWTGWT Exchange. The values of auxiliary vari-
ables must be present for each exchange. The values must be specified in the order of the auxiliary variables
specified in the OPTIONS block.
boundname—name of the GWT Exchange cell. BOUNDNAME is an ASCII character variable that can contain
as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
Groundwater Transport (GWT) Model Input 225
BEGIN DIMENSIONS
NEXG 36
END DIMENSIONS
BEGIN OPTIONS
DIGITS 10
PRINT_INPUT
END OPTIONS
1. The GWE Model uses parameters that are native to heat transport, including thermal conductivity of water, heat
capacity of water, thermal conductivity of the aquifer material, heat capacity of of the aquifer material, and latent
heat of vaporization. Therefore, users do not need to pre-calculate “parameter equivalents” when generating GWE
model input; users can instead enter native parameter values that are readily available.
2. Thermal energy transport budgets written to the MODFLOW 6 list file are reported in units of energy (e.g., joules).
Previously, using a program like MT3D-USGS (Bedekar and others, 2016) to simulate heat transport, units in the
3 ∘
list file budget did not correspond to thermal energy, but were reported in units of 𝑚 𝑑 𝐶 . To convert to thermal
energy units, values in the list file had to be post-processed by multiplying each line item by the density of water
(𝜌𝑤 ) and the heat capacity of water (𝐶𝑝 ) (Langevin and others, 2008).
3. Thermal equilibrium between the aqueous and solid phases is assumed. Thus, simulated temperatures are represen-
tative of both phases. As a result, thermal conduction between adjacent cells may still occur even in the absence of
convection.
4. In GWE, dry cells (devoid of groundwater) remain active for simulating thermal conduction. For example, energy
(heat) transfer will be simulated between a partially saturated cell (i.e., “water-table” cell) and an overlying dry cell.
In this way, a more full accounting of various heat transport processes is represented in the subsurface. Moreover,
this approach readily supports heat transport in the unsaturated-zone when the UZE (unsaturated-zone energy trans-
port) Package is active.
5. Heat transport is supported for all five of the advanced GWF packages using the following packages in GWE: (1)
streamflow energy transport, SFE Package; (2) lake energy transport, LKE Package; (3) multi-aquifer well energy
transport, MWE Package; (4) unsaturated zone energy transport, UZE Package; and the (5) Water Mover Package,
MVE. Similar to GWT, GWE will simulate heat transfer between an advanced package and the groundwater sys-
tem via groundwater surface-water exchange; however, GWE also simulates a conductive transfer of heat between
an advanced package feature and the aquifer. To take advantage of this functionality, users must specify the ther-
mal conductivity of the material separating a stream from the aquifer, for example, the thermal conductivity of the
streambed (or lakebed), as well as the thickness of the streambed (or lakebed). As with the advanced GWT pack-
ages, GWE simulates thermal convection between package features, such as between two stream reaches for exam-
ple. Also, dispersive heat transport among among advanced package features is not represented, similar to GWT.
6. Where the GWF model simulates evaporation from an open body of water, for example from the surface of a stream
or lake, the latent heat of vaporization may be used to simulate evaporative cooling. As water is converted from
liquid to gas, the energy required by the phase change is drawn from the remaining body of water and the resulting
cool down is calculated.
Many of the same considerations listed for the GWT model should be kept in mind when developing a GWE model.
For convenience, many of those considerations are adapted for GWE and repeated here.
1. A GWE Model can access flows calculated by a GWF Model that is running in the same simulation as the GWE
Model. Alternatively, a GWE Model can read binary head and budget files created from a previous GWF Model
simulation (provided these files contain all of the required information for all time steps); there is no specialized
flow and transport link file (Zheng and others, 2001) as there is for MT3D. Details on these two different use cases
are provided in the chapter on the FMI Package.
2. The GWE Model is based on a generalized control-volume finite-difference method, which means that heat trans-
port can be simulated using regular MODFLOW grids consisting of layers, rows, and columns, or heat transport can
be simulated using unstructured grids.
3. GWE and GWT use the same advection package source code. As a result, advection can be simulated using central-
in-space weighting, upstream weighting, or an implicit second-order TVD scheme. Currently, neither the GWE
or GWT models can use a Method of Characteristics (particle-based approaches) or an explicit TVD scheme to
simulate convective (or advective) transport. Consequently, the GWE Model may require a higher level of spatial
discretization than other transport models that use higher order terms for advection dominated systems. This can be
an important limitation in problems involving sharp heat fronts.
4. The Viscosity Package may reference a GWE model directly for adjusting the viscosity-affected groundwater flow.
Groundwater Energy Transport (GWE) Model Input 229
5. GWE and GWT use the same Source and Sink Mixing (SSM) Package for representing the effects of GWF stress
package inflows and outflows on simulated temperatures and concentrations. In a GWE simulation, there are two
ways in which users can assign concentrations to the individual features in these stress package. The first way is to
activate a temperature auxiliary variable in the corresponding GWF stress package. In the SSM input file, the user
provides the name of the auxiliary variable to be used for temperature. The second way is to create a special SPC
file, which contains user-assigned time-varying temperatures for stress package features.
6. The GWE model includes an EST Package, but does not include an IST Package. Heat transport-related parameters
such as thermal conductivities and heat capacities are specified in the EST Package.
7. A GWE-GWE Exchange (introduced in version 6.5.0) can be used to tightly couple multiple heat transport models,
as might be done in a nested grid configuration.
8. There is no option to automatically run the GWE Model to steady state using a single time step. This is an option
available in MT3DMS (Zheng, 2010). Steady state conditions must be determined by running the transport model
under transient conditions until temperatures stabilize.
9. As is the case with GWT, the GWE Model has not yet been programmed to work with the Skeletal Storage, Com-
paction, and Subsidence (CSUB) Package for the GWF Model.
10. There are many other differences between the MODFLOW 6 GWE Model and other solute transport models that
work with MODFLOW, especially with regards to program design and input and output. Descriptions for the GWE
input and output are described here.
Time Stepping
For the present implementation of the GWE Model, all terms in the heat transport equation are solved implicitly.
With the implicit approach applied to the transport equation, it is possible to take relatively large time steps and effi-
ciently obtain a stable solution. If the time steps are too large, however, accuracy of the model results will suffer, so there
is usually some compromise required between the desired level of accuracy and length of the time step. An assessment
of accuracy can be performed by simply running simulations with shorter time steps and comparing results.
In MODFLOW 6 time step lengths are controlled by the user and specified in the Temporal Discretization (TDIS)
input file. When the flow model and heat transport model are included in the same simulation, then the length of the time
step specified in TDIS is used for both models. If the GWE Model runs in a separate simulation from the GWE Model,
then the time steps used for the heat transport model can be different, and likely shorter, than the time steps used for the
flow solution. Instructions for specifying time steps are described in the TDIS section of this user guide; additional infor-
mation on GWF and GWE configurations are in the Flow Model Interface section.
230 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[LIST <list>]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
END OPTIONS
BEGIN PACKAGES
<ftype> <fname> [<pname>]
<ftype> <fname> [<pname>]
...
END PACKAGES
Explanation of Variables
Block: OPTIONS
list—is name of the listing file to create for this GWE model. If not specified, then the name of the list file will
be the basename of the GWE model name file and the “.lst” extension. For example, if the GWE name file is
called “my.model.nam” then the list file will be called “my.model.lst”.
PRINT_INPUT—keyword to indicate that the list of all model stress package information will be written to the
listing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of all model package flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that all model package flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
Block: PACKAGES
ftype—is the file type, which must be one of the following character values shown in table 33. Ftype may be
entered in any combination of uppercase and lowercase.
fname—is the name of the file containing the package input. The path to the file should be included if the file is
not located in the folder where the program was run.
pname—is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed
in PNAME. PNAME character values are read and stored by the program for stress packages only. These
names may be useful for labeling purposes when multiple stress packages of the same type are located within
a single GWE Model. If PNAME is specified for a stress package, then PNAME will be used in the flow
budget table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME
is case insensitive and is stored in all upper case letters.
Groundwater Energy Transport (GWE) Model Input 231
Table 33. Ftype values described in this report. The Pname column indicates whether or not a package name can be provided
in the name file. The capability to provide a package name also indicates that the GWE Model can have more than one package
of that Ftype.
BEGIN PACKAGES
DIS6 heat_transport.dis
IC6 heat_transport.ic
EST6 heat_transport.est
ADV6 heat_transport.adv
CND6 heat_transport.cnd
SSM6 heat_transport.ssm
CTP6 heat_transport01.ctp LEFT
CTP6 heat_transport02.ctp RIGHT
OC6 heat_transport.oc
END PACKAGES
232 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN GRIDDATA
STRT [LAYERED]
<strt(nodes)> -- READARRAY
END GRIDDATA
Explanation of Variables
Block: OPTIONS
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
strt—is the initial (starting) temperature—that is, the temperature at the beginning of the GWE Model simula-
tion. STRT must be specified for all GWE Model simulations. One value is read for every model cell.
Structure of Blocks
Explanation of Variables
Block: OPTIONS
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
SAVE—keyword to indicate that information will be saved this stress period.
PRINT—keyword to indicate that information will be printed this stress period.
rtype—type of information to save or print. Can be BUDGET or TEMPERATURE.
ocsetting—specifies the steps for which the data will be saved.
ALL
FIRST
LAST
FREQUENCY <frequency>
STEPS <steps(<nstp)>
BEGIN OPTIONS
TEMPERATURE FILEOUT gw_temperatures.ucn
TEMPERATURE PRINT_FORMAT COLUMNS 15 WIDTH 7 DIGITS 2 FIXED
END OPTIONS
BEGIN PERIOD 1
PRINT BUDGET ALL
SAVE TEMPERATURE ALL
PRINT TEMPERATURE ALL
END PERIOD
Groundwater Energy Transport (GWE) Model Input 235
Structure of Blocks
Explanation of Variables
Block: OPTIONS
digits—Keyword and an integer digits specifier used for conversion of simulated values to text on output. If not
specified, the default is the maximum number of digits stored in the program (as written with the G0 Fortran
specifier). When simulated values are written to a comma-separated value text file specified in a CONTIN-
UOUS block below, the digits specifier controls the number of significant digits with which simulated values
are written to the output file. The digits specifier has no effect on the number of significant digits with which
the simulation time is written for continuous observations. If DIGITS is specified as zero, then observations
are written with the default setting, which is the maximum number of digits.
PRINT_INPUT—keyword to indicate that the list of observation information will be written to the listing file
immediately after it is read.
Block: CONTINUOUS
id2—Text identifying cell adjacent to cell identified by ID. The form of ID2 is as described for ID. ID2 is used
for intercell-flow observations of a GWF model, for three observation types of the LAK Package, for two
observation types of the MAW Package, and one observation type of the UZF Package.
Structure of Blocks
BEGIN OPTIONS
[SCHEME <scheme>]
END OPTIONS
Explanation of Variables
Block: OPTIONS
scheme—scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified, upstream
weighting is the default weighting scheme.
BEGIN OPTIONS
SCHEME UPSTREAM
END OPTIONS
238 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[XT3D_OFF]
[XT3D_RHS]
[EXPORT_ARRAY_ASCII]
END OPTIONS
BEGIN GRIDDATA
[ALH [LAYERED]
<alh(nodes)> -- READARRAY]
[ALV [LAYERED]
<alv(nodes)> -- READARRAY]
[ATH1 [LAYERED]
<ath1(nodes)> -- READARRAY]
[ATH2 [LAYERED]
<ath2(nodes)> -- READARRAY]
[ATV [LAYERED]
<atv(nodes)> -- READARRAY]
[KTW [LAYERED]
<ktw(nodes)> -- READARRAY]
[KTS [LAYERED]
<kts(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
XT3D_OFF—deactivate the xt3d method and use the faster and less accurate approximation. This option may pro-
vide a fast and accurate solution under some circumstances, such as when flow aligns with the model grid,
there is no mechanical dispersion, or when the longitudinal and transverse dispersivities are equal. This
option may also be used to assess the computational demand of the XT3D approach by noting the run time
differences with and without this option on.
XT3D_RHS—add xt3d terms to right-hand side, when possible. This option uses less memory, but may require
more iterations.
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
alh—longitudinal dispersivity in horizontal direction. If flow is strictly horizontal, then this is the longitudinal
dispersivity that will be used. If flow is not strictly horizontal or strictly vertical, then the longitudinal disper-
sivity is a function of both ALH and ALV. If mechanical dispersion is represented (by specifying any disper-
sivity values) then this array is required.
Groundwater Energy Transport (GWE) Model Input 239
alv—longitudinal dispersivity in vertical direction. If flow is strictly vertical, then this is the longitudinal dispser-
sivity value that will be used. If flow is not strictly horizontal or strictly vertical, then the longitudinal disper-
sivity is a function of both ALH and ALV. If this value is not specified and mechanical dispersion is repre-
sented, then this array is set equal to ALH.
ath1—transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the second ellip-
soid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this
value controls spreading in the y direction. If mechanical dispersion is represented (by specifying any disper-
sivity values) then this array is required.
ath2—transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the third ellip-
soid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this
value controls spreading in the z direction. If this value is not specified and mechanical dispersion is repre-
sented, then this array is set equal to ATH1.
atv—transverse dispersivity when flow is in vertical direction. If flow is strictly vertical and directed in the
z direction, then this value controls spreading in the x and y directions. If this value is not specified and
mechanical dispersion is represented, then this array is set equal to ATH2.
ktw—thermal conductivity of the simulated fluid. Note that the CND Package does not account for the tortuosity
of the flow paths when solving for the conductive spread of heat. If tortuosity plays an important role in the
thermal conductivity calculation, its effect should be reflected in the value specified for KTW.
kts—thermal conductivity of the aquifer material
BEGIN OPTIONS
END OPTIONS
BEGIN GRIDDATA
ALH
CONSTANT 1.
ALV
CONSTANT 1.
ATH1
CONSTANT 0.1
ATH2
CONSTANT 0.1
ATV
CONSTANT 0.1
KTW
CONSTANT 0.5918
KTS
CONSTANT 0.27
END GRIDDATA
240 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[ZERO_ORDER_DECAY]
[LATENT_HEAT_VAPORIZATION]
END OPTIONS
BEGIN GRIDDATA
POROSITY [LAYERED]
<porosity(nodes)> -- READARRAY
[DECAY [LAYERED]
<decay(nodes)> -- READARRAY]
CPS [LAYERED]
<cps(nodes)> -- READARRAY
RHOS [LAYERED]
<rhos(nodes)> -- READARRAY
END GRIDDATA
BEGIN PACKAGEDATA
<cpw> <rhow> <latheatvap>
<cpw> <rhow> <latheatvap>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that EST flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
ZERO_ORDER_DECAY—is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires
that DECAY and DECAY_SORBED (if sorption is active) are specified in the GRIDDATA block.
LATENT_HEAT_VAPORIZATION—is a text keyword to indicate that cooling associated with evaporation will occur.
Use of this keyword requires that LATHEATVAP are specified in the GRIDDATA block. While the EST
package does not simulate evaporation, multiple other packages in a GWE simulation may. For example,
evaporation may occur from the surface of streams or lakes. Owing to the energy consumed by the change in
phase, the latent heat of vaporization is required.
Block: GRIDDATA
porosity—is the mobile domain porosity, defined as the mobile domain pore volume per mobile domain volume.
The GWE model does not support the concept of an immobile domain in the context of heat transport.
decay—is the rate coefficient for zero-order decay for the aqueous phase of the mobile domain. A negative value
indicates heat (energy) production. The dimensions of decay for zero-order decay is energy per length cubed
per time. Zero-order decay will have no effect on simulation results unless zero-order decay is specified in the
options block.
cps—is the mass-based heat capacity of dry solids (aquifer material). For example, units of J/kg/C may be used
(or equivalent).
Groundwater Energy Transport (GWE) Model Input 241
rhos—is a user-specified value of the density of aquifer material not considering the voids. Value will remain
fixed for the entire simulation. For example, if working in SI units, values may be entered as kilograms per
cubic meter.
Block: PACKAGEDATA
cpw—is the mass-based heat capacity of the simulated fluid. For example, units of J/kg/C may be used (or equiva-
lent).
rhow—is a user-specified value of the density of water. Value will remain fixed for the entire simulation. For
example, if working in SI units, values may be entered as kilograms per cubic meter.
latheatvap—is the user-specified value for the latent heat of vaporization. For example, if working in SI units,
values may be entered as kJ/kg.
BEGIN OPTIONS
LATENT_HEAT_VAPORIZATION
END OPTIONS
BEGIN GRIDDATA
POROSITY
CONSTANT 0.1
CPS
CONSTANT 880.0
RHOS
CONSTANT 2650.0
END GRIDDATA
BEGIN PACKAGEDATA
4180.0 1000.0 2.454E+06
END PACKAGEDATA
242 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
[PRINT_FLOWS]
[SAVE_FLOWS]
END OPTIONS
BEGIN SOURCES
<pname> <srctype> <auxname>
<pname> <srctype> <auxname>
...
END SOURCES
Explanation of Variables
Block: OPTIONS
Groundwater Energy Transport (GWE) Model Input 243
PRINT_FLOWS—keyword to indicate that the list of SSM flow rates will be printed to the listing file for every
stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Con-
trol option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that SSM flow terms will be written to the file specified with “BUDGET
FILEOUT” in Output Control.
Block: SOURCES
pname—name of the flow package for which an auxiliary variable contains a source temperature. If this flow
package is represented using an advanced transport package (SFE, LKE, MWE, or UZE), then the advanced
transport package will override SSM terms specified here.
srctype—keyword indicating how temperature will be assigned for sources and sinks. Keyword must be speci-
fied as either AUX or AUXMIXED. For both options the user must provide an auxiliary variable in the cor-
responding flow package. The auxiliary variable must have the same name as the AUXNAME value that
follows. If the AUX keyword is specified, then the auxiliary variable specified by the user will be assigned as
the concenration value for groundwater sources (flows with a positive sign). For negative flow rates (sinks),
groundwater will be withdrawn from the cell at the simulated temperature of the cell. The AUXMIXED
option provides an alternative method for how to determine the temperature of sinks. If the cell temperature is
larger than the user-specified auxiliary temperature, then the temperature of groundwater withdrawn from the
cell will be assigned as the user-specified temperature. Alternatively, if the user-specified auxiliary tempera-
ture is larger than the cell temperature, then groundwater will be withdrawn at the cell temperature. Thus, the
AUXMIXED option is designed to work with the Evapotranspiration (EVT) and Recharge (RCH) Packages
where water may be withdrawn at a temperature that is less than the cell temperature.
auxname—name of the auxiliary variable in the package PNAME. This auxiliary variable must exist and be speci-
fied by the user in that package. The values in this auxiliary variable will be used to set the temperature asso-
ciated with the flows for that boundary package.
Block: FILEINPUT
pname—name of the flow package for which an SPT6 input file contains a source temperature. If this flow pack-
age is represented using an advanced transport package (SFE, LKE, MWE, or UZE), then the advanced trans-
port package will override SSM terms specified here.
SPT6—keyword to specify that record corresponds to a source sink mixing input file.
FILEIN—keyword to specify that an input filename is expected next.
spt6_filename—character string that defines the path and filename for the file containing source and sink input
data for the flow package. The SPT6_FILENAME file is a flexible input file that allows temperatures to be
specified by stress period and with time series. Instructions for creating the SPT6_FILENAME input file are
provided in the next section on file input for boundary temperatures.
MIXED—keyword to specify that these stress package boundaries will have the mixed condition. The MIXED
condition is described in the SOURCES block for AUXMIXED. The MIXED condition allows for water to
be withdrawn at a temperature that is less than the cell temperature. It is intended primarily for representing
evapotranspiration.
BEGIN OPTIONS
PRINT_FLOWS
SAVE_FLOWS
END OPTIONS
244 MODFLOW 6 – Description of Input and Output
BEGIN SOURCES
# pname srctype auxname
WEL-1 AUX TEMPERATURE
LAK-1 AUX TEMPERATURE
RCH-1 AUX TEMPERATURE
END SOURCES
BEGIN FILEINPUT
GHB-1 SPC6 FILEINPUT mymodel.ghb1.spc
DRN-1 SPC6 FILEINPUT mymodel.drn1.spc
END FILEINPUT
Groundwater Energy Transport (GWE) Model Input 245
As mentioned in the previous section on the SSM Package, temperatures can be specified for GWF stress packages
using auxiliary variables, or they can be specified using input files dedicated to this purpose. The Stress Package Tem-
peratures (SPT) input file can be used to provide temperatures that are assigned for GWF sources and sinks. An SPT
input file can be list based or array based. List-based input files can be used for list-based GWF stress packages, such as
wells, drains, and rivers. Array-based input files can be used for array-based GWF stress packages, such as recharge and
evapotranspiration (provided the READASARRAYS options is used; these packages can also be provided in a list-based
format). Array-based SPT input files are discussed in the next section. This section describes the list-based input format
for the SPT input file.
An SPT6 file can be prepared to provide user-specified temperatures for a GWF stress package, such a Well or
General-Head Boundary Package, for example. One SPT6 file applies to one GWF stress package. Names for the SPT6
input files are provided in the FILEINPUT block of the SSM Package. SPT6 entries cannot be specified in the GWE
name file. Use of the SPT6 input file is an alternative to specifying stress package temperatures as auxiliary variables in
the flow model stress package.
The boundary number in the PERIOD block corresponds to the boundary number in the GWF stress period package.
Assignment of the boundary number is straightforward for the advanced packages (SFR, LAK, MAW, and UZF) because
the features in these advanced packages are defined once at the beginning of the simulation and they do not change. For
the other stress packages, however, the order of boundaries may change between stress periods. Consider the following
Well Package input file, for example:
BEGIN dimensions
MAXBOUND 3
END dimensions
BEGIN period 1
1 77 65 -2200 SHALLOW_WELL
2 77 65 -24.0 INTERMEDIATE_WELL
3 77 65 -6.20 DEEP_WELL
END period
BEGIN period 2
1 77 65 -1100 SHALLOW_WELL
3 77 65 -3.10 DEEP_WELL
2 77 65 -12.0 INTERMEDIATE_WELL
END period
In this Well input file, the order of the wells changed between periods 1 and 2. This reordering must be explicitly taken
into account by the user when creating an SSMI6 file, because the boundary number in the SSMI file corresponds to the
boundary number in the Well input file. In stress period 1, boundary number 2 is the INTERMEDIATE_WELL, whereas
in stress period 2, boundary number 2 is the DEEP_WELL. When using this SSMI capability to specify boundary tem-
peratures, it is recommended that users write the corresponding GWF stress packages using the same number, cell loca-
tions, and order of boundary conditions for each stress period. In addition, users can activate the PRINT_FLOWS option
in the SSM input file. When the SSM Package prints the individual solute flows to the transport list file, it includes a col-
umn containing the boundary temperature. Users can check the boundary temperatures in this output to verify that they
are assigned as intended.
246 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of spt information will be written to the listing file immediately
after it is read.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of spt cells that will be specified for use during any
stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
bndno—integer value that defines the boundary package feature number associated with the specified PERIOD
data on the line. BNDNO must be greater than zero and less than or equal to MAXBOUND.
sptsetting—line of information that is parsed into a keyword and values. Keyword values that can be used to
start the SPTSETTING string include: TEMPERATURE.
TEMPERATURE <temperature>
temperature—is the boundary temperature. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name in
place of a numeric value. By default, the TEMPERATURE for each boundary feature is zero.
Groundwater Energy Transport (GWE) Model Input 247
BEGIN options
PRINT_INPUT
TS6 FILEIN heat_transport.wel1.ts
END options
BEGIN DIMENSIONS
MAXBOUND 10
END DIMENSIONS
BEGIN PERIOD 1
1 temperature my_temperatures_ts
2 temperature 20.
3 temperature 20.
4 temperature 20.
5 temperature 20.
6 temperature 20.
7 temperature 20.
8 temperature 20.
9 temperature 20.
10 temperature 20.
END period
Structure of Blocks
Explanation of Variables
Block: OPTIONS
READASARRAYS—indicates that array-based input will be used for the SPT Package. This keyword must be spec-
ified to use array-based input. When READASARRAYS is specified, values must be provided for every cell
within a model layer, even those cells that have an IDOMAIN value less than one. Values assigned to cells
with IDOMAIN values less than one are not used and have no effect on simulation results.
PRINT_INPUT—keyword to indicate that the list of spt information will be written to the listing file immediately
after it is read.
TAS6—keyword to specify that record corresponds to a time-array-series file.
FILEIN—keyword to specify that an input filename is expected next.
tas6_filename—defines a time-array-series file defining a time-array series that can be used to assign time-
varying values. See the Time-Variable Input section for instructions on using the time-array series capability.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
temperature—is the temperature of the associated Recharge or Evapotranspiration stress package. The tempera-
ture array may be defined by a time-array series (see the “Using Time-Array Series in a Package” section).
Groundwater Energy Transport (GWE) Model Input 249
BEGIN options
READASARRAYS
PRINT_INPUT
END options
BEGIN PERIOD 1
TEMPERATURE
INTERNAL FACTOR 1.0
0.00000000 1.00000000 2.00000000 3.00000000 4.00000000
5.00000000 6.00000000 7.00000000 8.00000000 9.00000000
10.00000000 11.00000000 12.00000000 13.00000000 14.00000000
15.00000000 16.00000000 17.00000000 18.00000000 19.00000000
20.00000000 21.00000000 22.00000000 23.00000000 24.00000000
END PERIOD
BEGIN PERIOD 3
TEMPERATURE
CONSTANT 0.0
END PERIOD
250 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of temperature value.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of constant temperature
cells.
Groundwater Energy Transport (GWE) Model Input 251
PRINT_INPUT—keyword to indicate that the list of constant temperature information will be written to the listing
file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of constant temperature flow rates will be printed to the listing
file for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is
no Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step
of each stress period.
SAVE_FLOWS—keyword to indicate that constant temperature flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Constant Temperature package. See the
“Observation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists
observation type(s) supported by the Constant Temperature package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of constant temperatures cells that will be specified
for use during any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
temp—is the constant temperature value. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
aux—represents the values of the auxiliary variables for each constant temperature. The values of auxiliary vari-
ables must be present for each constant temperature. The values must be specified in the order of the auxiliary
variables specified in the OPTIONS block. If the package supports time series and the Options block includes
a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
boundname—name of the constant temperature cell. BOUNDNAME is an ASCII character variable that can con-
tain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
252 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
PRINT_FLOWS
PRINT_INPUT
SAVE_FLOWS
END OPTIONS
BEGIN DIMENSIONS
MAXBOUND 1
END DIMENSIONS
BEGIN PERIOD 1
3 1 1 15.0
3 2 1 15.5
3 3 1 16.0
END PERIOD
BEGIN OPTIONS
DIGITS 8
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN DIMENSIONS
MAXBOUND <maxbound>
END DIMENSIONS
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file.
Explanation of Variables
Block: OPTIONS
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
auxmultname—name of auxiliary variable to be used as multiplier of energy loading rate.
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of energy source loading
cells.
PRINT_INPUT—keyword to indicate that the list of energy source loading information will be written to the listing
file immediately after it is read.
254 MODFLOW 6 – Description of Input and Output
PRINT_FLOWS—keyword to indicate that the list of energy source loading flow rates will be printed to the listing
file for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is
no Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step
of each stress period.
SAVE_FLOWS—keyword to indicate that energy source loading flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
TS6—keyword to specify that record corresponds to a time-series file.
FILEIN—keyword to specify that an input filename is expected next.
ts6_filename—defines a time-series file defining time series that can be used to assign time-varying values. See
the “Time-Variable Input” section for instructions on using the time-series capability.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—name of input file to define observations for the Energy Source Loading package. See the
“Observation utility” section for instructions for preparing observation input files. Tables 44 and 45 lists
observation type(s) supported by the Energy Source Loading package.
Block: DIMENSIONS
maxbound—integer value specifying the maximum number of sources cells that will be specified for use during
any stress period.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
senerrate—is the energy source loading rate. A positive value indicates addition of energy and a negative
value indicates removal of energy. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
aux—represents the values of the auxiliary variables for each energy source. The values of auxiliary variables
must be present for each energy source. The values must be specified in the order of the auxiliary variables
specified in the OPTIONS block. If the package supports time series and the Options block includes a TIME-
SERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by
entering the time-series name in place of a numeric value.
boundname—name of the energy source cell. BOUNDNAME is an ASCII character variable that can contain as
many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within
single quotes.
BEGIN OPTIONS
PRINT_FLOWS
PRINT_INPUT
SAVE_FLOWS
END OPTIONS
BEGIN DIMENSIONS
MAXBOUND 1
END DIMENSIONS
BEGIN PERIOD 1
1 1 1 1500000.0
END PERIOD
BEGIN OPTIONS
DIGITS 7
PRINT_INPUT
END OPTIONS
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_TEMPERATURE]
[PRINT_FLOWS]
[SAVE_FLOWS]
[TEMPERATURE FILEOUT <tempfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<rno> <strt> <ktf> <rbthcnd> [<aux(naux)>] [<boundname>]
<rno> <strt> <ktf> <rbthcnd> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWE name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
Groundwater Energy Transport (GWE) Model Input 257
Block: PACKAGEDATA
rno—integer value that defines the reach number associated with the specified PACKAGEDATA data on the line.
RNO must be greater than zero and less than or equal to NREACHES. Reach information must be specified
for every reach or the program will terminate with an error. The program will also terminate with an error if
information for a reach is specified more than once.
strt—real value that defines the starting temperature for the reach.
ktf—is the thermal conductivity of the of the interface between the aquifer cell and the stream reach.
rbthcnd—real value that defines the thickness of the streambed material through which conduction occurs. Must
be greater than 0.
258 MODFLOW 6 – Description of Input and Output
aux—represents the values of the auxiliary variables for each reach. The values of auxiliary variables must be
present for each reach. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
boundname—name of the reach cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
rno—integer value that defines the reach number associated with the specified PERIOD data on the line. RNO
must be greater than zero and less than or equal to NREACHES.
reachsetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the REACHSETTING string include: STATUS, TEMPERATURE, RAINFALL, EVAPORATION,
RUNOFF, and AUXILIARY. These settings are used to assign the temperature of associated with the corre-
sponding flow terms. Temperatures cannot be specified for all flow terms. For example, the Streamflow Pack-
age supports a “DIVERSION” flow term. Diversion water will be routed using the calculated temperature of
the reach.
STATUS <status>
TEMPERATURE <temperature>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
INFLOW <inflow>
AUXILIARY <auxname> <auxval>
status—keyword option to define reach status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that temperature will be calculated for the reach. If a reach is
inactive, then there will be no energy fluxes into or out of the reach and the inactive value will be written for
the reach temperature. If a reach is constant, then the temperature for the reach will be fixed at the user speci-
fied value.
temperature—real or character value that defines the temperature for the reach. The specified TEMPERATURE
is only applied if the reach is a constant temperature reach. If the Options block includes a TIMESERIES-
FILE entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the
time-series name in place of a numeric value.
rainfall—real or character value that defines the rainfall temperature (∘ 𝐶) for the reach. If the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
evaporation—real or character value that defines the temperature of evaporated water (∘ 𝐶) for the reach. If
this temperature value is larger than the simulated temperature in the reach, then the evaporated water will
be removed at the same temperature as the reach. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
runoff—real or character value that defines the temperature of runoff (∘ 𝐶) for the reach. Value must be greater
than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
Groundwater Energy Transport (GWE) Model Input 259
inflow—real or character value that defines the temperature of inflow (∘ 𝐶) for the reach. Value must be greater
than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable
Input” section), values can be obtained from a time series by entering the time-series name in place of a
numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_TEMPERATURE
PRINT_FLOWS
SAVE_FLOWS
TEMPERATURE FILEOUT gwe_sfe_02.sfe.bin
BUDGET FILEOUT gwe_sfe_02.sfe.bud
OBS6 FILEIN gwe_sfe_02.sfe.obs
END OPTIONS
BEGIN PACKAGEDATA
# L STRT aux1 aux2 bname
1 5.000 9.90 99.90 REACH1
2 5.000 9.90 99.90 REACH2
3 5.000 9.90 99.90 REACH3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_TEMPERATURE]
[PRINT_FLOWS]
[SAVE_FLOWS]
[TEMPERATURE FILEOUT <tempfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<lakeno> <strt> <ktf> <rbthcnd> [<aux(naux)>] [<boundname>]
<lakeno> <strt> <ktf> <rbthcnd> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWE name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
Groundwater Energy Transport (GWE) Model Input 263
Block: PACKAGEDATA
lakeno—integer value that defines the lake number associated with the specified PACKAGEDATA data on the
line. LAKENO must be greater than zero and less than or equal to NLAKES. Lake information must be spec-
ified for every lake or the program will terminate with an error. The program will also terminate with an error
if information for a lake is specified more than once.
strt—real value that defines the starting temperature for the lake.
ktf—is the thermal conductivity of the of the interface between the aquifer cell and the lake.
rbthcnd—real value that defines the thickness of the lakebed material through which conduction occurs. Must be
greater than 0.
aux—represents the values of the auxiliary variables for each lake. The values of auxiliary variables must be
present for each lake. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
264 MODFLOW 6 – Description of Input and Output
boundname—name of the lake cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
lakeno—integer value that defines the lake number associated with the specified PERIOD data on the line.
LAKENO must be greater than zero and less than or equal to NLAKES.
laksetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the LAKSETTING string include: STATUS, TEMPERATURE, RAINFALL, EVAPORATION,
RUNOFF, and AUXILIARY. These settings are used to assign the temperature associated with the corre-
sponding flow terms. Temperatures cannot be specified for all flow terms. For example, the Lake Package
supports a “WITHDRAWAL” flow term. If this withdrawal term is active, then water will be withdrawn from
the lake at the calculated temperature of the lake.
STATUS <status>
TEMPERATURE <temperature>
RAINFALL <rainfall>
EVAPORATION <evaporation>
RUNOFF <runoff>
EXT-INFLOW <ext-inflow>
AUXILIARY <auxname> <auxval>
status—keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that temperature will be calculated for the lake. If a lake is inac-
tive, then there will be no solute mass fluxes into or out of the lake and the inactive value will be written for
the lake temperature. If a lake is constant, then the temperature for the lake will be fixed at the user specified
value.
temperature—real or character value that defines the temperature for the lake. The specified TEMPERATURE
is only applied if the lake is a constant temperature lake. If the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
rainfall—real or character value that defines the rainfall temperature for the lake. If the Options block includes
a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a time series
by entering the time-series name in place of a numeric value.
evaporation—real or character value that defines the temperature of evaporated water (∘ 𝐶) for the reach. If
this temperature value is larger than the simulated temperature in the reach, then the evaporated water will
be removed at the same temperature as the reach. If the Options block includes a TIMESERIESFILE entry
(see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-series
name in place of a numeric value.
runoff—real or character value that defines the temperature of runoff for the lake. Value must be greater than
or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input”
section), values can be obtained from a time series by entering the time-series name in place of a numeric
value.
ext-inflow—real or character value that defines the temperature of external inflow for the lake. Value must
be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
Groundwater Energy Transport (GWE) Model Input 265
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_TEMPERATURE
PRINT_FLOWS
SAVE_FLOWS
TEMPERATURE FILEOUT gwe_lke_02.lke.bin
BUDGET FILEOUT gwe_lke_02.lke.bud
OBS6 FILEIN gwe_lke_02.lke.obs
END OPTIONS
BEGIN PACKAGEDATA
# L STRT aux1 aux2 bname
1 5.0 99.0 999.0 MYLAKE1
2 6.0 99.0 999.0 MYLAKE2
3 7.0 99.0 999.0 MYLAKE3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 7
PRINT_INPUT
END options
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_TEMPERATURE]
[PRINT_FLOWS]
[SAVE_FLOWS]
[TEMPERATURE FILEOUT <tempfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<mawno> <strt> <ktf> <fthk> [<aux(naux)>] [<boundname>]
<mawno> <strt> <ktf> <fthk> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWE name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
Groundwater Energy Transport (GWE) Model Input 269
Block: PACKAGEDATA
mawno—integer value that defines the well number associated with the specified PACKAGEDATA data on the
line. MAWNO must be greater than zero and less than or equal to NMAWWELLS. Well information must be
specified for every well or the program will terminate with an error. The program will also terminate with an
error if information for a well is specified more than once.
strt—real value that defines the starting temperature for the well.
ktf—is the thermal conductivity of the of the interface between the aquifer cell and the feature.
fthk—real value that defines the thickness of the material through which conduction occurs. Must be greater than
0.
aux—represents the values of the auxiliary variables for each well. The values of auxiliary variables must be
present for each well. The values must be specified in the order of the auxiliary variables specified in the
OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
270 MODFLOW 6 – Description of Input and Output
boundname—name of the well cell. BOUNDNAME is an ASCII character variable that can contain as many as
40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single
quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
mawno—integer value that defines the well number associated with the specified PERIOD data on the line.
MAWNO must be greater than zero and less than or equal to NMAWWELLS.
mwesetting—line of information that is parsed into a keyword and values. Keyword values that can be used
to start the MWESETTING string include: STATUS, TEMPERATURE, RAINFALL, EVAPORATION,
RUNOFF, and AUXILIARY. These settings are used to assign the temperature of associated with the cor-
responding flow terms. Temperatures cannot be specified for all flow terms. For example, the Multi-Aquifer
Well Package supports a “WITHDRAWAL” flow term. If this withdrawal term is active, then water will be
withdrawn from the well at the calculated temperature of the well.
STATUS <status>
TEMPERATURE <temperature>
RATE <rate>
AUXILIARY <auxname> <auxval>
status—keyword option to define well status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that temperature will be calculated for the well. If a well is inac-
tive, then there will be no solute mass fluxes into or out of the well and the inactive value will be written for
the well temperature. If a well is constant, then the temperature for the well will be fixed at the user specified
value.
temperature—real or character value that defines the temperature for the well. The specified TEMPERATURE
is only applied if the well is a constant temperature well. If the Options block includes a TIMESERIESFILE
entry (see the “Time-Variable Input” section), values can be obtained from a time series by entering the time-
series name in place of a numeric value.
rate—real or character value that defines the injection solute temperature ∘ 𝐶 for the well. If the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
PRINT_FLOWS
SAVE_FLOWS
TEMPERATURE FILEOUT gwe_mwe_02.mwe.bin
BUDGET FILEOUT gwe_mwe_02.mwe.bud
OBS6 FILEIN gwe_mwe_02.mwe.obs
END OPTIONS
BEGIN PACKAGEDATA
# L STRT aux1 aux2 bname
1 10.00 99.00 999.00 MYWELL1
2 10.00 99.00 999.00 MYWELL2
3 10.00 99.00 999.00 MYWELL3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 12
PRINT_INPUT
END options
Structure of Blocks
BEGIN OPTIONS
[FLOW_PACKAGE_NAME <flow_package_name>]
[AUXILIARY <auxiliary(naux)>]
[FLOW_PACKAGE_AUXILIARY_NAME <flow_package_auxiliary_name>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_TEMPERATURE]
[PRINT_FLOWS]
[SAVE_FLOWS]
[TEMPERATURE FILEOUT <tempfile>]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
[TS6 FILEIN <ts6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN PACKAGEDATA
<uzfno> <strt> [<aux(naux)>] [<boundname>]
<uzfno> <strt> [<aux(naux)>] [<boundname>]
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
flow_package_name—keyword to specify the name of the corresponding flow package. If not specified, then the
corresponding flow package must have the same name as this advanced transport package (the name associ-
ated with this package in the GWE name file).
auxiliary—defines an array of one or more auxiliary variable names. There is no limit on the number of auxil-
iary variables that can be provided on this line; however, lists of information provided in subsequent blocks
must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables
detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as
they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but
they will be available for use by other parts of the program. The program will terminate with an error if auxil-
iary variables are specified on more than one line in the options block.
274 MODFLOW 6 – Description of Input and Output
Block: PACKAGEDATA
uzfno—integer value that defines the UZF cell number associated with the specified PACKAGEDATA data on
the line. UZFNO must be greater than zero and less than or equal to NUZFCELLS. Unsaturated zone flow
information must be specified for every UZF cell or the program will terminate with an error. The program
also will terminate with an error if information for a UZF cell is specified more than once.
strt—real value that defines the starting temperature for the unsaturated zone flow cell.
aux—represents the values of the auxiliary variables for each unsaturated zone flow. The values of auxiliary vari-
ables must be present for each unsaturated zone flow. The values must be specified in the order of the aux-
iliary variables specified in the OPTIONS block. If the package supports time series and the Options block
includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be obtained from a
time series by entering the time-series name in place of a numeric value.
Groundwater Energy Transport (GWE) Model Input 275
boundname—name of the unsaturated zone flow cell. BOUNDNAME is an ASCII character variable that can
contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be
enclosed within single quotes.
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
uzfno—integer value that defines the UZF cell number associated with the specified PERIOD data on the line.
UZFNO must be greater than zero and less than or equal to NUZFCELLS.
uzesetting—line of information that is parsed into a keyword and values. Keyword values that can be used to
start the UZESETTING string include: STATUS, TEMPERATURE, INFILTRATION, UZET, and AUXIL-
IARY. These settings are used to assign the temperature associated with the corresponding flow terms. Tem-
peratures cannot be specified for all flow terms.
STATUS <status>
TEMPERATURE <temperature>
INFILTRATION <infiltration>
UZET <uzet>
AUXILIARY <auxname> <auxval>
status—keyword option to define UZF cell status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By
default, STATUS is ACTIVE, which means that temperature will be calculated for the UZF cell. If a UZF
cell is inactive, then there will be no energy fluxes into or out of the UZF cell and the inactive value will be
written for the UZF cell temperature. If a UZF cell is constant, then the temperature for the UZF cell will be
fixed at the user specified value.
temperature—real or character value that defines the temperature for the unsaturated zone flow cell. The spec-
ified TEMPERATURE is only applied if the unsaturated zone flow cell is a constant temperature cell. If the
Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value.
infiltration—real or character value that defines the temperature of the infiltration (∘ 𝐶) for the UZF cell. If
the Options block includes a TIMESERIESFILE entry (see the “Time-Variable Input” section), values can be
obtained from a time series by entering the time-series name in place of a numeric value.
uzet—real or character value that states what fraction of the simulated unsaturated zone evapotranspiration is
associated with evaporation. The evaporative losses from the unsaturated zone moisture content will have
an evaporative cooling effect on the GWE cell from which the evaporation originated. If this value is larger
than 1, then it will be reset to 1. If the Options block includes a TIMESERIESFILE entry (see the “Time-
Variable Input” section), values can be obtained from a time series by entering the time-series name in place
of a numeric value.
AUXILIARY—keyword for specifying auxiliary variable.
auxname—name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary
variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable
names defined in the OPTIONS block the data are ignored.
auxval—value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the
“Time-Variable Input” section), values can be obtained from a time series by entering the time-series name
in place of a numeric value.
276 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
AUXILIARY aux1 aux2
BOUNDNAMES
PRINT_INPUT
PRINT_TEMPERATURE
PRINT_FLOWS
SAVE_FLOWS
TEMPERATURE FILEOUT gwe_02.uze.bin
BUDGET FILEOUT gwe_02.uze.bud
OBS6 FILEIN gwe_02.uze.obs
END OPTIONS
BEGIN PACKAGEDATA
# L STRT aux1 aux2 bname
1 0.0 99.0 999.0 MYUZFCELL1
2 0.0 99.0 999.0 MYUZFCELL2
3 0.0 99.0 999.0 MYUZFCELL3
END PACKAGEDATA
BEGIN PERIOD 1
1 STATUS ACTIVE
2 STATUS ACTIVE
3 STATUS ACTIVE
END PERIOD 1
BEGIN options
DIGITS 7
PRINT_INPUT
END options
∙ Flows are provided by a corresponding GWF Model running in the same simulation—in this case, all groundwater
flows are calculated by the corresponding GWF Model and provided through FMI to the energy transport model.
This is a common use case in which the user wants to run the flow and energy transport models as part of a single
simulation. The GWF and GWE models must be part of a GWF-GWE Exchange that is listed in mfsim.nam. If
a GWF-GWE Exchange is specified by the user, then the user does not need to specify an FMI Package input file
for the simulation, unless an FMI option is needed. If a GWF-GWE Exchange is specified and the FMI Package is
specified, then the PACKAGEDATA block below is not read or used.
∙ There is no groundwater flow and the user is interested only in the effects of diffusion, sorption, and decay or
production—in this case, FMI should not be provided in the GWE name file and the GWE model should not be
listed in any GWF-GWE Exchanges in mfsim.nam. In this case, all groundwater flows are assumed to be zero and
cells are assumed to be fully saturated. The SSM Package should not be activated in this case, because there can
be no sources or sinks of water. Likewise, none of the advanced transport packages (LKE, SFE, MWE, and UZE)
should be specified in the GWE name file. This type of model simulation without an FMI Package is included as an
option to represent diffusion, sorption, and decay or growth in the absence of any groundwater flow.
∙ Flows are provided from a previous GWF model simulation—in this case the FMI Package should be listed in the
GWE name file and the head and budget files should be listed in the FMI PACKAGEDATA block. In this case, FMI
reads the simulated head and flows from these files and makes them available to the energy transport model. There
are some additional considerations when the heads and flows are provided from binary files.
– The binary budget file must contain the simulated flows for all of the packages that were included in the GWF
model run. Saving of flows can be activated for all packages by specifying “SAVE_FLOWS” as an option
in the GWF name file. The GWF Output Control Package must also have “SAVE BUDGET ALL” specified.
The easiest way to ensure that all flows and heads are saved is to use the following simple form of a GWF
Output Control file:
BEGIN OPTIONS
HEAD FILEOUT mymodel.hds
BUDGET FILEOUT mymodel.bud
END OPTIONS
BEGIN PERIOD 1
SAVE HEAD ALL
SAVE BUDGET ALL
END PERIOD
– The binary budget file must have the same number of budget terms listed for each time step. This will always
be the case when the binary budget file is created by MODFLOW 6.
– The advanced flow packages (LAK, SFR, MAW, and UZF) all have options for saving a detailed budget file
the describes all of the flows for each lake, reach, well, or UZF cell. These budget files can also be used as
input to FMI if a corresponding advanced transport package is needed, such as LKE, SFE, MWE, and UZE. If
the Water Mover Package is also specified for the GWF Model, then the the budget file for the Water Mover
Package will also need to be specified as input to this FMI Package.
– The binary heads file must have heads saved for all layers in the model. This will always be the case when the
binary head file is created by MODFLOW 6. This was not always the case as previous MODFLOW versions
allowed different save options for each layer.
Groundwater Energy Transport (GWE) Model Input 279
– If the binary budget and head files have more than one time step for a single stress period, then the budget and
head information must be contained within the binary file for every time step in the simulation stress period.
– The binary budget and head files must correspond in terms of information stored for each time step and stress
period.
– If the binary budget and head files have information provided for only the first time step of a given stress
period, this information will be used for all time steps in that stress period in the GWE simulation. If the
final stress period (which may be the only stress period) in the binary budget and head files has information
provided for only one time step, this information will be used for any subsequent time steps and stress peri-
ods in the GWE simulation. This makes it possible to provide flows, for example, from a steady-state GWF
stress period and have those flows used for all GWE time steps in that stress period, for all remaining time
steps in the GWE simulation, or for all time steps throughout the entire GWE simulation. With this option, it
is possible to have smaller time steps in the GWE simulation than the time steps used in the GWF simulation.
Note that this cannot be done when the GWF and GWE models are run in the same simulation, because in
that case, both models are solved for each time step in the stress period, as listed in the TDIS Package. This
option for reading flows from a previous GWF simulation may offer an efficient alternative to running both
models in the same simulation, but it comes at the cost of having potentially very large budget files.
Determination of which FMI use case to invoke requires careful consideration of the different advantages and disadvan-
tages of each case. For example, running GWE and GWF in the same simulation can often be faster because GWF flows
are passed through memory to the GWE model instead of being written to files. The disadvantage of this approach is that
the same time step lengths must be used for both GWF and GWE. Ultimately, it should be relatively straightforward to
test different ways in which GWF and GWE interact and select the use case most appropriate for the particular problem.
Structure of Blocks
BEGIN OPTIONS
[SAVE_FLOWS]
[FLOW_IMBALANCE_CORRECTION]
END OPTIONS
BEGIN PACKAGEDATA
<flowtype> FILEIN <fname>
<flowtype> FILEIN <fname>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that FMI flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
FLOW_IMBALANCE_CORRECTION—correct for an imbalance in flows by assuming that any residual flow error
comes in or leaves at the temperature of the cell. When this option is activated, the GWE Model budget writ-
ten to the listing file will contain two additional entries: FLOW-ERROR and FLOW-CORRECTION. These
two entries will be equal but opposite in sign. The FLOW-CORRECTION term is a mass flow that is added
to offset the error caused by an imprecise flow balance. If these terms are not relatively small, the flow model
should be rerun with stricter convergence tolerances.
Block: PACKAGEDATA
flowtype—is the word GWFBUDGET, GWFHEAD, GWFMOVER or the name of an advanced GWF stress
package. If GWFBUDGET is specified, then the corresponding file must be a budget file from a previous
GWF Model run. If an advanced GWF stress package name appears then the corresponding file must be the
budget file saved by a LAK, SFR, MAW or UZF Package.
280 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
FLOW_IMBALANCE_CORRECTION
END OPTIONS
BEGIN PACKAGEDATA
GWFBUDGET FILEIN ../flow/mygwfmodel.bud
GWFHEAD FILEIN ../flow/mygwfmodel.hds
GWFMOVER FILEIN ../flow/mygwfmodel.hds
LAK-1 FILEIN ../flow/mygwfmodel.lak.bud
SFR-1 FILEIN ../flow/mygwfmodel.sfr.bud
MAW-1 FILEIN ../flow/mygwfmodel.maw.bud
UZF-1 FILEIN ../flow/mygwfmodel.uzf.bud
LAK-2 FILEIN ../flow/mygwfmodel-2.lak.bud
END PACKAGEDATA
Groundwater Energy Transport (GWE) Model Input 281
Structure of Blocks
BEGIN OPTIONS
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[BUDGET FILEOUT <budgetfile>]
[BUDGETCSV FILEOUT <budgetcsvfile>]
END OPTIONS
Explanation of Variables
Block: OPTIONS
PRINT_INPUT—keyword to indicate that the list of mover information will be written to the listing file immedi-
ately after it is read.
PRINT_FLOWS—keyword to indicate that the list of lake flow rates will be printed to the listing file for every stress
period time step in which “BUDGET PRINT” is specified in Output Control. If there is no Output Control
option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of each stress
period.
SAVE_FLOWS—keyword to indicate that lake flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
BUDGET—keyword to specify that record corresponds to the budget.
FILEOUT—keyword to specify that an output filename is expected next.
budgetfile—name of the binary output file to write budget information.
BUDGETCSV—keyword to specify that record corresponds to the budget CSV.
budgetcsvfile—name of the comma-separated value (CSV) output file to write budget summary information.
A budget summary record will be written to this file for each time step of the simulation.
BEGIN OPTIONS
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
BUDGET FILEOUT mygwemodel.mve.bud
END OPTIONS
282 MODFLOW 6 – Description of Input and Output
Structure of Blocks
BEGIN OPTIONS
GWFMODELNAME1 <gwfmodelname1>
GWFMODELNAME2 <gwfmodelname2>
[AUXILIARY <auxiliary(naux)>]
[BOUNDNAMES]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
[ADV_SCHEME <adv_scheme>]
[CND_XT3D_OFF]
[CND_XT3D_RHS]
[MVE6 FILEIN <mve6_filename>]
[OBS6 FILEIN <obs6_filename>]
END OPTIONS
BEGIN DIMENSIONS
NEXG <nexg>
END DIMENSIONS
BEGIN EXCHANGEDATA
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
<cellidm1> <cellidm2> <ihc> <cl1> <cl2> <hwva> [<aux(naux)>] [<boundname>]
...
END EXCHANGEDATA
Explanation of Variables
Block: OPTIONS
gwfmodelname1—keyword to specify name of first corresponding GWF Model. In the simulation name file, the
GWE6-GWE6 entry contains names for GWE Models (exgmnamea and exgmnameb). The GWE Model with
the name exgmnamea must correspond to the GWF Model with the name gwfmodelname1.
gwfmodelname2—keyword to specify name of second corresponding GWF Model. In the simulation name file,
the GWE6-GWE6 entry contains names for GWE Models (exgmnamea and exgmnameb). The GWE Model
with the name exgmnameb must correspond to the GWF Model with the name gwfmodelname2.
auxiliary—an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can
be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be avail-
able for use by other parts of the program. If an auxiliary variable with the name “ANGLDEGX” is found,
then this information will be used as the angle (provided in degrees) between the connection face normal and
the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The
connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in
model 2 pointing away from the model 1 cell. Additional information on “ANGLDEGX” is provided in the
description of the DISU Package. If an auxiliary variable with the name “CDIST” is found, then this informa-
tion will be used as the straight-line connection distance, including the vertical component, between the two
cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the
groundwater models.
Groundwater Energy Transport (GWE) Model Input 283
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of GWE Exchange cells.
PRINT_INPUT—keyword to indicate that the list of exchange entries will be echoed to the listing file immediately
after it is read.
PRINT_FLOWS—keyword to indicate that the list of exchange flow rates will be printed to the listing file for every
stress period in which “SAVE BUDGET” is specified in Output Control.
SAVE_FLOWS—keyword to indicate that cell-by-cell flow terms will be written to the budget file for each model
provided that the Output Control for the models are set up with the “BUDGET SAVE FILE” option.
adv_scheme—scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified,
upstream weighting is the default weighting scheme.
CND_XT3D_OFF—deactivate the xt3d method for the dispersive flux and use the faster and less accurate approxi-
mation for this exchange.
CND_XT3D_RHS—add xt3d dispersion terms to right-hand side, when possible, for this exchange.
FILEIN—keyword to specify that an input filename is expected next.
MVE6—keyword to specify that record corresponds to an energy transport mover file.
mve6_filename—is the file name of the transport mover input file to apply to this exchange. Information for the
transport mover are provided in the file provided with these keywords.
OBS6—keyword to specify that record corresponds to an observations file.
obs6_filename—is the file name of the observations input file for this exchange. See the “Observation utility”
section for instructions for preparing observation input files. Table 46 lists observation type(s) supported by
the GWE-GWE package.
Block: DIMENSIONS
Block: EXCHANGEDATA
cellidm1—is the cellid of the cell in model 1 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM1 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM1 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM1 is the node number for the cell.
cellidm2—is the cellid of the cell in model 2 as specified in the simulation name file. For a structured grid that
uses the DIS input file, CELLIDM2 is the layer, row, and column numbers of the cell. For a grid that uses the
DISV input file, CELLIDM2 is the layer number and CELL2D number for the two cells. If the model uses
the unstructured discretization (DISU) input file, then CELLIDM2 is the node number for the cell.
ihc—is an integer flag indicating the direction between node n and all of its m connections. If IHC = 0 then the
connection is vertical. If IHC = 1 then the connection is horizontal. If IHC = 2 then the connection is hori-
zontal for a vertically staggered grid.
cl1—is the distance between the center of cell 1 and the its shared face with cell 2.
cl2—is the distance between the center of cell 2 and the its shared face with cell 1.
hwva—is the horizontal width of the flow connection between cell 1 and cell 2 if IHC > 0, or it is the area perpen-
dicular to flow of the vertical connection between cell 1 and cell 2 if IHC = 0.
aux—represents the values of the auxiliary variables for each GWEGWE Exchange. The values of auxiliary vari-
ables must be present for each exchange. The values must be specified in the order of the auxiliary variables
specified in the OPTIONS block.
boundname—name of the GWE Exchange cell. BOUNDNAME is an ASCII character variable that can contain
as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
284 MODFLOW 6 – Description of Input and Output
BEGIN OPTIONS
PRINT_INPUT
PRINT_FLOWS
SAVE_FLOWS
AUXILIARY testaux
END OPTIONS
BEGIN DIMENSIONS
NEXG 36
END DIMENSIONS
BEGIN EXCHANGEDATA
# left side
# nodem1 nodem2 ihc cl1 cl2 fahl testaux
16 1 1 50. 16.67 33.33 100.99
16 10 1 50. 16.67 33.33 100.99
16 19 1 50. 16.67 33.33 100.99
23 28 1 50. 16.67 33.33 100.99
23 37 1 50. 16.67 33.33 100.99
23 46 1 50. 16.67 33.33 100.99
30 55 1 50. 16.67 33.33 100.99
30 64 1 50. 16.67 33.33 100.99
30 73 1 50. 16.67 33.33 100.99
#
# right side
20 9 1 50. 16.67 33.33 100.99
20 18 1 50. 16.67 33.33 100.99
20 27 1 50. 16.67 33.33 100.99
27 36 1 50. 16.67 33.33 100.99
27 45 1 50. 16.67 33.33 100.99
27 54 1 50. 16.67 33.33 100.99
34 63 1 50. 16.67 33.33 100.99
34 72 1 50. 16.67 33.33 100.99
34 81 1 50. 16.67 33.33 100.99
#
# back side
10 1 1 50. 17.67 33.33 100.99
10 2 1 50. 17.67 33.33 100.99
10 3 1 50. 17.67 33.33 100.99
11 4 1 50. 17.67 33.33 100.99
11 5 1 50. 17.67 33.33 100.99
11 6 1 50. 17.67 33.33 100.99
12 7 1 50. 17.67 33.33 100.99
12 8 1 50. 17.67 33.33 100.99
12 9 1 50. 17.67 33.33 100.99
#
# front
38 73 1 50. 17.67 33.33 100.99
38 74 1 50. 17.67 33.33 100.99
38 75 1 50. 17.67 33.33 100.99
39 76 1 50. 17.67 33.33 100.99
39 77 1 50. 17.67 33.33 100.99
39 78 1 50. 17.67 33.33 100.99
40 79 1 50. 17.67 33.33 100.99
40 80 1 50. 17.67 33.33 100.99
40 81 1 50. 17.67 33.33 100.99
END EXCHANGEDATA
BEGIN OPTIONS
DIGITS 10
PRINT_INPUT
END OPTIONS
Time Stepping
In MODFLOW 6 time step lengths are controlled by the user and specified in the Temporal Discretization (TDIS)
input file. When the flow model and particle-tracking model run in the same simulation, the time step length specified in
TDIS is used for both models. If the PRT Model runs in a separate simulation, the time discretization may differ. Instruc-
tions for specifying time steps are described in the TDIS section of this user guide; additional information on GWF and
PRT configurations are in the Flow Model Interface section.
The IREASON field indicates the reason the particle track record was saved:
By default, the PRT Model reports all particle events. The user can optionally select which events are reported, as
explained in the Output Control (OC) subsection. Because multiple tracking events may coincide (e.g. exiting a cell and
exiting a weak sink cell), particle track records may be duplicates except for the ISTATUS and/or IREASON codes.
The binary particle track file contains the same particle track data in a record-based binary format explained in the
Particle Track File subsection of the Description of Binary Output Files section.
Particle Tracking (PRT) Model Input and Output 289
Structure of Blocks
BEGIN OPTIONS
[LIST <list>]
[PRINT_INPUT]
[PRINT_FLOWS]
[SAVE_FLOWS]
END OPTIONS
BEGIN PACKAGES
<ftype> <fname> [<pname>]
<ftype> <fname> [<pname>]
...
END PACKAGES
Explanation of Variables
Block: OPTIONS
list—is name of the listing file to create for this PRT model. If not specified, then the name of the list file will be
the basename of the PRT model name file and the ’.lst’ extension. For example, if the PRT name file is called
“my.model.nam” then the list file will be called “my.model.lst”.
PRINT_INPUT—keyword to indicate that the list of all model stress package information will be written to the
listing file immediately after it is read.
PRINT_FLOWS—keyword to indicate that the list of all model package flow rates will be printed to the listing file
for every stress period time step in which “BUDGET PRINT” is specified in Output Control. If there is no
Output Control option and “PRINT_FLOWS” is specified, then flow rates are printed for the last time step of
each stress period.
SAVE_FLOWS—keyword to indicate that all model package flow terms will be written to the file specified with
“BUDGET FILEOUT” in Output Control.
Block: PACKAGES
ftype—is the file type, which must be one of the following character values shown in table 42. Ftype may be
entered in any combination of uppercase and lowercase.
fname—is the name of the file containing the package input. The path to the file should be included if the file is
not located in the folder where the program was run.
pname—is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed in
PNAME. PNAME character values are read and stored by the program for stress packages only. These names
may be useful for labeling purposes when multiple stress packages of the same type are located within a sin-
gle PRT Model. If PNAME is specified for a stress package, then PNAME will be used in the flow budget
table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME is case
insensitive and is stored in all upper case letters.
290 MODFLOW 6 – Description of Input and Output
Table 42. Ftype values described in this report. The Pname column indicates whether or not a package name can be provided
in the name file. The capability to provide a package name also indicates that the PRT Model can have more than one package
of that Ftype.
BEGIN PACKAGES
DIS6 parttrack.dis
MIP6 parttrack.mip
PRP6 parttrack.prp
OC6 parttrack.oc
END PACKAGES
Particle Tracking (PRT) Model Input and Output 291
Structure of Blocks
BEGIN GRIDDATA
POROSITY [LAYERED]
<porosity(nodes)> -- READARRAY
[RETFACTOR [LAYERED]
<retfactor(nodes)> -- READARRAY]
[IZONE [LAYERED]
<izone(nodes)> -- READARRAY]
END GRIDDATA
Explanation of Variables
Block: OPTIONS
EXPORT_ARRAY_ASCII—keyword that specifies input griddata arrays should be written to layered ascii output
files.
Block: GRIDDATA
Structure of Blocks
BEGIN OPTIONS
[BOUNDNAMES]
[PRINT_INPUT]
EXIT_SOLVE_TOLERANCE <exit_solve_tolerance>
[LOCAL_Z]
[TRACK FILEOUT <trackfile>]
[TRACKCSV FILEOUT <trackcsvfile>]
[STOPTIME <stoptime>]
[STOPTRAVELTIME <stoptraveltime>]
[STOP_AT_WEAK_SINK]
[ISTOPZONE <istopzone>]
[DRAPE]
[RELEASE_TIMES <times(unknown)>]
[RELEASE_TIMESFILE <timesfile>]
END OPTIONS
BEGIN DIMENSIONS
NRELEASEPTS <nreleasepts>
END DIMENSIONS
BEGIN PACKAGEDATA
<irptno> <cellid(ncelldim)> <xrpt> <yrpt> <zrpt> [<boundname>]
<irptno> <cellid(ncelldim)> <xrpt> <yrpt> <zrpt> [<boundname>]
...
END PACKAGEDATA
All of the stress package information in the PERIOD block will continue to apply for subsequent stress periods until the
end of the simulation, or until another PERIOD block is encountered. When a new PERIOD block is encountered, all of
the stresses from the previous block are replaced with the stresses in the new PERIOD block. Note that this behavior is
different from the advanced packages (MAW, SFR, LAK, and UZF). To turn off all of the stresses for a stress period, a
PERIOD block must be specified with no entries. If a PERIOD block is not specified for the first stress period, then no
stresses will be applied until the iper value of the first PERIOD block in the file. If no PERIOD block is specified for
any period, a single particle is released from each release point at the beginning of the simulation.
Explanation of Variables
Block: OPTIONS
BOUNDNAMES—keyword to indicate that boundary names may be provided with the list of particle release points.
Particle Tracking (PRT) Model Input and Output 293
PRINT_INPUT—keyword to indicate that the list of all model stress package information will be written to the
listing file immediately after it is read.
exit_solve_tolerance—the convergence tolerance for iterative solution of particle exit location and time
in the generalized Pollock’s method. A value of 0.00001 works well for many problems, but the value that
strikes the best balance between accuracy and runtime is problem-dependent.
LOCAL_Z—indicates that “zrpt” defines the local z coordinate of the release point within the cell, with value of 0
at the bottom and 1 at the top of the cell. If the cell is partially saturated at release time, the top of the cell is
considered to be the water table elevation (the head in the cell) rather than the top defined by the user.
TRACK—keyword to specify that record corresponds to a binary track output file. Each PRP Package may have a
distinct binary track output file.
FILEOUT—keyword to specify that an output filename is expected next.
trackfile—name of the binary output file to write tracking information.
TRACKCSV—keyword to specify that record corresponds to a CSV track output file. Each PRP Package may have
a distinct CSV track output file.
trackcsvfile—name of the comma-separated value (CSV) file to write tracking information.
stoptime—real value defining the maximum simulation time to which particles in the package can be tracked.
Particles that have not terminated earlier due to another termination condition will terminate when simulation
time STOPTIME is reached. If the last stress period in the simulation consists of more than one time step,
particles will not be tracked past the ending time of the last stress period, regardless of STOPTIME. If the last
stress period in the simulation consists of a single time step, it is assumed to be a steady-state stress period,
and its ending time will not limit the simulation time to which particles can be tracked. If STOPTIME and
STOPTRAVELTIME are both provided, particles will be stopped if either is reached.
stoptraveltime—real value defining the maximum travel time over which particles in the model can be
tracked. Particles that have not terminated earlier due to another termination condition will terminate when
their travel time reaches STOPTRAVELTIME. If the last stress period in the simulation consists of more
than one time step, particles will not be tracked past the ending time of the last stress period, regardless of
STOPTRAVELTIME. If the last stress period in the simulation consists of a single time step, it is assumed
to be a steady-state stress period, and its ending time will not limit the travel time over which particles can
be tracked. If STOPTIME and STOPTRAVELTIME are both provided, particles will be stopped if either is
reached.
STOP_AT_WEAK_SINK—is a text keyword to indicate that a particle is to terminate when it enters a cell that is a
weak sink. By default, particles are allowed to pass though cells that are weak sinks.
istopzone—integer value defining the stop zone number. If cells have been assigned IZONE values in the
GRIDDATA block, a particle terminates if it enters a cell whose IZONE value matches ISTOPZONE. An
ISTOPZONE value of zero indicates that there is no stop zone. The default value is zero.
DRAPE—is a text keyword to indicate that if a particle’s release point is in a cell that happens to be inactive at
release time, the particle is to be moved to the topmost active cell below it, if any. By default, a particle is
not released into the simulation if its release point’s cell is inactive at release time.
RELEASE_TIMES—keyword indicating release times will follow
times—times to release, relative to the beginning of the simulation. RELEASE_TIMES and
RELEASE_TIMESFILE are mutually exclusive.
RELEASE_TIMESFILE—keyword indicating release times file name will follow
timesfile—name of the release times file. RELEASE_TIMES and RELEASE_TIMESFILE are mutually exclu-
sive.
Block: DIMENSIONS
Block: PACKAGEDATA
294 MODFLOW 6 – Description of Input and Output
irptno—integer value that defines the PRP release point number associated with the specified PACKAGEDATA
data on the line. IRPTNO must be greater than zero and less than or equal to NRELEASEPTS. The program
will terminate with an error if information for a PRP release point number is specified more than once.
cellid—is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid
that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file,
CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input
file, CELLID is the node number for the cell.
xrpt—real value that defines the x coordinate of the release point in model coordinates. The (x, y, z) location
specified for the release point must lie within the cell that is identified by the specified cellid.
yrpt—real value that defines the y coordinate of the release point in model coordinates. The (x, y, z) location
specified for the release point must lie within the cell that is identified by the specified cellid.
zrpt—real value that defines the z coordinate of the release point in model coordinates or, if the LOCAL_Z
option is active, in local cell coordinates. The (x, y, z) location specified for the release point must lie within
the cell that is identified by the specified cellid.
boundname—name of the particle release point. BOUNDNAME is an ASCII character variable that can contain
as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed
within single quotes.
Block: PERIOD
iper—integer value specifying the stress period number for which the data specified in the PERIOD block
apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value
assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD
block. The information specified in the PERIOD block applies only to that stress period.
releasesetting—specifies when to release particles within the stress period. Overrides package-level
RELEASETIME option, which applies to all stress periods. By default, RELEASESETTING configures par-
ticles for release at the beginning of the specified time steps. For time-offset releases, provide a FRACTION
value.
ALL
FIRST
FREQUENCY <frequency>
STEPS <steps(<nstp)>
[FRACTION <fraction(<nstp)>]
ALL—keyword to indicate release of particles at the start of all time steps in the period.
FIRST—keyword to indicate release of particles at the start of the first time step in the period. This keyword may
be used in conjunction with other keywords to release particles at the start of multiple time steps.
frequency—release particles at the specified time step frequency. This keyword may be used in conjunction with
other keywords to release particles at the start of multiple time steps.
steps—release particles at the start of each step specified in STEPS. This keyword may be used in conjunction
with other keywords to release particles at the start of multiple time steps.
fraction—release particles after the specified fraction of the time step has elapsed. If FRACTION is not set,
particles are released at the start of the specified time step(s). FRACTION must be a single value when used
with ALL, FIRST, or FREQUENCY. When used with STEPS, FRACTION may be a single value or an array
of the same length as STEPS. If a single FRACTION value is provided with STEPS, the fraction applies to all
steps.
Particle Tracking (PRT) Model Input and Output 295
BEGIN OPTIONS
STOPTIME 10000.
BOUNDNAMES
END OPTIONS
BEGIN DIMENSIONS
NRELEASEPTS 3
END DIMENSIONS
BEGIN PACKAGEDATA
1 1 3 1250. 10250. 400. relpt_001
2 1 3 1255. 10250. 390. relpt_002
3 1 23 1250. 9450. 400. relpt_003
END PACKAGEDATA
BEGIN PERIOD 1
FIRST
END PERIOD
296 MODFLOW 6 – Description of Input and Output
Structure of Blocks
Explanation of Variables
Block: OPTIONS
TRACKCSV—keyword to specify that record corresponds to a CSV track file. Each PRT Model’s OC Package may
have only one CSV track file.
trackcsvfile—name of the comma-separated value (CSV) file to write tracking information.
TRACK_RELEASE—keyword to indicate that particle tracking output is to be written when a particle is released
TRACK_EXIT—keyword to indicate that particle tracking output is to be written when a particle exits a cell
TRACK_TIMESTEP—keyword to indicate that particle tracking output is to be written at the end of each time step
TRACK_TERMINATE—keyword to indicate that particle tracking output is to be written when a particle terminates
for any reason
TRACK_WEAKSINK—keyword to indicate that particle tracking output is to be written when a particle exits a weak
sink (a cell which removes some but not all inflow from adjacent cells)
TRACK_USERTIME—keyword to indicate that particle tracking output is to be written at user-specified times, pro-
vided as double precision values to the TRACK_TIMES or TRACK_TIMESFILE options
TRACK_TIMES—keyword indicating tracking times will follow
times—times to track, relative to the beginning of the simulation.
TRACK_TIMESFILE—keyword indicating tracking times file name will follow
timesfile—name of the tracking times file
Block: PERIOD
iper—integer value specifying the starting stress period number for which the data specified in the PERIOD
block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The
IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous
PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent
stress periods, unless the program encounters another PERIOD block.
SAVE—keyword to indicate that information will be saved this stress period.
PRINT—keyword to indicate that information will be printed this stress period.
rtype—type of information to save or print. Can only be BUDGET.
ocsetting—specifies the steps for which the data will be saved.
ALL
FIRST
LAST
FREQUENCY <frequency>
STEPS <steps(<nstp)>
BEGIN OPTIONS
END OPTIONS
BEGIN PERIOD 1
PRINT BUDGET ALL
SAVE BUDGET ALL
END PERIOD
Particle Tracking (PRT) Model Input and Output 299
∙ Flows are provided by a corresponding GWF Model running in the same simulation—in this case, all groundwater
flows are calculated by the corresponding GWF Model and provided through FMI to the transport model. This is
a common use case in which the user wants to run the flow and particle-tracking models as part of a single simula-
tion. The GWF and PRT models must be part of a GWF-PRT Exchange that is listed in mfsim.nam. If a GWF-PRT
Exchange is specified by the user, then the user does not need to specify an FMI Package input file for the simula-
tion, unless an FMI option is needed. If a GWF-PRT Exchange is specified and the FMI Package is specified, then
the PACKAGEDATA block below is not read or used.
∙ Flows are provided from a previous GWF model simulation—in this case FMI should be provided in the PRT name
file and the head and budget files should be listed in the FMI PACKAGEDATA block. In this case, FMI reads the
simulated head and flows from these files and makes them available to the particle-trcking model. There are some
additional considerations when the heads and flows are provided from binary files.
– The binary budget file must contain the simulated flows for all of the packages that were included in the GWF
model run. Saving of flows can be activated for all packages by specifying “SAVE_FLOWS” as an option
in the GWF name file. The GWF Output Control Package must also have “SAVE BUDGET ALL” specified.
The easiest way to ensure that all flows and heads are saved is to use the following simple form of a GWF
Output Control file:
BEGIN OPTIONS
HEAD FILEOUT mymodel.hds
BUDGET FILEOUT mymodel.bud
END OPTIONS
BEGIN PERIOD 1
SAVE HEAD ALL
SAVE BUDGET ALL
END PERIOD
– The binary budget file must have the same number of budget terms listed for each time step. This will always
be the case when the binary budget file is created by MODFLOW 6.
– The binary heads file must have heads saved for all layers in the model. This will always be the case when the
binary head file is created by MODFLOW 6. This was not always the case as previous MODFLOW versions
allowed different save options for each layer.
– If the binary budget and head files have more than one time step for a single stress period, then the budget and
head information must be contained within the binary file for every time step in the simulation stress period.
– The binary budget and head files must correspond in terms of information stored for each time step and stress
period.
– If the binary budget and head files have information provided for only the first time step of a given stress
period, this information will be used for all time steps in that stress period in the PRT simulation. If the final
(or only) stress period in the binary budget and head files contains data for only one time step, this informa-
tion will be used for any subsequent time steps and stress periods in the PRT simulation. This makes it pos-
sible to provide flows, for example, from a steady-state GWF stress period and have those flows used for all
PRT time steps in that stress period, for all remaining time steps in the PRT simulation, or for all time steps
throughout the entire GWT simulation. With this option, it is possible to have smaller time steps in the PRT
simulation than the time steps used in the GWF simulation. Note that this cannot be done when the GWF
300 MODFLOW 6 – Description of Input and Output
and PRT models are run in the same simulation, because in that case, both models are solved over the same
sequence of time steps and stress periods, as listed in the TDIS Package. The option to read flows from a pre-
vious GWF simulation via Flow Model Interface may offer an efficient alternative to running both models in
the same simulation, but comes at the cost of having potentially very large budget files.
Determination of which FMI use case to invoke requires careful consideration of the different advantages and disadvan-
tages of each case. For example, running PRT and GWF in the same simulation can often be faster because GWF flows
are passed through memory to the PRT model instead of being written to files. The disadvantage of this approach is that
the same time step lengths must be used for both GWF and PRT. Ultimately, it should be relatively straightforward to test
different ways in which GWF and PRT interact and select the use case most appropriate for the particular problem.
Structure of Blocks
BEGIN PACKAGEDATA
<flowtype> FILEIN <fname>
<flowtype> FILEIN <fname>
...
END PACKAGEDATA
Explanation of Variables
Block: OPTIONS
SAVE_FLOWS—keyword to indicate that FMI flow terms will be written to the file specified with “BUDGET FILE-
OUT” in Output Control.
Block: PACKAGEDATA
flowtype—is the word GWFBUDGET or GWFHEAD. If GWFBUDGET is specified, then the corresponding
file must be a budget file from a previous GWF Model run.
FILEIN—keyword to specify that an input filename is expected next.
fname—is the name of the file containing flows. The path to the file should be included if the file is not located in
the folder where the program was run.
BEGIN OPTIONS
END OPTIONS
BEGIN PACKAGEDATA
PRTBUDGET FILEIN ../flow/mygwfmodel.bud
PRTHEAD FILEIN ../flow/mygwfmodel.hds
END PACKAGEDATA
Iterative Model Solution 301
Structure of Blocks
BEGIN OPTIONS
[PRINT_OPTION <print_option>]
[COMPLEXITY <complexity>]
[CSV_OUTER_OUTPUT FILEOUT <outer_csvfile>]
[CSV_INNER_OUTPUT FILEOUT <inner_csvfile>]
[NO_PTC [<no_ptc_option>]]
[ATS_OUTER_MAXIMUM_FRACTION <ats_outer_maximum_fraction>]
END OPTIONS
BEGIN NONLINEAR
OUTER_DVCLOSE <outer_dvclose>
OUTER_MAXIMUM <outer_maximum>
[UNDER_RELAXATION <under_relaxation>]
[UNDER_RELAXATION_GAMMA <under_relaxation_gamma>]
[UNDER_RELAXATION_THETA <under_relaxation_theta>]
[UNDER_RELAXATION_KAPPA <under_relaxation_kappa>]
[UNDER_RELAXATION_MOMENTUM <under_relaxation_momentum>]
[BACKTRACKING_NUMBER <backtracking_number>]
[BACKTRACKING_TOLERANCE <backtracking_tolerance>]
[BACKTRACKING_REDUCTION_FACTOR <backtracking_reduction_factor>]
[BACKTRACKING_RESIDUAL_LIMIT <backtracking_residual_limit>]
END NONLINEAR
BEGIN LINEAR
INNER_MAXIMUM <inner_maximum>
INNER_DVCLOSE <inner_dvclose>
INNER_RCLOSE <inner_rclose> [<rclose_option>]
LINEAR_ACCELERATION <linear_acceleration>
[RELAXATION_FACTOR <relaxation_factor>]
[PRECONDITIONER_LEVELS <preconditioner_levels>]
[PRECONDITIONER_DROP_TOLERANCE <preconditioner_drop_tolerance>]
[NUMBER_ORTHOGONALIZATIONS <number_orthogonalizations>]
[SCALING_METHOD <scaling_method>]
[REORDERING_METHOD <reordering_method>]
END LINEAR
Explanation of Variables
Block: OPTIONS
print_option—is a flag that controls printing of convergence information from the solver. NONE means print
nothing. SUMMARY means print only the total number of iterations and nonlinear residual reduction sum-
maries. ALL means print linear matrix solver convergence information to the solution listing file and model
specific linear matrix solver convergence information to each model listing file in addition to SUMMARY
information. NONE is default if PRINT_OPTION is not specified.
complexity—is an optional keyword that defines default non-linear and linear solver parameters. SIMPLE -
indicates that default solver input values will be defined that work well for nearly linear models. This would
be used for models that do not include nonlinear stress packages and models that are either confined or con-
sist of a single unconfined layer that is thick enough to contain the water table within a single layer. MOD-
ERATE - indicates that default solver input values will be defined that work well for moderately nonlinear
302 MODFLOW 6 – Description of Input and Output
models. This would be used for models that include nonlinear stress packages and models that consist of
one or more unconfined layers. The MODERATE option should be used when the SIMPLE option does not
result in successful convergence. COMPLEX - indicates that default solver input values will be defined that
work well for highly nonlinear models. This would be used for models that include nonlinear stress pack-
ages and models that consist of one or more unconfined layers representing complex geology and surface-
water/groundwater interaction. The COMPLEX option should be used when the MODERATE option does
not result in successful convergence. Non-linear and linear solver parameters assigned using a specified com-
plexity can be modified in the NONLINEAR and LINEAR blocks. If the COMPLEXITY option is not speci-
fied, NONLINEAR and LINEAR variables will be assigned the simple complexity values.
CSV_OUTER_OUTPUT—keyword to specify that the record corresponds to the comma separated values outer itera-
tion convergence output.
FILEOUT—keyword to specify that an output filename is expected next.
outer_csvfile—name of the ascii comma separated values output file to write maximum dependent-variable
(for example, head) change convergence information at the end of each outer iteration for each time step.
CSV_INNER_OUTPUT—keyword to specify that the record corresponds to the comma separated values solver con-
vergence output.
inner_csvfile—name of the ascii comma separated values output file to write solver convergence information.
Comma separated values output includes maximum dependent-variable (for example, head) change and max-
imum residual convergence information for the solution and each model (if the solution includes more than
one model) and linear acceleration information for each inner iteration.
NO_PTC—is a flag that is used to disable pseudo-transient continuation (PTC). Option only applies to steady-state
stress periods for models using the Newton-Raphson formulation. For many problems, PTC can significantly
improve convergence behavior for steady-state simulations, and for this reason it is active by default. In some
cases, however, PTC can worsen the convergence behavior, especially when the initial conditions are similar
to the solution. When the initial conditions are similar to, or exactly the same as, the solution and conver-
gence is slow, then the NO_PTC FIRST option should be used to deactivate PTC for the first stress period.
The NO_PTC ALL option should also be used in order to compare convergence behavior with other MOD-
FLOW versions, as PTC is only available in MODFLOW 6.
no_ptc_option—is an optional keyword that is used to define options for disabling pseudo-transient continua-
tion (PTC). FIRST is an optional keyword to disable PTC for the first stress period, if steady-state and one or
more model is using the Newton-Raphson formulation. ALL is an optional keyword to disable PTC for all
steady-state stress periods for models using the Newton-Raphson formulation. If NO_PTC_OPTION is not
specified, the NO_PTC ALL option is used.
ats_outer_maximum_fraction—real value defining the fraction of the maximum allowable outer iterations
used with the Adaptive Time Step (ATS) capability if it is active. If this value is set to zero by the user, then
this solution will have no effect on ATS behavior. This value must be greater than or equal to zero and less
than or equal to 0.5 or the program will terminate with an error. If it is not specified by the user, then it is
assigned a default value of one third. When the number of outer iterations for this solution is less than the
product of this value and the maximum allowable outer iterations, then ATS will increase the time step length
by a factor of DTADJ in the ATS input file. When the number of outer iterations for this solution is greater
than the maximum allowable outer iterations minus the product of this value and the maximum allowable
outer iterations, then the ATS (if active) will decrease the time step length by a factor of 1 / DTADJ.
Block: NONLINEAR
outer_dvclose—real value defining the dependent-variable (for example, head) change criterion for conver-
gence of the outer (nonlinear) iterations, in units of the dependent-variable (for example, length for head).
When the maximum absolute value of the dependent-variable change at all nodes during an iteration is less
than or equal to OUTER_DVCLOSE, iteration stops. Commonly, OUTER_DVCLOSE equals 0.01. The key-
word, OUTER_HCLOSE can be still be specified instead of OUTER_DVCLOSE for backward compatibility
with previous versions of MODFLOW 6 but eventually OUTER_HCLOSE will be deprecated and specifica-
tion of OUTER_HCLOSE will cause MODFLOW 6 to terminate with an error.
Iterative Model Solution 303
outer_maximum—integer value defining the maximum number of outer (nonlinear) iterations – that is, calls to the
solution routine. For a linear problem OUTER_MAXIMUM should be 1.
under_relaxation—is an optional keyword that defines the nonlinear under-relaxation schemes used.
Under-relaxation is also known as dampening, and is used to reduce the size of the calculated depen-
dent variable before proceeding to the next outer iteration. Under-relaxation can be an effective tool for
highly nonlinear models when there are large and often counteracting changes in the calculated depen-
dent variable between successive outer iterations. By default under-relaxation is not used. NONE - under-
relaxation is not used (default). SIMPLE - Simple under-relaxation scheme with a fixed relaxation factor
(UNDER_RELAXATION_GAMMA) is used. COOLEY - Cooley under-relaxation scheme is used. DBD -
delta-bar-delta under-relaxation is used. Note that the under-relaxation schemes are often used in conjunction
with problems that use the Newton-Raphson formulation, however, experience has indicated that they also
work well for non-Newton problems, such as those with the wet/dry options of MODFLOW 6.
under_relaxation_gamma—real value defining either the relaxation factor for the SIMPLE scheme or the his-
tory or memory term factor of the Cooley and delta-bar-delta algorithms. For the SIMPLE scheme, a value of
one indicates that there is no under-relaxation and the full head change is applied. This value can be gradu-
ally reduced from one as a way to improve convergence; for well behaved problems, using a value less than
one can increase the number of outer iterations required for convergence and needlessly increase run times.
UNDER_RELAXATION_GAMMA must be greater than zero for the SIMPLE scheme or the program will
terminate with an error. For the Cooley and delta-bar-delta schemes, UNDER_RELAXATION_GAMMA
is a memory term that can range between zero and one. When UNDER_RELAXATION_GAMMA is zero,
only the most recent history (previous iteration value) is maintained. As UNDER_RELAXATION_GAMMA
is increased, past history of iteration changes has greater influence on the memory term. The memory
term is maintained as an exponential average of past changes. Retaining some past history can overcome
granular behavior in the calculated function surface and therefore helps to overcome cyclic patterns of
non-convergence. The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems.
UNDER_RELAXATION_GAMMA only needs to be specified if UNDER_RELAXATION is not NONE.
under_relaxation_theta—real value defining the reduction factor for the learning rate (under-relaxation term)
of the delta-bar-delta algorithm. The value of UNDER_RELAXATION_THETA is between zero and one. If
the change in the dependent-variable (for example, head) is of opposite sign to that of the previous iteration,
the under-relaxation term is reduced by a factor of UNDER_RELAXATION_THETA. The value usually
ranges from 0.3 to 0.9; a value of 0.7 works well for most problems. UNDER_RELAXATION_THETA only
needs to be specified if UNDER_RELAXATION is DBD.
under_relaxation_kappa—real value defining the increment for the learning rate (under-relaxation term) of
the delta-bar-delta algorithm. The value of UNDER_RELAXATION_kappa is between zero and one. If the
change in the dependent-variable (for example, head) is of the same sign to that of the previous iteration, the
under-relaxation term is increased by an increment of UNDER_RELAXATION_KAPPA. The value usually
ranges from 0.03 to 0.3; a value of 0.1 works well for most problems. UNDER_RELAXATION_KAPPA
only needs to be specified if UNDER_RELAXATION is DBD.
under_relaxation_momentum—real value defining the fraction of past history changes that
is added as a momentum term to the step change for a nonlinear iteration. The value of
UNDER_RELAXATION_MOMENTUM is between zero and one. A large momentum term should
only be used when small learning rates are expected. Small amounts of the momentum term help con-
vergence. The value usually ranges from 0.0001 to 0.1; a value of 0.001 works well for most problems.
UNDER_RELAXATION_MOMENTUM only needs to be specified if UNDER_RELAXATION is DBD.
backtracking_number—integer value defining the maximum number of backtracking iterations allowed for
residual reduction computations. If BACKTRACKING_NUMBER = 0 then the backtracking iterations are
omitted. The value usually ranges from 2 to 20; a value of 10 works well for most problems.
backtracking_tolerance—real value defining the tolerance for residual change that is allowed for resid-
ual reduction computations. BACKTRACKING_TOLERANCE should not be less than one to avoid get-
ting stuck in local minima. A large value serves to check for extreme residual increases, while a low value
serves to control step size more severely. The value usually ranges from 1.0 to 106 ; a value of 104 works
well for most problems but lower values like 1.1 may be required for harder problems. BACKTRACK-
ING_TOLERANCE only needs to be specified if BACKTRACKING_NUMBER is greater than zero.
304 MODFLOW 6 – Description of Input and Output
backtracking_reduction_factor—real value defining the reduction in step size used for residual reduc-
tion computations. The value of BACKTRACKING_REDUCTION_FACTOR is between zero and one.
The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems. BACKTRACK-
ING_REDUCTION_FACTOR only needs to be specified if BACKTRACKING_NUMBER is greater than
zero.
backtracking_residual_limit—real value defining the limit to which the residual is reduced with backtrack-
ing. If the residual is smaller than BACKTRACKING_RESIDUAL_LIMIT, then further backtracking is not
performed. A value of 100 is suitable for large problems and residual reduction to smaller values may only
slow down computations. BACKTRACKING_RESIDUAL_LIMIT only needs to be specified if BACK-
TRACKING_NUMBER is greater than zero.
Block: LINEAR
inner_maximum—integer value defining the maximum number of inner (linear) iterations. The number typ-
ically depends on the characteristics of the matrix solution scheme being used. For nonlinear problems,
INNER_MAXIMUM usually ranges from 60 to 600; a value of 100 will be sufficient for most linear prob-
lems.
inner_dvclose—real value defining the dependent-variable (for example, head) change criterion for conver-
gence of the inner (linear) iterations, in units of the dependent-variable (for example, length for head). When
the maximum absolute value of the dependent-variable change at all nodes during an iteration is less than or
equal to INNER_DVCLOSE, the matrix solver assumes convergence. Commonly, INNER_DVCLOSE is set
equal to or an order of magnitude less than the OUTER_DVCLOSE value specified for the NONLINEAR
block. The keyword, INNER_HCLOSE can be still be specified instead of INNER_DVCLOSE for backward
compatibility with previous versions of MODFLOW 6 but eventually INNER_HCLOSE will be deprecated
and specification of INNER_HCLOSE will cause MODFLOW 6 to terminate with an error.
inner_rclose—real value that defines the flow residual tolerance for convergence of the IMS linear solver and
specific flow residual criteria used. This value represents the maximum allowable residual at any single node.
Value is in units of length cubed per time, and must be consistent with MODFLOW 6 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 6 length and time.
rclose_option—an optional keyword that defines the specific flow residual criterion used. STRICT–an optional
keyword that is used to specify that INNER_RCLOSE represents a infinity-Norm (absolute convergence
criteria) and that the dependent-variable (for example, head) and flow convergence criteria must be met on
the first inner iteration (this criteria is equivalent to the criteria used by the MODFLOW-2005 PCG pack-
age (Hill, 1990)). L2NORM_RCLOSE–an optional keyword that is used to specify that INNER_RCLOSE
represents a L-2 Norm closure criteria instead of a infinity-Norm (absolute convergence criteria). When
L2NORM_RCLOSE is specified, a reasonable initial INNER_RCLOSE value is 0.1 times the number of
active cells when meters and seconds are the defined MODFLOW 6 length and time. RELATIVE_RCLOSE–
an optional keyword that is used to specify that INNER_RCLOSE represents a relative L-2 Norm reduction
closure criteria instead of a infinity-Norm (absolute convergence criteria). When RELATIVE_RCLOSE is
specified, a reasonable initial INNER_RCLOSE value is 1.0 × 10−4 and convergence is achieved for a given
inner (linear) iteration when Δℎ ≤ INNER_DVCLOSE and the current L-2 Norm is ≤ the product of the
RELATIVE_RCLOSE and the initial L-2 Norm for the current inner (linear) iteration. If RCLOSE_OPTION
is not specified, an absolute residual (infinity-norm) criterion is used.
linear_acceleration—a keyword that defines the linear acceleration method used by the default IMS linear
solvers. CG - preconditioned conjugate gradient method. BICGSTAB - preconditioned bi-conjugate gradient
stabilized method.
relaxation_factor—optional real value that defines the relaxation factor used by the incomplete LU factoriza-
tion preconditioners (MILU(0) and MILUT). RELAXATION_FACTOR is unitless and should be greater than
or equal to 0.0 and less than or equal to 1.0. RELAXATION_FACTOR values of about 1.0 are commonly
used, and experience suggests that convergence can be optimized in some cases with relax values of 0.97. A
RELAXATION_FACTOR value of 0.0 will result in either ILU(0) or ILUT preconditioning (depending on
Iterative Model Solution 305
preconditioner_levels—optional integer value defining the level of fill for ILU decomposition used in the
ILUT and MILUT preconditioners. Higher levels of fill provide more robustness but also require more mem-
ory. For optimal performance, it is suggested that a large level of fill be applied (7 or 8) with use of a drop
tolerance. Specification of a PRECONDITIONER_LEVELS value greater than zero results in use of the
ILUT preconditioner. By default, PRECONDITIONER_LEVELS is zero and the zero-fill incomplete LU
factorization preconditioners (ILU(0) and MILU(0)) are used.
preconditioner_drop_tolerance—optional real value that defines the drop tolerance used to drop precondi-
tioner terms based on the magnitude of matrix entries in the ILUT and MILUT preconditioners. A value of
10−4 works well for most problems. By default, PRECONDITIONER_DROP_TOLERANCE is zero and the
zero-fill incomplete LU factorization preconditioners (ILU(0) and MILU(0)) are used.
number_orthogonalizations—optional integer value defining the interval used to explicitly recalculate the
residual of the flow equation using the solver coefficient matrix, the latest dependent-variable (for example,
head) estimates, and the right hand side. For problems that benefit from explicit recalculation of the residual,
a number between 4 and 10 is appropriate. By default, NUMBER_ORTHOGONALIZATIONS is zero.
scaling_method—an optional keyword that defines the matrix scaling approach used. By default, matrix scaling
is not applied. NONE - no matrix scaling applied. DIAGONAL - symmetric matrix scaling using the POLCG
preconditioner scaling method in Hill (1992). L2NORM - symmetric matrix scaling using the L2 norm.
reordering_method—an optional keyword that defines the matrix reordering approach used. By default, matrix
reordering is not applied. NONE - original ordering. RCM - reverse Cuthill McKee ordering. MD - mini-
mum degree ordering.
The values that are assigned to the nonlinear and linear variables for the the simple, moderate, and complex
complexity options are summarized in table 43. The values defined for the simple complexity option are assigned if the
COMPLEXITY keyword is not specified in the OPTIONS block.
306 MODFLOW 6 – Description of Input and Output
Table 43. IMS variable values for the available complexity options..
BEGIN OPTIONS
PRINT_OPTION ALL
COMPLEXITY MODERATE
END OPTIONS
BEGIN NONLINEAR
OUTER_DVCLOSE 1.E-4
OUTER_MAXIMUM 2000
UNDER_RELAXATION DBD
UNDER_RELAXATION_THETA 0.70
UNDER_RELAXATION_KAPPA 0.100000E-03
UNDER_RELAXATION_GAMMA 0.
UNDER_RELAXATION_MOMENTUM 0.
BACKTRACKING_NUMBER 20
BACKTRACKING_TOLERANCE 2.
BACKTRACKING_REDUCTION_FACTOR 0.6
BACKTRACKING_RESIDUAL_LIMIT 5.000000E-04
END NONLINEAR
Iterative Model Solution 307
BEGIN LINEAR
INNER_MAXIMUM 100
INNER_DVCLOSE 1.0E-4
INNER_RCLOSE 0.001
LINEAR_ACCELERATION BICGSTAB
RELAXATION_FACTOR 0.97
SCALING_METHOD NONE
REORDERING_METHOD NONE
END LINEAR
308 MODFLOW 6 – Description of Input and Output
Structure of Blocks
Explanation of Variables
Block: OPTIONS
digits—Keyword and an integer digits specifier used for conversion of simulated values to text on output. If not
specified, the default is the maximum number of digits stored in the program (as written with the G0 Fortran
specifier). When simulated values are written to a comma-separated value text file specified in a CONTIN-
UOUS block below, the digits specifier controls the number of significant digits with which simulated values
are written to the output file. The digits specifier has no effect on the number of significant digits with which
310 MODFLOW 6 – Description of Input and Output
the simulation time is written for continuous observations. If DIGITS is specified as zero, then observations
are written with the default setting, which is the maximum number of digits.
PRINT_INPUT—keyword to indicate that the list of observation information will be written to the listing file
immediately after it is read.
Block: CONTINUOUS
GWT Observations
Observations are available for GWT models and GWT stress packages. Available observation types have
been listed for each package that supports observations (tables 25 to 31). All available observation types are
repeated in Table 45 for convenience.
The sign convention adopted for transport observations are identical to the conventions used in budgets
contained in listing files and used in the cell-by-cell budget output. For flow-ja-face observation types, nega-
tive and positive values represent a loss from and gain to the cellid specified for ID, respectively. For standard
stress packages, negative and positive values represent a loss from and gain to the GWT model, respectively.
318 MODFLOW 6 – Description of Input and Output
For advanced transport packages (Package = LKT, MWT, SFT, and UZT), negative and positive values for
exchanges with the GWT model (Observation type = lkt, mwt, sft, and uzt) represent a loss from and gain to
the GWT model, respectively. For other advanced stress package flow terms, negative and positive values rep-
resent a loss from and gain from the advanced package, respectively.
GWE Observations
Observations are available for GWE models and GWE stress packages. Available observation types have
been listed for each package that supports observations (tables 34 to ??). All available observation types are
repeated in Table 46 for convenience.
The sign convention adopted for transport observations are identical to the conventions used in budgets
contained in listing files and used in the cell-by-cell budget output. For flow-ja-face observation types, nega-
tive and positive values represent a loss from and gain to the cellid specified for ID, respectively. For standard
stress packages, negative and positive values represent a loss from and gain to the GWE model, respectively.
For advanced transport packages (Package = LKE, MWE, SFE, and UZE), negative and positive values for
Observation (OBS) Utility 323
exchanges with the GWE model (Observation type = lke, mwe, sfe, and uze) represent a loss from and gain
to the GWE model, respectively. For other advanced stress package flow terms, negative and positive values
represent a loss from and gain from the advanced package, respectively.
Time-Variable Input
In earlier versions of MODFLOW, most stress-boundary packages read input on a stress period-by-stress
period basis, and those values were held constant during the stress period. In MODFLOW 6, many stress val-
ues can be specified with a higher degree of time resolution (from time step to time step or from subtime step
to subtime step) by using one of two time-variable approaches. Boundaries for which data are read as lists of
cells can reference “time series” to implement the time variation. Boundaries for which data are read as 2-D
arrays can reference “time-array series” to do so.
When MODFLOW 6 needs data from a time series or time-array series for a time interval representing
a time step or subtime step, the series is queried to provide a time-averaged value or array of values for the
requested time interval. For each series, the user specifies an interpolation method that determines how the
value is assumed to behave between listed times. The interpolation method thus determines how the time aver-
aging is performed. When a time-array series is used, interpolation is performed on an element-by-element
basis to generate a 2-D array of interpolated values as needed.
The supported interpolation methods are STEPWISE, LINEAR, and LINEAREND. When the STEPWISE
interpolation method is used, the value is assumed to remain constant at the value specified in one time-series
record until the time listed in the subsequent record, when the value changes abruptly to the new value. In
the LINEAR interpolation method, the value is assumed to change linearly between times listed in sequen-
tial records. LINEAREND is like LINEAR, except that instead of using the average value over a time step,
the value at the end of a time step is used. Following sections document the structure of time-series and time-
array-series files and their use.
Time Series
Any package that reads data as a list of cells and associated time-dependent input values can obtain those
values from time series. For example, flow rates for a well or stage for a river boundary can be extracted from
time series. During a simulation, values used for time-varying stresses (or auxiliary values) are based on the
values provided in the time series and are updated each time step (or each subtime step, as appropriate). Input
to define and use time series is described in this section.
A time series consists of a chronologically ordered list of time-series records, where each record includes
a discrete time and a corresponding value. The value can be used to provide any time-varying numeric input,
including stresses and auxiliary variables. A time series can be referenced in input for one or multiple vari-
ables in a given package.
Time-Series Files
Each time-series file is associated with exactly one package, and the name of a time-series file associated
with a package is listed in the OPTIONS block for the package, preceded by the keywords “TS6 FILEIN.”
Any number of time-series files can be associated with a given package; a TS6 entry is required for each time-
series file. A time-series file can contain one or more time series. Time-series files are not listed in either the
simulation Name File or the model Name File. A given time-series file cannot be associated with more than
one package. By convention, the extension “.ts” is used in names of time-series files.
Each time-series file contains an ATTRIBUTES block followed by a TIMESERIES block containing a
series of lines, where each line contains a time followed by values for one or more time series at the speci-
fied time. The ATTRIBUTES block is required to define the name for each time series and the interpolation
method to be used when an operation requires interpolation between times listed in the time series.
The time-series name(s) and interpolation method(s) are specified in the ATTRIBUTES block. Scale fac-
tor(s) for multiplying values optionally can be provided in the ATTRIBUTES block. NAME, METHOD,
Time-Variable Input 327
METHODS, SFAC, and SFACS are keywords. For appearance when a time-series file includes multiple time
series, NAMES can be used as a synonym for the NAME keyword.
The syntax of the ATTRIBUTES block for a time-series file containing a single time series is as follows:
BEGIN ATTRIBUTES
NAME time-series-name
METHOD interpolation-method
[ SFAC sfac ]
END ATTRIBUTES
When a time-series file contains multiple time series, the time-series names are listed in a NAME (or
NAMES) entry, similar to the example above. If the time series are to have different interpolation methods,
the METHODS keyword is used in place of the METHOD keyword, and an interpolation method correspond-
ing to each name is listed. If the time series are to have different scale factors, the SFACS keyword is used in
place of the SFAC keyword.
The syntax of the ATTRIBUTES block for a time-series file containing multiple time series is as follows:
BEGIN ATTRIBUTES
NAMES time-series-name-1 [ time-series-name-2 ... time-series-name-n ]
METHODS interpolation-method-1 [ interpolation-method-2 ... ]
[ SFACS sfac-1 [ sfac-2 ... sfac-n ] ]
END ATTRIBUTES
In a case where a time-series file contains multiple time series and a single interpolation method applies
to all time series in the file, the METHOD keyword can be used, and a single interpolation method is read.
Similarly, if a single scale factor applies to all time series in the file, the SFAC keyword can be used, and a
single scale factor is read.
The ATTRIBUTES block is followed by a TIMESERIES block of the form:
BEGIN TIMESERIES
time-series record
time-series record
...
time-series record
END TIMESERIES
In situations where an individual time series in a file containing multiple time series does not include val-
ues for all specified times, a “no-data” value (3.0E30) can be used as a placeholder. When the “no-data” value
is read for a time series, that time series will not include a time-series record for the corresponding time.
Explanation of Variables
time-series-name—Name by which a package references a particular time series. The name must be
unique among all time series used in a package.
tsr-time—A numeric time relative to the start of the simulation, in the time unit used in the simulation.
Times must be strictly increasing.
tsr-value—A numeric data value corresponding to tsr-time. The value 3.0E30 is treated as a “no-data”
value and can be used wherever a time series in a file containing multiple time series does not have a
value corresponding to the time specified by tsr-time.
328 MODFLOW 6 – Description of Input and Output
time-series-file-name—Name of a time-series file in which time series used in the package are defined.
Each time series has a name. To specify that time-dependent values for one or more stress periods is to
be extracted from a time series, the time-series name is listed in the position where a numeric value normally
would be provided.
BEGIN TIMESERIES
# time well-A-series well-B-series well-C-series
0.0 0.0 0.0 0.0
1.0 -500.0 0.0 -400.0
2.0 -500.0 -1000.0 -500.0
5.0 -500.0 -1200.0 -200.0
8.0 -500.0 -1100.0 0.0
END TIMESERIES
BEGIN DIMENSIONS
MAXBOUND 4
END DIMENSIONS
BEGIN PERIOD 2
#layer row col Q (or time series)
9 192 44 well-A-series
10 43 17 well-B-series
11 12 17 well-C-series
END PERIOD
Time-Variable Input 329
BEGIN PERIOD 4
#layer row col Q (or time series)
9 192 44 well-A-series
10 43 17 well-B-series
11 12 17 well-C-series
2 27 36 -900.0
END PERIOD
BEGIN PERIOD 8
2 27 36 -900.0
END PERIOD
In the example above, the Well package would have zero wells active in stress period 1. Three wells
whose discharge rates are controlled by time series well-A-series, well-B-series, and well-C-series would be
active in stress periods 2 and 3. Stress periods 4 through 7 would include the three time-series-controlled wells
plus a well with a constant discharge of 900 (L3 /T). In stress period 8, only the constant-discharge well would
be active.
Time-Array Series
Any package that reads data for a structured model in the form of 2-D arrays can obtain those array data
from a time-array series. For example, recharge rates or maximum evapotranspiration rates can be extracted
from time-array series. During a simulation, values used for time-varying stresses (or auxiliary values) are
based on the values provided in the time-array series and are updated each time step (or each subtime step, as
appropriate). Input to define and use time-array series is described in this section.
A time-array series consists of a chronologically ordered list of arrays, where each array is associated with
a discrete time. The array data can be used to provide any time-varying, array-based numeric input.
Time-Array-Series Files
Each time-array-series file is associated with exactly one package, and the name of a time-array-series
file associated with a package is listed in the OPTIONS block for the package, preceded by the keywords
“TAS6 FILEIN.” Any number of time-array-series files can be associated with a given package; a TAS6 entry
is required for each time-array-series file. Time-array-series files are not listed in either the simulation Name
File or the model Name File. A given time-array-series file cannot be associated with more than one package.
One time-array-series file defines a single time-array series. A time-array-series file contains an
ATTRIBUTES block followed by a series of TIME blocks, where each TIME block contains data to define an
array corresponding to a discrete time. The READARRAY array reading utility is used to read the array. The
ATTRIBUTES block is required to define the name for the time-array series and the interpolation method to be
used when an operation requires interpolation between times listed in the time-array series. By convention, the
extension “.tas” is used in names of time-array-series files.
The syntax of the ATTRIBUTES block for a time-array-series file is as follows:
BEGIN ATTRIBUTES
NAME time-array-series-name
METHOD interpolation-method
[ SFAC sfac ]
END ATTRIBUTES
The ATTRIBUTES block is followed by any number of TIME blocks of the form:
BEGIN TIME tas-time
tas-array
END TIME
330 MODFLOW 6 – Description of Input and Output
Explanation of Variables
time-array-series-name—Name by which a package references a particular time-array series. The name
must be unique among all time-array series used in a package.
sfac—Scale factor, which will multiply all array values in time series. SFAC is an optional attribute; if omit-
ted, SFAC = 1.0.
tas-time—A numeric time relative to the start of the simulation, in the time unit used in the simulation.
Times must be strictly increasing.
tas-array—A 2-D array of numeric, floating-point values, or a constant value, readable by the READAR-
RAY array-reading utility.
A time-array series is linked to an array in one or more stress period blocks used to define package input.
To indicate that an array is to be controlled by a time-array series, the array property word is followed by the
keyword TIMEARRAYSERIES and the time-array series name. When the TIMEARRAYSERIES keyword is
found (and the array to be populated supports time-array series), the array reader is not invoked. Consequently,
the array-control record and any associated input are omitted. The syntax to define the link is:
BEGIN PERIOD kper
property-name TIMEARRAYSERIES time-array-series-name
END PERIOD
time-array-series-name—Name of time-array series. The time-array series must be defined in one of the
files listed in the OPTIONS block with the TAS6 FILEIN keywords.
Time-Variable Input 331
BEGIN PERIOD 1
IRCH
CONSTANT 1
RECHARGE TIMEARRAYSERIES RchArraySeries_1
RchMult
INTERNAL FACTOR 1.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 1.0 1.0 0.5 0.5 0.0 0.0 0.0 0.0 0.0
0.0 1.0 1.0 1.0 1.0 0.5 0.0 0.0 0.0 0.0
0.0 1.0 1.0 1.0 1.0 1.0 0.5 0.0 0.0 0.0
0.0 0.2 1.0 1.0 1.0 1.0 1.0 0.5 0.2 0.0
0.0 0.0 0.5 1.0 1.0 1.0 1.0 0.5 0.0 0.0
0.0 0.0 0.0 0.2 0.2 0.2 0.2 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
END PERIOD
DIS Grids
Read NTXT strings of size LENTXT. Set the number of data records (NDAT) equal to number of lines that do not
begin with #.
Definition 0: ‘#Comment ...’ CHARACTER(LEN=LENTXT), comments not presently written
Definition 1: ‘NCELLS INTEGER NDIM 0 # ncells’ CHARACTER(LEN=LENTXT)
Definition 2: ‘NLAY INTEGER NDIM 0 # nlay’ CHARACTER(LEN=LENTXT)
Definition 3: ‘NROW INTEGER NDIM 0 # nrow’ CHARACTER(LEN=LENTXT)
Definition 4: ‘NCOL INTEGER NDIM 0 # ncol’ CHARACTER(LEN=LENTXT)
Definition 5: ‘NJA INTEGER NDIM 0 # nja’ CHARACTER(LEN=LENTXT)
Definition 6: ‘XORIGIN DOUBLE NDIM 0 # xorigin’ CHARACTER(LEN=LENTXT)
Definition 7: ‘YORIGIN DOUBLE NDIM 0 # yorigin’ CHARACTER(LEN=LENTXT)
Definition 8: ‘ANGROT DOUBLE NDIM 0 # angrot’ CHARACTER(LEN=LENTXT)
Definition 9: ‘DELR DOUBLE NDIM 1 ncol’ CHARACTER(LEN=LENTXT)
Definition 10: ‘DELC DOUBLE NDIM 1 nrow’ CHARACTER(LEN=LENTXT)
Definition 11: ‘TOP DOUBLE NDIM 1 nrow*ncol’ CHARACTER(LEN=LENTXT)
Definition 12: ‘BOTM DOUBLE NDIM 1 ncells’ CHARACTER(LEN=LENTXT)
Definition 13: ‘IA INTEGER NDIM 1 ncells+1’ CHARACTER(LEN=LENTXT)
Definition 14: ‘JA INTEGER NDIM 1 nja’ CHARACTER(LEN=LENTXT)
Definition 15: ‘IDOMAIN INTEGER NDIM 1 ncells’ CHARACTER(LEN=LENTXT)
Definition 16: ‘ICELLTYPE INTEGER NDIM 1 ncells’ CHARACTER(LEN=LENTXT)
DISV Grids
The binary grid file for DISV grids contains information on the vertices and which vertices comprise a
cell. The x, y coordinates for each vertex are stored in the VERTICES array. The list of vertices that comprise
all of the cells is stored in the JAVERT array. The list of vertices for any cell can be found using the IAVERT
array. The following pseudocode shows how to loop through every cell in the DISV grid and obtain the cell
vertices. The list of vertices is “closed” for each cell in that the first listed vertex is equal to the last listed ver-
tex.
DO K = 1, NLAY
DO N = 1, NCPL
PRINT *, ’THIS IS CELL (LAYER, ICELL2D): ’, K, N
NVCELL = IAVERT(N+1) - IAVERT(N)
PRINT*, ’NUMBER OF VERTICES FOR CELL IS’, NVCELL
DO IPOS = IAVERT(N), IAVERT(N + 1) - 1
IVERT = JAVERT(IPOS)
X = VERTICES(1,IVERT)
Y = VERTICES(2,IVERT)
PRINT *,’ VERTEX PAIR: ’, X, Y
ENDDO
ENDDO
ENDDO
The IA and JA arrays are also contained in the DISV binary grid file. These arrays describe the cell con-
nectivity. Connections in the JA array correspond directly with the FLOW-JA-FACE record that is written to
the budget file.
The content of the DISV binary grid file is as follows.
Read NTXT strings of size LENTXT. Set the number of data records (NDAT) equal to number of lines that do not
begin with #.
Definition 0: ‘#Comment ...’ CHARACTER(LEN=LENTXT), comments not presently written
Definition 1: ‘NCELLS INTEGER NDIM 0 # ncells’ CHARACTER(LEN=LENTXT)
Definition 2: ‘NLAY INTEGER NDIM 0 # nlay’ CHARACTER(LEN=LENTXT)
Definition 3: ‘NCPL INTEGER NDIM 0 # ncpl’ CHARACTER(LEN=LENTXT)
Definition 4: ‘NVERT INTEGER NDIM 0 # nvert’ CHARACTER(LEN=LENTXT)
Definition 5: ‘NJAVERT INTEGER NDIM 0 # njavert’ CHARACTER(LEN=LENTXT)
Definition 6: ‘NJA INTEGER NDIM 0 # nja’ CHARACTER(LEN=LENTXT)
Definition 7: ‘XORIGIN DOUBLE NDIM 0 # xorigin’ CHARACTER(LEN=LENTXT)
Definition 8: ‘YORIGIN DOUBLE NDIM 0 # yorigin’ CHARACTER(LEN=LENTXT)
Definition 9: ‘ANGROT DOUBLE NDIM 0 # angrot’ CHARACTER(LEN=LENTXT)
Definition 10: ‘TOP DOUBLE NDIM 1 ncpl’ CHARACTER(LEN=LENTXT)
Definition 11: ‘BOTM DOUBLE NDIM 1 ncells’ CHARACTER(LEN=LENTXT)
Definition 12: ‘VERTICES DOUBLE NDIM 2 2 nvert’ CHARACTER(LEN=LENTXT)
Definition 13: ‘CELLX DOUBLE NDIM 1 ncpl’ CHARACTER(LEN=LENTXT)
Definition 14: ‘CELLY DOUBLE NDIM 1 ncpl’ CHARACTER(LEN=LENTXT)
Definition 15: ‘IAVERT INTEGER NDIM 1 ncpl+1’ CHARACTER(LEN=LENTXT)
Definition 16: ‘JAVERT INTEGER NDIM 1 njavert’ CHARACTER(LEN=LENTXT)
336 MODFLOW 6 – Description of Input and Output
DISU Grids
The binary grid file for DISU grids may contain information on the vertices and which vertices comprise
a cell, but this depends on whether or not the user provided the information in the DISU Package. This infor-
mation is not required unless the XT3D or SAVE_SPECIFIC_DISCHARGE options are specified in the NPF
Package. If provided, the x, y coordinates for each vertex are stored in the VERTICES array. The list of ver-
tices that comprise all of the cells is stored in the JAVERT array. The list of vertices for any cell can be found
using the IAVERT array. Pseudocode for looping through cells in the grid is listed above in the section on the
binary grid file for the DISV Package. As for the DISV binary grid file, the list of vertices is “closed” for each
cell in that the first listed vertex is equal to the last listed vertex.
Read NTXT strings of size LENTXT. Set the number of data records (NDAT) equal to number of lines that do not
begin with #.
Definition 0: ‘#Comment ...’ CHARACTER(LEN=LENTXT), comments not presently written
Definition 1: ‘NODES INTEGER NDIM 0 # nodes’ CHARACTER(LEN=LENTXT)
Definition 2: ‘NJA INTEGER NDIM 0 # nja’ CHARACTER(LEN=LENTXT)
Definition 3: ‘XORIGIN DOUBLE NDIM 0 # xorigin’ CHARACTER(LEN=LENTXT)
Definition 4: ‘YORIGIN DOUBLE NDIM 0 # yorigin’ CHARACTER(LEN=LENTXT)
Definition 5: ‘ANGROT DOUBLE NDIM 0 # angrot’ CHARACTER(LEN=LENTXT)
Definition 6: ‘TOP DOUBLE NDIM 1 nodes’ CHARACTER(LEN=LENTXT)
Definition 7: ‘BOT DOUBLE NDIM 1 nodes’ CHARACTER(LEN=LENTXT)
Definition 8: ‘IA INTEGER NDIM 1 ncells+1’ CHARACTER(LEN=LENTXT)
Definition 9: ‘JA INTEGER NDIM 1 nja’ CHARACTER(LEN=LENTXT)
Definition 10: ‘ICELLTYPE INTEGER NDIM 1 ncells’ CHARACTER(LEN=LENTXT)
If vertices are provided in the DISU Package, then 5 additional definitions are included:
Definition 11: ‘VERTICES DOUBLE NDIM 2 2 nvert’ CHARACTER(LEN=LENTXT)
Definition 12: ‘CELLX DOUBLE NDIM 1 nodes’ CHARACTER(LEN=LENTXT)
Definition 13: ‘CELLY DOUBLE NDIM 1 nodes’ CHARACTER(LEN=LENTXT)
Definition 14: ‘IAVERT INTEGER NDIM 1 nodes+1’ CHARACTER(LEN=LENTXT)
Definition 15: ‘JAVERT INTEGER NDIM 1 njavert’ CHARACTER(LEN=LENTXT)
If vertices are provided in the DISU Package, then 5 additional records are included:
Record 11: ((VERT(J,K),J=1,2),K=1,NVERT) DOUBLE PRECISION ARRAY SIZE(2,NVERT)
Record 12: (CELLX(J),J=1,NODES) DOUBLE PRECISION ARRAY SIZE(NODES)
Record 13: (CELLY(J),J=1,NODES) DOUBLE PRECISION ARRAY SIZE(NODES)
Record 14: (IAVERT(J),J=1,NODES+1) INTEGER ARRAY SIZE(NODES+1)
Record 15: (JAVERT(J),J=1,NJAVERT) INTEGER ARRAY SIZE(NJAVERT)
Description of Binary Output Files 339
DIS Grids
For each stress period, time step, and layer for which data are saved to the binary output file, the following
two records are written:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,NCOL,NROW,ILAY
Record 2: ((DATA(J,I,ILAY),J=1,NCOL),I=1,NROW)
where
DISV Grids
For each stress period, time step, and layer for which data are saved to the binary output file, the following
two records are written:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,NCPL,1,ILAY
Record 2: (DATA(J,ILAY),J=1,NCPL)
where
DISU Grids
For each stress period, time step, and layer for which data are saved to the binary output file, the following
two records are written:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,NODES,1,1
Record 2: (DATA(N),N=1,NODES)
where
The dependent variable can be saved to a binary file for the LAK, SFR, and MAW Packages of the GWF
Model; LKT, SFT, MWT, and UZT Packages of the GWT Model; and LKE, SFE, MWE, and UZE Packages
of the GWE Model. For the UZF Package within a GWF Model, the calculated water content may be written
to a binary output file. Table 47 shows the text identifier and description of the dependent variable for these
packages.
Table 47. Dependent variable written for advanced flow and transport packages.
For each stress period, time step, and layer for which data are saved to the binary output file, the following
two records are written:
Record 1: KSTP,KPER,PERTIM,TOTIM,TEXT,MAXBOUND,1,1
Record 2: (DATA(N),N=1,MAXBOUND)
where
Record 1: KSTP,KPER,TEXT,NDIM1,NDIM2,-NDIM3
Record 2: IMETH,DELT,PERTIM,TOTIM
IMETH=6: Read text identifiers, auxiliary text labels, and list of information.
Record 3: TXT1ID1
Record 4: TXT2ID1
Record 5: TXT1ID2
Record 6: TXT2ID2
Record 7: NDAT
Record 8: (AUXTXT(N),N=1,NDAT-1)
Record 9: NLIST
Record 10: ((ID1(N),ID2(N),(DATA2D(I,N),I=1,NDAT)),N=1,NLIST)
where
IMETH is an integer code that specifies the form of the remaining data;
DELT is the double precision length of the timestep;
PERTIM is the double precision time value for the current stress period;
TOTIM is the double precision total simulation time;
DATA is a double precision array of budget values;
TXT1ID1 is a character string (character*16) containing the first text identifier for information in ID1;
TXT2ID1 is a character string (character*16) containing the second text identifier for information in ID1;
TXT1ID2 is a character string (character*16) containing the model name for information in ID2;
TXT2ID2 is a character string (character*16) containing the package or model name for information in ID2;
NDAT is the number of columns in DATA2D, which is the number of auxiliary values plus 1;
AUXTXT is an array of size NDAT - 1 containing character*16 text names for each auxiliary variable;
NLIST is the size of the list;
ID1 is the first identifying number;
ID2 is the second identifying number, and
DATA2D is a double precision 2D array of size (NDAT,NLIST). The first column in DATA2D is the budget
term; any remaining columns are auxiliary variable values.
Intercell Flows
MODFLOW 6 writes a special budget record for flow between connected cells. This record has a TEXT
identifier equal to FLOW-JA-FACE. For this record (corresponding to Record 3 for IMETH=1), the total num-
ber of values is equal to NJA, which is the total number of connections. For each cell, the number of connec-
tions is equal to the number of connections to adjacent cells plus one, to represent the cell itself. Therefore,
this budget record corresponds to the JA array. A value of zero is written to the node positions in the FLOW-
JA-FACE record. The JA array that is written in the binary grid corresponds directly to the FLOW-JA-FACE
record.
For regular MODFLOW grids, there are no longer records for FLOW RIGHT FACE, FLOW FRONT
FACE, and FLOW LOWER FACE. Instead, intercell flows are written to the FLOW-JA-FACE record. Writ-
ing FLOW-JA-FACE allows face flows to be specified in straightforward manner, particularly when the IDO-
MAIN capability is used to remove cells and specify vertical pass-through cells.
The following pseudocode shows how to loop through and process intercell flows using the IA and JA
arrays (which can be read from the binary grid file) and the FLOWJA array, which is written to the budget
file. For a cell (N) that has been eliminated with IDOMAIN, the value for IA(N) and IA(N+1) will be equal,
indicating that there are no connections or flows for that cell.
DO N = 1, NCELLS
PRINT *, ’THIS IS CELL: ’, N
NCON = IA(N+1) - IA(N) - 1
IF(NCON<0) NCON=0
PRINT*, ’NUMBER OF CONNECTED CELLS IS ’, NCON
DO IPOS = IA(N) + 1, IA(N + 1) - 1
M = JA(IPOS)
Q = FLOWJA(IPOS)
PRINT *,’ N M Q: ’, N,M,Q
ENDDO
ENDDO
array contains intercell flows and is of size NJA. If the TEXT identifier in Record 1 is something other than
FLOW-JA-FACE (STO-SS or STO-SY, for example), then the dimension variables in Record 1 (NDIM1,
NDIM2, and NDIM3) provide information about the size of the grid (table 48).
Table 48. Budget file variations that depend on discretization package type.
Table 49. Types of information that may be contained in the GWF Model budget file.
Table 49. Types of information that may be contained in the GWF Model budget file.
For each stress period, time step, and compaction data type that is saved to the CSUB Package binary out-
put files as IMETH=1 budget file type. The compaction data that are written to the CSUB Package binary files
are summarized in Tables 50.
Table 50. Data written to the CSUB Package compaction binary output files.
For each stress period, time step, and data type that is saved to the LAK, MAW, SFR, and UZF Packages
binary output files as IMETH=6 budget file type. For all advanced packages, NDIM1 is equal to the number of
nodes, NDIM2 is equal to 1, and NDIM3 is equal to -1. The data that are written to the LAK, MAW, SFR, and
UZF Package binary files are summarized in Tables 51 to 54, respectively.
Table 51. Data written to the LAK Package binary output file. Flow terms are listed in the order they are written to the LAK
Package binary output file.
Table 52. Data written to the MAW Package binary output file. Flow terms are listed in the order they are written to the MAW
Package binary output file.
Table 53. Data written to the SFR Package binary output file. Flow terms are listed in the order they are written to the SFR
Package binary output file.
Table 54. Data written to the UZF Package binary output file. Flow terms are listed in the order they are written to the UZF
Package binary output file.
The type of information that is written to the budget file for a GWT Model depends on the packages used
for the model and whether or not the save flags are set. Table 55 contains a list of the types of information that
may be contained in a GWT Model budget file. In all cases, the flows in table 55 are solute mass flows (in
mass per time) to or from a GWT Model cell. Intercell flows are written as FLOW-JA-FACE using IMETH=1.
The remaining flow terms in table 55 are all written using IMETH=6. When IMETH=6 is used, the
records contain additional text descriptors and two identifying numbers. For all records in the GWT Model
budget file, TXT1ID1 is the name of the GWT Model and TXT2ID1 is also the name of the GWT Model.
These text identifiers describe what is contained in ID1. For the GWT Model budget file, ID1 is the cell or
node number in the GWT Model grid. The second set of text identifiers refer to the information in ID2. Unless
noted otherwise in the description in table 55, TXT1ID2 is the name of the GWT Model, TXT2ID2 is the
name of the package, and ID2 is the bound number in the package; for example, this is the first constant con-
centration cell, second constant concentration cell, and so forth.
Table 55. Types of information that may be contained in the GWT Model budget file. All terms represent solute flows in dimen-
sions of mass per time.
For each stress period, time step, and data type that is saved to the LKT, MWT, SFT, and UZT Packages
binary output files as IMETH=6 budget file type. For all advanced transport packages, NDIM1 is equal to the
number of nodes, NDIM2 is equal to 1, and NDIM3 is equal to -1. The data that are written to the LKT, MWT,
SFT, and UZT Package binary files are mass flows with entries similar to those listed in Tables 51 to 54 for the
advanced flow packages.
Description of Binary Output Files 357
Table 56. Types of information that may be contained in the GWE Model budget file. All terms represent thermal energy flows
in dimensions of energy per time.
For each stress period, time step, and data type that is saved to the LKE, MWE, SFE, and UZE Packages
binary output files as IMETH=6 budget file type. For all advanced transport packages, NDIM1 is equal to the
358 MODFLOW 6 – Description of Input and Output
number of nodes, NDIM2 is equal to 1, and NDIM3 is equal to -1. The data that are written to the LKE, MWE,
SFE, and UZE Package binary files are mass flows with entries similar to those listed in Tables 51 to 54 for the
advanced flow packages.
Description of Binary Output Files 359
Table 57. Types of information that may be contained in the PRT Model budget file. All terms represent particle mass flows in
dimensions of mass per time.
where
TYPE (bytes 1–4 of Record 1) is “cont “ — “cont” indicates the file contains continuous observations;
PRECISION (bytes 6–11 of Record 1) will always be “double” to indicate that floating-point values are writ-
ten in double precision (8 bytes);
LENOBSNAME (bytes 12–15 of Record 1) is an integer indicating the number of characters used to store each
observation name in following records (in the initial release of MODFLOW 6, LENOBSNAME equals
40);
NOBS (4-byte integer) is the number of observations recorded in the file;
OBSNAME (LENOBSNAME bytes) is an observation name;
TIME (floating-point) is the simulation time; and
SIMVALUE (floating-point) is the simulated value.
Description of Binary Output Files 361
References Cited
Anderman, E.R., and Hill, M.C., 2000, MODFLOW-2000, the U.S. Geological Survey modular ground-water
model-documentation of the Hydrogeologic-Unit Flow (HUF) Package: U.S. Geological Survey Open-File
Report 2000–342, 89 p.
Anderman, E.R., and Hill, M.C., 2003, MODFLOW-2000, the U.S. Geological Survey modular ground-water
model—Three additions to the Hydrogeologic-Unit Flow (HUF) Package: Alternative storage for the upper-
most active cells, flows in hydrogeologic units, and the hydraulic-conductivity depth-dependence (KDEP)
capability: U.S. Geological Survey Open-File Report 2003–347, 36 p.
Bakker, Mark, Schaars, Frans, Hughes, J.D., Langevin, C.D., and Dausman, A.M., 2013, Documentation of
the seawater intrusion (SWI2) package for MODFLOW: U.S. Geological Survey Techniques and Methods,
book 6, chap. A46, 47 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/publication/tm6A46.
Banta, E.R., 2000, MODFLOW-2000, the U.S. Geological Survey Modular Ground-Water Model; documenta-
tion of packages for simulating evapotranspiration with a segmented function (ETS1) and drains with return
flow (DRT1): U.S. Geological Survey Open File Report 2000–466, 127 p.
Banta, E.R., 2011, MODFLOW-CDSS, a version of MODFLOW-2005 with modifications for Colorado Deci-
sion Support Systems: U.S. Geological Survey Open-File Report 2011–1213, 19 p., accessed June 27, 2017,
at https://pubs.er.usgs.gov/publication/ofr20111213.
Bedekar, Vivek, Morway, E.D., Langevin, C.D., and Tonkin, M.J., 2016, MT3D-USGS version 1: A U.S.
Geological Survey release of MT3DMS updated with new and expanded transport capabilities for use
with MODFLOW: U.S. Geological Survey Techniques and Methods, book 6, chap. A53, 69 p., https:
//doi.org/10.3133/tm6a53, http://dx.doi.org/10.3133/tm6A53.
Fenske, J.P., Leake, S.A., and Prudic, D.E., 1996, Documentation of a computer program (RES1) to simulate
leakage from reservoirs using the modular finite-difference ground-water flow model (MODFLOW): U.S.
Geological Survey Open-File Report 96–364, 51 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/
publication/ofr96364.
Halford, K.J., and Hanson, R.T., 2002, User guide for the drawdown-limited, multi-node well (MNW) pack-
age for the U.S. Geological Survey’s modular three-dimensional finite-difference ground-water flow model,
versions MODFLOW-96 and MODFLOW-2000: U.S. Geological Survey Open-File Report 02–293, 33 p.
Hanson, R.T., and Leake, S.A., 1999, Documentation for HYDMOD—A program for extracting and process-
ing time-series data from the U.S. Geological Survey’s modular three-dimensional finite-difference ground-
water flow model: U.S. Geological Survey Open-File Report 98–564, 57 p., accessed June 27, 2017, at
https://pubs.er.usgs.gov/publication/ofr98564.
Harbaugh, A.W., 2005, MODFLOW-2005, the U.S. Geological Survey modular ground-water model—the
Ground-Water Flow Process: U.S. Geological Survey Techniques and Methods, book 6, chap. A16, vari-
ously paged, accessed June 27, 2017, at https://pubs.usgs.gov/tm/2005/tm6A16/.
Healy, R.W., and Ronan, A.D., 1996, Documentation of Computer Program VS2DH for Simulation of Energy
Transport in Variably Saturated Porous Media: Modification of the U.S. Geological Survey’s Computer
Program VS2DT: U.S. Geological Survey Water-Resources Investigation Report 96-4230, 36 p., accessed
September 27, 2022, at https://doi.org/10.3133/wri964230, at https://pubs.usgs.gov/wri/1996/4230/report.
pdf .
Hecht-Mendez, J., Molina-Giraldo, N., Blum, P., and Bayer, P., 2010, Evaluating mt3dms for heat transport
simulation of closed geothermal systems: Groundwater, v. 48, no. 5, p. 741–756, https://doi.org/10.1111/j.
1745-6584.2010.00678.x.
R–2 MODFLOW 6 – Description of Input and Output
Hill, M.C., 1990, Preconditioned Conjugate-Gradient 2 (PCG2), a computer program for solving ground-water
flow equations: U.S. Geological Survey Water-Resources Investigations Report 90–4048, 25 p., accessed
June 27, 2017, at https://pubs.usgs.gov/wri/wrir_90-4048.
Hill, M.C., Banta, E.R., Harbaugh, A.W., and Anderman, E.R., 2000, MODFLOW-2000, the U.S. Geological
Survey modular ground-water model—User guide to the observation, sensitivity, and parameter-estimation
processes and three post-processing programs: U.S. Geological Survey Open-File Report 00–184, 210 p.
Hoffmann, Jörn, Leake, S.A., Galloway, D.L., and Wilson, A.M., 2003, MODFLOW-2000 Ground-Water
Model—User Guide to the Subsidence and Aquifer-System Compaction (SUB) Package: U.S. Geolog-
ical Survey Open-File Report 03–233, 44 p., accessed June 27, 2017, at https://pubs.usgs.gov/of/2003/
ofr03-233/.
Hsieh, P.A., and Freckleton, J.R., 1993, Documentation of a computer program to simulate horizontal-flow
barriers using the U.S. Geological Survey’s modular three-dimensional finite-difference ground-water flow
model: U.S. Geological Survey Open-File Report 92–477, 32 p., accessed June 27, 2017, at https://pubs.er.
usgs.gov/publication/ofr92477.
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
groundwater model (MODFLOW-2005): U.S. Geological Survey Techniques and Methods, book 6, chap.
A40 (Version 1.0), 113 p., accessed June 27, 2017, at https://pubs.usgs.gov/tm/6a40/.
Hughes, J.D., Langevin, C.D., and Banta, E.R., 2017, Documentation for the MODFLOW 6 framework: U.S.
Geological Survey Techniques and Methods, book 6, chap. A57, 36 p., https://doi.org/10.3133/tm6A57.
Hughes, J.D., Russcher, M.J., Langevin, C.D., Morway, E.D., and McDonald, R.R., 2022a, The MODFLOW
Application Programming Interface for simulation control and software interoperability: Environmental
Modelling & Software, v. 148, 105257, https://doi.org/10.1016/j.envsoft.2021.105257.
Hughes, J.D., Leake, S.A., Galloway, D.L., and White, J.T., 2022b, Documentation for the Skeletal Storage,
Compaction, and Subsidence (CSUB) Package of MODFLOW 6: U.S. Geological Survey Techniques and
Methods, book 6, chap. A62, 57 p., https://doi.org/10.3133/tm6A62.
Kipp, K.L., 1987, HST3D: A Computer Code for Simulation of Heat and Solute Transport in Three-
Dimensional Ground-Water Flow Systems: U.S. Geological Survey Water-Resources Investigation Report
86-4095, 517 p., accessed September 27, 2022, at https://pubs.usgs.gov/wri/1986/4095/report.pdf .
Konikow, L.F., Hornberger, G.Z., Halford, K.J., and Hanson, R.T., 2009, Revised multi-node well (MNW2)
package for MODFLOW ground-water flow model: U.S. Geological Survey Techniques and Methods, book
6, chap. A30, 67 p., accessed June 27, 2017, at https://pubs.usgs.gov/tm/tm6a30/.
Langevin, C.D., Thorne Jr, D.T., Dausman, A.M., Sukop, M.C., and Guo, Weixing, 2008, SEAWAT Version
4—A computer program for simulation of multi-species solute and heat transport: U.S. Geological Sur-
vey Techniques and Methods, book 6, chap. A22, 39 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/
publication/tm6A22.
Langevin, C.D., Hughes, J.D., Provost, A.M., Banta, E.R., Niswonger, R.G., and Panday, Sorab, 2017, Doc-
umentation for the MODFLOW 6 Groundwater Flow (GWF) Model: U.S. Geological Survey Techniques
and Methods, book 6, chap. A55, 197 p., https://doi.org/10.3133/tm6A55.
Langevin, C.D., Panday, Sorab, and Provost, A.M., 2020, Hydraulic-head formulation for density-dependent
flow and transport: Groundwater, v. 58, no. 3, p. 349–362.
Langevin, C.D., Provost, A.M., Panday, Sorab, and Hughes, J.D., 2022, Documentation for the MODFLOW
6 Groundwater Transport (GWT) Model: U.S. Geological Survey Techniques and Methods, book 6, chap.
A61, 56 p., https://doi.org/10.3133/tm6A61.
References Cited R–3
Langevin, C.D., Hughes, J.D., Provost, A.M., Russcher, M.J., and Panday, Sorab, 2024, MODFLOW as a con-
figurable multi-model hydrologic simulator: Groundwater, v. 62, no. 1, p. 111–123, https://doi.org/10.1111/
gwat.13351.
Leake, S.A., and Galloway, D.L., 2007, MODFLOW Ground-water model—User guide to the Subsidence
and Aquifer-System Compaction Package (SUB-WT) for Water-Table Aquifers: U.S. Geological Survey
Techniques and Methods, book 6, chap. A23, 42 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/
publication/tm6A23.
Leake, S.A., and Lilly, M.R., 1997, Documentation of computer program (FHB1) for assignment of transient
specified-flow and specified-head boundaries in applications of the modular finite-diference ground-water
flow model (MODFLOW): U.S. Geological Survey Open-File Report 97–571, 50 p., accessed June 27,
2017, at https://pubs.er.usgs.gov/publication/ofr97571.
Ma, Rui, and Zheng, Chunmiao, 2010, Effects of density and viscosity in modeling heat as a groundwater
tracer: Groundwater, v. 48, no. 3, p. 380–389, https://doi.org/10.1111/j.1745-6584.2009.00660.x.
Maddock, Thomas, III, Baird, K.J., Hanson, R.T., Schmid, Wolfgang, and Ajami, Hoori, 2012, RIP-ET—A
Riparian Evapotranspiration Package for MODFLOW-2005: U.S. Geological Survey Techniques and Meth-
ods, book 6, chap. A39, 76 p., accessed June 27, 2017, at https://pubs.usgs.gov/tm/tm6a39/.
Merritt, M.L., and Konikow, L.F., 2000, Documentation of a computer program to simulate lake-aquifer inter-
action using the MODFLOW ground-water flow model and the MOC3D solute-transport model: U.S.
Geological Survey Water-Resources Investigations Report 00–4167, 146 p., accessed June 27, 2017, at
https://pubs.er.usgs.gov/publication/wri004167.
Niswonger, R.G., and Prudic, D.E., 2005, Documentation of the Streamflow-Routing (SFR2) Package to
include unsaturated flow beneath streams—A modification to SFR1: U.S. Geological Survey Techniques
and Methods, book 6, chap. A13, 50 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/publication/
tm6A13.
Niswonger, R.G., Prudic, D.E., and Regan, R.S., 2006, Documentation of the Unsaturated-Zone Flow (UZF1)
Package for modeling unsaturated flow between the land surface and the water table with MODFLOW-
2005: U.S. Geological Survey Techniques and Methods, book 6, chap. A19, 62 p., accessed June 27, 2017,
at https://pubs.usgs.gov/tm/2006/tm6a19/.
Panday, Sorab, Langevin, C.D., Niswonger, R.G., Ibaraki, Motomu, and Hughes, J.D., 2013, MODFLOW-
USG version 1—An unstructured grid version of MODFLOW for simulating groundwater flow and tightly
coupled processes using a control volume finite-difference formulation: U.S. Geological Survey Techniques
and Methods, book 6, chap. A45, 66 p., accessed June 27, 2017, at https://pubs.usgs.gov/tm/06/a45/.
Pollock, D.W., 2016, User guide for MODPATH Version 7—A particle-tracking model for MODFLOW: U.S.
Geological Survey Open-File Report 2016–1086, 35 p., accessed June 27, 2017, at https://doi.org/10.3133/
ofr20161086.
Provost, A.M., Langevin, C.D., and Hughes, J.D., 2017, Documentation for the “XT3D” Option in the Node
Property Flow (NPF) Package of MODFLOW 6: U.S. Geological Survey Techniques and Methods, book 6,
chap. A56, 46 p., https://doi.org/10.3133/tm6A56.
Prudic, D.E., 1989, Documentation of a computer program to simulate stream-aquifer relations using a modu-
lar, finite-difference, ground-water flow model: U.S. Geological Survey Open-File Report 88–729, 113 p.,
accessed June 27, 2017, at https://pubs.er.usgs.gov/publication/ofr88729.
Prudic, D.E., Konikow, L.F., and Banta, E.R., 2004, A New Streamflow-Routing (SFR1) Package to simulate
stream-aquifer interaction with MODFLOW-2000: U.S. Geological Survey Open File Report 2004–1042,
104 p., accessed June 27, 2017, at https://pubs.er.usgs.gov/publication/ofr20041042.
R–4 MODFLOW 6 – Description of Input and Output
Voss, C.I., 1984, SUTRA—A finite-element simulation model for saturated-unsaturated fluid-density-
dependent ground-water flow with energy transport or chemically-reactive single-species solute transport:
U.S. Geological Survey Water-Resources Investigations Report 84–4369, 409 p.
Zheng, Chunmiao, 2010, MT3DMS v5.3, Supplemental User’s Guide: Technical Report Prepared for the U.S.
Army Corps of Engineers, 51 p.
Zheng, Chunmiao, and Wang, P.P., 1999, MT3DMS—A modular three-dimensional multi-species transport
model for simulation of advection, dispersion and chemical reactions of contaminants in groundwater sys-
tems; Documentation and user’s guide: Contract report SERDP–99–1: Vicksburg, Miss., U.S. Army Engi-
neer Research and Development Center, 169 p.
Zheng, Chunmiao, Hill, M.C., and Hsieh, P.A., 2001, MODFLOW-2000, the U.S. Geological Survey Modu-
lar Ground-Water Model—User guide to the LMT6 package, the linkage with MT3DMS for multi-species
mass transport modeling: U.S. Geological Survey Open-File Report 01–82, 43 p., accessed June 27, 2017,
at https://pubs.er.usgs.gov/publication/ofr0182.
Appendix A. List of Blocks A–1
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
Table A–1. List of block names organized by component and input file type. OPEN/CLOSE indicates whether or not the block
information can be contained in separate file.—Continued
https://doi.org/10.5066/F76Q1VQV