# MODFLOW

MODFLOW simulation

MODFLOW is the U.S. Geological Survey modular finite-difference flow model, which is a computer code that solves the groundwater flow equation. The program is used by hydrogeologists to simulate the flow of groundwater through aquifers. The code is public domain free software,[1] written primarily in Fortran, and can compile and run on Microsoft Windows or Unix-like operating systems.

3-dimensional grid

Since its original development in the early 1980s,[2] the USGS have released four major releases, and is now considered to be the de facto standard code for aquifer simulation. There are several actively developed commercial and non-commercial graphical user interfaces for MODFLOW.

## Groundwater flow equation

The governing partial differential equation for a confined aquifer used in MODFLOW is:

$\frac{\partial}{\partial x} \left[ K_{xx} \frac{\partial h}{\partial x} \right] + \frac{\partial}{\partial y} \left[ K_{yy} \frac{\partial h}{\partial y} \right] + \frac{\partial}{\partial z} \left[ K_{zz} \frac{\partial h}{\partial z} \right] + W = S_{S} \frac{\partial h}{\partial t}$

where

• $K_{xx}$, $K_{yy}$ and $K_{zz}$ are the values of hydraulic conductivity along the x, y, and z coordinate axes (L/T)
• $h$ is the potentiometric head (L)
• $W$ is a volumetric flux per unit volume representing sources and/or sinks of water, where negative values are extractions, and positive values are injections (T−1)
• $S_{S}$ is the specific storage of the porous material (L−1); and
• $t\,$ is time (T)

### Finite difference

The finite difference form of the partial differential in a discretized aquifer domain (represented using rows, columns and layers) is:

\begin{align} & \mathit{CR}_{i,j-\tfrac{1}{2},k}\left(h^m_{i,j-1,k}-h^m_{i,j,k}\right) + \mathit{CR}_{i,j+\tfrac{1}{2},k}\left(h^m_{i,j+1,k}-h^m_{i,j,k}\right) + \\ & \mathit{CC}_{i-\tfrac{1}{2},j,k}\left(h^m_{i-1,j,k}-h^m_{i,j,k}\right) + \mathit{CC}_{i+\tfrac{1}{2},j,k}\left(h^m_{i+1,j,k}-h^m_{i,j,k}\right) + \\ & \mathit{CV}_{i,j,k-\tfrac{1}{2}}\left(h^m_{i,j,k-1}-h^m_{i,j,k}\right) + \mathit{CV}_{i,j,k+\tfrac{1}{2}}\left(h^m_{i,j,k+1}-h^m_{i,j,k}\right) + \\ & P_{i,j,k}\,h^m_{i,j,k} + Q_{i,j,k} = \mathit{SS}_{i,j,k}\left(\Delta r_j \Delta c_i \Delta v_k\right) \frac{h^m_{i,j,k}-h^{m-1}_{i,j,k}}{t^m-t^{m-1}} \end{align}

where

$h^m_{i,j,k}\,$ is the hydraulic head at cell i,j,k at time step m
CV, CR and CC are the hydraulic conductances, or branch conductances between node i,j,k and a neighboring node
$P_{i,j,k}\,$ is the sum of coefficients of head from source and sink terms
$Q_{i,j,k}\,$ is the sum of constants from source and sink terms, where $Q_{i,j,k}<0.0\,$ is flow out of the groundwater system (such as pumping) and $Q_{i,j,k}>0.0\,$ is flow in (such as injection)
$\mathit{SS}_{i,j,k}\,$ is the specific storage
$\Delta r_j\Delta c_i\Delta v_k\,$ are the dimensions of cell i,j,k, which, when multiplied, represent the volume of the cell; and
$t^m\,$ is the time at time step m

This equation is formulated into a system of equations to be solved as:

