Online Guide to MODFLOW-2005

MNW2 - Multi-Node Well Package

Hide Navigation Pane

MNW2 - Multi-Node Well Package

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

MNW2 - Multi-Node Well Package

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

Abbreviation in Name file

MNW2

Purpose

The Multi-Node Well packag is used to simulate “long” wells that are connected to more than one node of the finite-difference grid. The software represents a revision to a previously published Multi-Node Well Package and is meant to replace the previous version. The modifications allow corrections for the effects of partially penetrating wells, improved treatment of non-vertical wells, and adjustments in discharge according to specified pump performance (head-capacity) curves, among other changes.

Documentation

Release.txt for MODFLOW-NWT

Related Packages

Well package

MNW1 package

MNWI package

Head-Dependent Flux Boundary packages

Supported in

MODFLOW-2000
MODFLOW-2005
MODFLOW-LGR
MODFLOW-CFP
MODFLOW-NWT
MODFLOW-OWHM

Other Notes

The MNW1 and MNW2 packages can not both be used in the same simulation.

MODFLOW Name File

The MNW2 Package is activated by including a record in the MODFLOW name file using the file type (Ftype) “MNW2” to indicate that relevant calculations are to be made in the model and to specify the related input data file. The user can optionally specify that information calculated for specific multi-node wells are to be written to separate output files by including a record in the MODFLOW name file using the file type (Ftype) “MNWI” that specifies the relevant input data file giving selected well locations. The MNW2 and MNWI Packages are compatible with MODFLOW–2000 (Harbaugh and others, 2000) and MODFLOW–2005 (Harbaugh, 2005) and with compatible versions of the ground-water transport process, but not with earlier versions of MODFLOW.

MNW2 Package Input Data

The MNW2 input file consists of input items (datasets) numbered from 0 through 4, each consisting of one or more records, as described in detail below. These data are used to specify information about the locations, flows, physical and hydraulic properties of the wells, and possibly solute concentrations, as well as specifying certain output control options.

In the following description, input parameters are indicated as being optional by their enclosure in curly brackets. All input variables are read using free formats. In free format, variables are separated by one or more spaces or by a comma and optionally one or more spaces. Thus, in free format, a blank field cannot be used to set a variable value to zero.

FOR EACH SIMULATION:

Data Set 0

