1065 lines
41 KiB
Python
1065 lines
41 KiB
Python
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
|
|
# mf6/utils/createpackages.py
|
|
from .. import mfpackage
|
|
from ..data.mfdatautil import ListTemplateGenerator
|
|
|
|
|
|
class ModflowGwfmaw(mfpackage.MFPackage):
|
|
"""
|
|
ModflowGwfmaw defines a maw package within a gwf6 model.
|
|
|
|
Parameters
|
|
----------
|
|
model : MFModel
|
|
Model that this package is a part of. Package is automatically
|
|
added to model when it is initialized.
|
|
loading_package : bool
|
|
Do not set this parameter. It is intended for debugging and internal
|
|
processing purposes only.
|
|
auxiliary : [string]
|
|
* auxiliary (string) defines an array of one or more auxiliary variable
|
|
names. There is no limit on the number of auxiliary variables that
|
|
can be provided on this line; however, lists of information provided
|
|
in subsequent blocks must have a column of data for each auxiliary
|
|
variable name defined here. The number of auxiliary variables
|
|
detected on this line determines the value for naux. Comments cannot
|
|
be provided anywhere on this line as they will be interpreted as
|
|
auxiliary variable names. Auxiliary variables may not be used by the
|
|
package, but they will be available for use by other parts of the
|
|
program. The program will terminate with an error if auxiliary
|
|
variables are specified on more than one line in the options block.
|
|
boundnames : boolean
|
|
* boundnames (boolean) keyword to indicate that boundary names may be
|
|
provided with the list of multi-aquifer well cells.
|
|
print_input : boolean
|
|
* print_input (boolean) keyword to indicate that the list of multi-
|
|
aquifer well information will be written to the listing file
|
|
immediately after it is read.
|
|
print_head : boolean
|
|
* print_head (boolean) keyword to indicate that the list of multi-
|
|
aquifer well heads will be printed to the listing file for every
|
|
stress period in which "HEAD PRINT" is specified in Output Control.
|
|
If there is no Output Control option and PRINT_HEAD is specified,
|
|
then heads are printed for the last time step of each stress period.
|
|
print_flows : boolean
|
|
* print_flows (boolean) keyword to indicate that the list of multi-
|
|
aquifer well flow rates will be printed to the listing file for every
|
|
stress period time step in which "BUDGET PRINT" is specified in
|
|
Output Control. If there is no Output Control option and
|
|
"PRINT_FLOWS" is specified, then flow rates are printed for the last
|
|
time step of each stress period.
|
|
save_flows : boolean
|
|
* save_flows (boolean) keyword to indicate that multi-aquifer well flow
|
|
terms will be written to the file specified with "BUDGET FILEOUT" in
|
|
Output Control.
|
|
stage_filerecord : [headfile]
|
|
* headfile (string) name of the binary output file to write stage
|
|
information.
|
|
budget_filerecord : [budgetfile]
|
|
* budgetfile (string) name of the binary output file to write budget
|
|
information.
|
|
no_well_storage : boolean
|
|
* no_well_storage (boolean) keyword that deactivates inclusion of well
|
|
storage contributions to the multi-aquifer well package continuity
|
|
equation.
|
|
flow_correction : boolean
|
|
* flow_correction (boolean) keyword that activates flow corrections in
|
|
cases where the head in a multi-aquifer well is below the bottom of
|
|
the screen for a connection or the head in a convertible cell
|
|
connected to a multi-aquifer well is below the cell bottom. When flow
|
|
corrections are activated, unit head gradients are used to calculate
|
|
the flow between a multi-aquifer well and a connected GWF cell. By
|
|
default, flow corrections are not made.
|
|
flowing_wells : boolean
|
|
* flowing_wells (boolean) keyword that activates the flowing wells
|
|
option for the multi-aquifer well package.
|
|
shutdown_theta : double
|
|
* shutdown_theta (double) value that defines the weight applied to
|
|
discharge rate for wells that limit the water level in a discharging
|
|
well (defined using the HEAD_LIMIT keyword in the stress period
|
|
data). SHUTDOWN_THETA is used to control discharge rate oscillations
|
|
when the flow rate from the aquifer is less than the specified flow
|
|
rate from the aquifer to the well. Values range between 0.0 and 1.0,
|
|
and larger values increase the weight (decrease under-relaxation)
|
|
applied to the well discharge rate. The HEAD_LIMIT option has been
|
|
included to facilitate backward compatibility with previous versions
|
|
of MODFLOW but use of the RATE_SCALING option instead of the
|
|
HEAD_LIMIT option is recommended. By default, SHUTDOWN_THETA is 0.7.
|
|
shutdown_kappa : double
|
|
* shutdown_kappa (double) value that defines the weight applied to
|
|
discharge rate for wells that limit the water level in a discharging
|
|
well (defined using the HEAD_LIMIT keyword in the stress period
|
|
data). SHUTDOWN_KAPPA is used to control discharge rate oscillations
|
|
when the flow rate from the aquifer is less than the specified flow
|
|
rate from the aquifer to the well. Values range between 0.0 and 1.0,
|
|
and larger values increase the weight applied to the well discharge
|
|
rate. The HEAD_LIMIT option has been included to facilitate backward
|
|
compatibility with previous versions of MODFLOW but use of the
|
|
RATE_SCALING option instead of the HEAD_LIMIT option is recommended.
|
|
By default, SHUTDOWN_KAPPA is 0.0001.
|
|
timeseries : {varname:data} or timeseries data
|
|
* Contains data for the ts package. Data can be stored in a dictionary
|
|
containing data for the ts package with variable names as keys and
|
|
package data as values. Data just for the timeseries variable is also
|
|
acceptable. See ts package documentation for more information.
|
|
observations : {varname:data} or continuous data
|
|
* Contains data for the obs package. Data can be stored in a dictionary
|
|
containing data for the obs package with variable names as keys and
|
|
package data as values. Data just for the observations variable is
|
|
also acceptable. See obs package documentation for more information.
|
|
mover : boolean
|
|
* mover (boolean) keyword to indicate that this instance of the MAW
|
|
Package can be used with the Water Mover (MVR) Package. When the
|
|
MOVER option is specified, additional memory is allocated within the
|
|
package to store the available, provided, and received water.
|
|
nmawwells : integer
|
|
* nmawwells (integer) integer value specifying the number of multi-
|
|
aquifer wells that will be simulated for all stress periods.
|
|
packagedata : [wellno, radius, bottom, strt, condeqn, ngwfnodes, aux,
|
|
boundname]
|
|
* wellno (integer) integer value that defines the well number
|
|
associated with the specified PACKAGEDATA data on the line. WELLNO
|
|
must be greater than zero and less than or equal to NMAWWELLS. Multi-
|
|
aquifer well information must be specified for every multi-aquifer
|
|
well or the program will terminate with an error. The program will
|
|
also terminate with an error if information for a multi-aquifer well
|
|
is specified more than once. This argument is an index variable,
|
|
which means that it should be treated as zero-based when working with
|
|
FloPy and Python. Flopy will automatically subtract one when loading
|
|
index variables and add one when writing index variables.
|
|
* radius (double) radius for the multi-aquifer well.
|
|
* bottom (double) bottom elevation of the multi-aquifer well. The well
|
|
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.
|
|
* strt (double) starting head for the multi-aquifer well.
|
|
* condeqn (string) character string that defines the conductance
|
|
equation that is used to calculate the saturated conductance for the
|
|
multi-aquifer well. Possible multi-aquifer well CONDEQN strings
|
|
include: SPECIFIED--character keyword to indicate the multi-aquifer
|
|
well saturated conductance will be specified. THIEM--character
|
|
keyword to indicate the multi-aquifer well saturated conductance will
|
|
be calculated using the Thiem equation, which considers the cell top
|
|
and bottom, aquifer hydraulic conductivity, and effective cell and
|
|
well radius. SKIN--character keyword to indicate that the multi-
|
|
aquifer well saturated conductance will be calculated using the cell
|
|
top and bottom, aquifer and screen hydraulic conductivity, and well
|
|
and skin radius. CUMULATIVE--character keyword to indicate that the
|
|
multi-aquifer well saturated conductance will be calculated using a
|
|
combination of the Thiem and SKIN equations. MEAN--character keyword
|
|
to indicate the multi-aquifer well saturated conductance will be
|
|
calculated using the aquifer and screen top and bottom, aquifer and
|
|
screen hydraulic conductivity, and well and skin radius. The
|
|
CUMULATIVE conductance equation is identical to the SKIN LOSSTYPE in
|
|
the Multi-Node Well (MNW2) package for MODFLOW-2005. The program will
|
|
terminate with an error condition if CONDEQN is SKIN or CUMULATIVE
|
|
and the calculated saturated conductance is less than zero; if an
|
|
error condition occurs, it is suggested that the THEIM or MEAN
|
|
conductance equations be used for these multi-aquifer wells.
|
|
* ngwfnodes (integer) integer value that defines the number of GWF
|
|
nodes connected to this (WELLNO) multi-aquifer well. NGWFNODES must
|
|
be greater than zero.
|
|
* aux (double) represents the values of the auxiliary variables for
|
|
each multi-aquifer well. The values of auxiliary variables must be
|
|
present for each multi-aquifer well. The values must be specified in
|
|
the order of the auxiliary variables specified in the OPTIONS block.
|
|
If the package supports time series and the Options block includes a
|
|
TIMESERIESFILE entry (see the "Time-Variable Input" section), values
|
|
can be obtained from a time series by entering the time-series name
|
|
in place of a numeric value.
|
|
* boundname (string) name of the multi-aquifer well cell. BOUNDNAME is
|
|
an ASCII character variable that can contain as many as 40
|
|
characters. If BOUNDNAME contains spaces in it, then the entire name
|
|
must be enclosed within single quotes.
|
|
connectiondata : [wellno, icon, cellid, scrn_top, scrn_bot, hk_skin,
|
|
radius_skin]
|
|
* wellno (integer) integer value that defines the well number
|
|
associated with the specified CONNECTIONDATA data on the line. WELLNO
|
|
must be greater than zero and less than or equal to NMAWWELLS. Multi-
|
|
aquifer well connection information must be specified for every
|
|
multi-aquifer well connection to the GWF model (NGWFNODES) or the
|
|
program will terminate with an error. The program will also terminate
|
|
with an error if connection information for a multi-aquifer well
|
|
connection to the GWF model is specified more than once. This
|
|
argument is an index variable, which means that it should be treated
|
|
as zero-based when working with FloPy and Python. Flopy will
|
|
automatically subtract one when loading index variables and add one
|
|
when writing index variables.
|
|
* icon (integer) integer value that defines the GWF connection number
|
|
for this multi-aquifer well connection entry. ICONN must be greater
|
|
than zero and less than or equal to NGWFNODES for multi-aquifer well
|
|
WELLNO. This argument is an index variable, which means that it
|
|
should be treated as zero-based when working with FloPy and Python.
|
|
Flopy will automatically subtract one when loading index variables
|
|
and add one when writing index variables.
|
|
* cellid ((integer, ...)) is the cell identifier, and depends on the
|
|
type of grid that is used for the simulation. For a structured grid
|
|
that uses the DIS input file, CELLID is the layer, row, and column.
|
|
For a grid that uses the DISV input file, CELLID is the layer and
|
|
CELL2D number. If the model uses the unstructured discretization
|
|
(DISU) input file, CELLID is the node number for the cell. One or
|
|
more screened intervals can be connected to the same CELLID if
|
|
CONDEQN for a well is MEAN. The program will terminate with an error
|
|
if MAW wells using SPECIFIED, THIEM, SKIN, or CUMULATIVE conductance
|
|
equations have more than one connection to the same CELLID. This
|
|
argument is an index variable, which means that it should be treated
|
|
as zero-based when working with FloPy and Python. Flopy will
|
|
automatically subtract one when loading index variables and add one
|
|
when writing index variables.
|
|
* scrn_top (double) value that defines the top elevation of the screen
|
|
for the multi-aquifer well connection. If the specified SCRN_TOP is
|
|
greater than the top of the GWF cell it is set equal to the top of
|
|
the cell. SCRN_TOP can be any value if CONDEQN is SPECIFIED, THIEM,
|
|
SKIN, or COMPOSITE and SCRN_TOP is set to the top of the cell.
|
|
* scrn_bot (double) value that defines the bottom elevation of the
|
|
screen for the multi-aquifer well connection. If the specified
|
|
SCRN_BOT is less than the bottom of the GWF cell it is set equal to
|
|
the bottom of the cell. SCRN_BOT can be any value if CONDEQN is
|
|
SPECIFIED, THIEM, SKIN, or COMPOSITE and SCRN_BOT is set to the
|
|
bottom of the cell.
|
|
* hk_skin (double) value that defines the skin (filter pack) hydraulic
|
|
conductivity (if CONDEQN for the multi-aquifer well is SKIN,
|
|
CUMULATIVE, or MEAN) or conductance (if CONDEQN for the multi-aquifer
|
|
well is SPECIFIED) for each GWF node connected to the multi-aquifer
|
|
well (NGWFNODES). If CONDEQN is SPECIFIED, HK_SKIN must be greater
|
|
than or equal to zero. HK_SKIN can be any value if CONDEQN is THIEM.
|
|
Otherwise, HK_SKIN must be greater than zero. If CONDEQN is SKIN, the
|
|
contrast between the cell transmissivity (the product of geometric
|
|
mean horizontal hydraulic conductivity and the cell thickness) and
|
|
the well transmissivity (the product of HK_SKIN and the screen
|
|
thicknesses) must be greater than one in node CELLID or the program
|
|
will terminate with an error condition; if an error condition occurs,
|
|
it is suggested that the HK_SKIN be reduced to a value less than K11
|
|
and K22 in node CELLID or the THEIM or MEAN conductance equations be
|
|
used for these multi-aquifer wells.
|
|
* radius_skin (double) real value that defines the skin radius (filter
|
|
pack radius) for the multi-aquifer well. RADIUS_SKIN can be any value
|
|
if CONDEQN is SPECIFIED or THIEM. Otherwise, RADIUS_SKIN must be
|
|
greater than RADIUS for the multi-aquifer well.
|
|
perioddata : [wellno, mawsetting]
|
|
* wellno (integer) integer value that defines the well number
|
|
associated with the specified PERIOD data on the line. WELLNO must be
|
|
greater than zero and less than or equal to NMAWWELLS. This argument
|
|
is an index variable, which means that it should be treated as zero-
|
|
based when working with FloPy and Python. Flopy will automatically
|
|
subtract one when loading index variables and add one when writing
|
|
index variables.
|
|
* mawsetting (keystring) line of information that is parsed into a
|
|
keyword and values. Keyword values that can be used to start the
|
|
MAWSETTING string include: STATUS, FLOWING_WELL, RATE, WELL_HEAD,
|
|
HEAD_LIMIT, SHUT_OFF, RATE_SCALING, and AUXILIARY.
|
|
status : [string]
|
|
* status (string) keyword option to define well status. STATUS
|
|
can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is
|
|
ACTIVE.
|
|
flowing_wellrecord : [fwelev, fwcond, fwrlen]
|
|
* fwelev (double) elevation used to determine whether or not
|
|
the well is flowing.
|
|
* fwcond (double) conductance used to calculate the discharge
|
|
of a free flowing well. Flow occurs when the head in the well
|
|
is above the well top elevation (FWELEV).
|
|
* fwrlen (double) length used to reduce the conductance of the
|
|
flowing well. When the head in the well drops below the well
|
|
top plus the reduction length, then the conductance is
|
|
reduced. This reduction length can be used to improve the
|
|
stability of simulations with flowing wells so that there is
|
|
not an abrupt change in flowing well rates.
|
|
rate : [double]
|
|
* rate (double) is the volumetric pumping rate for the multi-
|
|
aquifer well. A positive value indicates recharge and a
|
|
negative value indicates discharge (pumping). RATE only
|
|
applies to active (IBOUND :math:`>` 0) multi-aquifer wells.
|
|
If the Options block includes a TIMESERIESFILE entry (see the
|
|
"Time-Variable Input" section), values can be obtained from a
|
|
time series by entering the time-series name in place of a
|
|
numeric value. By default, the RATE for each multi-aquifer
|
|
well is zero.
|
|
well_head : [double]
|
|
* well_head (double) is the head in the multi-aquifer well.
|
|
WELL_HEAD is only applied to constant head (STATUS is
|
|
CONSTANT) and inactive (STATUS is INACTIVE) multi-aquifer
|
|
wells. If the Options block includes a TIMESERIESFILE entry
|
|
(see the "Time-Variable Input" section), values can be
|
|
obtained from a time series by entering the time-series name
|
|
in place of a numeric value.
|
|
head_limit : [string]
|
|
* head_limit (string) is the limiting water level (head) in the
|
|
well, which is the minimum of the well RATE or the well
|
|
inflow rate from the aquifer. HEAD_LIMIT can be applied to
|
|
extraction wells (RATE :math:`<` 0) or injection wells (RATE
|
|
:math:`>` 0). HEAD\_LIMIT can be deactivated by specifying
|
|
the text string `OFF'. The HEAD\_LIMIT option is based on the
|
|
HEAD\_LIMIT functionality available in the
|
|
MNW2~\citep{konikow2009} package for MODFLOW-2005. The
|
|
HEAD\_LIMIT option has been included to facilitate backward
|
|
compatibility with previous versions of MODFLOW but use of
|
|
the RATE\_SCALING option instead of the HEAD\_LIMIT option is
|
|
recommended. By default, HEAD\_LIMIT is `OFF'.
|
|
shutoffrecord : [minrate, maxrate]
|
|
* minrate (double) is the minimum rate that a well must exceed
|
|
to shutoff a well during a stress period. The well will shut
|
|
down during a time step if the flow rate to the well from the
|
|
aquifer is less than MINRATE. If a well is shut down during a
|
|
time step, reactivation of the well cannot occur until the
|
|
next time step to reduce oscillations. MINRATE must be less
|
|
than maxrate.
|
|
* maxrate (double) is the maximum rate that a well must exceed
|
|
to reactivate a well during a stress period. The well will
|
|
reactivate during a timestep if the well was shutdown during
|
|
the previous time step and the flow rate to the well from the
|
|
aquifer exceeds maxrate. Reactivation of the well cannot
|
|
occur until the next time step if a well is shutdown to
|
|
reduce oscillations. maxrate must be greater than MINRATE.
|
|
rate_scalingrecord : [pump_elevation, scaling_length]
|
|
* pump_elevation (double) is the elevation of the multi-aquifer
|
|
well pump (PUMP_ELEVATION). PUMP_ELEVATION should not be less
|
|
than the bottom elevation (BOTTOM) of the multi-aquifer well.
|
|
* scaling_length (double) height above the pump elevation
|
|
(SCALING_LENGTH). If the simulated well head is below this
|
|
elevation (pump elevation plus the scaling length), then the
|
|
pumping rate is reduced.
|
|
auxiliaryrecord : [auxname, auxval]
|
|
* auxname (string) name for the auxiliary variable to be
|
|
assigned AUXVAL. AUXNAME must match one of the auxiliary
|
|
variable names defined in the OPTIONS block. If AUXNAME does
|
|
not match one of the auxiliary variable names defined in the
|
|
OPTIONS block the data are ignored.
|
|
* auxval (double) value for the auxiliary variable. If the
|
|
Options block includes a TIMESERIESFILE entry (see the "Time-
|
|
Variable Input" section), values can be obtained from a time
|
|
series by entering the time-series name in place of a numeric
|
|
value.
|
|
filename : String
|
|
File name for this package.
|
|
pname : String
|
|
Package name for this package.
|
|
parent_file : MFPackage
|
|
Parent package file that references this package. Only needed for
|
|
utility packages (mfutl*). For example, mfutllaktab package must have
|
|
a mfgwflak package parent_file.
|
|
|
|
"""
|
|
|
|
auxiliary = ListTemplateGenerator(("gwf6", "maw", "options", "auxiliary"))
|
|
stage_filerecord = ListTemplateGenerator(
|
|
("gwf6", "maw", "options", "stage_filerecord")
|
|
)
|
|
budget_filerecord = ListTemplateGenerator(
|
|
("gwf6", "maw", "options", "budget_filerecord")
|
|
)
|
|
ts_filerecord = ListTemplateGenerator(
|
|
("gwf6", "maw", "options", "ts_filerecord")
|
|
)
|
|
obs_filerecord = ListTemplateGenerator(
|
|
("gwf6", "maw", "options", "obs_filerecord")
|
|
)
|
|
packagedata = ListTemplateGenerator(
|
|
("gwf6", "maw", "packagedata", "packagedata")
|
|
)
|
|
connectiondata = ListTemplateGenerator(
|
|
("gwf6", "maw", "connectiondata", "connectiondata")
|
|
)
|
|
perioddata = ListTemplateGenerator(("gwf6", "maw", "period", "perioddata"))
|
|
package_abbr = "gwfmaw"
|
|
_package_type = "maw"
|
|
dfn_file_name = "gwf-maw.dfn"
|
|
|
|
dfn = [
|
|
[
|
|
"block options",
|
|
"name auxiliary",
|
|
"type string",
|
|
"shape (naux)",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name boundnames",
|
|
"type keyword",
|
|
"shape",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name print_input",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name print_head",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name print_flows",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name save_flows",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name stage_filerecord",
|
|
"type record head fileout headfile",
|
|
"shape",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name head",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name headfile",
|
|
"type string",
|
|
"preserve_case true",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged false",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name budget_filerecord",
|
|
"type record budget fileout budgetfile",
|
|
"shape",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name budget",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name fileout",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name budgetfile",
|
|
"type string",
|
|
"preserve_case true",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged false",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name no_well_storage",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name flow_correction",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name flowing_wells",
|
|
"type keyword",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name shutdown_theta",
|
|
"type double precision",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name shutdown_kappa",
|
|
"type double precision",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block options",
|
|
"name ts_filerecord",
|
|
"type record ts6 filein ts6_filename",
|
|
"shape",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional true",
|
|
"construct_package ts",
|
|
"construct_data timeseries",
|
|
"parameter_name timeseries",
|
|
],
|
|
[
|
|
"block options",
|
|
"name ts6",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name filein",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name ts6_filename",
|
|
"type string",
|
|
"preserve_case true",
|
|
"in_record true",
|
|
"reader urword",
|
|
"optional false",
|
|
"tagged false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name obs_filerecord",
|
|
"type record obs6 filein obs6_filename",
|
|
"shape",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional true",
|
|
"construct_package obs",
|
|
"construct_data continuous",
|
|
"parameter_name observations",
|
|
],
|
|
[
|
|
"block options",
|
|
"name obs6",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
"tagged true",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name obs6_filename",
|
|
"type string",
|
|
"preserve_case true",
|
|
"in_record true",
|
|
"tagged false",
|
|
"reader urword",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block options",
|
|
"name mover",
|
|
"type keyword",
|
|
"tagged true",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block dimensions",
|
|
"name nmawwells",
|
|
"type integer",
|
|
"reader urword",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name packagedata",
|
|
"type recarray wellno radius bottom strt condeqn ngwfnodes aux "
|
|
"boundname",
|
|
"shape (nmawwells)",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name wellno",
|
|
"type integer",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"numeric_index true",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name radius",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name bottom",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name strt",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name condeqn",
|
|
"type string",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name ngwfnodes",
|
|
"type integer",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name aux",
|
|
"type double precision",
|
|
"in_record true",
|
|
"tagged false",
|
|
"shape (naux)",
|
|
"reader urword",
|
|
"time_series true",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block packagedata",
|
|
"name boundname",
|
|
"type string",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"optional true",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name connectiondata",
|
|
"type recarray wellno icon cellid scrn_top scrn_bot hk_skin "
|
|
"radius_skin",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name wellno",
|
|
"type integer",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"numeric_index true",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name icon",
|
|
"type integer",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"numeric_index true",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name cellid",
|
|
"type integer",
|
|
"shape (ncelldim)",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name scrn_top",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name scrn_bot",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name hk_skin",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block connectiondata",
|
|
"name radius_skin",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name iper",
|
|
"type integer",
|
|
"block_variable True",
|
|
"in_record true",
|
|
"tagged false",
|
|
"shape",
|
|
"valid",
|
|
"reader urword",
|
|
"optional false",
|
|
],
|
|
[
|
|
"block period",
|
|
"name perioddata",
|
|
"type recarray wellno mawsetting",
|
|
"shape",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name wellno",
|
|
"type integer",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"numeric_index true",
|
|
],
|
|
[
|
|
"block period",
|
|
"name mawsetting",
|
|
"type keystring status flowing_wellrecord rate well_head "
|
|
"head_limit shutoffrecord rate_scalingrecord auxiliaryrecord",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name status",
|
|
"type string",
|
|
"shape",
|
|
"tagged true",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name flowing_wellrecord",
|
|
"type record flowing_well fwelev fwcond fwrlen",
|
|
"shape",
|
|
"tagged",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name flowing_well",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name fwelev",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name fwcond",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name fwrlen",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name rate",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged true",
|
|
"in_record true",
|
|
"reader urword",
|
|
"time_series true",
|
|
],
|
|
[
|
|
"block period",
|
|
"name well_head",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged true",
|
|
"in_record true",
|
|
"reader urword",
|
|
"time_series true",
|
|
],
|
|
[
|
|
"block period",
|
|
"name head_limit",
|
|
"type string",
|
|
"shape",
|
|
"tagged true",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name shutoffrecord",
|
|
"type record shut_off minrate maxrate",
|
|
"shape",
|
|
"tagged",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name shut_off",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name minrate",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name maxrate",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name rate_scalingrecord",
|
|
"type record rate_scaling pump_elevation scaling_length",
|
|
"shape",
|
|
"tagged",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name rate_scaling",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name pump_elevation",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name scaling_length",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name auxiliaryrecord",
|
|
"type record auxiliary auxname auxval",
|
|
"shape",
|
|
"tagged",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name auxiliary",
|
|
"type keyword",
|
|
"shape",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name auxname",
|
|
"type string",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
],
|
|
[
|
|
"block period",
|
|
"name auxval",
|
|
"type double precision",
|
|
"shape",
|
|
"tagged false",
|
|
"in_record true",
|
|
"reader urword",
|
|
"time_series true",
|
|
],
|
|
]
|
|
|
|
def __init__(
|
|
self,
|
|
model,
|
|
loading_package=False,
|
|
auxiliary=None,
|
|
boundnames=None,
|
|
print_input=None,
|
|
print_head=None,
|
|
print_flows=None,
|
|
save_flows=None,
|
|
stage_filerecord=None,
|
|
budget_filerecord=None,
|
|
no_well_storage=None,
|
|
flow_correction=None,
|
|
flowing_wells=None,
|
|
shutdown_theta=None,
|
|
shutdown_kappa=None,
|
|
timeseries=None,
|
|
observations=None,
|
|
mover=None,
|
|
nmawwells=None,
|
|
packagedata=None,
|
|
connectiondata=None,
|
|
perioddata=None,
|
|
filename=None,
|
|
pname=None,
|
|
parent_file=None,
|
|
):
|
|
super(ModflowGwfmaw, self).__init__(
|
|
model, "maw", filename, pname, loading_package, parent_file
|
|
)
|
|
|
|
# set up variables
|
|
self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
|
|
self.boundnames = self.build_mfdata("boundnames", boundnames)
|
|
self.print_input = self.build_mfdata("print_input", print_input)
|
|
self.print_head = self.build_mfdata("print_head", print_head)
|
|
self.print_flows = self.build_mfdata("print_flows", print_flows)
|
|
self.save_flows = self.build_mfdata("save_flows", save_flows)
|
|
self.stage_filerecord = self.build_mfdata(
|
|
"stage_filerecord", stage_filerecord
|
|
)
|
|
self.budget_filerecord = self.build_mfdata(
|
|
"budget_filerecord", budget_filerecord
|
|
)
|
|
self.no_well_storage = self.build_mfdata(
|
|
"no_well_storage", no_well_storage
|
|
)
|
|
self.flow_correction = self.build_mfdata(
|
|
"flow_correction", flow_correction
|
|
)
|
|
self.flowing_wells = self.build_mfdata("flowing_wells", flowing_wells)
|
|
self.shutdown_theta = self.build_mfdata(
|
|
"shutdown_theta", shutdown_theta
|
|
)
|
|
self.shutdown_kappa = self.build_mfdata(
|
|
"shutdown_kappa", shutdown_kappa
|
|
)
|
|
self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
|
|
self._ts_package = self.build_child_package(
|
|
"ts", timeseries, "timeseries", self._ts_filerecord
|
|
)
|
|
self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
|
|
self._obs_package = self.build_child_package(
|
|
"obs", observations, "continuous", self._obs_filerecord
|
|
)
|
|
self.mover = self.build_mfdata("mover", mover)
|
|
self.nmawwells = self.build_mfdata("nmawwells", nmawwells)
|
|
self.packagedata = self.build_mfdata("packagedata", packagedata)
|
|
self.connectiondata = self.build_mfdata(
|
|
"connectiondata", connectiondata
|
|
)
|
|
self.perioddata = self.build_mfdata("perioddata", perioddata)
|
|
self._init_complete = True
|