\begin{align} &\mathit{CV}_{i,j,k-\tfrac{1}{2}} h^m_{i,j,k-1} + \mathit{CC}_{i-\tfrac{1}{2},j,k} h^m_{i-1,j,k} + \mathit{CR}_{i,j-\tfrac{1}{2},k} h^m_{i,j-1,k} \\ &+ \left( - \mathit{CV}_{i,j,k-\tfrac{1}{2}} - \mathit{CC}_{i-\tfrac{1}{2},j,k} - \mathit{CR}_{i,j-\tfrac{1}{2},k} - \mathit{CR}_{i,j+\tfrac{1}{2},k} - \mathit{CC}_{i+\tfrac{1}{2},j,k} - \mathit{CV}_{i,j,k+\tfrac{1}{2}} + \mathit{HCOF}_{i,j,k}\right) h^m_{i,j,k} \\ &+ \mathit{CR}_{i,j+\tfrac{1}{2},k} h^m_{i,j+1,k} + \mathit{CC}_{i+\tfrac{1}{2},j,k} h^m_{i+1,j,k} + \mathit{CV}_{i,j,k+\tfrac{1}{2}} h^m_{i,j,k+1} = \mathit{RHS}_{i,j,k} \end{align}

where

\begin{align} \mathit{HCOF}_{i,j,k} &= P_{i,j,k} - \frac{\mathit{SS}_{i,j,k}\Delta r_j \Delta c_i \Delta_k}{t^m-t^{m-1}} \\ \mathit{RHS}_{i,j,k} &= -Q_{i,j,k} - \mathit{SS}_{i,j,k}\Delta r_j \Delta c_i \Delta v_k \frac{h^{m-1}_{i,j,k}}{t^m-t^{m-1}} \end{align}

or in matrix form as:

$A\bold{h}=\bold{q}$

where

A is a matrix of the coefficients of head for all active nodes in the grid
$\bold{h}$ is a vector of head values at the end of time step m for all nodes in the grid; and
$\bold{q}$ is a vector of the constant terms, RHS, for all nodes of the grid.

### Limitations

• The water must have a constant density, dynamic viscosity (and consequently temperature) throughout the modelling domain (SEAWAT is a modified version of MODFLOW which is designed for density-dependent groundwater flow and transport)
 $\mathbf{K} = \begin{bmatrix} K_{xx} & 0 & 0 \\ 0 & K_{yy} & 0 \\ 0 & 0 & K_{zz}\end{bmatrix} \$