[#Text]

A character variable (up to 199 characters) that is printed when the file is read. The “#” character must be in column 1, and, accordingly, the variable starts in column 2. Any characters can be included in Text.

Note 1: Item 0 can be repeated multiple times. Text will be printed to the MODFLOW listing (output) file.

 

 

 


 

 

 

[WELLID TABNAM TSFAC]

READ NLNK TIMES IF NLNK>0

WELLID is the name of the MNW2 well that is linked to the tabfile TABNAM.

 

Data Set 1

 


 

MNWMAX [NODTOT] IWL2CB MNWPRNT [OPTION]

The absolute value of MNWMAX is the maximum number of multi-node wells (MNW) to be simulated. If MNWMAX is a negative number, NODTOT is read.

Maximum number of nodes.

The code automatically estimates the maximum number of nodes (NODTOT) as required for allocation of arrays. However, if a large number of horizontal wells are being simulated, or possibly for other reasons, this default estimate proves to be inadequate, a new input option has been added to allow the user to directly specify a value for NODTOT. If this is a desired option, then it can be implemented by specifying a negative value for "MNWMAX"--the first value listed in Record 1 (Line 1) of the MNW2 input data file. If this is done, then the code will assume that the very next value on that line will be the desired value of "NODTOT". The model will then reset "MNWMAX" to its absolute value. The value of "IWL2CB" will become the third value on that line, etc.

is a flag and a unit number:

if IWL2CB > 0, then it is the unit number to which MNW cell-by-cell flow terms will be recorded whenever cell-by-cell budget data are written to a file (as determined by the outputcontrol options of MODFLOW).
if IWL2CB = 0, then MNW cell-by-cell flow terms will not be printed or recorded.
if IWL2CB < 0, then well injection or withdrawal rates and water levels in the well and its multiple cells will be printed in the main MODFLOW listing (output) file whenever cell-by-cell budget data are written to a file (as determined by the output control options of MODFLOW).

is a flag controlling the level of detail of information about multi-node wells to be written to the main MODFLOW listing (output) file. If MNWPRNT = 0, then only basic well information will be printed in the main MODFLOW output file; increasing the value of MNWPRNT yields more information, up to a maximum level of detail corresponding with MNWPRNT = 2.

is an optional list of character values in the style of “AUXILIARY abc” or “AUX abc” where “abc” is the name of an auxiliary parameter to be read for each multi-node well as part of dataset 4a. Up to 20 parameters can be specified, each of which must be preceded by “AUXILIARY” or “AUX.” These parameters will not be used by the MNW2 Package, but they will be available for use by other packages.

For each Multi-Node well (that is, repeat dataset 2 MNWMAX times):

Data Set 2a

WELLID NNODES

is the name of the well. This is a unique alphanumeric identification label for each well. The text string is limited to 20 alphanumeric characters. If the name of the well includes spaces, then enclose the name in quotes.

is the number of cells (nodes) associated with this well. NNODES normally is > 0, but for the case of a vertical borehole, setting NNODES < 0 will allow the user to specify the elevations of the tops and bottoms of well screens or open intervals (rather than grid layer numbers), and the absolute value of NNODES equals the number of open intervals (or well screens) to be specified in dataset 2d. If this option is used, then the model will compute the layers in which the open intervals occur, the lengths of the open intervals, and the relative vertical position of the open interval within a model layer (for example, see figure 14 and related discussion).

Note 2: If NNODES < 0 and elevations indicate multiple well screens or open intervals within a single model layer, then the model will assign a single equivalent composite well screen (see additional discussion in text).

Data Set 2b

LOSSTYPE PUMPLOC Qlimit PPFLAG PUMPCAP

is a character flag to determine the user-specified model for well loss (equation 2). Available options (that is, place one of the following approved words in this field) are:

NONE there are no well corrections and the head in the well is assumed to equal the head in the cell. This option (hWELL = hn) is only valid for a single-node well (NNODES = 1). (This is equivalent to using the original WEL Package of MODFLOW, but specifying the single-node well within the MNW2 Package enables the use of constraints.)
THIEM this option allows for only the cell-to-well correction at the well based on the Thiem (1906) equation; head in the well is determined from equation 2 as (hWELL = hn + AQn), and the model computes A on the basis of the user-specified well radius (Rw) and previously defined values of cell transmissivity and grid spacing. Coefficients B and C in equation 2 are automatically set = 0.0. User must define Rw in dataset 2c or 2d.
SKIN this option allows for formation damage or skin corrections at the well: hWELL = hn + AQn + BQn (from equation 2), where A is determined by the model from the value of Rw, and B is determined by the model from Rskin and Kskin. User must define Rw, Rskin, and Kskin in dataset 2c or 2d.
GENERAL head loss is defined with coefficients A, B, and C and power exponent P (hWELL = hn + AQn + BQn + CQnP). A is determined by the model from the value of Rw. User must define Rw, B, C, and P in dataset 2c or 2d. A value of P = 2.0 is suggested if no other data are available (the model allows 1.0 P 3.5). Entering a value of C = 0 will result in a “linear” model in which the value of B is entered directly (rather than entering properties of the skin, as with the SKIN option).
SPECIFYcwc the user specifies an effective conductance value (equivalent to the combined effects of the A, B, and C well-loss coefficients expressed in equation 15) between the well and the cell representing the aquifer, CWC. User must define CWC in dataset 2c or 2d. If there are multiple screens within the grid cell or if partial penetration corrections are to be made, then the effective value of CWC for the node may be further adjusted automatically by MNW2.

is an integer flag pertaining to the location along the borehole of the pump intake (if any). If PUMPLOC = 0, then either there is no pump or the intake location (or discharge point for an injection well) is assumed to occur above the first active node associated with the multinode well (that is, the node closest to the land surface or to the wellhead). If PUMPLOC > 0, then the cell in which the intake (or outflow) is located will be specified in dataset 2e as a LAY-ROW-COL grid location. For a vertical well only, specifying PUMPLOC < 0, will enable the option to define the vertical position of the pump intake (or outflow) as an elevation in dataset 2e (for the given spatial grid location [ROW-COL] defined for this well in 2d).

is an integer flag that indicates whether the water level (head) in the well will be used to constrain the pumping rate. If Qlimit = 0, then there are no constraints for this well. If Qlimit > 0, then pumpage will be limited (constrained) by the water level in the well, and relevant parameters are constant in time and defined below in dataset 2f. If Qlimit < 0, then pumpage will be limited (constrained) by the water level in the well, and relevant parameters can vary with time and are defined for every stress period in dataset 4b.

is an integer flag that determines whether the calculated head in the well will be corrected for the effect of partial penetration of the well screen in the cell. If PPFLAG = 0, then the head in the well will not be adjusted for the effects of partial penetration. If PPFLAG > 0, then the head in the well will be adjusted for the effects of partial penetration if the section of well containing the well screen is vertical (as indicated by identical row-column locations in the grid). If NNODES < 0 (that is, the open intervals of the well are defined by top and bottom elevations), then the model will automatically calculate the fraction of penetration for each node and the relative vertical position of the well screen. If NNODES > 0, then the fraction of penetration for each node must be defined in dataset 2d (see below) and the well screen will be assumed to be centered vertically within the thickness of the cell (except if the well is located in the uppermost model layer that is under unconfined conditions, in which case the bottom of the well screen will be assumed to be aligned with the bottom boundary of the cell and the assumed length of well screen will be based on the initial head in that cell).

is an integer flag and value that determines whether the discharge of a pumping (withdrawal) well (Q < 0.0) will be adjusted for changes in the lift (or total dynamic head) with time. If PUMPCAP = 0, then the discharge from the well will not be adjusted on the basis of changes in lift. If PUMPCAP > 0 for a withdrawal well, then the discharge from the well will be adjusted on the basis of the lift, as calculated from the most recent water level in the well. In this case, data describing the head-capacity relation for the pump must be listed in datasets 2g and 2h, and the use of that relation can be switched on or off for each stress period using a flag in dataset 4a. The number of entries (lines) in dataset 2h corresponds to the value of PUMPCAP. If PUMPCAP does not equal 0, it must be set to an integer value of between 1 and 25, inclusive.

Note 3: Discharge is reduced under PUMPCAP independently from a reduction related to constraints (and Qlimit). If both are applied to the same well, then the most restrictive condition from the two criteria will take precedence. PUMPCAP is only applied for withdrawal wells (that is, if the specified pumping rate (Qdes in dataset 4a) is negative in sign).

If LOSSTYPE NONE:

Data Set 2c

[Rw Rskin Kskin B C P CWC]

Include the appropriate coefficients in 2c, as consistent with the specified LOSSTYPE defined in 2b, as summarized also in table A1–1.

if LOSSTYPE = THIEM, then specify Rw (the radius of the well).
if LOSSTYPE = SKIN, then specify Rw, Rskin (the radius to the outer limit of the skin), and Kskin (the hydraulic conductivity of the skin).
if LOSSTYPE = GENERAL, then specify Rw, B, C, and P, where the last three parameters are coefficients in the well-loss equation (equation 2). (See notes and suggestions for GENERAL option under 2b above.)
if LOSSTYPE = SPECIFYcwc, then specify CWC (the cell-to-well conductance; see equation 15).

Note 4: Any of the parameters in dataset 2c can be assumed to be constant for the entire length of the open interval of the well (in which case appropriate values are simply specified above), or it can be assumed that they vary along the length of the open interval of the well (in which case any negative value should be specified above and the actual values then specified for each node or open interval in dataset 2d below). For example, if Rw = -1, then it is assumed that Rw varies along the length of the well and a real value of Rw must be defined for each node (or open interval) of this well in dataset 2d.

Table A1–1. Summary of parameter definition requirements for available well-loss options.

Losstype

Parameter definition requirements for datasets 2c and (or) 2d

RW

Rskin

Kskin

B

C

P

CWC

NONE

__

__

__

__

__

__

__

THIEM

X

__

__

__

__

__

__

SKIN

X

X

X

__

__

__

__

GENERAL

__

__

__

X

X

X

__

SPECIFYcwc

__

__

__

__

__

__

X

For each node (or open interval) of this well the user must use either input format 1 or input format 2; in either case, dataset 2d must have |NNODES| records:

Data Set 2d

2d-1 Input format 1, for NNODES > 0

LAY ROW COL [Rw Rskin Kskin B C P CWC PP]

2d-2 Input format 1, for NNODES < 0

Ztop Zbotm ROW COL [Rw Rskin Kskin B C P CWC]

are the layer, row, and column numbers of each model cell (node) for the current well. If NNODES > 0, then a total of NNODES model cells (nodes) must be specified for each well (and dataset 2d must contain NNODES records). In the list of nodes defining the multi-node well, the data list must be constructed and ordered so that the first node listed represents the node closest to the wellhead, the last node listed represents the node furthest from the wellhead, and all nodes are listed in sequential order from the top to the bottom of the well (corresponding to the order of first to last well nodes). A particular node in the grid can be associated with more than one multi-node well.

are the top and bottom elevations of the open intervals (or screened intervals) of a vertical well. These values are only read if NNODES < 0 in dataset 2a. The absolute value of NNODES indicates how many open intervals are to be defined, and so must correspond exactly to the number of records in dataset 2d for this well. In the list of intervals defining the multi-node well, the data list must be constructed and ordered so that the first interval listed represents the shallowest one, the last interval listed represents the deepest one, and all intervals are listed in sequential order from the top to the bottom of the well. If an interval partially or fully intersects a model layer, then a node will be defined in that cell. If more than one open interval intersects a particular layer, then a length-weighted average of the cell-to-well conductances will be used to define the well-node characteristics; for purposes of calculating effects of partial penetration, the cumulative length of well screens will be assumed to be centered vertically within the thickness of the cell. If the well is a single-node well by definition of LOSSTYPE = NONE and the defined open interval straddles more than one model layer, then the well will be associated with the cell where the center of the open interval exists.

if the relevant variables were set to a negative value in dataset 2c, then that means that they vary in value among nodes (or open intervals, if NNODES < 0) and should be defined here in dataset 2d according to the definitions given under dataset 2c. Which values are specified here, if any, depends on which were set to a negative value in dataset 2c.

the radius of the well

the radius to the outer limit of the skin

the hydraulic conductivity of the skin

coefficients in the well-loss equation (equation 2). (See notes and suggestions for GENERAL option of LOSSTYPE under 2b above.)

the cell-to-well conductance; see equation 15

is the fraction of partial penetration for this cell (see PPFLAG in dataset 2b). Only specify if PPFLAG > 0 and NNODES > 0.

Note 5: If NNODES < 0 and elevations indicate multiple well screens or open intervals within a single model layer, then the model will assign a single equivalent composite well screen for the node based on the ratio of the screen length to layer thickness (see additional discussion in text). However, if CWC values are specified explicitly by the user, then it is assumed that these values are already appropriate for the actual length of screen and are not further adjusted by this ratio (that is, equation 37 is not applied).

If PUMPLOC 0:

Data Set 2e

[PUMPLAY PUMPROW PUMPCOL] [Zpump]

are the layer, row, and column numbers, respectively, of the cell (node) in this multi-node well where the pump intake (or outflow) is located. The location defined in dataset 2e should correspond with one of the nodes listed in 2d for this multi-node well. These variables are only read if PUMPLOC > 0 in 2b.

is the elevation of the pump intake (or discharge pipe location for an injection well). Zpump is read only if PUMPLOC < 0; in this case, the model assumes that the borehole is vertical and will compute the layer of the grid in which the pump intake is located.

Note 6: If the intake location (or discharge point for an injection well) is specified by node and that node does not correspond with one of the nodes listed for the well, or if the intake location is specified by elevation and the elevation is above the top of the open interval, then the intake location will be assumed to occur above the first active node associated with the multinode well (that is, the node closest to the land surface or to the wellhead).

If Qlimit > 0:

Data Set 2f

Hlim QCUT [Qfrcmn Qfrcmx]

is the limiting water level (head) in the well, which is a minimum for discharging wells and a maximum for injection wells. For example, in a discharging well, when hWELL falls below Hlim, the flow from the well is constrained.

is an integer flag that indicates how pumping limits Qfrcmn and Qfrcmx will be specified. If pumping limits are to be specified as a rate (L3/T), then set QCUT > 0; if pumping limits are to be specified as a fraction of the specified pumping rate (Qdes), then set QCUT < 0. If there is not a minimum pumping rate below which the pump becomes inactive, then set QCUT = 0.

is the minimum pumping rate or fraction of original pumping rate (a choice that depends on QCUT) that a well must exceed to remain active during a stress period. The absolute value of Qfrcmn must be less than the absolute value of Qfrcmx (defined next). Only specify if QCUT 0.

is the minimum pumping rate or fraction of original pumping rate that must be exceeded to reactivate a well that had been shut off based on Qfrcmn during a stress period. The absolute value of Qfrcmx must be greater than the absolute value of Qfrcmn. Only specify if QCUT 0.

Note 7: Only specify dataset 2f if the value of Qlimit in dataset 2b is positive. Do not enter fractions as percentages. For example, if QCUT < 0, and the well must exceed 80 percent of the original pumping rate to remain active, then enter a value of “0.8” for Qfrcmn. If QCUT > 0, then the rates specified for Qfrcmn and Qfrcmx follow the sign convention for MODFLOW; that is, for discharging wells the rate should be negative, and for recharging (injection) wells the rate should be positive.

If PUMPCAP > 0:

Data Set 2g

Hlift LIFTq0 LIFTqmax HWtol

is the reference head (or elevation) corresponding to the discharge point for the well. This is typically at or above the land surface, and can be increased to account for additional head loss due to friction in pipes.

is the value of lift (total dynamic head) that exceeds the capacity of the pump. If the calculated lift equals or exceeds this value, then the pump is shut off and discharge from the well ceases.

is the value of lift (total dynamic head) corresponding to the maximum pumping (discharge) rate for the pump. If the calculated lift is less than or equal to LIFTqmax, then the pump will operate at its design capacity, assumed to equal the user-specified value of Qdes (in dataset 4a). LIFTqmax will be associated with the value of Qdes in the first stress period in which Qdes for the well is less than 0.0.

is a minimum absolute value of change in the computed water level in the well allowed between successive iterations; if the value of hWELL changes from one iteration to the next by a value smaller than this tolerance, then the value of discharge computed from the head capacity curves will be locked for the remainder of that time step. It is recommended that HWtol be set equal to a value approximately one or two orders of magnitude larger than the value of HCLOSE, but if the solution fails to converge, then this may have to be adjusted.

Note 8: LIFTq0 and LIFTqmax define the two end points of the performance curve (head-capacity curve) for the pump installed in the well. One or more additional intermediate points on the curve must be defined below in dataset 2h. The model will use linear interpolation to estimate values between defined data points. The number of additional data points on the curve (and lines in dataset 2h) must correspond to the value of PUMPCAP for this well (where PUMPCAP 25). The data entered are typically provided by the pump manufacturer. The performance curves will only be applied for stress periods in which Qdes < 0.0 and CapMult > 0 (see dataset 4a).

If PUMPCAP > 0:

Data Set 2h

LIFTn Qn

is a value of lift (total dynamic head) that corresponds to a known value of discharge (Qn) for the given pump, specified as the second value in this line.

is the value of discharge corresponding to the height of lift (total dynamic head) specified previously on this line. Sign (positive or negative) is ignored.

Note 9: Repeat 2h PUMPCAP times. That is, the number of lines (records) in dataset 2h must correspond to the value of PUMPCAP for this well. Enter data in order of decreasing lift (that is, start with the point corresponding to the highest value of total dynamic head) and increasing discharge. The discharge value for the last data point in the sequence must be less than the value of LIFTqmax. The data entered are typically provided by the pump manufacturer. These data provide intermediate values for a lookup table in which the end (limiting) values are derived from values specified earlier in dataset 2g.

FOR EACH STRESS PERIOD:

Data Set 3

is an integer value for reusing or reading multi-node well data; it can change each stress period. ITMP must be 0 for the first stress period of a simulation.

if ITMP > 0, then ITMP is the total number of active multi-node wells simulated during the stress period, and only wells listed in dataset 4a will be active during the stress period. Characteristics of each well are defined in datasets 2 and 4.
if ITMP = 0, then no multi-node wells are active for the stress period and the following dataset is skipped.
if ITMP < 0, then the same number of wells and well information will be reused from the previous stress period and dataset 4 is skipped.

IF ITMP > 0:

For each multi-node well (that is, repeat dataset 4 ITMP times):

Data Set 4a

WELLID Qdes [CapMult] [Cprime] [xyz]

must correspond with one of the names defined in dataset 2a. Including WELLID in this dataset means it will be an active well during this stress period.

is the actual (or maximum desired, if constraints are to be applied) volumetric pumping rate (negative for withdrawal or positive for injection) at the well (L3/T). Qdes should be set to 0 for nonpumping wells. If constraints are applied, then the calculated volumetric withdrawal or injection rate may be adjusted to range from 0 to Qdes and is not allowed to switch directions between withdrawal and injection conditions during any stress period. When PUMPCAP > 0, in the first stress period in which Qdes is specified with a negative value, Qdes represents the maximum operating discharge for the pump; in subsequent stress periods, any different negative values of Qdes are ignored, although values are subject to adjustment for CapMult. If Qdes 0.0, then pump-capacity adjustments are not applied.

is a flag and multiplier for implementing head-capacity relations during a given stress period. Only specify if PUMPCAP > 0 for this well. If CapMult 0, then head-capacity relations are ignored for this stress period. If CapMult = 1.0, then head-capacity relations defined in datasets 2g and 2h are used. If CapMult equals any other positive value (for example, 0.6 or 1.1), then head-capacity relations are used but adjusted and shifted by multiplying the discharge value indicated by the head-capacity curve by the value of CapMult.

is the concentration in the injected fluid. Only specify if Qdes > 0 and GWT process is active.

represents a list of up to 20 auxiliary variables for a multi-node well that have been defined in dataset 1. The auxiliary variables must be present in each repetition of dataset 4a if they are defined in dataset 1.

If Qlimit < 0:

Data Set 4b

Hlim QCUT [Qfrcmn Qfrcmx]

is the limiting water level (head) in the well, which is a minimum for discharging wells and a maximum for injection wells. For example, in a discharging well, when hWELL falls below Hlim, the flow from the well is constrained.

is an integer flag that indicates how pumping limits Qfrcmn and Qfrcmx will be specified. If pumping limits are to be specified as a rate (L3/T), then set QCUT > 0; if pumping limits are to be specified as a fraction of the specified pumping rate (Qdes), then set QCUT < 0. If there is not a minimum pumping rate below which the pump becomes inactive, then set QCUT = 0.

is the minimum pumping rate or fraction of original pumping rate (a choice that depends on QCUT) that a well must exceed to remain active during a stress period. The absolute value of Qfrcmn must be less than the absolute value of Qfrcmx (defined next). Only specify if QCUT 0.

is the minimum pumping rate or fraction of original pumping rate that must be exceeded to reactivate a well that had been shut off based on Qfrcmn during a stress period. The absolute value of Qfrcmx must be greater than the absolute value of Qfrcmn. Only specify if QCUT 0.

Note 10: Only specify dataset 4b if the value of Qlimit associated with the well defined by WELLID in dataset 4a is negative (where Qlimit is defined in dataset 2b). Do not enter fractions as percentages. For example, if QCUT < 0, and the well must exceed 80 percent of the original pumping rate to remain active, then enter a value of “0.8” for Qfrcmn. If QCUT > 0, then the rates specified for Qfrcmn and Qfrcmx follow the sign convention for MODFLOW; that is, for discharging wells the rate should be negative, and for recharging (injection) wells the rate should be positive.