Release 6.3.0
Release 6.3.0
Tables
1. List of MODFLOW 6 Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
i
ii
Blank page
Introduction
This document describes MODFLOW 6 Version mf6.3.0. This distribution is packaged for personal com-
puters using modern versions of the Microsoft Windows, Macintosh, and Linux operating systems, although
the programs included in the distribution may run on older operating system versions. The binary executable
files in the distribution should run on most personal computers.
Version numbers for MODFLOW 6 follow a major.minor.revision format. The major number is increased
when there are substantial new changes that may break backward compatibility. The minor number is
increased when important, but relatively minor new functionality is added. The revision number is incre-
mented when errors are corrected in either the program or input files.
MODFLOW 6 is tested with a large number of example problems, and new capabilities are thoroughly
tested as they are integrated into the program. Additional testing can sometimes reveal errors in the program.
These errors are fixed as soon as possible and made available in a subsequent release. Every effort is made to
maintain backward compatibility of the format for MODFLOW 6 input files; however, this goal is not always
possible, especially for newer packages and models. Changes to the program to add new functionality, correct
errors, or alter the format for an input file are summarized in this release notes document.
Release History
A list of all MODFLOW 6 releases is shown in table 1. Changes introduced in previous releases are
described in Appendix A.
– New publications describing MODFLOW 6 were released, including Hughes and others (2022a),
Langevin and others (2022), and Hughes and others (2022b).
– The GWF-GWF Exchange was updated to support XT3D flow calculations along the edges of con-
nected GWF Models. The XT3D flow calculation is an alternative to the ghost-node correction
and has been shown to provide accurate flow calculations for cell connections that do not meet the
control-volume finite-difference requirements. This new capability allows the GWF-GWF Exchange
to tightly couple a wide variety of parent and child grid configurations. The new XT3D option for
the GWF-GWF Exchange can be activated by specifying XT3D in the options block of the GWF-
GWF Exchange input file. The XT3D implementation for GWF-GWF is based on a new general-
ized coupling method that is described in the Supplemental Technical Information document dis-
tributed with this release.
– A new capability was added to support tight coupling of GWT Models through a new GWT-GWT
Exchange. The new GWT-GWT Exchange can be used to connect any two GWT Models in a man-
ner similar to the GWF-GWF Exchange. This allows transport to be represented from one GWT
Model to another. The GWT-GWT Exchange calculates advective and dispersive fluxes and also
supports the Mover Transport (MVT) Package. This first release of the GWT-GWT Exchange is
limited to simulations in which the corresponding GWF Models and GWF-GWF Exchanges are run
concurrently within the same simulation; the new capability does not support simulation of trans-
port using groundwater flows saved from a previous simulation; however, this may be supported in
the future. The new GWT-GWT functionality is activated by creating a GWT-GWT input file and
specifying a GWT6-GWT6 exchange in the EXCHANGEDATA block of the simulation name file
(mfsim.nam). The GWT-GWT Exchange is based on a new generalized coupling method that is
described in the Supplemental Technical Information document distributed with this release.
– This release introduces the Time-Varying hydraulic conductivity (TVK) and the Time-Varying Stor-
age (TVS) options for the Node Property Flow (NPF) and Storage (STO) Packages, respectively, of
the GWF Model. The TVK option is activated by specifying the TVK6 keyword in the OPTIONS
block of the NPF Package and by providing a TVK6 input file. The TVS option is activated by spec-
ifying the TVS6 keyword in the OPTIONS block of the STO Package, and by providing a TVS6
input file. The TVK6 and TVS6 input files are described in input and output guide (mf6io.pdf).
Technical information about the TVK and TVS options is provided in the Supplemental Technical
Information report that is provided with the distribution.
– The option already existed to provide binary budget and head file information from a GWF simula-
tion for only the first time step of a given stress period, in which case that information will be used
for all time steps in that stress period in a GWT simulation that reads from those files. The behavior
of this option has been extended such that if the binary budget and head file information provided
for the final stress period of the GWF simulation is for only one time step, that information will be
used for any subsequent time steps and stress periods in the GWT simulation. This extended behav-
ior includes as a special case the use of binary budget and head file information from only one time
step in only one stress period (for example, a single steady-state GWF stress period) for all time
steps in all stress periods in a GWT simulation.
– Added new file-based input capability for the GWT Source and Sink Mixing (SSM) Package. The
SSM Package previously required that all source and sink concentrations be provided as auxiliary
variables for corresponding GWF stress packages. The SSM Package now supports an optional new
FILEINPUT block, which can be provided with package names and file names. Files referenced in
the FILEINPUT block can be used to provide time-varying source and sink concentrations. Descrip-
tions for this new capability are described in the input and output guide (mf6io.pdf) under the GWT
3
SSM Package, and the GWT Stress Package Concentrations (SPC) for list-based input and array-
based input. If used, a single SPC6 input file can be provided for a corresponding GWF stress pack-
age. Either an SPC6 input file or the auxiliary variable approach can be used to supply concentra-
tions for a single GWF stress package, but not both.
– Added BUDGETCSV option to GWF and GWT model output control and to advanced packages
(SFR, LAK, MAW, UZF, MVR, SFT, LKT, MWT, UZT, and MVT) that produce summary tables
of budget information. If activated, this option will cause a comma-separated value (CSV) file of
the model budget terms to be written to a user-specified output file. These output CSV files can be
easily read into a spreadsheet or scripting language for plotting of budget terms.
– Added option to use irregular cross sections to define the reach geometry for individual reaches in
the SFR Package. Cross-section data for irregular cross-sections are defined in a separate Cross-
Section Table Input File. The station-elevation data for an irregular cross section are specified as
xfraction and height data, which is converted to station position using the specified reach width
(RWID) and elevation using the specified bottom elevation of the reach (RTP). Manning’s rough-
ness 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 chan-
nel and overbank Manning’s roughness coefficients). SFR Package irregular cross sections and the
method used to solve for streamflow in a reach with non-uniform Manning’s roughness coefficients
is a generalization of the methods used for 8-point cross-sections in the SFR Package for previous
versions of MODFLOW (Prudic and others, 2004).
EXAMPLES
– A new example, ex-gwtgwt-mt3dms-p10, was added to demonstrate the new GWT-GWT Exchange.
– Fixed a bug that caused the last binary budget and head file information provided by a GWF simu-
lation in a given stress period to be used for all subsequent GWT simulation time steps in that stress
period, even if binary budget and head file information was provided for more than one time step in
that stress period. In that situation, the GWF time steps must match the GWT time steps one-for-
one.
– Boundary packages, such as WEL, DRN and GHB, for example, read lists of data using a general
list reader. For text input, the list of data would not be read correctly if it was longer than 300 char-
acters wide. Most lists would normally be less than 300 characters unless a large number of aux-
iliary variables were specified. In this case, information beyond 300 characters would not be read.
The list reader was modified to use an unlimited character length so that any number of auxiliary
variables can be specified.
– The Observation (OBS) functionality can optionally write simulated values to a comma-separated
value (CSV) output file. The OBS input file contains a DIGITS option, which controls the number
of digits written to the CSV output file. In some cases the “E” character was not written, making
it difficult to read the CSV output file with other programs. New functionality was programmed
to write observations using the maximum number of digits stored internally by the program using
the G0 Fortran specifier. The default value for DIGITS was five, but this has been changed to this
maximum number of digits. This maximum number of digits can also be activated by specifying a
zero for DIGITS. For most applications, observations should be written with the default number of
digits so that no precision is lost in the output.
4 MODFLOW 6 Release Notes
– Added a check to the Flow Model Interface (FMI) Package of the GWT Model that will cause the
program to terminate with an error if flow and budget files needed from a flow model cannot be
located.
– The Output Control Package did not correctly determine if the end of a stress period was reached
if the Adaptive Time Stepping (ATS) option was active. Output Control works correctly now with
ATS.
– Budget information for individual boundary package entries can be written to the model list file in a
table form. The table no longer includes boundaries that are in cells that are dry.
– When the simulated concentration in a cell is negative, which can occur due to the numerical meth-
ods used to solve the transport equation, then any sinks present in the cell should not add or remove
mass. The program was modified so that transport through sinks is deactivated if the simulated con-
centration in a cell is negative.
– Parsing of observation input was corrected so that observation names can have spaces if the observa-
tion name is enclosed in quotations.
– The GWF Node Property Flow (NPF) Package can optionally calculate the three components of
specific discharge. The program calculates these components using an interpolation method based
on the XT3D method, the simulated flows across each cell face, and distances from the center of the
cell to each cell face. This release contains a fix for a coding error in the calculation of the distance
from the center of the cell to the cell face. The fix will affect the calculated specific discharge for
model grids that have variable cell sizes. Because specific discharge is used in the calculation of the
dispersion coefficients for GWT Models, simulated concentrations with this release may be different
from simulated concentrations from previous releases; however, these concentration differences are
expected to be minor.
STRESS PACKAGES
– Fixed a bug in the Recharge (RCH) and Evapotranspiration (EVT) Packages that would occur with
array-based input (READASARRAYS) combined with the Time-Array Series (TAS) functional-
ity. Because the TAS functionality only works for DIS and DISV models, this fix does not have any
effect on models that use DISU discretization. The bug would occur when one or more cells in the
upper layer were removed using the IDOMAIN capability. In this special case, the time-array series
values did not carry over to the correct locations in the RCH and EVT arrays. This error would be
difficult to identify for complex models, because the model would run to completion without any
errors. The RCH and EVT Packages were modified to maintain direct correspondence between the
nodelist and bound arrays with the arrays provided to the TAS utility. A small and intended con-
sequence of this fix is that the ID2 value written to the binary budget file for array-based RCH and
EVT Packages will correspond to the consecutive cell number in the top layer.
– Recharge and evapotranspiration flows that are written to the GWF Model binary budget file are
marked with the text headers “RCH” and “EVT”, respectively. In order to support the array-based
input for SSM concentrations, these text headers are marked as “RCHA” and “EVTA”, respectively,
if the READASARRAYS option is specified for the package. This change will have no effect on
simulation results; however, post processing capabilities may need to be adjusted to account for this
minor renaming convention.
– When the PRINT_FLOWS option was used with the Source and Sink Mixing (SSM) Package, the
cell ID numbers written to the listing file were incorrect. The SSM Package was fixed to output the
correct cell ID.
5
– Add new AUTO_FLOW_REDUCE_CSV option for the Well Package. If activated, then this option
will result in information being written to a comma-separated value file for each well and for each
time step in which the extraction rate is reduced. Well extraction rates can be reduced for some
groundwater conditions if the AUTO_FLOW_REDUCE option is activated. Information is not writ-
ten for wells in which the extraction rate is equal to the user-specified extraction rate.
– The Streamflow Routing (SFR) Package would terminate with a floating point error when calculat-
ing the stream depth as a function of flow rate, if the flow rate was slightly negative. Added a condi-
tional check to ensure that the stream depth is calculated as zero if the calculated flow rate is zero or
less.
SOLUTION
– The way in which constant head and constant concentration boundary conditions are handled when
the conjugate gradient method is used for the linear solve was modified. In previous versions, con-
stant head and concentration conditions would result in an asymmetric coefficient matrix. The pro-
gram has been modified so that if the conjugate gradient method is selected for the linear solution,
then matrix symmetry is preserved by adding adding flows into and out of constant head and con-
centration cells to the right-hand side of connected cells.
1. The AUXMULTNAME option can be used to scale input values, such as riverbed conductance, using
values in an auxiliary column. When this AUXMULTNAME option is used, the multiplier value in the
AUXMULTNAME column should not be represented with a time series unless the value to scale is also
represented with a time series.
2. The capability to use Unsaturated Zone Flow (UZF) routing beneath lakes and streams has not been
implemented.
3. For the Groundwater Transport (GWT) Model, the decay and sorption processes do not apply to the LKT,
SFT, MWT and UZT Packages.
4. The GWT Model does not work with the CSUB Package of the GWF Model.
5. The GWT-GWT Exchange requires that both GWF Models are run concurrently in the same simulation.
There is not an option to read GWF-GWF flows from a previous simulation.
6. The Buoyancy (BUY) Package of the GWF Model cannot be used when the XT3D option is activated for
the Node Property Flow (NPF) Package.
7. If a GWF-GWF Exchange is activated with the XT3D option, then the two connected GWF Models can-
not have BUY Packages active.
In addition to the issues shown here, a comprehensive and up-to-date list is available under the issues tab
at https://github.com/MODFLOW-USGS/modflow6.
6 MODFLOW 6 Release Notes
Distribution File
The following distribution file is for use on personal computers: mf6.3.0.zip. The distribution file is a
compressed zip file. The following directory structure is incorporated in the zip file:
mf6.3.0/
bin/
doc/
examples/
ex-gwf-advtidal/
ex-gwf-bcf2ss-p01a/
ex-gwf-bcf2ss-p02a/
ex-gwf-bump-p01a/
ex-gwf-bump-p01b/
ex-gwf-bump-p01c/
ex-gwf-csub-p01/
ex-gwf-csub-p02a/
ex-gwf-csub-p02b/
ex-gwf-csub-p02c/
es-001/
es-002/
es-005/
es-010/
es-020/
es-050/
es-100/
hb-001/
hb-002/
hb-005/
hb-010/
hb-020/
hb-050/
hb-100/
ex-gwf-csub-p03a/
ex-gwf-csub-p03b/
ex-gwf-csub-p04/
ex-gwf-disvmesh/
ex-gwf-drn-p01a/
ex-gwf-drn-p01b/
ex-gwf-fhb/
ex-gwf-hanic/
ex-gwf-hanir/
ex-gwf-hanix/
ex-gwf-lak-p01/
ex-gwf-lak-p02/
ex-gwf-lgr/
ex-gwf-lgrv-gc/
ex-gwf-lgrv-gr/
7
ex-gwf-lgrv-lgr/
ex-gwf-maw-p01a/
ex-gwf-maw-p01b/
ex-gwf-maw-p02/
ex-gwf-maw-p03a/
ex-gwf-maw-p03b/
ex-gwf-maw-p03c/
ex-gwf-nwt-p02a/
ex-gwf-nwt-p02b/
ex-gwf-nwt-p03a/
ex-gwf-nwt-p03b/
ex-gwf-sagehen/
ex-gwf-sfr-p01/
ex-gwf-sfr-p01b/
ex-gwf-spbc/
ex-gwf-twri01/
mf2005/
ex-gwf-u1disv/
ex-gwf-u1disv-x/
ex-gwf-whirl/
ex-gwf-zaidel/
ex-gwt-hecht-mendez-b/
mf6gwf/
mf6gwt/
ex-gwt-hecht-mendez-c/
mf6gwf/
mf6gwt/
ex-gwt-henry-a/
ex-gwt-henry-b/
ex-gwt-keating/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p01a/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p01b/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p01c/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p01d/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p02/
mf6gwf/
mf6gwt/
ex-gwt-moc3d-p02tg/
8 MODFLOW 6 Release Notes
mf6gwf/
mf6gwt/
ex-gwt-mt3dms-p01a/
mt3d/
ex-gwt-mt3dms-p01b/
mt3d/
ex-gwt-mt3dms-p01c/
mt3d/
ex-gwt-mt3dms-p01d/
mt3d/
ex-gwt-mt3dms-p02a/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p02b/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p02c/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p02d/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p02e/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p02f/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dms-p03/
mt3d/
ex-gwt-mt3dms-p04a/
mt3d/
ex-gwt-mt3dms-p04b/
mt3d/
ex-gwt-mt3dms-p04c/
mt3d/
9
ex-gwt-mt3dms-p05/
mt3d/
ex-gwt-mt3dms-p06/
mt3d/
ex-gwt-mt3dms-p07/
mt3d/
ex-gwt-mt3dms-p08/
mt3d/
ex-gwt-mt3dms-p09/
mt3d/
ex-gwt-mt3dms-p10/
mt3d/
ex-gwt-mt3dsupp631/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dsupp632a/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dsupp632b/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dsupp632c/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-mt3dsupp82/
mf2005/
mf6gwf/
mf6gwt/
mt3d/
ex-gwt-prudic2004t2/
mf6gwf/
mf6gwt/
ex-gwt-rotate/
ex-gwt-saltlake/
ex-gwt-uzt-2d-a/
mt3d/
ex-gwt-uzt-2d-b/
mt3d/
ex-gwtgwt-mt3dms-p10/
make/
10 MODFLOW 6 Release Notes
msvs/
src/
Exchange/
Model/
Connection/
Geometry/
GroundWaterFlow/
GroundWaterTransport/
ModelUtilities/
Solution/
SparseMatrixSolver/
Timing/
Utilities/
Libraries/
blas/
daglib/
rcm/
sparsekit/
sparskit2/
Memory/
Observation/
OutputControl/
TimeSeries/
srcbmi/
utils/
mf5to6/
make/
msvs/
src/
LGR/
MF2005/
NWT/
Preproc/
zonebudget/
make/
msvs/
src/
It is recommended that no user files are kept in the mf6.3.0 directory structure. If you do plan to put your
own files in the mf6.3.0 directory structure, do so only by creating additional subdirectories.
FLOW 6 is installed on your system, the directory containing the executables for the prior release should be
removed from the PATH environment variable.
As an alternative, the executable file, named “mf6.exe” on Windows, in the mf6.3.0/bin directory can be
copied into a directory already included in the PATH environment variable.
To run MODFLOW 6, simply type mf6 in a terminal window. The current working directory must be set
to a location where the model input files are located. Upon execution, MODFLOW 6 will immediately look
for file with the name mfsim.nam in the current working directory, and will terminate with an error if it does
not find this file.
Compiling MODFLOW 6
MODFLOW 6 has been compiled using Intel Fortran and gfortran on the Windows, Mac, and Linux oper-
ating systems. Because the program uses relatively new Fortran extensions, newer versions of the compilers
may be required for successful compilation. For example, to use gfortran to compile MODFLOW 6, gfortran
version 4.9 or newer must be used. If you have gfortran installed on your computer, you can tell which version
it is by entering “gfortran --version” at a terminal window.
This distribution contains the Microsoft Visual Studio solution and project files for compiling MOD-
FLOW 6 on Windows using the Intel Fortran Compiler. The files have been used successfully with recent ver-
sions of Microsoft Visual Studio Community 2019 and the Intel Fortran Compiler. To compile MODFLOW 6,
open the mf6.sln file in the msvs folder and click Build > Build Solution. A separate Visual Studio solution file
is also included for building the BMI dynamically linked library version of MODFLOW 6.
This distribution also comes with a makefile for compiling MODFLOW 6 with gfortran. The makefile is
contained in the make folder.
For those familiar with Python, the pymake package can also be used to compile MODFLOW 6. Addi-
tional information on the Python pymake utility can be found at: https://github.com/modflowpy/pymake.
System Requirements
MODFLOW 6 is written in Fortran. It uses features from the 95, 2003, and 2008 language. The code has
been used on UNIX-based computers and personal computers running various forms of the Microsoft Win-
dows operating system.
Testing
The examples distributed with MODFLOW 6 can be run on Windows by navigating to the examples folder
and executing the “run.bat” batch files within each example folder. Alternatively, there is a “runall.bat”
batch file under the examples folder that will run all of the test problems. For Linux and Mac distributions,
equivalent shell scripts (run.sh and runall.sh) are included.
MODFLOW 6 Documentation
Details on the numerical methods and the underlying theory for MODFLOW 6 are described in the follow-
ing reports and papers:
12 MODFLOW 6 Release Notes
• 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
• Langevin, C.D., Hughes, J.D., Provost, A.M., Banta, E.R., Niswonger, R.G., and Panday, Sorab, 2017,
Documentation for the MODFLOW 6 Groundwater Flow (GWF) Model: U.S. Geological Survey Tech-
niques and Methods, book 6, chap. A55, 197 p., https://doi.org/10.3133/tm6A55
• 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
• 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
• Morway, E.D., Langevin, C.D., and Hughes, J.D., 2021, Use of the MODFLOW 6 water mover package
to represent natural and managed hydrologic connections: Groundwater, v. 59, no. 6, p. 913–924, https:
//doi.org/10.1111/gwat.13117
• Hughes, J.D., Russcher, M.J., Langevin, C.D., Morway, E.D., and McDonald, R.R., 2022a, The MOD-
FLOW Application Programming Interface for simulation control and software interoperability: Environ-
mental Modelling & Software, v. 148, 105257, https://doi.org/10.1016/j.envsoft.2021.105257
• Langevin, C.D., Provost, A.M., Panday, Sorab, and Hughes, J.D., 2022, Documentation for the MOD-
FLOW 6 Groundwater Transport (GWT) Model: U.S. Geological Survey Techniques and Methods, book
6, chap. A61, 56 p., https://doi.org/10.3133/tm6A61
• Hughes, J.D., Leake, S.A., Galloway, D.L., and White, J.T., 2022b, Documentation for the Skeletal Stor-
age, Compaction, and Subsidence (CSUB) Package of MODFLOW 6: U.S. Geological Survey Tech-
niques and Methods, book 6, chap. A62, 57 p., https://doi.org/10.3133/tm6A62
Description of the MODFLOW 6 input and output is included in this distribution in the “doc” folder as
mf6io.pdf.
• This software is a product of the U.S. Geological Survey, which is part of the U.S. Government.
• This software is freely distributed. There is no fee to download and (or) use this software.
13
• Users do not need a license or permission from the USGS to use this software. Users can download and
install as many copies of the software as they need.
• As a work of the United States Government, this USGS product is in the public domain within the United
States. You can copy, modify, distribute, and perform the work, even for commercial purposes, all with-
out asking permission. Additionally, USGS waives copyright and related rights in the work worldwide
through CC0 1.0 Universal Public Domain Dedication (https://creativecommons.org/publicdomain/zero/
1.0/).
References Cited R–1
References Cited
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/.
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.
Langevin, C.D., Hughes, J.D., Provost, A.M., Banta, E.R., Niswonger, R.G., and Panday, Sorab, 2017, Docu-
mentation 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.
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.
Morway, E.D., Langevin, C.D., and Hughes, J.D., 2021, Use of the MODFLOW 6 water mover package to
represent natural and managed hydrologic connections: Groundwater, v. 59, no. 6, p. 913–924, https://doi.
org/10.1111/gwat.13117.
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/.
Peckham, S.D., Hutton, E.W., and Norris, Boyana, 2013, A component-based approach to integrated modeling
in the geosciences: The design of CSDMS: Computers & Geosciences, v. 53, p. 3 – 12, accessed March 24,
2020, at https://doi.org/https://doi.org/10.1016/j.cageo.2012.04.002.
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., 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.
Appendix A. Changes Introduced in Previous Versions A–1
– A new Adaptive Time Step (ATS) utility was added. The ATS utility allows any stress period to
be overridden with an alternative time stepping approach. The ATS utility implements two main
capabilities (1) the capability to retry failed time steps with a shorter time step repeatedly until con-
vergence is achieved, and (2) the capability to shorten and lengthen time steps based on simulation
behavior. These capabilities are described in the user input and output guide in a new section on the
ATS utility.
– A new option for printing water contents to a dedicated output file has been added to UZF. To acti-
vate, the keyword WATER_CONTENT is added to the OPTIONS block of UZF, followed by FILE-
OUT, followed by the user-specified output file name, for example “water-content.uzf.bin”. The
approach is analogous to the STAGE option within the SFR options block. Contents of the new file
will be written in binary and can be read using flopy’s binaryfile utility.
– The residual balance error for groundwater flow and solute transport is now written to the diago-
nal position of the flowja array, which is marked with the text description “FLOW-JA-FACE”. The
flowja array is optionally written to the binary model budget file according to user settings in the
output control file and other package input files.
– A new option for simulating specific storage changes only when a cell is fully saturated has been
added to the storage (STO) package. To activate, the SS_CONFINED_ONLY keyword is added to
the OPTIONS block in the STO Package. This option is identical to the approach used to calculate
storage changes under confined conditions in MODFLOW-2005.
– A new observation type called “wel-reduction” was added for the Well Package. This observation
type reports the reduction in the well discharge that can occur when the AUTO_FLOW_REDUCE option
is specified.
EXAMPLES
– The specific storage formulation in the storage (STO) package has been modified to eliminate the
dependency of the original formulation on the vertical datum. The original specific storage formu-
lation also overestimated storage changes for cells that resaturated or desaturated in successive time
steps. Furthermore, the sign of the specific storage change was incorrect in cells with negative heads
A–2 MODFLOW 6 Release Notes
and resaturated or desaturated in successive time steps. The revised specific storage formulation
resolves all of the deficiencies of the original formulation and accurately simulates specific storage
changes under water table conditions but will change the results for existing models. Testing indi-
cates that the differences between models run with the original and revised specific storage formu-
lation are generally small but tend to increase in models with large specific storage values or have
cells that repeatedly resaturated or desaturated in successive time steps.
– The convergence failure message message written to GWF and GWT listing files (FAILED TO
MEET SOLVER CONVERGENCE CRITERIA) is now written after the budget summary tables.
In previous releases this convergence failure message was written prior to printing heads and con-
centrations, which often resulted in this message being unnoticed by users.
– The order of output written to the GWF and GWT listing files for a time step was reorganized in a
consistent manner with model and package flows coming first, followed by dependent variables, and
then concluding with budget summary tables.
– The DISU Package checks to make sure that the top of a cell is not higher than the bottom
of an overlying cell. A new option was added to the DISU Package to allow the user to spec-
ify the vertical offset tolerance used in this check. This new optional input variable is VERTI-
CAL_OFFSET_TOLERANCE.
– Add DISU Package check to ensure that JA(IA(n)) is equal to n and that no values in JA are less
than zero or greater than nodes.
– When IDOMAIN is used with the DISU Package and any IDOMAIN value is zero, then the pro-
gram was expecting all JA values to be positive. The program is supposed to allow a negative JA
value to be specified for the corresponding cell (in the diagonal position), but this was not working.
A fix was implemented to allow a negative cell number to be specified in the diagonal position of
the JA array when the IDOMAIN capability is active.
– A new check was added to the Horizontal Flow Barrier (HFB) Package to ensure that barriers are
between cells that are horizontally connected. The program would previously continue running if a
barrier was between vertically connected cells.
– There was no check to prevent the zero-order decay functionality of the Mobile Storage and Trans-
fer (MST) and Immobile Storage and Transfer (IST) Packages in the GWT Model from producing
negative concentrations. The program now reduces the zero-order decay rate for the aqueous and
sorbed phases (for the mobile and immobile domains) to ensure that decay does not consume more
mass than is available. These changes do not affect zero-order growth.
– If a binary budget file from a GWF Model was larger than about 2 Gigabytes, then it could not be
used as input for a subsequent GWT Model. The program was modified to use a long integer to
store the byte position.
– The program was terminating with a non-zero return code if the simulation did not converge. This
is the intended behavior, unless the CONTINUE option is specified in the simulation name file.
The program now terminates with a return code of zero if the simulation does not converge, but the
CONTINUE option is set and the program reaches the end of the simulation.
ADVANCED STRESS PACKAGES
– The UZF water-content observation by depth was giving an error, because a check was using the
wrong index to retrieve the cell top and bottom elevations for the requested observation. The pro-
gram was modified to use the correct index, and the output is now as expected. Note that this bug
is not related to the new WC keyword in the OPTIONS block, but rather is related to OBS6 output
option.
Appendix A. Changes Introduced in Previous Versions A–3
– Amend surfdep error check with landflag. Deep cells (non-land surface cells) should not require
surfdep > 0
– In the LAK observation package, users can specify “lak” to get a summary of lake-groundwater
exchange. Users could specify a lake number without specifying a specific connection number (vari-
able “iconn”). Code will now stop if lake number is provided without a matching connection num-
ber. Code will still provide a summary of total lake-groundwater exchange when BOUNDNAME is
entered for the variable ID. This also will fix a similar issue for the observation types “wetted-area”
and “conductance”, since both require ID2 when ID is an integer corresponding to a lake number.
– In the MAW observation package, users can specify “maw” to get a summary of well-groundwater
exchange. The code was allowing users to specify a well number without requiring specification
of a connection number (variable “icon”). Code will now stop if well number is provided with-
out a matching connection number. Code will still provide a summary of total well-groundwater
exchange when BOUNDNAME is entered for the variable ID. This also will fix a similar issue for
the observation type “conductance”, since both require ID2 when ID is an integer corresponding to a
well number.
SOLUTION
– The Source and Sink Mixing (SSM) Package for the Groundwater Transport Model was modified
to include an alternative option for the concentration value assigned to sinks. A new AUXMIXED
option was added to represent evaporation-like sinks where the solute or a portion of the solute may
be left behind. The AUXMIXED option provides an alternative method for determining the ground-
water sink concentration. If the cell concentration is larger than the user-specified sink concentra-
tion, then the concentration of the sink will be assigned as the specified concentration. Alternatively,
if the specified concentration is larger than the cell concentration, then water will be withdrawn at
the cell concentration. Thus, the AUXMIXED option is designed to work with the Evapotranspira-
tion and Recharge packages where water may be withdrawn at a concentration that is less than the
cell concentration.
– Add support for the Freundlich and Langmuir isotherms to the Mass Storage and Transfer (MST)
Package of the Groundwater Transport Model.
EXAMPLES
– The way in which the dispersion coefficients are calculated with the simple option (XT3D_OFF) for
the Dispersion Package was modified. When the velocity within a cell is not aligned with a principal
grid direction, the dispersion coefficients are calculated using a simple arithmetic weighting, rather
than harmonic weighting as is done for the simple option for anisotropic flow in the NPF Package.
The arithmetic weighting option eliminates a possible discontinuity when a principal flow-aligned
dispersion component is zero.
– The mass flow between two cells is calculated and optionally written to the GWT budget file. There
was an error in this calculation of mass flow when the TVD scheme was specified in the Advection
(ADV) Package. Consequently, the mass flows written to the budget file were not correct in this sit-
uation. Because these mass flows are also used in the budget calculations for the Constant Concen-
tration (CNC) Package, reported CNC mass flows were also not correct. This could result in large
budget discrepancies in the GWT budget table. Simulated concentrations were not affected by this
error. A small correction was made to the routine that adds the advective mass flow for the TVD
scheme.
– Several packages had input blocks that could not be specified using the OPEN/CLOSE keyword.
The program was modified so that OPEN/CLOSE is supported for all intended blocks.
– The Immobile domain Storage and Transfer (IST) Package for the GWT Model is based on a con-
ceptual model in which the immobile domain is always fully saturated, and so the saturation of the
immobile domain does not depend on head in a cell. The program was modified so that none of the
immobile domain terms include saturation, except for the mass transfer equation itself, in which the
transfer of solute between the mobile and immobile domain is multiplied by the cell saturation.
– Budget terms for the Immobile domain Storage and Transfer (IST) Package were not being written
to the binary budget file for the GWT Model. The package was modified to write these rate terms to
the GWT binary budget file using the settings specified in the GWT Output Control file.
– Bulk density does not need to be specified for the Immobile domain Storage and Transfer (IST)
Package if sorption is not active; however the program was trying to access bulk density even
though it is not needed, which resulted in an access violation. Program was fixed so that bulk den-
sity does not need to be specified by the user unless sorption is active for the IST Package.
– Budget tables printed to the listing file had numeric values that were missing the ‘E‘ character if
the exponent had three digits (e.g. 1.e-100 or 1.e100). Writing of the budget table was modified
to include the ‘E‘ character in this case. This change should make it easier for programs written in
other languages to parse these tables.
– In the Mass Transfer and Storage (MST) and the Immobile Storage and Transfer (IST) Packages,
the keyword to activate sorption was changed from SORBTION to SORPTION. The program will
still accept SORBTION, but this keyword will be deprecated in the future.
– Revised several of the text strings written to the headers within the GWT binary budget file. A table
of possible text strings for the GWT binary budget file are now included in the mf6io.pdf document.
ADVANCED STRESS PACKAGES
– The CONSTANT term used to report the rate of mass provided by a constant-concentration con-
dition in the LKT, SFT, MWT, and UZT did not include the contribution to adjacent package fea-
tures. For example, if a stream reach was marked as constant-concentration boundary and it had
flow into a downstream reach, then that flow was not included in the budget calculations. Conse-
quently, reported budgets in the listing file would show discrepancies that were larger than what was
actually simulated by the model. The program code was modified to include these mass flows to
adjacent features.
Appendix A. Changes Introduced in Previous Versions A–5
– The ET formulation in UZF was not reducing the residual pET passed to deeper UZF objects
when the extinction depth spanned multiple UZF objects (layers). As a result, too much water was
removed when the water table was shallow. Or, in some cases, water was removed from dry cells
that were above the water table but within the extinction depth interval. The ET code within the
UZF package was modified to remove only eligible water from the unsaturated and saturated zones.
– The UZF package should exit with an appropriate error message when SURFDEP > cell thickness.
When this condition is not enforced, bad mass balances may result.
– The FLOW_IMBALANCE_CORRECTION implemented in the GWT FMI Package did not work
properly with the GWF UZF Package. The issue was fixed by ensuring that the FMI Package could
accurately calculate the flow residual for cells that had a UZF entry.
– The SFR package should exit with an appropriate error message when a diversion has a cprior type
of FRACTION but the divflow value is outside the range 0.0 to 1.0 as stated in the documentation.
– Allow the program to read input files with very long lines. Previously, the program was limited to
a maximum line length of 50,000 characters. The program now uses dynamic memory allocation,
when necessary, to read any sized line in an input file.
– Fixed an error in the implementation of the Newton-Raphson correction for XT3D. The error in the
code would have only affected simulations that used the NEWTON option together with the XT3D
RHS option.
ADVANCED STRESS PACKAGES
– Fix error in calculated Newton-Raphson MAW-GWF connection terms for the MAW Package. This
correction should improve model convergence and may change existing model results. This correc-
tion does not affect simulations that use the FLOW_CORRECTION option introduced in version
6.1.1.
– The program will now terminate with an error message if the skin radius for a GWF connection in
the MAW Package is less than or equal to the well radius. Warning messages are also issued when
the well bottom, screen top for a GWF connection, or screen bottom for a GWF connection are reset
by the program for one or more MAW Package wells.
– An SFR reach can have zero specified connections. In this case, an entry is still required in the
CONNECTIONDATA block for that reach. The error check for this required entry was not imple-
mented and so the program would continue with unexpected results. The program now verifies that
an entry is present in CONNECTIONDATA for every reach, even those with zero connections.
– If a GWF “NONE” connection was specified for SFR then the program would terminate with an
error or proceed with unexpected results if GWF or SFR flow terms were written to binary out-
put files. The program was fixed so that GWF “NONE” connections for SFR are not written to the
binary budget files.
– Increase the length of boundname to its intended size of 40 characters. Boundnames were being
truncated after 16 characters for the LAK, MAW, and SFR Packages.
SOLUTION
– A fix was implemented in the biconjugate gradient stabilized linear solver routine so that the maxi-
mum change in the dependent value is calculated and stored correctly.
– Corrected the SIMPLE and COOLEY under-relaxation schemes in the Iterative Model Solution
(IMS). The methods were not applying the correct under-relaxation factor. The SIMPLE scheme
now uses the user-specified value for gamma as the factor. The COOLEY scheme updates the factor
based on solver history.
• Version mf6.1.1–June 12, 2020
NEW FUNCTIONALITY
– Refactor the source code to support the Basic Model Interface (BMI) developed by the Commu-
nity Surface Dynamics Modeling System (CSDMS) group. BMI is a set of standard control and
query functions that, when added to a model code, make that model both easier to learn and easier
to couple with other software elements (Peckham and others, 2013). Furthermore, the BMI makes
it possible to control MODFLOW 6 execution from scripting languages using bindings for the BMI
(for example, python bindings for the BMI available through pymt). The BMI in this version is con-
sidered preliminary (alpha release). Limited testing of the BMI has been performed but significant
changes are expected in future releases. User support for the MODFLOW 6 BMI may be provided
in the future.
Appendix A. Changes Introduced in Previous Versions A–7
– Add silent command line switch (-s or --silent) that sends all screen output (STDOUT) to a text
file (with the name “mfsim.stdout”).
– Add screen output command line switch (-l <str> or --level <str>) that controls output to the
screen (STDOUT). If <str> is summary, stress period and time step data are not written to STDOUT. If
<str> is debug, normal and debug output are written to STDOUT.
– Add simulation mode command line switch (-m <str> or --mode <str>) that controls the solution
mode. If <str> is validate, model input will be read and checked for errors, but the coefficient
matrix or matrices will not be assembled or solved and solution output will not be written.
– Add SAVE_SATURATION option to the Node Property Flow Package. When invoked, cell satura-
tion is written to the binary budget file as an auxiliary column for a record with the name “DATA-
SAT”. The cell saturation can be used by post-processors to determine how much of the cell is sat-
urated without having to know the value for ICELLTYPE or the value for head. If a cell is marked
as confined (ICELLTYPE=0) then saturation is always one. If ICELLTYPE is one, then saturation
ranges between zero and one.
– Add option for saving package convergence for the CSUB Package to a comma-separated values
(CSV) file. Package convergence is enabled by specifying PACKAGE_CONVERGENCE FILE-
OUT <package_convergence_filename> in the options block for the package.
– Add option for saving package convergence for the LAK, SFR, and UZF Packages to comma-
separated values (CSV) files. Package convergence for the LAK, SFR, and UZF Packages is enabled
by specifying PACKAGE_CONVERGENCE FILEOUT <package_convergence_filename> in the
options block for the package.
– Add CSV_OUTER_OUTPUT output option to save outer iteration information to a comma-
separated values (CSV) file. The maximum of the model or package dependent-variable change for
the outer iteration is written to the CSV file at the end of each outer iteration.
– Add CSV_INNER_OUTPUT output option to save inner iteration information to a comma-
separated values (CSV) file. The CSV output also the includes maximum dependent-variable
change and maximum 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.
The inner iteration CSV output, which contains a separate line for each inner iteration, is written to
the CSV file all at once at the end of each outer iteration.
– Add OUTER_DVCLOSE and INNER_DVCLOSE variables to replace OUTER_HCLOSE and
INNER_HCLOSE variables in the IMS Package input file. “DV” is used now instead to more gen-
erally refer to dependent variable. Warning messages will be issued if OUTER_HCLOSE and/or
INNER_HCLOSE variables are specified. OUTER_HCLOSE and INNER_HCLOSE variables will
eventually be deprecated.
– Add option to scale drain conductance as a function of simulated head over a user-defined range
(drainage depth). Linear-conductance scaling is used with the Standard Formulation. Cubic-
conductance scaling is used with the Newton-Raphson Formulation. The additional drainage depth
variable is specified as an auxiliary variable and AUXDEPTHNAME is used to identify the auxil-
iary variable defining the drainage depth. The cubic-conductance scaling can be used as a replace-
ment for the groundwater seepage option in the UZF Package. The scaled drainage conductance
option can also be used to represent vertical seepage faces and improve model convergence in cells
where simulated heads fluctuate around the elevation where the drain begins to discharge groundwa-
ter.
– Add timeseries support for the reach upstream fraction variable in the SFR package.
A–8 MODFLOW 6 Release Notes
– Add Picard iterations for the SFR package to minimize differences in SFR package results
between subsequent GWF Picard (non-linear) iterations as a result of non-optimal reach
numbering. The number of SFR package Picard iterations can be controlled by specify-
ing the maximum number of Picard iteration to be used in the OPTIONS block (MAXI-
MUM_PICARD_ITERATIONS). If reaches are numbered in order, from upstream to downstream,
MAXIMUM_PICARD_ITERATIONS can be set to 1 to reduce model run time. Specifying MAX-
IMUM_PICARD_ITERATIONS to 1 will result in identical SFR package performance to previous
versions of MODFLOW 6.
– Add flow correction option for the MAW package that corrects the MAW-GWF exchange 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. This option is identical to the MODFLOW-USG “flow-to-dry-
cell” option for flow between a CLN cell and a GWF cell if the cell is convertible (Panday and oth-
ers, 2013). Flow corrections are enabled by specifying FLOW_CORRECTION in the OPTIONS
block. By default, flow corrections are not made. Prior to this release (version 6.1.1), flow correc-
tions were made anytime the head in a multi-aquifer well was below the bottom of the screen for a
connection–this may result in different results for existing models that can be resolved by using the
FLOW_CORRECTION option.
– Add new document, “MODFLOW 6 – Supplemental Technical Information,” to the doc folder. This
document contains information that was in the mf6io.pdf appendices. This technical information
document may expand with future versions as new features are added.
– Correct an error in how the discretization package (for regular MODFLOW grids) calculates the dis-
tance between two cells when one or both of the cells are unconfined. The error in the code would
have only affected XT3D simulations with a regular grid, unconfined conditions, and specification
of ANGLE2 in the NPF Package.
– Correct an error in the use of the AUXMULTNAME option for boundary packages when time series
are used. A problem remains when time series are used for AUXMULTNAME but not for the col-
umn that is scaled by AUXMULTNAME. This situation should be avoided.
STRESS PACKAGES
– Fix a bug in binary budget file header for CSUB Package budget data written using IMETH=6
(CSUB-ELASTIC and CSUB-INELASTIC) .
– Add information on the CSUB Package budget terms and compaction data written the the
Input/Output document in the ‘Description of Groundwater Flow (GWF) Model Binary Output
Files’ section.
– Prior to this release, calculated flows between a standard stress package (WEL, DRN, RIV, GHB,
RCH, and EVT) and the connected model cell were based on the RHS and HCOF terms from the
previous iteration. This was not consistent with previous MODFLOW versions. These packages
were modified so that the flows are recalculated using the final converged head solution. As a result
of this change, simulated groundwater flows for these packages may be slightly different (compared
to previous releases) if the package HCOF and RHS values depend on the simulated groundwater
head.
Appendix A. Changes Introduced in Previous Versions A–9
– The code for saving the budget terms for the advanced packages was refactored to use common rou-
tines. These changes should have no affect on simulation results.
– In previous releases, the LAK Package would accept negative user-input values for RAINFALL,
EVAPORATION, RUNOFF, INFLOW, and WITHDRAWAL even though the user guide mentioned
that negative values are not allowed for these flow terms. Error checks were added to ensure these
values are specified as positive.
– Add a storage term to the SFR Package binary output file. This term is always zero with the present
implementation. An auxiliary variable, called VOLUME, is also written with the storage budget
term. This term contains the calculated water volume in the reach.
– Refactor the SFR Package to remove use of RectangularChGeometry objects and added required
functionality as private methods in the SFR module.
– Improve error trapping in the MAW Package to catch divide by zero errors when calculating the
saturated conductance for wells using the SKIN CONDEQN in connections where the cell transmis-
sivity (the product of geometric mean of the horizontal hydraulic conductivity and cell thickness)
and well transmissivity (the product of HK_SKIN and screen thickness) is equal to one. Also add
error trapping for well connections using the 1) SKIN CONDEQN where the contrast between the
cell and well transmissivities are less than one and 2) SKIN and MEAN CONDEQN where the cal-
culated connection saturated conductance is less than zero.
– For the Lake Package, the outlet number was written as ID1 and ID2 for the TO-MVR record in the
binary budget file. This has been changed so that the lake number of the connected outlet is writ-
ten to ID1 and ID2. This change was implemented so that lake budgets can be calculated using the
information in the lake budget file.
– The Lake, Streamflow Routing, and Multi-Aquifer Well Packages were modified to save the user-
specified stage or head to the binary output file for lakes, reaches, or wells that are specified as being
CONSTANT. Prior to this change, a no-flow value was written to the package binary output files for
constant stage lakes and streams and constant head multi-aquifer wells. The no-flow value is still
written for those lakes, streams, or wells that are specified by the user as being inactive. This change
should make it easier to post-process the results from these packages.
SOLUTION
– Fix a bug in the linear solver when using the STRICT RCLOSE_OPTION that prevented termina-
tion of inner iterations when the INNER_DVCLOSE and INNER_RCLOSE criteria were met but
the inner iteration count was greater than one. The inner iterations are now terminated when the
INNER_DVCLOSE and INNER_RCLOSE criteria are met but the linear solver is considered non-
converged if the inner iteration count is greater than one.
– Deprecate the CSV_OUTPUT output option in the OPTIONS BLOCK because the output to the
comma-separated values (CSV) file was based on the PRINT_OPTION option. If CSV_OUTPUT is
specified, it is used to define the file name for the CSV_OUTER_OUTPUT output option.
– Modify the outer iteration information written to the simulation listing file when PRINT_OPTION
is not NONE to improve the ability of users to evaluate model convergence. Added Package con-
vergence data, eliminated dependent variable changes adjusted by under-relaxation, and flags to
indicate when an outer iterations step is considered converged. Information is also provided if PTC
causes non-convergence for a outer iteration (even if the model is converged) and if NEWTON
A–10 MODFLOW 6 Release Notes
– Added the Skeletal Storage, Compaction, and Subsidence (CSUB) Package. The one-dimensional
effective-stress based compaction theory implemented in the CSUB Package is documented in
Leake and Galloway (2007). The numerical approach used for delay interbeds in the CSUB package
is documented in 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. A num-
ber of example problems that use the CSUB Package are documented in the “MODFLOW 6 CSUB
Package Example Problems” pdf document included in this and subsequent releases.
BASIC FUNCTIONALITY
– Added an error check to the DISU Package that ensures that an underlying cell has a top elevation
that is less than or equal to the bottom of an overlying cell. An underlying cell is one in which the
IHC value for the connection is zero and the connecting node number is greater than the cell node
number.
– Added restricted IDOMAIN support for DISU grids. Users can specify an optional IDOMAIN in
the DISU Package input file. IDOMAIN values must be zero or one. Vertical pass-through cells
(specified with an IDOMAIN value of -1 in the DIS or DISV Package input files) are not supported
for DISU.
– NPF Package will now write a message to the GWF Model list file to indicate when the
SAVE_SPECIFIC_DISCHARGE option is invoked.
– Added two new options to the NPF Package. The K22OVERK option allows the user to enter the
anisotropy ratio for K22. If activated, the K22 values entered by the user in the NPF input file will
be multiplied by the K values entered in the NPF input file. The K33OVERK option allows the user
to enter the anisotropy ratio for K33. If activated, the K33 values entered by the user in the NPF
input file will be multiplied by the K values entered in the NPF input file. With this K33OVERK
option, for example, the user can specify a value of 0.1 for K33 and have all K33 values be one
tenth of the values specified for K. The program will terminate with an error if these options are
invoked, but arrays for K22 and/or K33 are not provided in the NPF input file.
– Added new MAXERRORS option to mfsim.nam. If specified, the maximum number of errors
stored and printed will be limited to this number. This can prevent a situation where memory will
run out when there are an excessive number of errors.
Appendix A. Changes Introduced in Previous Versions A–11
– Refactored many parts of the code to remove unused variables, conform to stricter FORTRAN stan-
dard checks, and allow for new development efforts to be included in the code base.
STRESS PACKAGES
– There was an error in the calculation of the segmented evapotranspiration rate for the case where the
rate did not decrease with depth. There was another error in which PETM0 was being used as the
evapotranspiration rate at the surface instead of the proportion of the evapotranspiration rate at the
surface.
– Corrected the way auxiliary variables are handled for the advanced packages. In some cases, val-
ues for auxiliary variables were not being correctly written to the GWF Model budget file or to the
advanced package budget file. A consistent approach for updating and saving auxiliary variables
was implemented for the MAW, SFR, LAK, and UZF Packages.
– The user guide was updated to include a missing laksetting that was omitted from the PERIOD
block. The laksetting description now includes an INFLOW option; a description for INFLOW is
also now included.
– The LAK package was incorrectly making an error check against NOUTLETS instead of NLAKES.
– For the advanced stress packages, values assigned to the auxiliary variables were not written cor-
rectly to the GWF Model budget file, but the values were correct in the advanced package budget
file. Program was modified so that auxiliary variables are correctly written to the GWF Model bud-
get file.
– Corrected several error messages issued by the SFR Package that were not formatted correctly.
– Fixed a bug in which the lake stage stable would sometimes result in touching numbers. This only
occurred for negative lake stages.
– The UZF Package was built on the UZFKinematicType, which used an array of structures. A large
array like this, can cause memory problems. The UZFKinematicType was replaced with a new Uzf-
CellGroupType, which is a structure of arrays and is much more memory efficient. The underlying
UZF algorithm did not change.
SOLUTION
– Add ALL and FIRST options to optional NO_PTC optional keyword in OPTIONS block. If
NO_PTC option is FIRST, PTC is disabled for the first stress period but is applied in all subsequent
steady-state stress periods. If NO_PTC option is ALL, PTC is disabled for all steady-state stress
periods. If the NO_PTC options is not defined, PTC is disabled for all steady-state stress periods
(this is consistent with the behaviour of the NO_PTC option in previous versions).
– Addressed issue with pointing contiguous pointer vectors/arrays to non-contiguous pointer vec-
tors/arrays that caused code compilation failure with gfortran-8. A consequence of addressing this
issue is that all pointer vectors/arrays that are allocated or pointed to using the memory manager
must be defined to be contiguous.
– Corrected a problem with the reading of grid data from a binary file, in which the program was read-
ing a binary header for each row of data.
A–12 MODFLOW 6 Release Notes
– Added a new error check for very small time steps. If the value of the starting time is equal to the
ending time (starting time plus the time step length), then the time step is too small to be differenti-
ated by the program based on the precision of floating point numbers. The program will terminate
with an error in this case. The program will also terminate if the storage package with a transient
stress period has a time step length of zero.
– The observation package was modified to use non-advancing output instead of fixed length strings
when writing ascii output. The previous use of fixed length strings resulted in truncation of ascii
observation output when the product of user-specified digits + 7 and the number of observations
exceeded 5000.
– Corrected an error in the GWF-GWF Exchange module that caused the specific discharge values in
the child model to be calculated incorrectly. The calculation was incorrect because the face normal
for the child model was pointing toward the center of the cell instead of outward.
– Minor refactoring to improve code clarity.
STRESS PACKAGES
– Modified the Multi-Aquifer Well (MAW) Package so that the HEAD_LIMIT and RATE_SCALING
options work for injection wells. Prior to this change, these options only worked for extraction
wells. These options can be used to reduce or even shut off well injection as the head in the well
rises above user-specified levels.
– Added stage and residual convergence checks to the SFR package to make sure that stage and
upstream flow changes between successive outer iterations are less than OUTER_HCLOSE and
OUTER_RCLOSEBND, respectively. This addition is expected to be useful for steady-state simula-
tions with complicated networks and simple reaches.
– Modified the final convergence check for the LAK package to use OUTER_HCLOSE when evaluat-
ing lake stage changes between successive outer iterations.
– Modified the final convergence check for the UZF package to use OUTER_RCLOSEBND when
evaluating rejected infiltration, groundwater recharge, and groundwater seepage changes between
successive outer iterations.
– Minor refactoring to improve code clarity.
SOLUTION
– Modified pseudo-transient continuation (PTC) approach to use PTC for steady-state stress period
for models using the Newton-Raphson formulation for problems with and without the storage (STO)
package. Previously, PTC was only used with problems that did not include the STO package (this
was not the intended behavior of PTC).
– Added NO_PTC option to disable PTC for problems where PTC degrades/prevents model conver-
gence. Option only applies to steady-state stress periods for models using the Newton-Raphson for-
mulation. 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 convergence is slow, then
this NO_PTC option should be used to deactivate PTC. This NO_PTC option should also be used in
Appendix A. Changes Introduced in Previous Versions A–13
order to compare convergence behavior with other MODFLOW versions, as PTC is only available
in MODFLOW 6.
– Small improvements to PTC to reduce the initial PTCDEL value loaded on the diagonal. This
reduces the number of iterations required to achieve convergence for steady-state stress periods for
most problems.
– Added OUTER_RCLOSEBND variable that is used when performing final convergence checks on
model packages that solve a separate equation not solved by the IMS linear solver. This value rep-
resents the maximum allowable residual at any single model package element between successive
outer iterations. An example of a model package that would use OUTER_RCLOSEBND to evaluate
convergence is the SFR package which solves a continuity equation for each reach.
– Minor refactoring to improve code clarity.
– Fixed issues with observations specified using boundnames that are enclosed in quotes. Previously,
the closing quote was retained on a boundname enclosed in quotes and resulted in an error (the erro-
neous observation boundname could not be found in the package).
STRESS PACKAGES
– If the AUXMULTNAME keyword was used in combination with time series, then the multiplier
was erroneously applied to all time series, and not just the time series in the column to be scaled.
– For the array-based recharge and evapotranspiration packages, the IRCH and IEVT variables (if
specified) must be specified as the first variable listed in the PERIOD block. A check was added so
that the program will terminate with an error if IRCH or IEVT is not the first variable listed in the
PERIOD block.
– For the standard boundary packages, the “to mover” term (such as DRN-TO-MVR) written to the
GWF Model budget was incorrect. The budget terms were incorrect because the accumulator vari-
ables were not initialized to zero.
– For regular MODFLOW grids, the recharge and evapotranspiration arrays of size (NCOL, NROW)
were being echoed to the listing file (if requested by the user) of size (NCOL * NROW).
– Fixed spelling of the THIEM keyword in the source code and in the input instructions of the MAW
Package.
– Fixed an issue with the SFR package when the specified evaporation exceeds the sum of specified
and calculated reach inflows, rainfall, and specified runoff. In this case, evaporation is set equal to
the sum of specified and calculated reach inflows, rainfall, and specified runoff. Also if a negative
runoff is specified and this value exceeds specified and calculated reach inflows, and rainfall then
runoff is set to the sum of reach inflows and evaporation is set to zero.
– Fixed an issue in the MAW package budget information written to the listing file and MAW cell-
by-cell budget file when a previously active well is inactivated. The ratesim variable was not being
reset to zero for these wells and the simulated rate from the last stress period when the well was
active was being reported.
A–14 MODFLOW 6 Release Notes
– Program now terminates with an error if the OUTLETS block is present in the LAK package file
and NOUTLETS is not specified or specified to be zero in the DIMENSIONS block. Previously,
this did not cause an error condition in the LAK package but would result in a segmentation fault
error in the MVR package if LAK package OUTLETS are specified as providers.
– Program now terminates with an error when a DIVERSION block is present in a SFR package file
but no diversions (all ndiv values are 0) are specified in the PACKAGEDATA block.
SOLUTION
– Fixed bug related to not allocating the preconditioner work array if a non-zero drop tolerance is
specified but the number of levels is not specified or specified to be zero. In the case where the num-
ber of levels is not specified or specified to be zero the preconditioner work array is dimensioned to
the product of the number of cells (NEQ) and the maximum number of connections for any cell.
– Updated linear solver output so number of levels and drop tolerance are output if either are specified
to be greater than zero.
– Added a new option, called SAVE_SPECIFIC_DISCHARGE to the Node Property Flow Pack-
age. When invoked, x, y, and z specific discharge components are calculated for the center of each
model cell and written to the binary budget file.
– For binary input of grid data, such as initial heads, the array reading utility was not reading a header
record consisting of KSTP, KPER, PERTIM, TOTIM, TEXT, NLAY, NROW, NCOL. This meant
that a binary head file written by MODFLOW could not be used as input for a subsequent simula-
tion. For binary input, the array reading utility now reads a header record before reading the array
values.
– The NOGRB option in the discretization packages was not working. This option will now prevent
the binary grid file from being written.
– Removed the PRIVATE attribute for two methods of the discretization packages so that the program
works as intended with the latest Intel Fortran release.
– Switched to using a long integer for the memory manager so that memory usage is calculated cor-
rectly for large models.
STRESS PACKAGES
– If a steady-state stress period followed a transient stress period, the storage terms written to the bud-
get file were not being reset to zero. The program now initializes these budget values to zero for
steady-state periods before they are written.
– The STATUS INACTIVE option was not working correctly for the MAW Package.
– Modified the MAW connection conductance calculation so that a linear relation between the water
level in a cell and saturation is used for the standard formulation. In the previous version, the same
quadratic saturation function was being used for the standard and Newton-Raphson formulation to
calculate the MAW connection conductance.
Appendix A. Changes Introduced in Previous Versions A–15
– Modified the MAW Package so that the top and bottom of the screen for a connection are reset to
the top and bottom of the cell, respectively, for SPECIFIED, THEIM, SKIN, and CUMULATIVE
conductance equations (CONDEQN). Also, the program will now terminate with an error if a MAW
well using SPECIFIED, THEIM, SKIN, or CUMULATIVE conductance equations has more than
one connection to a single GWF cell.
– Modified the MAW package so that the well bottom (BOTTOM) is reset 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.
SOLUTION
– Prior to applying pseudo transient continuation terms, the Iterative Model Solution confirms that the
L2-norm exceeds the previous L2-norm. If it doesn’t then pseudo transient continuation is turned
off. This fixes a rare situation in which convergence could not be achieved for consecutive steady
state solutions with the same or similar answers.
• Version mf6.0.1–Sep 28, 2017
BASIC FUNCTIONALITY
– There is no requirement that FTYPE entries in the GWF name file should be upper case; however,
an upper case convention was being enforced. FTYPE entries can now be specified using any case.
– Tab characters within model input files were not being skipped correctly. This has been fixed.
– The program was updated to use the “approved for release” disclaimer. The previous version was
still using a “preliminary software” disclaimer.
– The source code for time series and time array series was refactored. Included in the refactoring was
a correction to time array series to allow the time array to change from one stress period to the next.
The source file TimeSeriesGroupList.f90 was renamed to TimeSeriesFileList.f90.
STRESS PACKAGES
– Fixed inconsistency with CHD package observation name in code (chd-flow) and name in the
input-output document (chd). Using name defined in input-output document (chd).
– The cell area was not being used in the calculation of recharge and evapotranspiration when list
input was used with time series.
– The AUXMULTNAME option was not being applied for recharge and evapotranspiration when the
READASARRAYS option was used.
– The program was not terminating with an error if a PERIOD block was encountered with an iper
value equal to the previous iper value. Program now terminates with an error.
ADVANCED STRESS PACKAGES
– Fixed incorrect sign for SFR package exchange with GWF model (sfr).
– Added option to specify none as the bedleak for a lake-GWF connection in lake (LAK) package.
This option makes the lake-GWF connection conductance solely a function of aquifer properties in
the connected GWF cell and lakebed sediments are assumed to be absent for this connection.
– Fixed bug in lake (LAK) and multi-aquifer well (MAW) packages that only reset steady-state flag if
lake and/or multi-aquifer data are read for a stress period (in the pak_rp() routines). Using pointer to
GWF iss variable in the LAK package and resetting the MAW steady state flag in maw_rp() routine
every stress period, regardless of whether MAW data are specified for a stress period.
A–16 MODFLOW 6 Release Notes
– Added a convergence check routine to the GWF Mover Package that requires at least two outer iter-
ations if there are any active movers. Because mover rates are lagged by one outer iteration, at least
two outer iterations are required for some problems.
– Changed the behavior of the LAK Package so that recharge and evapotranspiration are applied to a
vertically connected GWF model cell if the lake status is INACTIVE. Prior to this change, recharge
and evapotranspiration were only applied to an underlying GWF model cell if the lake was dry.
SOLUTION
– Fixed bug in IMS that allowed convergence when outer iteration HCLOSE value was satisfied but
the model did not converge during the inner iterations.
– Added STRICT rclose_option that uses a infinity-Norm RCLOSE criteria but requires HCLOSE
and RCLOSE be satisfied on the first inner iteration of an outer iteration. The STRICT option is
identical to the closure criteria approach use in the PCG Package in MODFLOW-2005.
EXCHANGES
– Use of an OPEN/CLOSE file was not being allowed for the OPTIONS and DIMENSIONS blocks
of the GWF6-GWF6 exchange input file. OPEN/CLOSE input is now allowed for both of these
blocks.
– Removed support for the SINGLE observation type. All observations must be CONTINUOUS,
which means observation values are written for every time step.
– Added support for a no-data value (3.0E30), which can be used as a placeholder in a time-series file
containing multiple time series. Use of the no-data value facilitates combining separate time series
into a single file when the time series contain records for differing simulation times.
– Model names specified in the simulation name file cannot have spaces in them. A check was imple-
mented to terminate with an error if the model name contains spaces. Model names cannot exceed
16 characters. Trailing spaces are allowed.
– The name and version of the compiler used to make the run file is now written to the terminal and to
the simulation list file.
– Many of the Fortran source files were modified and reformatted. Unused variables were removed.
– Updated MAW package so that well connection conductance calculations correctly account for
THICKSTRT in the NPF package for layers that use THICKSTRT (and are confined).
– Added CUMULATIVE coneqn (conductance) option to MAW package.
– Fixed bug in LAK package weir lake outlet calculation.
– Fixed bug in LAK package when internal outlets were specified and combined with the MVR pack-
age that was also moving water internally in the same LAK package.
– Updated the table created when PRINT_FLOWS is specified in the LAK package OPTIONS block
to include internal flow terms if NOUTLETS is greater than 0.
– Renamed Lake Tables DIMENSIONS block NENTRIES to NROW and added NCOL to DIMEN-
SIONS block.
Appendix A. Changes Introduced in Previous Versions A–17
– Renamed all FTYPE keywords to version 6. They were named with an 8. So, for example, the GHB
Package is now activated in the GWF name file using “GHB6” instead of “GHB8”.
– Keywords in the simulation name file must now be specified as TDIS6, GWF6, and GWF6-GWF6
to be consistent.
– The DIS Package had grid offsets (XOFFSET and YOFFSET) that could be specified as options.
These offsets were relative to the upper-left corner of the model grid. The default value for YOFF-
SET was set to the sum of DELR so that (0, 0) would correspond to the lower-left corner of the
model grid. These options have been removed and replaced with XORIGIN and YORIGIN, which
is the coordinate of the lower-left corner of the model grid. The default value is zero for XORIGIN
and YORIGIN.
– Can now specify XORIGIN, YORIGIN, and ANGROT as options for the DISV and DISU pack-
ages. These values are written to the binary grid file, which can be used by post-processors to locate
the model grid in space. These options have no affect on the simulation results. The default value is
0.0 if not specified.
– Added a new option to the TDIS input file called START_DATE_TIME. This is a 30 character
string that represents the simulation starting date and time, preferably in the format described at
https://www.w3.org/TR/NOTE-datetime. The value provided by the user has no affect on the simu-
lation, but if it is provided, the value is written to the simulation list file.
– Changed default behavior for how memory usage is written to the end of the simulation list file.
Added new MEMORY_PRINT_OPTION to simulation options to control how memory usage is
written.
– Corrections were made to the memory manager to ensure that all memory is deallocated at the end
of a simulation.
– Changed the way hydraulic conductivity is specified in the NPF Package. Users no longer specify
HK, VK, and HANI. Hydraulic conductivity is now specified as “K”. If hydraulic conductivity is
isotropic, then this is all that needs to be specified. For anisotropic cases, the user can specify an
optional “K22” array and an optional “K33” array. For an unrotated conductivity ellipsoid “K22”
A–18 MODFLOW 6 Release Notes
corresponds to hydraulic conductivity in the y direction and “K33” corresponds to hydraulic con-
ductivity in the z direction, respectively.
– Modified the MAW Package to include the effects of aquifer anisotropy in the calculation of con-
ductance.
– Simplified the SFR Package connectivity to reflect feedback from beta users. There is no longer a
requirement to connect reaches that do not have flow between them. Program will now terminate
with an error if this condition is encountered.
– Added simple routing option to SFR package. This is the equivalent of the specified depth option
(icalc=0) in previous versions of MODFLOW. If water is available in the reach, then there can be
leakage from the SFR reach into the aquifer. If no water is available, then no leakage is applied.
STAGE keyword also added and only applies to reaches that use the simple routing option. If the
STAGE keyword is not specified for reaches that use the simple routing option the specified stage is
set to the top of the reach (depth = 0).
– Added functionality to pass SFR leakage to the aquifer to the highest active layer.
– Converted SFR Manning’s to a time-varying, time series aware variable.
– Updated LAK package so that conductance calculations correctly account for THICKSTRT in the
NPF package for layers that use THICKSTRT (and are confined). Also updated EMBEDDEDH and
EMBEDDEDV so that the conductance for these connection types are constant for confined layers.
– Converted UZF stress period data to time series aware data.
– Added time-series aware AUXILIARY variables to UZF package.
– Implemented AUXMULTNAME in options block for UZF package (AUXILIARY variables have to
be specified). AUXMULTNAME is applied to the GWF cell area and is used to simulated more than
one UZF cell per GWF cell. This could be used to simulate different land use classifications (i.e.,
agricultural and natural land use types) in the same GWF cell.
SOLUTION
– Reworked IMS convergence information so that model specific convergence information is also
printed to each model listing file when PRINT_OPTION ALL is specified in the IMS OPTIONS
block.
– Added csv output option for IMS convergence information. Solution convergence information and
model specific convergence information (if the solution includes more than one model) is written to
a comma separated value file. If PRINT_OPTION is NONE or SUMMARY, csv output includes
maximum head change convergence information at the end of each outer iteration for each time
step. If PRINT_OPTION is ALL, csv output includes maximum head change and maximum resid-
ual convergence information for the solution and each model (if the solution includes more than one
model) and linear acceleration information for each inner iteration.
– There was a problem with the binary budget file when a GWF Exchange was used to connect a
GWF Model with itself. This has been fixed.
– Standardized ‘to-mvr’ cell-by-cell item in standard stress packages and UZF package.
– Fixed incorrect ‘UZF-EVT’ budget accumulator used in GWF listing budget.
– Standardized justification of cell-by-cell ‘text’ strings.
– Standardized use of AUXILIARY keyword.
https://doi.org/10.5066/F76Q1VQV