From XMS Wiki
Jump to navigationJump to search
MODFLOW Commands
Building a MODFLOW Model
Packages Supported in GMS
Saving a MODFLOW Simulation
Importing MODFLOW Files
Unsupported MODFLOW Features
MODFLOW Display Options
MODFLOW Post-Processing Viewing Options
Reading a MODFLOW Simulation











After the conceptual model is constructed and a grid has been created, the final step in converting a conceptual model to a MODFLOW numerical model is to select the Map → MODFLOW command. However, before this command can be selected, MODFLOW must be initialized. MODFLOW is initialized as follows:

  1. Switch to the 3D Grid module
  2. Select the New Simulation command in the MODFLOW menu.
  3. MODFLOW simulations are steady state by default. For a transient simulation, go to the Global Options/Basic Package dialog and select the Transient option. Then set up the stress periods to use in the simulation.
  4. By default, the top layer is unconfined and the remaining layers are confined. To use a different set of layer types, go to the BCF/LPF/HUF Package dialog and select the appropriate layer type for each layer.

Once MODFLOW is initialized, the Map → MODFLOW Map to MODFLOW Macro.svg command becomes available. When the command is selected, the Map → Model dialog appears. Three options are available for converting the conceptual model: Active coverage only, All applicable coverages, and All visible coverages. If the All applicable coverages option is chosen, all of the feature objects in all of the MODFLOW-related coverages in the active conceptual model are used. This option is typically selected when the conceptual model is first converted. If the Active coverage only or the All visible coverages option is selected, only a subset of the coverages are used to update the numerical model.

Temporal Discretization

See the Temporal Discretization page.

Multiple Values Per Cell

Because GMS processes each feature object separately, there will often be sources/sinks that were derived from two separate feature objects in the same cell. In fact, this is almost always the case in the cell that contains the endpoint of one arc and the beginning point of an adjacent arc. This is not an error. MODFLOW handles each of the boundary conditions in the cell simultaneously.

Specified Head Cells

Because the constant head condition forces the head in those cells to match whatever is specified, it is inappropriate to have other boundary conditions defined in the cells that are designated constant head. Therefore, GMS processes all of the specified head objects first. Afterwards, if there is another stress that should normally be assigned to a cell that has been previously assigned a constant head condition, the new stress is not assigned.

Changing Head Boundary

When mapping a specified head boundary to MODFLOW, GMS always uses the CHD package (Time Variant Specified Head package). In MF2K, a changing head boundary must be used in order to extract fluxes out of the MODFLOW output for the arcs in the map module. With MF2K, it is not possible to get a flux observation with normal Spec Head. It is assumed that most of the time the user would want to see the flux in/out of the boundary. If a cell contains two different arcs, the specified head is split in 2 pieces at cells where 2 specified head arcs meet. This is done for 2 reasons. First, the CHD package will combine the CHD boundary conditions that are in the same cell. Second, the flux in/out of the cell will be partitioned to the 2 different arcs in the map module.

A traditional specified head boundary can be manually applied by using the IBOUND and starting heads arrays. The computed heads from MODFLOW will be the same whether a constant head or changing head boundary is used.

Well Screens

NOTE: This approach was developed prior to the existance of the MNW package. The MNW package can more accurately represent a well that crosses multiple MODFLOW layers.

When using well screens in a conceptual model the following equation is used to partition the flow to different layers:



Qi = The flow rate for layer i

(kh)i = The horizontal hydraulic conductivity for layer i

Bi = The length of the well screen intercepted by the layer

For example

Well flux conv.png

Assuming the K's are the horizontal K's, Q1 would be computed as:


In order to complete this computation, the K's must be assigned to the cells in the grid. Assign the K values to the grid prior to executing the Map → MODFLOW command.

If the HUF package is being used then the K value for each cell is estimated from the HUF units.

Automatic Layer Assignment

When building a MODFLOW conceptual model with a multi-layer model, it is necessary to define the range of layers associated with a particular source sink object. In the Coverage Setup dialog when the "Layer range" option is checked option for assigning cell properties to various layers will appear in the feature object Attribute Table under the "Auto assign layer" column including "Use layer range", "Auto-assign BC to one cell" and "Auto-assign BC including lower cells". For example, an arc corresponding to a specified head boundary condition may be associated with layers 1–3 on the edge of a model. On the other hand, a drain arc in the middle of the model may only be associated with the top layer. The following example shows how a specified head boundary condition would map with the "Use layer range" option with the range set from 1 to 2:


In some cases, however, the proper layer for a particular source/sink object will depend on the elevation of the object relative to the layer elevations. For example, a drain may represent a channel that cuts through the terrain. In some places the channel may be shallow and correspond to layer 1. In other places, the channel may be deep enough that it cuts into layer 2. The "Auto assign to one cell" option is used for defining the layer range in these cases. If this option is selected, the object will be associated with the layer where the elevation or head associated with the object falls between the top and bottom elevation for the layer. See the following table:

Object type Head or Elevation
Specified head condition head stage
drain bot. elev.
STR bot. elev.

The following shows how the same specified head boundary condition would map with the "Auto assign to one cell" option:


The "Auto-assign including lower cells" option is useful for cases where it's desired to have a specified head boundary assigned to the layer where the head is between the top and bottom elevation of the cell as well as any active cells below that cell. The following shows how the same specified head boundary condition would map with the "Auto-assign including lower cells" options:


Using TINs

TIN surfaces can be used as part of the conceptual model. See the Map to MODFLOW with TINs page.

Using Rasters

Rasters can be used as part of the conceptual model. A raster can be used to assign the head or elevation to a boundary condition instead assigning a constant value. A raster can be associated with a point, arc, or polygon. When the Map → MODFLOW command is executed and a boundary condition is assigned to a cell, GMS will assign the head/elevation to the boundary condition using the raster value at the cell center. If the cell center is not within the raster then a warning will be reported and a value of 0.0 is assigned for the head/elevation.


There are a few unique issues to be aware of when targeting a UGrid and MODFLOW-USG. The list of features below require that the UGrid be a "stacked grid". A "stacked grid" is one in which there is no vertical sub-discretization of layers and the horizontal discretization of all layers is the same (i.e. the Index of Vertical Sub-Discretization (IVSD) in the UnStructured Grid Discretization (DISU) package could be set to -1).

Also, the specified layer option is not supported by Map → MODFLOW with the RCH and EVT packages. There is a Specified vertical cells option available for the RCH package. When this option is turned on, GMS will fill the grid in with the highest active cells in each column.

See also