• The principal components of anisotropy of the hydraulic conductivity used in MODFLOW is displayed on the right. This tensor does not allow non-orthogonal anisotropies, as could be expected from flow in fractures. Horizontal anisotropy for an entire layer can be represented by the coefficient "TRPY" (Data Item 3 Page 153.[3]

## Versions

Cover image from McDonald & Harbaugh (1983),[3] which illustrates a computer surrounded by modules and arrays used by MODFLOW. This was said at the time to resemble a "component stereo system".

### "Modular Model"

The USGS throughout the 1970s had developed several hundred models, written in different dialects of FORTRAN. At the time, it was common practice to rewrite a new model to fit the need of a new groundwater scenario. The concept for MODFLOW was originally designed in 1981 to provide a common modular groundwater model, which could be compiled on multiple platforms without major (or any) modification, and can read and write common formats. Different aspects of the groundwater system would be handled using the modules, similar to the idea of a "component stereo system". The original name of the code was "The USGS Modular Three-Dimensional Finite-Difference Ground-Water Flow Model", or informally as "The Modular Model." The name MODFLOW was coined several years after the initial code development, which started in 1981.[2]

The first version of MODFLOW[3] was published on December 28, 1983, and was coded entirely in FORTRAN 66. The source code for this version is listed in USGS Open File Report 83-875 referred to above.

### MODFLOW-88

This version of MODFLOW[4] was rewritten in FORTRAN 77, and was originally released on July 24, 1987. The current version of MODFLOW-88 is 2.6, released on September 20, 1996.

MODPATH, was initially developed in 1989 to post-process the steady-state MODFLOW-88 data to determine three-dimensional pathlines of particles. This innovation has been indispensable for the fields of contaminant hydrogeology. It is still used as a post-processor in recent versions of MODFLOW.

A separate program, MODFLOWP, was developed in 1992 to estimate various parameters used in MODFLOW. This program was eventually built into MODFLOW-2000.

### MODFLOW-96

MODFLOW-96 (version 3.0) was originally released on December 3, 1996, and is a cleaned-up and revised continuation of MODFLOW-88.[5][6] There are three final releases of MODFLOW-96:

• MODFLOW-96 (version 3.3, May 2, 2000)
• MODFLOW-96h (version 3.3h, July 10, 2000), with HYDMOD package
• MODFLOWP (version 3.2, Oct 9, 1997), MODFLOW-96 with parameter-estimation

Several graphical interfaces were first developed using the MODFLOW-96 code.

### MODFLOW-2000

MODFLOW-2000 (version 1.0; version numbering was reset) was released on July 20, 2000, which merged MODFLOWP and HYDMOD codes into the main program.[7] Many new packages and enhancements were also included, including new solvers, stream and saturated flow packages. The internal design concepts also changed from previous versions, such that packages, processes and modules are distinct. This version was coded in a mixture of FORTRAN 77, Fortran 90, and C. MODFLOW-2000 can also be compiled for parallel computing, which can allow multiple processors to be used to increase model complexity and/or reduce simulation time.

The final version of MODFLOW-2000 (or MF2K) is version 1.19.01, released on March 25, 2010. There are four related or branched codes based on MODFLOW-2000:

• MF2K-GWM or GWM-2000 (version 1.1.4, May 31, 2011, branched from mf2k 1.17.2), with groundwater management capability using optimization
• MF2K-FMP (version 1.00, May 19, 2006, based on mf2k 1.15.03), with Farm Process
• MF2K-GWT (version 1.9.8, October 28, 2008, based on MF2K 1.17.02), groundwater flow and solute-transport model
• SEAWAT (version 4.00.05, October 19, 2012), variable-density flow and transport processes
• VSF (version 1.01, July 5, 2006), variably saturated flow

### MODFLOW-2005

This is the current version of MODFLOW.[8] It is written primarily in Fortran 90 and C.

The current version of MODFLOW-2005 is version 1.11.00, released on August 8, 2013. Related or branched codes include:

• MODFLOW-OWHM[9] (version 1.00.00, September 15, 2014), The One-Water Hydrologic Flow Model (MODFLOW-OWHM, MF-OWHM or MODFLOW-ONE[10]), is a fusion of multiple versions of MODFLOW (NWT, LGR, FMP, SWR, SWI) into ONE version, contains upgrades and new features and allows the simulation of head-dependent flows, flow-dependent flows, and deformation dependent flows that collectively affect conjunctive use of water resources and provides an online input guide
• MODFLOW-CFP (version 1.8.00, February 23, 2011), conduit flow process to simulate turbulent or laminar groundwater flow conditions
• MODFLOW-LGR (version 2.0, September 19, 2013), local grid refinement
• GWM-2005 (version 1.4.2, March 25, 2013), groundwater management capability using optimization
• MF2005-FMP2 (version 1.0.00, October 28, 2009), estimate dynamically integrated supply-and-demand components of irrigated agriculture as part of the simulation of surface-water and ground-water flow
• MODFLOW-NWT (version 1.0.9, July 1, 2014), Newton formulation for solving problems involving drying and rewetting nonlinearities of the unconfined groundwater-flow equation

### MODFLOW-USG

MODFLOW-USG[11] was initially released in 2013, which is designed to adapted to a wide range of grid variations using unstructured grids. The current version of MODFLOW-USG is version 1.2.00, released 21 March 2014.

## Packages

Name Long name Version introduced
Required packages
BAS Basic Package original
DIS Discretization MODFLOW-2000 (1.0)
DISU Unstructured Discretization MODFLOW-USG (1.0)
OC Output Control original
Groundwater flow packages
BCF Block-Centered Flow Package original
CLN Connected Linear Network Process MODFLOW-USG (1.0)
GNC Ghost Node Correction Package MODFLOW-USG (1.0)
HFB Horizontal Flow Barrier Package MODFLOW-88
HUF Hydrogeologic Unit Flow Package MODFLOW-2000 (1.1)
LPF Layer-Property Flow Package MODFLOW-2000 (1.0)
SWI2 Seawater Intrusion Package MODFLOW-2005 (1.11)
UPW Upstream Weighting Package MODFLOW-NWT (1.0)
UZF Unsaturated-Zone Flow Package MODFLOW-2005 (1.2)
FHB Flow and Head Boundary Package MODFLOW-96 (3.2)
Specified flux boundary packages
FHB Flow and Head Boundary Package MODFLOW-96 (3.2)
RCH Recharge Package original
WEL Well Package original
DAF DAFLOW MODFLOW-96
DRN Drain Package original
DRT Drain Return Package MODFLOW-2000 (1.1)
ETS Evapotranspiration Segments Package MODFLOW-2000 (1.1)
EVT Evapotranspiration Package original
LAK Lake Package MODFLOW-2000 (1.1)
MNW Multi-Node, Drawdown-Limited Well Package MODFLOW-2000 (1.11)
RES Reservoir Package MODFLOW-88 (2.6)
RIP Riparian Evapotranspiration Package MODFLOW-OWHM (1.0)
RIV River Package original
SFR Streamflow-Routing Package MODFLOW-2000 (1.14.00)
STR Stream Package MODFLOW-88
SWR Surface-Water Routing Process MODFLOW-NWT 1.08
UZF Unsaturated-Zone Flow Package MODFLOW-2005 (1.2)
Solvers
DE4 Direct Solver Package MODFLOW-88 (2.5)
GMG Geometric Multigrid Solver MODFLOW-2000 (1.15.00)
LMG Link-AMG Package MODFLOW-2000 (1.4) [Note 1]
NWT Newton MODFLOW-NWT (1.0)
PCGN Preconditioned Conjugate Gradient Solver with Improved Nonlinear Control MODFLOW-2005 (1.9.0)
SIP Strongly Implicit Procedure Package original
SMS Sparse Matrix Solver MODFLOW-USG (1.0)
SOR Slice Successive Over-Relaxation Package original
Miscellaneous packages
GAG Gage MODFLOW-2000
HYD HYDMOD MODFLOW-2000 (1.1)
IBS Interbed-Storage MODFLOW-88
KDEP Hydraulic-Conductivity Depth-Dependence Capability MODFLOW-2000 (1.12)
LVDA Model-Layer Variable-Direction Horizontal Anisotropy Capability MODFLOW-2000 (1.12)
SUB Subsidence and Aquifer-System Compaction MODFLOW-2000 (1.12)
SWT Subsidence and Aquifer-System Compaction Package for Water-Table Aquifers MODFLOW-2000 (1.18)
UTL Utility original
Observation process input files
OBS Input File For All Observations MODFLOW-2000
DROB Drain Observation MODFLOW-2000
DTOB Drain Return Observation MODFLOW-2000
RVOB River Observation MODFLOW-2000
STOB Stream Observation MODFLOW-2000
Obsolete packages
GFD General Finite-Difference MODFLOW-88 to 96
TLK Transient Leakage MODFLOW-88 to 96
1. ^ Due to licensing restrictions, the USGS is no longer able to publicly distribute the Algebraic Multi-Grid

## Graphical user interfaces

There are several graphical interfaces to MODFLOW, which often include the compiled MODFLOW code with modifications. These programs aid the input of data for creating MODFLOW models.

### Non-commercial interfaces

Non-commercial MODFLOW versions are free, however, their licensing usually limit the use to non-profit educational or research purposes.

• ModelMuse is a grid-independent graphical user interface from the USGS for MODFLOW-2005, MODPATH, and PHAST. There are no license restrictions. The source code is included.
• MODFLOW-GUI – Made by the USGS: it is updated often to match the current USGS MODFLOW development. It supports MODFLOW-96, MODFLOW-2000, MODFLOW-2005, MODPATH, ZONEBUDGET, GWT, MT3DMS, SEAWAT, and GWM. Source code for MODFLOW-GUI is included. It depends on Argus ONE: a commercial interface for constructing generic models. There are no license restrictions beyond those of Argus ONE.
• PMWIN – "Processing MODFLOW" (for Windows) – powerful freeware for MODFLOW processing and visualization, provided alongside an instructional book;[13] also available in Traditional Chinese. The license for this version is limited to non-commercial use.
• mflab - mflab is a MATLAB interface to MODFLOW. The user builds and analyzes models by writing a set of MATLAB scripts. This results in flexible and efficient workflows, allowing a great deal of automation.

### Commercial programs

Commercial MODFLOW programs are typically used by governments and consultants for practical applications of MODFLOW to real-world groundwater problems. Professional versions of MODFLOW are generally priced at a minimum of around $1000 and typically range upward to$7000 USD. This is a list of commercial programs for MODFLOW:

All current versions of these programs run only on Microsoft Windows, however previous versions of GMS (up to Version 3.1) were compiled for several Unix platforms.

### Former graphical interfaces

• Graphic Groundwater – Windows-based interface
• ModelCad – A Windows-based interface, developed by Geraghty and Miller, Inc.
• ModIME – A DOS-based interface by S.S. Papadopulos & Associates, Inc.

## References

1. ^ Water Webserver Team (March 5, 2014). "Software User Rights Notice". Water Resources of the United States. U.S. Department of the Interior, U.S. Geological Survey. Retrieved 2014-05-27.
2. ^ a b McDonald M.G. and Harbaugh, A.W. (2003). "The History of MODFLOW". Ground Water 41 (2): 280–283. doi:10.1111/j.1745-6584.2003.tb02591.x. PMID 12656294.
3. ^ a b c McDonald, M.G., and Harbaugh, A.W. (December 28, 1983). A modular three-dimensional finite-difference ground-water flow model. Open-File Report 83-875. U.S. Geological Survey.
4. ^ McDonald, M.G., and Harbaugh, A.W. (1988). A modular three-dimensional finite-difference ground-water flow model (PDF). Techniques of Water-Resources Investigations, Book 6. U.S. Geological Survey.
5. ^ Harbaugh, A.W., and McDonald, M.G. (1996a). User's documentation for MODFLOW-96, an update to the U.S. Geological Survey modular finite-difference ground-water flow model (PDF). Open-File Report 96-485. U.S. Geological Survey.
6. ^ Harbaugh, A.W., and McDonald, M.G. (1996). Programmer's documentation for MODFLOW-96, an update to the U.S. Geological Survey modular finite-difference ground-water flow model (PDF). Open-File Report 96-486. U.S. Geological Survey.
7. ^ Harbaugh, A.W., Banta, E.R., Hill, M.C., and McDonald, M.G. (2000). MODFLOW-2000, the U.S. Geological Survey modular ground-water model — User guide to modularization concepts and the Ground-Water Flow Process (PDF). Open-File Report 00-92. U.S. Geological Survey.
8. ^ Harbaugh, Arlen W. (2005). MODFLOW-2005, The U.S. Geological Survey Modular Ground-Water Model—the Ground-Water Flow Process. Techniques and Methods 6–A16. U.S. Geological Survey.
9. ^ Hanson, Randall T.; Boyce, Scott E.; Schmid, Wolfgang; Hughes, Joseph D.; Mehl, Steffen W.; Leake, Stanley A.; Maddock, Thomas, III; Niswonger, Richard G. (2014), One-Water Hydrologic Flow Model (MODFLOW-OWHM), Techniques and Methods 6-A51, Reston, VA: U.S. Geological Survey
10. ^ https://sourceforge.net/projects/modflow-owhm
11. ^ Panday, Sorab; Langevin, Christian D.; Niswonger, Richard G.; Ibaraki, Motomu; Hughes, Joseph 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, Techniques and Methods 6-A45, Reston, VA: U.S. Geological Survey
12. ^ Wen-Hsing Chiang (2005). 3D-Groundwater Modeling with PMWIN (Second ed.). Springer. doi:10.1007/3-540-27592-4. ISBN 978-3-540-27590-9.