From 5ca8f25378d0c78c9cddbb04882bda43e1a9ca5f Mon Sep 17 00:00:00 2001 From: jdhughes-usgs Date: Tue, 20 Oct 2020 13:25:16 -0400 Subject: [PATCH 1/2] feat(mf6): Add MODFLOW 6 GWT dfn and classes --- flopy/mf6/data/dfn/exg-gwfgwt.dfn | 3 + flopy/mf6/data/dfn/gwf-buy.dfn | 145 ++++ flopy/mf6/data/dfn/gwf-dis.dfn | 2 +- flopy/mf6/data/dfn/gwf-disu.dfn | 2 +- flopy/mf6/data/dfn/gwf-disv.dfn | 2 +- flopy/mf6/data/dfn/gwf-maw.dfn | 20 +- flopy/mf6/data/dfn/gwf-sfr.dfn | 2 +- flopy/mf6/data/dfn/gwt-adv.dfn | 11 + flopy/mf6/data/dfn/gwt-cnc.dfn | 206 ++++++ flopy/mf6/data/dfn/gwt-dis.dfn | 122 ++++ flopy/mf6/data/dfn/gwt-disu.dfn | 251 +++++++ flopy/mf6/data/dfn/gwt-disv.dfn | 202 ++++++ flopy/mf6/data/dfn/gwt-dsp.dfn | 81 +++ flopy/mf6/data/dfn/gwt-fmi.dfn | 50 ++ flopy/mf6/data/dfn/gwt-ic.dfn | 11 + flopy/mf6/data/dfn/gwt-ist.dfn | 221 ++++++ flopy/mf6/data/dfn/gwt-lkt.dfn | 426 +++++++++++ flopy/mf6/data/dfn/gwt-mst.dfn | 85 +++ flopy/mf6/data/dfn/gwt-mvt.dfn | 71 ++ flopy/mf6/data/dfn/gwt-mwt.dfn | 393 +++++++++++ flopy/mf6/data/dfn/gwt-nam.dfn | 73 ++ flopy/mf6/data/dfn/gwt-oc.dfn | 280 ++++++++ flopy/mf6/data/dfn/gwt-sft.dfn | 426 +++++++++++ flopy/mf6/data/dfn/gwt-src.dfn | 205 ++++++ flopy/mf6/data/dfn/gwt-ssm.dfn | 58 ++ flopy/mf6/data/dfn/gwt-uzt.dfn | 404 +++++++++++ flopy/mf6/data/dfn/sln-ims.dfn | 18 +- flopy/mf6/modflow/__init__.py | 22 + flopy/mf6/modflow/mfgnc.py | 134 +--- flopy/mf6/modflow/mfgwf.py | 71 +- flopy/mf6/modflow/mfgwfbuy.py | 146 ++++ flopy/mf6/modflow/mfgwfchd.py | 314 +++------ flopy/mf6/modflow/mfgwfcsub.py | 1080 ++++++++-------------------- flopy/mf6/modflow/mfgwfdis.py | 179 ++--- flopy/mf6/modflow/mfgwfdisu.py | 373 +++------- flopy/mf6/modflow/mfgwfdisv.py | 273 ++------ flopy/mf6/modflow/mfgwfdrn.py | 348 +++------ flopy/mf6/modflow/mfgwfevt.py | 415 +++-------- flopy/mf6/modflow/mfgwfevta.py | 314 +++------ flopy/mf6/modflow/mfgwfghb.py | 337 +++------ flopy/mf6/modflow/mfgwfgnc.py | 135 +--- flopy/mf6/modflow/mfgwfgwf.py | 407 +++-------- flopy/mf6/modflow/mfgwfgwt.py | 56 ++ flopy/mf6/modflow/mfgwfhfb.py | 112 +-- flopy/mf6/modflow/mfgwfic.py | 35 +- flopy/mf6/modflow/mfgwflak.py | 1087 +++++++---------------------- flopy/mf6/modflow/mfgwfmaw.py | 978 +++++++------------------- flopy/mf6/modflow/mfgwfmvr.py | 294 ++------ flopy/mf6/modflow/mfgwfnam.py | 138 +--- flopy/mf6/modflow/mfgwfnpf.py | 371 +++------- flopy/mf6/modflow/mfgwfoc.py | 384 +++------- flopy/mf6/modflow/mfgwfrch.py | 326 +++------ flopy/mf6/modflow/mfgwfrcha.py | 287 ++------ flopy/mf6/modflow/mfgwfriv.py | 350 +++------- flopy/mf6/modflow/mfgwfsfr.py | 1002 +++++++------------------- flopy/mf6/modflow/mfgwfsto.py | 138 +--- flopy/mf6/modflow/mfgwfuzf.py | 729 +++++-------------- flopy/mf6/modflow/mfgwfwel.py | 341 +++------ flopy/mf6/modflow/mfgwt.py | 98 +++ flopy/mf6/modflow/mfgwtadv.py | 46 ++ flopy/mf6/modflow/mfgwtcnc.py | 199 ++++++ flopy/mf6/modflow/mfgwtdis.py | 141 ++++ flopy/mf6/modflow/mfgwtdisu.py | 281 ++++++++ flopy/mf6/modflow/mfgwtdisv.py | 194 +++++ flopy/mf6/modflow/mfgwtdsp.py | 111 +++ flopy/mf6/modflow/mfgwtfmi.py | 73 ++ flopy/mf6/modflow/mfgwtic.py | 54 ++ flopy/mf6/modflow/mfgwtist.py | 197 ++++++ flopy/mf6/modflow/mfgwtlkt.py | 370 ++++++++++ flopy/mf6/modflow/mfgwtmst.py | 133 ++++ flopy/mf6/modflow/mfgwtmvt.py | 84 +++ flopy/mf6/modflow/mfgwtmwt.py | 334 +++++++++ flopy/mf6/modflow/mfgwtnam.py | 102 +++ flopy/mf6/modflow/mfgwtoc.py | 190 +++++ flopy/mf6/modflow/mfgwtsft.py | 367 ++++++++++ flopy/mf6/modflow/mfgwtsrc.py | 201 ++++++ flopy/mf6/modflow/mfgwtssm.py | 76 ++ flopy/mf6/modflow/mfgwtuzt.py | 347 +++++++++ flopy/mf6/modflow/mfims.py | 659 ++++++----------- flopy/mf6/modflow/mfmvr.py | 292 ++------ flopy/mf6/modflow/mfnam.py | 246 ++----- flopy/mf6/modflow/mftdis.py | 108 +-- flopy/mf6/modflow/mfutllaktab.py | 99 +-- flopy/mf6/modflow/mfutlobs.py | 181 ++--- flopy/mf6/modflow/mfutltas.py | 240 ++----- flopy/mf6/modflow/mfutlts.py | 344 +++------ 86 files changed, 10930 insertions(+), 9783 deletions(-) create mode 100644 flopy/mf6/data/dfn/exg-gwfgwt.dfn create mode 100644 flopy/mf6/data/dfn/gwf-buy.dfn create mode 100644 flopy/mf6/data/dfn/gwt-adv.dfn create mode 100644 flopy/mf6/data/dfn/gwt-cnc.dfn create mode 100644 flopy/mf6/data/dfn/gwt-dis.dfn create mode 100644 flopy/mf6/data/dfn/gwt-disu.dfn create mode 100644 flopy/mf6/data/dfn/gwt-disv.dfn create mode 100644 flopy/mf6/data/dfn/gwt-dsp.dfn create mode 100644 flopy/mf6/data/dfn/gwt-fmi.dfn create mode 100644 flopy/mf6/data/dfn/gwt-ic.dfn create mode 100644 flopy/mf6/data/dfn/gwt-ist.dfn create mode 100644 flopy/mf6/data/dfn/gwt-lkt.dfn create mode 100644 flopy/mf6/data/dfn/gwt-mst.dfn create mode 100644 flopy/mf6/data/dfn/gwt-mvt.dfn create mode 100644 flopy/mf6/data/dfn/gwt-mwt.dfn create mode 100644 flopy/mf6/data/dfn/gwt-nam.dfn create mode 100644 flopy/mf6/data/dfn/gwt-oc.dfn create mode 100644 flopy/mf6/data/dfn/gwt-sft.dfn create mode 100644 flopy/mf6/data/dfn/gwt-src.dfn create mode 100644 flopy/mf6/data/dfn/gwt-ssm.dfn create mode 100644 flopy/mf6/data/dfn/gwt-uzt.dfn create mode 100644 flopy/mf6/modflow/mfgwfbuy.py create mode 100644 flopy/mf6/modflow/mfgwfgwt.py create mode 100644 flopy/mf6/modflow/mfgwt.py create mode 100644 flopy/mf6/modflow/mfgwtadv.py create mode 100644 flopy/mf6/modflow/mfgwtcnc.py create mode 100644 flopy/mf6/modflow/mfgwtdis.py create mode 100644 flopy/mf6/modflow/mfgwtdisu.py create mode 100644 flopy/mf6/modflow/mfgwtdisv.py create mode 100644 flopy/mf6/modflow/mfgwtdsp.py create mode 100644 flopy/mf6/modflow/mfgwtfmi.py create mode 100644 flopy/mf6/modflow/mfgwtic.py create mode 100644 flopy/mf6/modflow/mfgwtist.py create mode 100644 flopy/mf6/modflow/mfgwtlkt.py create mode 100644 flopy/mf6/modflow/mfgwtmst.py create mode 100644 flopy/mf6/modflow/mfgwtmvt.py create mode 100644 flopy/mf6/modflow/mfgwtmwt.py create mode 100644 flopy/mf6/modflow/mfgwtnam.py create mode 100644 flopy/mf6/modflow/mfgwtoc.py create mode 100644 flopy/mf6/modflow/mfgwtsft.py create mode 100644 flopy/mf6/modflow/mfgwtsrc.py create mode 100644 flopy/mf6/modflow/mfgwtssm.py create mode 100644 flopy/mf6/modflow/mfgwtuzt.py diff --git a/flopy/mf6/data/dfn/exg-gwfgwt.dfn b/flopy/mf6/data/dfn/exg-gwfgwt.dfn new file mode 100644 index 0000000000..685852dd28 --- /dev/null +++ b/flopy/mf6/data/dfn/exg-gwfgwt.dfn @@ -0,0 +1,3 @@ +# --------------------- exg gwfgwt options --------------------- + + diff --git a/flopy/mf6/data/dfn/gwf-buy.dfn b/flopy/mf6/data/dfn/gwf-buy.dfn new file mode 100644 index 0000000000..13540b706b --- /dev/null +++ b/flopy/mf6/data/dfn/gwf-buy.dfn @@ -0,0 +1,145 @@ +# --------------------- gwf buy options --------------------- + +block options +name hhformulation_rhs +type keyword +reader urword +optional true +longname hh formulation on right-hand side +description use the variable-density hydraulic head formulation and add off-diagonal terms to the right-hand. This option will prevent the BUY Package from adding asymmetric terms to the flow matrix. + +block options +name denseref +type double +reader urword +optional true +longname reference density +description fluid reference density used in the equation of state. This value is set to 1000. if not specified as an option. +default_value 1000. + +block options +name density_filerecord +type record density fileout densityfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name density +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname density keyword +description keyword to specify that record corresponds to density. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name densityfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write density information. The density file has the same format as the head file. Density values will be written to the density file whenever heads are written to the binary head file. The settings for controlling head output are contained in the Output Control option. + +block options +name dev_efh_formulation +type keyword +reader urword +optional true +longname use equivalent freshwater head formulation +description use the variable-density equivalent freshwater head formulation instead of the hydraulic head head formulation. This dev option has only been implemented for confined aquifer conditions and should generally not be used. + + + +# --------------------- gwf buy dimensions --------------------- + +block dimensions +name nrhospecies +type integer +reader urword +optional false +longname number of species used in density equation of state +description number of species used in density equation of state. This value must be one or greater. The value must be one if concentrations are specified using the CONCENTRATION keyword in the PERIOD block below. + + +# --------------------- gwf buy packagedata --------------------- + +block packagedata +name packagedata +type recarray irhospec drhodc crhoref modelname auxspeciesname +shape (nrhospecies) +reader urword +longname +description + +block packagedata +name irhospec +type integer +shape +tagged false +in_record true +reader urword +longname species number for this entry +description integer value that defines the species number associated with the specified PACKAGEDATA data on the line. IRHOSPECIES must be greater than zero and less than or equal to NRHOSPECIES. Information must be specified for each of the NRHOSPECIES species or the program will terminate with an error. The program will also terminate with an error if information for a species is specified more than once. +numeric_index true + +block packagedata +name drhodc +type double precision +shape +tagged false +in_record true +reader urword +longname slope of the density-concentration line +description real value that defines the slope of the density-concentration line for this species used in the density equation of state. + +block packagedata +name crhoref +type double precision +shape +tagged false +in_record true +reader urword +longname reference concentration value +description real value that defines the reference concentration value used for this species in the density equation of state. + +block packagedata +name modelname +type string +in_record true +tagged false +shape +reader urword +longname modelname +description name of GWT model used to simulate a species that will be used in the density equation of state. This name will have no affect if the simulation does not include a GWT model that corresponds to this GWF model. + +block packagedata +name auxspeciesname +type string +in_record true +tagged false +shape +reader urword +longname modelname +description name of an auxiliary variable in a GWF stress package that will be used for this species to calculate a density value. If a density value is needed by the Buoyancy Package then it will use the concentration values in this AUXSPECIESNAME column in the density equation of state. For advanced stress packages (LAK, SFR, MAW, and UZF) that have an associated advanced transport package (LKT, SFT, MWT, and UZT), the FLOW\_PACKAGE\_AUXILIARY\_NAME option in the advanced transport package can be used to transfer simulated concentrations into the flow package auxiliary variable. In this manner, the Buoyancy Package can calculate density values for lakes, streams, multi-aquifer wells, and unsaturated zone flow cells using simulated concentrations. + diff --git a/flopy/mf6/data/dfn/gwf-dis.dfn b/flopy/mf6/data/dfn/gwf-dis.dfn index 2b71d836c4..aa3316f38e 100644 --- a/flopy/mf6/data/dfn/gwf-dis.dfn +++ b/flopy/mf6/data/dfn/gwf-dis.dfn @@ -117,6 +117,6 @@ reader readarray layered true optional true longname idomain existence array -description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. +description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. diff --git a/flopy/mf6/data/dfn/gwf-disu.dfn b/flopy/mf6/data/dfn/gwf-disu.dfn index a4e45ceb8a..e576880cfc 100644 --- a/flopy/mf6/data/dfn/gwf-disu.dfn +++ b/flopy/mf6/data/dfn/gwf-disu.dfn @@ -100,7 +100,7 @@ reader readarray layered false optional true longname idomain existence array -description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. IDOMAIN values of -1 cannot be specified for the DISU Package. +description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation. IDOMAIN values of -1 cannot be specified for the DISU Package. # --------------------- gwf disu connectiondata --------------------- diff --git a/flopy/mf6/data/dfn/gwf-disv.dfn b/flopy/mf6/data/dfn/gwf-disv.dfn index a602a81f50..b188e4c8fb 100644 --- a/flopy/mf6/data/dfn/gwf-disv.dfn +++ b/flopy/mf6/data/dfn/gwf-disv.dfn @@ -93,7 +93,7 @@ reader readarray layered true optional true longname idomain existence array -description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. +description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. # --------------------- gwf disv vertices --------------------- diff --git a/flopy/mf6/data/dfn/gwf-maw.dfn b/flopy/mf6/data/dfn/gwf-maw.dfn index b09e445593..950e6a0cec 100644 --- a/flopy/mf6/data/dfn/gwf-maw.dfn +++ b/flopy/mf6/data/dfn/gwf-maw.dfn @@ -51,7 +51,7 @@ longname save well flows to budget file description REPLACE save_flows {'{#1}': 'multi-aquifer well'} block options -name stage_filerecord +name head_filerecord type record head fileout headfile shape reader urword @@ -68,7 +68,7 @@ in_record true reader urword tagged true optional false -longname stage keyword +longname head keyword description keyword to specify that record corresponds to head. block options @@ -81,7 +81,7 @@ reader urword tagged false optional false longname file keyword -description name of the binary output file to write stage information. +description name of the binary output file to write head information. block options name budget_filerecord @@ -292,7 +292,7 @@ tagged false in_record true reader urword longname well radius -description radius for the multi-aquifer well. +description radius for the multi-aquifer well. The program will terminate with an error if the radius is less than or equal to zero. block packagedata name bottom @@ -302,7 +302,7 @@ tagged false in_record true reader urword longname well bottom -description 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. +description bottom elevation of the multi-aquifer well. If CONDEQN is SPECIFIED, THIEM, SKIN, or COMPOSITE, BOTTOM is set 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. If CONDEQN is MEAN, BOTTOM is set to the lowermost GWF cell connection screen bottom in cases where the specified well bottom is above this value. The bottom elevation defines the lowest well head that will be simulated when the NEWTON UNDER\_RELAXATION option is specified in the GWF model name file. The bottom elevation is also used to calculate volumetric storage in the well. block packagedata name strt @@ -312,7 +312,7 @@ tagged false in_record true reader urword longname starting head -description starting head for the multi-aquifer well. +description starting head for the multi-aquifer well. The program will terminate with an error if the starting head is less than the specified well bottom. block packagedata name condeqn @@ -407,7 +407,7 @@ tagged false in_record true reader urword longname screen top -description 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. +description value that defines the top elevation of the screen for the multi-aquifer well connection. If CONDEQN is SPECIFIED, THIEM, SKIN, or COMPOSITE, SCRN\_TOP can be any value and is set to the top of the cell. If CONDEQN is MEAN, SCRN\_TOP is set to the multi-aquifer well connection cell top if the specified value is greater than the cell top. The program will terminate with an error if the screen top is less than the screen bottom. block connectiondata name scrn_bot @@ -417,7 +417,7 @@ tagged false in_record true reader urword longname screen bottom -description 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. +description value that defines the bottom elevation of the screen for the multi-aquifer well connection. If CONDEQN is SPECIFIED, THIEM, SKIN, or COMPOSITE, SCRN\_BOT can be any value is set to the bottom of the cell. If CONDEQN is MEAN, SCRN\_BOT is set to the multi-aquifer well connection cell bottom if the specified value is less than the cell bottom. The program will terminate with an error if the screen bottom is greater than the screen top. block connectiondata name hk_skin @@ -437,7 +437,7 @@ tagged false in_record true reader urword longname skin radius -description 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. +description 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. If CONDEQN is SKIN, CUMULATIVE, or MEAN, the program will terminate with an error if RADIUS\_SKIN is less than or equal to the RADIUS for the multi-aquifer well. # --------------------- gwf maw period --------------------- @@ -563,7 +563,7 @@ in_record true reader urword time_series true longname well head -description 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. +description 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. The program will terminate with an error if WELL\_HEAD is less than the bottom of the well. block period name head_limit diff --git a/flopy/mf6/data/dfn/gwf-sfr.dfn b/flopy/mf6/data/dfn/gwf-sfr.dfn index f84f711d72..6ea6822133 100644 --- a/flopy/mf6/data/dfn/gwf-sfr.dfn +++ b/flopy/mf6/data/dfn/gwf-sfr.dfn @@ -397,7 +397,7 @@ tagged false in_record true reader urword longname number of connected reaches -description integer value that defines the number of reaches connected to the reach. +description integer value that defines the number of reaches connected to the reach. If a value of zero is specified for NCON an entry for RNO is still required in the subsequent CONNECTIONDATA block. block packagedata name ustrf diff --git a/flopy/mf6/data/dfn/gwt-adv.dfn b/flopy/mf6/data/dfn/gwt-adv.dfn new file mode 100644 index 0000000000..759b8cfa2a --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-adv.dfn @@ -0,0 +1,11 @@ +# --------------------- gwt adv options --------------------- + +block options +name scheme +type string +valid central upstream tvd +reader urword +optional true +longname advective scheme +description scheme used to solve the advection term. Can be upstream, central, or TVD. + diff --git a/flopy/mf6/data/dfn/gwt-cnc.dfn b/flopy/mf6/data/dfn/gwt-cnc.dfn new file mode 100644 index 0000000000..e3ef02bce6 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-cnc.dfn @@ -0,0 +1,206 @@ +# --------------------- gwt cnc options --------------------- + +block options +name auxiliary +type string +shape (naux) +reader urword +optional true +longname keyword to specify aux variables +description REPLACE auxnames {'{#1}': 'Groundwater Transport'} + +block options +name auxmultname +type string +shape +reader urword +optional true +longname name of auxiliary variable for multiplier +description REPLACE auxmultname {'{#1}': 'concentration value'} + +block options +name boundnames +type keyword +shape +reader urword +optional true +longname +description REPLACE boundnames {'{#1}': 'constant concentration'} + +block options +name print_input +type keyword +reader urword +optional true +longname print input to listing file +description REPLACE print_input {'{#1}': 'constant concentration'} + +block options +name print_flows +type keyword +reader urword +optional true +longname print calculated flows to listing file +description REPLACE print_flows {'{#1}': 'constant concentration'} + +block options +name save_flows +type keyword +reader urword +optional true +longname save constant concentration flows to budget file +description REPLACE save_flows {'{#1}': 'constant concentration'} + +block options +name ts_filerecord +type record ts6 filein ts6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name ts6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname time series keyword +description keyword to specify that record corresponds to a time-series file. + +block options +name filein +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an input filename is expected next. + +block options +name ts6_filename +type string +preserve_case true +in_record true +reader urword +optional false +tagged false +longname file name of time series information +description REPLACE timeseriesfile {} + +block options +name obs_filerecord +type record obs6 filein obs6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name obs6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname obs keyword +description keyword to specify that record corresponds to an observations file. + +block options +name obs6_filename +type string +preserve_case true +in_record true +tagged false +reader urword +optional false +longname obs6 input filename +description REPLACE obs6_filename {'{#1}': 'Constant Concentration'} + + +# --------------------- gwt cnc dimensions --------------------- + +block dimensions +name maxbound +type integer +reader urword +optional false +longname maximum number of constant concentrations +description REPLACE maxbound {'{#1}': 'constant concentrations'} + + +# --------------------- gwt cnc period --------------------- + +block period +name iper +type integer +block_variable True +in_record true +tagged false +shape +valid +reader urword +optional false +longname stress period number +description REPLACE iper {} + +block period +name stress_period_data +type recarray cellid conc aux boundname +shape (maxbound) +reader urword +longname +description + +block period +name cellid +type integer +shape (ncelldim) +tagged false +in_record true +reader urword +longname cell identifier +description REPLACE cellid {} + +block period +name conc +type double precision +shape +tagged false +in_record true +reader urword +time_series true +longname constant concentration value +description is the constant concentration value. 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. + +block period +name aux +type double precision +in_record true +tagged false +shape (naux) +reader urword +optional true +time_series true +longname auxiliary variables +description REPLACE aux {'{#1}': 'constant concentration'} + +block period +name boundname +type string +shape +tagged false +in_record true +reader urword +optional true +longname constant concentration name +description REPLACE boundname {'{#1}': 'constant concentration'} diff --git a/flopy/mf6/data/dfn/gwt-dis.dfn b/flopy/mf6/data/dfn/gwt-dis.dfn new file mode 100644 index 0000000000..d36f24ed83 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-dis.dfn @@ -0,0 +1,122 @@ +# --------------------- gwt dis options --------------------- + +block options +name length_units +type string +reader urword +optional true +longname model length units +description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. + +block options +name nogrb +type keyword +reader urword +optional true +longname do not write binary grid file +description keyword to deactivate writing of the binary grid file. + +block options +name xorigin +type double precision +reader urword +optional true +longname x-position of the model grid origin +description x-position of the lower-left corner of the model grid. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name yorigin +type double precision +reader urword +optional true +longname y-position of the model grid origin +description y-position of the lower-left corner of the model grid. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name angrot +type double precision +reader urword +optional true +longname rotation angle +description counter-clockwise rotation angle (in degrees) of the lower-left corner of the model grid. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + + +# --------------------- gwt dis dimensions --------------------- + +block dimensions +name nlay +type integer +reader urword +optional false +longname number of layers +description is the number of layers in the model grid. +default_value 1 + +block dimensions +name nrow +type integer +reader urword +optional false +longname number of rows +description is the number of rows in the model grid. +default_value 2 + +block dimensions +name ncol +type integer +reader urword +optional false +longname number of columns +description is the number of columns in the model grid. +default_value 2 + +# --------------------- gwt dis griddata --------------------- + +block griddata +name delr +type double precision +shape (ncol) +reader readarray +longname spacing along a row +description is the column spacing in the row direction. +default_value 1.0 + +block griddata +name delc +type double precision +shape (nrow) +reader readarray +longname spacing along a column +description is the row spacing in the column direction. +default_value 1.0 + +block griddata +name top +type double precision +shape (ncol, nrow) +reader readarray +longname cell top elevation +description is the top elevation for each cell in the top model layer. +default_value 1.0 + +block griddata +name botm +type double precision +shape (ncol, nrow, nlay) +reader readarray +layered true +longname cell bottom elevation +description is the bottom elevation for each cell. +default_value 0. + +block griddata +name idomain +type integer +shape (ncol, nrow, nlay) +reader readarray +layered true +optional true +longname idomain existence array +description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. + + diff --git a/flopy/mf6/data/dfn/gwt-disu.dfn b/flopy/mf6/data/dfn/gwt-disu.dfn new file mode 100644 index 0000000000..0b069e6680 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-disu.dfn @@ -0,0 +1,251 @@ +# --------------------- gwt disu options --------------------- + +block options +name length_units +type string +reader urword +optional true +longname model length units +description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. + +block options +name nogrb +type keyword +reader urword +optional true +longname do not write binary grid file +description keyword to deactivate writing of the binary grid file. + +block options +name xorigin +type double precision +reader urword +optional true +longname x-position origin of the model grid coordinate system +description x-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name yorigin +type double precision +reader urword +optional true +longname y-position origin of the model grid coordinate system +description y-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name angrot +type double precision +reader urword +optional true +longname rotation angle +description counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +# --------------------- gwt disu dimensions --------------------- + +block dimensions +name nodes +type integer +reader urword +optional false +longname number of layers +description is the number of cells in the model grid. + +block dimensions +name nja +type integer +reader urword +optional false +longname number of columns +description is the sum of the number of connections and NODES. When calculating the total number of connections, the connection between cell n and cell m is considered to be different from the connection between cell m and cell n. Thus, NJA is equal to the total number of connections, including n to m and m to n, and the total number of cells. + +block dimensions +name nvert +type integer +reader urword +optional true +longname number of vertices +description is the total number of (x, y) vertex pairs used to define the plan-view shape of each cell in the model grid. If NVERT is not specified or is specified as zero, then the VERTICES and CELL2D blocks below are not read. NVERT and the accompanying VERTICES and CELL2D blocks should be specified for most simulations. If the XT3D or SAVE\_SPECIFIC\_DISCHARGE options are specified in the NPF Package, then this information is required. + +# --------------------- gwt disu griddata --------------------- + +block griddata +name top +type double precision +shape (nodes) +reader readarray +longname cell top elevation +description is the top elevation for each cell in the model grid. + +block griddata +name bot +type double precision +shape (nodes) +reader readarray +longname cell bottom elevation +description is the bottom elevation for each cell. + +block griddata +name area +type double precision +shape (nodes) +reader readarray +longname cell surface area +description is the cell surface area (in plan view). + + +# --------------------- gwt disu connectiondata --------------------- + +block connectiondata +name iac +type integer +shape (nodes) +reader readarray +longname number of cell connections +description is the number of connections (plus 1) for each cell. The sum of all the entries in IAC must be equal to NJA. + +block connectiondata +name ja +type integer +shape (nja) +reader readarray +longname grid connectivity +description is a list of cell number (n) followed by its connecting cell numbers (m) for each of the m cells connected to cell n. The number of values to provide for cell n is IAC(n). This list is sequentially provided for the first to the last cell. The first value in the list must be cell n itself, and the remaining cells must be listed in an increasing order (sorted from lowest number to highest). Note that the cell and its connections are only supplied for the GWF cells and their connections to the other GWF cells. Also note that the JA list input may be divided such that every node and its connectivity list can be on a separate line for ease in readability of the file. To further ease readability of the file, the node number of the cell whose connectivity is subsequently listed, may be expressed as a negative number, the sign of which is subsequently converted to positive by the code. +numeric_index true + +block connectiondata +name ihc +type integer +shape (nja) +reader readarray +longname connection type +description is an index array indicating the direction between node n and all of its m connections. If IHC = 0 then cell n and cell m are connected in the vertical direction. Cell n overlies cell m if the cell number for n is less than m; cell m overlies cell n if the cell number for m is less than n. If IHC = 1 then cell n and cell m are connected in the horizontal direction. If IHC = 2 then cell n and cell m are connected in the horizontal direction, and the connection is vertically staggered. A vertically staggered connection is one in which a cell is horizontally connected to more than one cell in a horizontal connection. + +block connectiondata +name cl12 +type double precision +shape (nja) +reader readarray +longname connection lengths +description is the array containing connection lengths between the center of cell n and the shared face with each adjacent m cell. + +block connectiondata +name hwva +type double precision +shape (nja) +reader readarray +longname connection lengths +description is a symmetric array of size NJA. For horizontal connections, entries in HWVA are the horizontal width perpendicular to flow. For vertical connections, entries in HWVA are the vertical area for flow. Thus, values in the HWVA array contain dimensions of both length and area. Entries in the HWVA array have a one-to-one correspondence with the connections specified in the JA array. Likewise, there is a one-to-one correspondence between entries in the HWVA array and entries in the IHC array, which specifies the connection type (horizontal or vertical). Entries in the HWVA array must be symmetric; the program will terminate with an error if the value for HWVA for an n to m connection does not equal the value for HWVA for the corresponding n to m connection. + +block connectiondata +name angldegx +type double precision +optional true +shape (nja) +reader readarray +longname angle of face normal to connection +description is the angle (in degrees) between the horizontal x-axis and the outward normal to the face between a cell and its connecting cells. The angle varies between zero and 360.0 degrees, where zero degrees points in the positive x-axis direction, and 90 degrees points in the positive y-axis direction. ANGLDEGX is only needed if horizontal anisotropy is specified in the NPF Package, if the XT3D option is used in the NPF Package, or if the SAVE\_SPECIFIC\_DISCHARGE option is specifed in the NPF Package. ANGLDEGX does not need to be specified if these conditions are not met. ANGLDEGX is of size NJA; values specified for vertical connections and for the diagonal position are not used. Note that ANGLDEGX is read in degrees, which is different from MODFLOW-USG, which reads a similar variable (ANGLEX) in radians. + +# --------------------- gwt disu vertices --------------------- + +block vertices +name vertices +type recarray iv xv yv +reader urword +optional false +longname vertices data +description + +block vertices +name iv +type integer +in_record true +tagged false +reader urword +optional false +longname vertex number +description is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. +numeric_index true + +block vertices +name xv +type double precision +in_record true +tagged false +reader urword +optional false +longname x-coordinate for vertex +description is the x-coordinate for the vertex. + +block vertices +name yv +type double precision +in_record true +tagged false +reader urword +optional false +longname y-coordinate for vertex +description is the y-coordinate for the vertex. + + +# --------------------- gwt disu cell2d --------------------- + +block cell2d +name cell2d +type recarray icell2d xc yc ncvert icvert +reader urword +optional false +longname cell2d data +description + +block cell2d +name icell2d +type integer +in_record true +tagged false +reader urword +optional false +longname cell2d number +description is the cell2d number. Records in the CELL2D block must be listed in consecutive order from 1 to NODES. +numeric_index true + +block cell2d +name xc +type double precision +in_record true +tagged false +reader urword +optional false +longname x-coordinate for cell center +description is the x-coordinate for the cell center. + +block cell2d +name yc +type double precision +in_record true +tagged false +reader urword +optional false +longname y-coordinate for cell center +description is the y-coordinate for the cell center. + +block cell2d +name ncvert +type integer +in_record true +tagged false +reader urword +optional false +longname number of cell vertices +description is the number of vertices required to define the cell. There may be a different number of vertices for each cell. + +block cell2d +name icvert +type integer +shape (ncvert) +in_record true +tagged false +reader urword +optional false +longname number of cell vertices +description is an array of integer values containing vertex numbers (in the VERTICES block) used to define the cell. Vertices must be listed in clockwise order. + diff --git a/flopy/mf6/data/dfn/gwt-disv.dfn b/flopy/mf6/data/dfn/gwt-disv.dfn new file mode 100644 index 0000000000..2b10e2f461 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-disv.dfn @@ -0,0 +1,202 @@ +# --------------------- gwf disv options --------------------- + +block options +name length_units +type string +reader urword +optional true +longname model length units +description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. + +block options +name nogrb +type keyword +reader urword +optional true +longname do not write binary grid file +description keyword to deactivate writing of the binary grid file. + +block options +name xorigin +type double precision +reader urword +optional true +longname x-position origin of the model grid coordinate system +description x-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name yorigin +type double precision +reader urword +optional true +longname y-position origin of the model grid coordinate system +description y-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +block options +name angrot +type double precision +reader urword +optional true +longname rotation angle +description counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space. + +# --------------------- gwt disv dimensions --------------------- + +block dimensions +name nlay +type integer +reader urword +optional false +longname number of layers +description is the number of layers in the model grid. + +block dimensions +name ncpl +type integer +reader urword +optional false +longname number of cells per layer +description is the number of cells per layer. This is a constant value for the grid and it applies to all layers. + +block dimensions +name nvert +type integer +reader urword +optional false +longname number of columns +description is the total number of (x, y) vertex pairs used to characterize the horizontal configuration of the model grid. + +# --------------------- gwt disv griddata --------------------- + +block griddata +name top +type double precision +shape (ncpl) +reader readarray +longname model top elevation +description is the top elevation for each cell in the top model layer. + +block griddata +name botm +type double precision +shape (nlay, ncpl) +reader readarray +layered true +longname model bottom elevation +description is the bottom elevation for each cell. + +block griddata +name idomain +type integer +shape (nlay, ncpl) +reader readarray +layered true +optional true +longname idomain existence array +description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell. + + +# --------------------- gwt disv vertices --------------------- + +block vertices +name vertices +type recarray iv xv yv +reader urword +optional false +longname vertices data +description + +block vertices +name iv +type integer +in_record true +tagged false +reader urword +optional false +longname vertex number +description is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. +numeric_index true + +block vertices +name xv +type double precision +in_record true +tagged false +reader urword +optional false +longname x-coordinate for vertex +description is the x-coordinate for the vertex. + +block vertices +name yv +type double precision +in_record true +tagged false +reader urword +optional false +longname y-coordinate for vertex +description is the y-coordinate for the vertex. + + +# --------------------- gwt disv cell2d --------------------- + +block cell2d +name cell2d +type recarray icell2d xc yc ncvert icvert +reader urword +optional false +longname cell2d data +description + +block cell2d +name icell2d +type integer +in_record true +tagged false +reader urword +optional false +longname cell2d number +description is the CELL2D number. Records in the CELL2D block must be listed in consecutive order from the first to the last. +numeric_index true + +block cell2d +name xc +type double precision +in_record true +tagged false +reader urword +optional false +longname x-coordinate for cell center +description is the x-coordinate for the cell center. + +block cell2d +name yc +type double precision +in_record true +tagged false +reader urword +optional false +longname y-coordinate for cell center +description is the y-coordinate for the cell center. + +block cell2d +name ncvert +type integer +in_record true +tagged false +reader urword +optional false +longname number of cell vertices +description is the number of vertices required to define the cell. There may be a different number of vertices for each cell. + +block cell2d +name icvert +type integer +shape (ncvert) +in_record true +tagged false +reader urword +optional false +longname number of cell vertices +description is an array of integer values containing vertex numbers (in the VERTICES block) used to define the cell. Vertices must be listed in clockwise order. Cells that are connected must share vertices. +numeric_index true diff --git a/flopy/mf6/data/dfn/gwt-dsp.dfn b/flopy/mf6/data/dfn/gwt-dsp.dfn new file mode 100644 index 0000000000..62df43101f --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-dsp.dfn @@ -0,0 +1,81 @@ +# --------------------- gwt dsp options --------------------- + +block options +name xt3d_off +type keyword +shape +reader urword +optional true +longname deactivate xt3d +description deactivate the xt3d method to and use the faster and less accurate approximation. This option may provide a fast and accurate solution under some circumstances, such as when flow aligns with the model grid, there is no mechanical dispersion, or when the longitudinal and transverse dispersivities are equal. This option may also be used to assess the computational demand of the XT3D approach by noting the run time differences with and without this option on. + +block options +name xt3d_rhs +type keyword +shape +reader urword +optional true +longname xt3d on right-hand side +description add xt3d terms to right-hand side, when possible. This option uses less memory, but may require more iterations. + +# --------------------- gwt dsp griddata --------------------- + +block griddata +name diffc +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname diffusion coefficient +description molecular diffusion coefficient. + +block griddata +name alh +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname longitudinal dispersivity in horizontal direction +description longitudinal dispersivity in horizontal direction. If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required. + +block griddata +name alv +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname longitudinal dispersivity in vertical direction +description longitudinal dispersivity in vertical direction. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ALH. + +block griddata +name ath1 +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname transverse dispersivity in horizontal direction +description transverse dispersivity in horizontal direction. If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required. + +block griddata +name ath2 +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname transverse dispersivity in horizontal direction +description transverse dispersivity in horizontal direction. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH1. + +block griddata +name atv +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname transverse dispersivity when flow is in vertical direction +description transverse dispersivity when flow is in vertical direction. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH2. diff --git a/flopy/mf6/data/dfn/gwt-fmi.dfn b/flopy/mf6/data/dfn/gwt-fmi.dfn new file mode 100644 index 0000000000..cb36c2a56e --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-fmi.dfn @@ -0,0 +1,50 @@ +# --------------------- gwt fmi options --------------------- + +block options +name flow_imbalance_correction +type keyword +reader urword +optional true +longname correct for flow imbalance +description correct for an imbalance in flows by assuming that any residual flow error comes in or leaves at the concentration of the cell. + +# --------------------- gwt fmi packagedata --------------------- + +block packagedata +name packagedata +type recarray flowtype filein fname +reader urword +optional false +longname flowtype list +description + +block packagedata +name flowtype +in_record true +type string +tagged false +reader urword +longname flow type +description is the word GWFBUDGET, GWFHEAD, GWFMOVER or the name of an advanced GWF stress package. If GWFBUDGET is specified, then the corresponding file must be a budget file from a previous GWF Model run. If an advanced GWF stress package name appears then the corresponding file must be the budget file saved by a LAK, SFR, MAW or UZF Package. + +block packagedata +name filein +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an input filename is expected next. + +block packagedata +name fname +in_record true +type string +preserve_case true +tagged false +reader urword +longname file name +description is the name of the file containing flows. The path to the file should be included if the file is not located in the folder where the program was run. + diff --git a/flopy/mf6/data/dfn/gwt-ic.dfn b/flopy/mf6/data/dfn/gwt-ic.dfn new file mode 100644 index 0000000000..dcbd7d846f --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-ic.dfn @@ -0,0 +1,11 @@ +# --------------------- gwt ic griddata --------------------- + +block griddata +name strt +type double precision +shape (nodes) +reader readarray +layered true +longname starting concentration +description is the initial (starting) concentration---that is, concentration at the beginning of the GWT Model simulation. STRT must be specified for all simulations, including steady-state simulations. One value is read for every model cell. For simulations in which the first stress period is steady state, the values used for STRT generally do not affect the simulation. The execution time, however, will be less if STRT includes concentrations that are close to the steady-state solution. +default_value 0.0 diff --git a/flopy/mf6/data/dfn/gwt-ist.dfn b/flopy/mf6/data/dfn/gwt-ist.dfn new file mode 100644 index 0000000000..424876aeae --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-ist.dfn @@ -0,0 +1,221 @@ +# --------------------- gwt ist options --------------------- + +block options +name save_flows +type keyword +reader urword +optional true +longname save calculated flows to budget file +description REPLACE save_flows {'{#1}': 'IST'} + +block options +name sorbtion +type keyword +reader urword +optional true +longname activate sorbtion +description is a text keyword to indicate that sorbtion will be activated. Use of this keyword requires that BULK\_DENSITY and DISTCOEF are specified in the GRIDDATA block. + +block options +name first_order_decay +type keyword +reader urword +optional true +longname activate first-order decay +description is a text keyword to indicate that first-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorbtion is active) are specified in the GRIDDATA block. + +block options +name zero_order_decay +type keyword +reader urword +optional true +longname activate zero-order decay +description is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorbtion is active) are specified in the GRIDDATA block. + +block options +name cim_filerecord +type record cim fileout cimfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name cim +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname cim keyword +description keyword to specify that record corresponds to immobile concentration. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name cimfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the output file to write immobile concentrations. + +block options +name cimprintrecord +type record cim print_format formatrecord +shape +reader urword +optional true +longname +description + +block options +name print_format +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname keyword to indicate that a print format follows +description keyword to specify format for printing to the listing file. + +block options +name formatrecord +type record columns width digits format +shape +in_record true +reader urword +tagged +optional false +longname +description + +block options +name columns +type integer +shape +in_record true +reader urword +tagged true +optional +longname number of columns +description number of columns for writing data. + +block options +name width +type integer +shape +in_record true +reader urword +tagged true +optional +longname width for each number +description width for writing each number. + +block options +name digits +type integer +shape +in_record true +reader urword +tagged true +optional +longname number of digits +description number of digits to use for writing a number. + +block options +name format +type string +shape +in_record true +reader urword +tagged false +optional false +longname write format +description write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC. + +# --------------------- gwt ist griddata --------------------- + +block griddata +name cim +type double precision +shape (nodes) +reader readarray +optional true +layered true +longname initial concentration of the immobile domain +description initial concentration of the immobile domain in mass per length cubed. If CIM is not specified, then it is assumed to be zero. + +block griddata +name thetaim +type double precision +shape (nodes) +reader readarray +layered true +longname porosity of the immobile domain +description porosity of the immobile domain specified as the volume of immobile pore space per total volume (dimensionless). + +block griddata +name zetaim +type double precision +shape (nodes) +reader readarray +layered true +longname mass transfer rate coefficient between the mobile and immobile domains +description mass transfer rate coefficient between the mobile and immobile domains, in dimensions of per time. + +block griddata +name decay +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname first rate coefficient +description is the rate coefficient for first or zero-order decay for the aqueous phase of the immobile domain. A negative value indicates solute production. The dimensions of decay for first-order decay is one over time. The dimensions of decay for zero-order decay is mass per length cubed per time. decay will have no affect on simulation results unless either first- or zero-order decay is specified in the options block. + +block griddata +name decay_sorbed +type double precision +shape (nodes) +reader readarray +optional true +layered true +longname second rate coefficient +description is the rate coefficient for first or zero-order decay for the sorbed phase of the immobile domain. A negative value indicates solute production. The dimensions of decay\_sorbed for first-order decay is one over time. The dimensions of decay\_sorbed for zero-order decay is mass of solute per mass of aquifer per time. If decay\_sorbed is not specified and both decay and sorbtion are active, then the sorbed decay rate will be set equal to the aqueous decay rate. decay\_sorbed will have no affect on simulation results unless the SORPTION keyword and either first- or zero-order decay are specified in the options block. + +block griddata +name bulk_density +type double precision +shape (nodes) +reader readarray +layered true +longname bulk density +description is the bulk density of the aquifer in mass per length cubed. bulk\_density will have no affect on simulation results unless the SORBTION keyword is specified in the options block. + +block griddata +name distcoef +type double precision +shape (nodes) +reader readarray +layered true +longname distribution coefficient +description is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of length cubed per mass. distcoef will have no affect on simulation results unless the SORBTION keyword is specified in the options block. + diff --git a/flopy/mf6/data/dfn/gwt-lkt.dfn b/flopy/mf6/data/dfn/gwt-lkt.dfn new file mode 100644 index 0000000000..313b7e5fef --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-lkt.dfn @@ -0,0 +1,426 @@ +# --------------------- gwt lkt options --------------------- + +block options +name flow_package_name +type string +shape +reader urword +optional true +longname keyword to specify name of corresponding flow package +description keyword to specify the name of the corresponding flow package. If not specified, then the corresponding flow package must have the same name as this advanced transport package (the name associated with this package in the GWT name file). + +block options +name auxiliary +type string +shape (naux) +reader urword +optional true +longname keyword to specify aux variables +description REPLACE auxnames {'{#1}': 'Groundwater Transport'} + +block options +name flow_package_auxiliary_name +type string +shape +reader urword +optional true +longname keyword to specify name of concentration auxiliary variable in flow package +description keyword to specify the name of an auxiliary variable in the corresponding flow package. If specified, then the simulated concentrations from this advanced transport package will be copied into the auxiliary variable specified with this name. Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error. If the flows for this advanced transport package are read from a file, then this option will have no affect. + +block options +name boundnames +type keyword +shape +reader urword +optional true +longname +description REPLACE boundnames {'{#1}': 'lake'} + +block options +name print_input +type keyword +reader urword +optional true +longname print input to listing file +description REPLACE print_input {'{#1}': 'lake'} + +block options +name print_concentration +type keyword +reader urword +optional true +longname print calculated stages to listing file +description REPLACE print_head {'{#1}': 'lake', '{#2}': 'concentration', '{#3}': 'CONCENTRATION'} + +block options +name print_flows +type keyword +reader urword +optional true +longname print calculated flows to listing file +description REPLACE print_flows {'{#1}': 'lake'} + +block options +name save_flows +type keyword +reader urword +optional true +longname save lake flows to budget file +description REPLACE save_flows {'{#1}': 'lake'} + +block options +name concentration_filerecord +type record concentration fileout concfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name concentration +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname stage keyword +description keyword to specify that record corresponds to concentration. + +block options +name concfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write concentration information. + +block options +name budget_filerecord +type record budget fileout budgetfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name budget +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname budget keyword +description keyword to specify that record corresponds to the budget. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name budgetfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write budget information. + +block options +name ts_filerecord +type record ts6 filein ts6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name ts6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname head keyword +description keyword to specify that record corresponds to a time-series file. + +block options +name filein +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an input filename is expected next. + +block options +name ts6_filename +type string +preserve_case true +in_record true +reader urword +optional false +tagged false +longname file name of time series information +description REPLACE timeseriesfile {} + +block options +name obs_filerecord +type record obs6 filein obs6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name obs6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname obs keyword +description keyword to specify that record corresponds to an observations file. + +block options +name obs6_filename +type string +preserve_case true +in_record true +tagged false +reader urword +optional false +longname obs6 input filename +description REPLACE obs6_filename {'{#1}': 'LKT'} + + +# --------------------- gwt lkt packagedata --------------------- + +block packagedata +name packagedata +type recarray lakeno strt aux boundname +shape (maxbound) +reader urword +longname +description + +block packagedata +name lakeno +type integer +shape +tagged false +in_record true +reader urword +longname lake number for this entry +description integer value that defines the lake number associated with the specified PACKAGEDATA data on the line. LAKENO must be greater than zero and less than or equal to NLAKES. Lake information must be specified for every lake or the program will terminate with an error. The program will also terminate with an error if information for a lake is specified more than once. +numeric_index true + +block packagedata +name strt +type double precision +shape +tagged false +in_record true +reader urword +longname starting lake concentration +description real value that defines the starting concentration for the lake. + +block packagedata +name aux +type double precision +in_record true +tagged false +shape (naux) +reader urword +time_series true +optional true +longname auxiliary variables +description REPLACE aux {'{#1}': 'lake'} + +block packagedata +name boundname +type string +shape +tagged false +in_record true +reader urword +optional true +longname lake name +description REPLACE boundname {'{#1}': 'lake'} + + +# --------------------- gwt lkt period --------------------- + +block period +name iper +type integer +block_variable True +in_record true +tagged false +shape +valid +reader urword +optional false +longname stress period number +description REPLACE iper {} + +block period +name lakeperioddata +type recarray lakeno laksetting +shape +reader urword +longname +description + +block period +name lakeno +type integer +shape +tagged false +in_record true +reader urword +longname lake number for this entry +description integer value that defines the lake number associated with the specified PERIOD data on the line. LAKENO must be greater than zero and less than or equal to NLAKES. +numeric_index true + +block period +name laksetting +type keystring status concentration rainfall evaporation runoff ext-inflow auxiliaryrecord +shape +tagged false +in_record true +reader urword +longname +description line of information that is parsed into a keyword and values. Keyword values that can be used to start the LAKSETTING string include: STATUS, CONCENTRATION, RAINFALL, EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign the concentration of associated with the corresponding flow terms. Concentrations cannot be specified for all flow terms. For example, the Lake Package supports a ``WITHDRAWAL'' flow term. If this withdrawal term is active, then water will be withdrawn from the lake at the calculated concentration of the lake. + +block period +name status +type string +shape +tagged true +in_record true +reader urword +longname lake concentration status +description keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that concentration will be calculated for the lake. If a lake is inactive, then there will be no solute mass fluxes into or out of the lake and the inactive value will be written for the lake concentration. If a lake is constant, then the concentration for the lake will be fixed at the user specified value. + +block period +name concentration +type string +shape +tagged true +in_record true +time_series true +reader urword +longname lake concentration +description real or character value that defines the concentration for the lake. The specified CONCENTRATION is only applied if the lake is a constant concentration lake. 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. + +block period +name rainfall +type string +shape +tagged true +in_record true +reader urword +time_series true +longname rainfall concentration +description real or character value that defines the rainfall solute concentration $(ML^{-3})$ for the lake. 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. + +block period +name evaporation +type string +shape +tagged true +in_record true +reader urword +time_series true +longname evaporation concentration +description real or character value that defines the concentration of evaporated water $(ML^{-3})$ for the lake. If this concentration value is larger than the simulated concentration in the lake, then the evaporated water will be removed at the same concentration as the lake. 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. + +block period +name runoff +type string +shape +tagged true +in_record true +reader urword +time_series true +longname runoff concentration +description real or character value that defines the concentration of runoff $(ML^{-3})$ for the lake. Value must be greater than or equal to zero. 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. + +block period +name ext-inflow +type string +shape +tagged true +in_record true +reader urword +time_series true +longname ext-inflow concentration +description real or character value that defines the concentration of external inflow $(ML^{-3})$ for the lake. Value must be greater than or equal to zero. 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. + +block period +name auxiliaryrecord +type record auxiliary auxname auxval +shape +tagged +in_record true +reader urword +longname +description + +block period +name auxiliary +type keyword +shape +in_record true +reader urword +longname +description keyword for specifying auxiliary variable. + +block period +name auxname +type string +shape +tagged false +in_record true +reader urword +longname +description 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. + +block period +name auxval +type double precision +shape +tagged false +in_record true +reader urword +time_series true +longname auxiliary variable value +description 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. diff --git a/flopy/mf6/data/dfn/gwt-mst.dfn b/flopy/mf6/data/dfn/gwt-mst.dfn new file mode 100644 index 0000000000..f5068aabda --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-mst.dfn @@ -0,0 +1,85 @@ +# --------------------- gwt mst options --------------------- + +block options +name save_flows +type keyword +reader urword +optional true +longname save calculated flows to budget file +description REPLACE save_flows {'{#1}': 'MST'} + +block options +name first_order_decay +type keyword +reader urword +optional true +longname activate first-order decay +description is a text keyword to indicate that first-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorbtion is active) are specified in the GRIDDATA block. + +block options +name zero_order_decay +type keyword +reader urword +optional true +longname activate zero-order decay +description is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorbtion is active) are specified in the GRIDDATA block. + +block options +name sorbtion +type keyword +reader urword +optional true +longname activate sorbtion +description is a text keyword to indicate that sorbtion will be activated. Use of this keyword requires that BULK\_DENSITY and DISTCOEF are specified in the GRIDDATA block. + +# --------------------- gwt mst griddata --------------------- + +block griddata +name porosity +type double precision +shape (nodes) +reader readarray +layered true +longname porosity +description is the aquifer porosity. + +block griddata +name decay +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname aqueous phase decay rate coefficient +description is the rate coefficient for first or zero-order decay for the aqueous phase of the mobile domain. A negative value indicates solute production. The dimensions of decay for first-order decay is one over time. The dimensions of decay for zero-order decay is mass per length cubed per time. decay will have no affect on simulation results unless either first- or zero-order decay is specified in the options block. + +block griddata +name decay_sorbed +type double precision +shape (nodes) +reader readarray +optional true +layered true +longname sorbed phase decay rate coefficient +description is the rate coefficient for first or zero-order decay for the sorbed phase of the mobile domain. A negative value indicates solute production. The dimensions of decay\_sorbed for first-order decay is one over time. The dimensions of decay\_sorbed for zero-order decay is mass of solute per mass of aquifer per time. If decay\_sorbed is not specified and both decay and sorbtion are active, then the sorbed decay rate will be set equal to the aqueous decay rate. decay\_sorbed will have no affect on simulation results unless the SORPTION keyword and either first- or zero-order decay are specified in the options block. + +block griddata +name bulk_density +type double precision +shape (nodes) +reader readarray +optional true +layered true +longname bulk density +description is the bulk density of the aquifer in mass per length cubed. bulk\_density is not required unless the SORBTION keyword is specified. + +block griddata +name distcoef +type double precision +shape (nodes) +reader readarray +layered true +optional true +longname distribution coefficient +description is the distribution coefficient for the equilibrium-controlled linear sorption isotherm in dimensions of length cubed per mass. distcoef is not required unless the SORBTION keyword is specified. + diff --git a/flopy/mf6/data/dfn/gwt-mvt.dfn b/flopy/mf6/data/dfn/gwt-mvt.dfn new file mode 100644 index 0000000000..50846a5bef --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-mvt.dfn @@ -0,0 +1,71 @@ +# --------------------- gwt mvt options --------------------- + +block options +name print_input +type keyword +reader urword +optional true +longname print input to listing file +description REPLACE print_input {'{#1}': 'mover'} + +block options +name print_flows +type keyword +reader urword +optional true +longname print calculated flows to listing file +description REPLACE print_flows {'{#1}': 'lake'} + +block options +name save_flows +type keyword +reader urword +optional true +longname save lake flows to budget file +description REPLACE save_flows {'{#1}': 'lake'} + +block options +name budget_filerecord +type record budget fileout budgetfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name budget +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname budget keyword +description keyword to specify that record corresponds to the budget. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name budgetfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write budget information. + + diff --git a/flopy/mf6/data/dfn/gwt-mwt.dfn b/flopy/mf6/data/dfn/gwt-mwt.dfn new file mode 100644 index 0000000000..e49af4052e --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-mwt.dfn @@ -0,0 +1,393 @@ +# --------------------- gwt mwt options --------------------- + +block options +name flow_package_name +type string +shape +reader urword +optional true +longname keyword to specify name of corresponding flow package +description keyword to specify the name of the corresponding flow package. If not specified, then the corresponding flow package must have the same name as this advanced transport package (the name associated with this package in the GWT name file). + +block options +name auxiliary +type string +shape (naux) +reader urword +optional true +longname keyword to specify aux variables +description REPLACE auxnames {'{#1}': 'Groundwater Transport'} + +block options +name flow_package_auxiliary_name +type string +shape +reader urword +optional true +longname keyword to specify name of concentration auxiliary variable in flow package +description keyword to specify the name of an auxiliary variable in the corresponding flow package. If specified, then the simulated concentrations from this advanced transport package will be copied into the auxiliary variable specified with this name. Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error. If the flows for this advanced transport package are read from a file, then this option will have no affect. + +block options +name boundnames +type keyword +shape +reader urword +optional true +longname +description REPLACE boundnames {'{#1}': 'well'} + +block options +name print_input +type keyword +reader urword +optional true +longname print input to listing file +description REPLACE print_input {'{#1}': 'well'} + +block options +name print_concentration +type keyword +reader urword +optional true +longname print calculated concentrations to listing file +description REPLACE print_head {'{#1}': 'well', '{#2}': 'concentration', '{#3}': 'CONCENTRATION'} + +block options +name print_flows +type keyword +reader urword +optional true +longname print calculated flows to listing file +description REPLACE print_flows {'{#1}': 'well'} + +block options +name save_flows +type keyword +reader urword +optional true +longname save well flows to budget file +description REPLACE save_flows {'{#1}': 'well'} + +block options +name concentration_filerecord +type record concentration fileout concfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name concentration +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname stage keyword +description keyword to specify that record corresponds to concentration. + +block options +name concfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write concentration information. + +block options +name budget_filerecord +type record budget fileout budgetfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name budget +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname budget keyword +description keyword to specify that record corresponds to the budget. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name budgetfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the binary output file to write budget information. + +block options +name ts_filerecord +type record ts6 filein ts6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name ts6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname head keyword +description keyword to specify that record corresponds to a time-series file. + +block options +name filein +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an input filename is expected next. + +block options +name ts6_filename +type string +preserve_case true +in_record true +reader urword +optional false +tagged false +longname file name of time series information +description REPLACE timeseriesfile {} + +block options +name obs_filerecord +type record obs6 filein obs6_filename +shape +reader urword +tagged true +optional true +longname +description + +block options +name obs6 +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname obs keyword +description keyword to specify that record corresponds to an observations file. + +block options +name obs6_filename +type string +preserve_case true +in_record true +tagged false +reader urword +optional false +longname obs6 input filename +description REPLACE obs6_filename {'{#1}': 'MWT'} + + +# --------------------- gwt mwt packagedata --------------------- + +block packagedata +name packagedata +type recarray mawno strt aux boundname +shape (maxbound) +reader urword +longname +description + +block packagedata +name mawno +type integer +shape +tagged false +in_record true +reader urword +longname well number for this entry +description integer value that defines the well number associated with the specified PACKAGEDATA data on the line. MAWNO must be greater than zero and less than or equal to NMAWWELLS. Well information must be specified for every well or the program will terminate with an error. The program will also terminate with an error if information for a well is specified more than once. +numeric_index true + +block packagedata +name strt +type double precision +shape +tagged false +in_record true +reader urword +longname starting well concentration +description real value that defines the starting concentration for the well. + +block packagedata +name aux +type double precision +in_record true +tagged false +shape (naux) +reader urword +time_series true +optional true +longname auxiliary variables +description REPLACE aux {'{#1}': 'well'} + +block packagedata +name boundname +type string +shape +tagged false +in_record true +reader urword +optional true +longname well name +description REPLACE boundname {'{#1}': 'well'} + + +# --------------------- gwt mwt period --------------------- + +block period +name iper +type integer +block_variable True +in_record true +tagged false +shape +valid +reader urword +optional false +longname stress period number +description REPLACE iper {} + +block period +name mwtperioddata +type recarray mawno mwtsetting +shape +reader urword +longname +description + +block period +name mawno +type integer +shape +tagged false +in_record true +reader urword +longname well number for this entry +description integer value that defines the well number associated with the specified PERIOD data on the line. MAWNO must be greater than zero and less than or equal to NMAWWELLS. +numeric_index true + +block period +name mwtsetting +type keystring status concentration rate auxiliaryrecord +shape +tagged false +in_record true +reader urword +longname +description line of information that is parsed into a keyword and values. Keyword values that can be used to start the MWTSETTING string include: STATUS, CONCENTRATION, RAINFALL, EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign the concentration of associated with the corresponding flow terms. Concentrations cannot be specified for all flow terms. For example, the Multi-Aquifer Well Package supports a ``WITHDRAWAL'' flow term. If this withdrawal term is active, then water will be withdrawn from the well at the calculated concentration of the well. + +block period +name status +type string +shape +tagged true +in_record true +reader urword +longname well concentration status +description keyword option to define well status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that concentration will be calculated for the well. If a well is inactive, then there will be no solute mass fluxes into or out of the well and the inactive value will be written for the well concentration. If a well is constant, then the concentration for the well will be fixed at the user specified value. + +block period +name concentration +type string +shape +tagged true +in_record true +time_series true +reader urword +longname well concentration +description real or character value that defines the concentration for the well. The specified CONCENTRATION is only applied if the well is a constant concentration well. 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. + +block period +name rate +type string +shape +tagged true +in_record true +reader urword +time_series true +longname well injection concentration +description real or character value that defines the injection solute concentration $(ML^{-3})$ for the well. 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. + +block period +name auxiliaryrecord +type record auxiliary auxname auxval +shape +tagged +in_record true +reader urword +longname +description + +block period +name auxiliary +type keyword +shape +in_record true +reader urword +longname +description keyword for specifying auxiliary variable. + +block period +name auxname +type string +shape +tagged false +in_record true +reader urword +longname +description 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. + +block period +name auxval +type double precision +shape +tagged false +in_record true +reader urword +time_series true +longname auxiliary variable value +description 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. diff --git a/flopy/mf6/data/dfn/gwt-nam.dfn b/flopy/mf6/data/dfn/gwt-nam.dfn new file mode 100644 index 0000000000..22daa2d658 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-nam.dfn @@ -0,0 +1,73 @@ +# --------------------- gwt nam options --------------------- + +block options +name list +type string +reader urword +optional true +longname name of listing file +description is name of the listing file to create for this GWT model. If not specified, then the name of the list file will be the basename of the GWT model name file and the '.lst' extension. For example, if the GWT name file is called ``my.model.nam'' then the list file will be called ``my.model.lst''. + +block options +name print_input +type keyword +reader urword +optional true +longname print input to listing file +description REPLACE print_input {'{#1}': 'all model stress package'} + +block options +name print_flows +type keyword +reader urword +optional true +longname print calculated flows to listing file +description REPLACE print_flows {'{#1}': 'all model package'} + +block options +name save_flows +type keyword +reader urword +optional true +longname save flows for all packages to budget file +description REPLACE save_flows {'{#1}': 'all model package'} + +# --------------------- gwt nam packages --------------------- + +block packages +name packages +type recarray ftype fname pname +reader urword +optional false +longname package list +description + +block packages +name ftype +in_record true +type string +tagged false +reader urword +longname package type +description is the file type, which must be one of the following character values shown in table~\ref{table:ftype}. Ftype may be entered in any combination of uppercase and lowercase. + +block packages +name fname +in_record true +type string +preserve_case true +tagged false +reader urword +longname file name +description is the name of the file containing the package input. The path to the file should be included if the file is not located in the folder where the program was run. + +block packages +name pname +in_record true +type string +tagged false +reader urword +optional true +longname user name for package +description is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed in PNAME. PNAME character values are read and stored by the program for stress packages only. These names may be useful for labeling purposes when multiple stress packages of the same type are located within a single GWT Model. If PNAME is specified for a stress package, then PNAME will be used in the flow budget table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME is case insensitive and is stored in all upper case letters. + diff --git a/flopy/mf6/data/dfn/gwt-oc.dfn b/flopy/mf6/data/dfn/gwt-oc.dfn new file mode 100644 index 0000000000..861456a1f0 --- /dev/null +++ b/flopy/mf6/data/dfn/gwt-oc.dfn @@ -0,0 +1,280 @@ +# --------------------- gwt oc options --------------------- + +block options +name budget_filerecord +type record budget fileout budgetfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name budget +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname budget keyword +description keyword to specify that record corresponds to the budget. + +block options +name fileout +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname file keyword +description keyword to specify that an output filename is expected next. + +block options +name budgetfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the output file to write budget information. + +block options +name concentration_filerecord +type record concentration fileout concentrationfile +shape +reader urword +tagged true +optional true +longname +description + +block options +name concentration +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname concentration keyword +description keyword to specify that record corresponds to concentration. + +block options +name concentrationfile +type string +preserve_case true +shape +in_record true +reader urword +tagged false +optional false +longname file keyword +description name of the output file to write conc information. + +block options +name concentrationprintrecord +type record concentration print_format formatrecord +shape +reader urword +optional true +longname +description + +block options +name print_format +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname keyword to indicate that a print format follows +description keyword to specify format for printing to the listing file. + +block options +name formatrecord +type record columns width digits format +shape +in_record true +reader urword +tagged +optional false +longname +description + +block options +name columns +type integer +shape +in_record true +reader urword +tagged true +optional +longname number of columns +description number of columns for writing data. + +block options +name width +type integer +shape +in_record true +reader urword +tagged true +optional +longname width for each number +description width for writing each number. + +block options +name digits +type integer +shape +in_record true +reader urword +tagged true +optional +longname number of digits +description number of digits to use for writing a number. + +block options +name format +type string +shape +in_record true +reader urword +tagged false +optional false +longname write format +description write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC. + + +# --------------------- gwt oc period --------------------- + +block period +name iper +type integer +block_variable True +in_record true +tagged false +shape +valid +reader urword +optional false +longname stress period number +description REPLACE iper {} + +block period +name saverecord +type record save rtype ocsetting +shape +reader urword +tagged false +optional true +longname +description + +block period +name save +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname keyword to save +description keyword to indicate that information will be saved this stress period. + +block period +name printrecord +type record print rtype ocsetting +shape +reader urword +tagged false +optional true +longname +description + +block period +name print +type keyword +shape +in_record true +reader urword +tagged true +optional false +longname keyword to save +description keyword to indicate that information will be printed this stress period. + +block period +name rtype +type string +shape +in_record true +reader urword +tagged false +optional false +longname record type +description type of information to save or print. Can be BUDGET or CONCENTRATION. + +block period +name ocsetting +type keystring all first last frequency steps +shape +tagged false +in_record true +reader urword +longname +description specifies the steps for which the data will be saved. + +block period +name all +type keyword +shape +in_record true +reader urword +longname +description keyword to indicate save for all time steps in period. + +block period +name first +type keyword +shape +in_record true +reader urword +longname +description keyword to indicate save for first step in period. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps. + +block period +name last +type keyword +shape +in_record true +reader urword +longname +description keyword to indicate save for last step in period. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps. + +block period +name frequency +type integer +shape +tagged true +in_record true +reader urword +longname +description save at the specified time step frequency. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps. + +block period +name steps +type integer +shape ( + * is the exchange type (GWF-GWF or GWF-GWT). + exgmnamea : + * is the name of the first model that is part of this exchange. + exgmnameb : + * is the name of the second model that is part of this exchange. + 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. + + """ + + package_abbr = "gwfgwt" + _package_type = "gwfgwt" + dfn_file_name = "exg-gwfgwt.dfn" + + dfn = [] + + def __init__(self, simulation, loading_package=False, exgtype=None, + exgmnamea=None, exgmnameb=None, filename=None, pname=None, + parent_file=None): + super(ModflowGwfgwt, self).__init__(simulation, "gwfgwt", filename, pname, + loading_package, parent_file) + + # set up variables + self.exgtype = exgtype + + self.exgmnamea = exgmnamea + + self.exgmnameb = exgmnameb + + simulation.register_exchange_file(self) + + self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfhfb.py b/flopy/mf6/modflow/mfgwfhfb.py index 529460d1fe..b2453b9579 100644 --- a/flopy/mf6/modflow/mfgwfhfb.py +++ b/flopy/mf6/modflow/mfgwfhfb.py @@ -60,100 +60,44 @@ class ModflowGwfhfb(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - stress_period_data = ListTemplateGenerator( - ("gwf6", "hfb", "period", "stress_period_data") - ) + stress_period_data = ListTemplateGenerator(('gwf6', 'hfb', 'period', + 'stress_period_data')) package_abbr = "gwfhfb" _package_type = "hfb" dfn_file_name = "gwf-hfb.dfn" - dfn = [ - [ - "block options", - "name print_input", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block dimensions", - "name maxhfb", - "type integer", - "reader urword", - "optional false", - ], - [ - "block period", - "name iper", - "type integer", - "block_variable True", - "in_record true", - "tagged false", - "shape", - "valid", - "reader urword", - "optional false", - ], - [ - "block period", - "name stress_period_data", - "type recarray cellid1 cellid2 hydchr", - "shape (maxhfb)", - "reader urword", - ], - [ - "block period", - "name cellid1", - "type integer", - "shape (ncelldim)", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name cellid2", - "type integer", - "shape (ncelldim)", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name hydchr", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - ] + dfn = [["block options", "name print_input", "type keyword", + "reader urword", "optional true"], + ["block dimensions", "name maxhfb", "type integer", + "reader urword", "optional false"], + ["block period", "name iper", "type integer", + "block_variable True", "in_record true", "tagged false", "shape", + "valid", "reader urword", "optional false"], + ["block period", "name stress_period_data", + "type recarray cellid1 cellid2 hydchr", "shape (maxhfb)", + "reader urword"], + ["block period", "name cellid1", "type integer", + "shape (ncelldim)", "tagged false", "in_record true", + "reader urword"], + ["block period", "name cellid2", "type integer", + "shape (ncelldim)", "tagged false", "in_record true", + "reader urword"], + ["block period", "name hydchr", "type double precision", "shape", + "tagged false", "in_record true", "reader urword"]] - def __init__( - self, - model, - loading_package=False, - print_input=None, - maxhfb=None, - stress_period_data=None, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwfhfb, self).__init__( - model, "hfb", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, print_input=None, + maxhfb=None, stress_period_data=None, filename=None, + pname=None, parent_file=None): + super(ModflowGwfhfb, self).__init__(model, "hfb", filename, pname, + loading_package, parent_file) # set up variables self.print_input = self.build_mfdata("print_input", print_input) self.maxhfb = self.build_mfdata("maxhfb", maxhfb) - self.stress_period_data = self.build_mfdata( - "stress_period_data", stress_period_data - ) + self.stress_period_data = self.build_mfdata("stress_period_data", + stress_period_data) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfic.py b/flopy/mf6/modflow/mfgwfic.py index 99ce6335ec..0a0e33168a 100644 --- a/flopy/mf6/modflow/mfgwfic.py +++ b/flopy/mf6/modflow/mfgwfic.py @@ -33,40 +33,23 @@ class ModflowGwfic(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - strt = ArrayTemplateGenerator(("gwf6", "ic", "griddata", "strt")) + strt = ArrayTemplateGenerator(('gwf6', 'ic', 'griddata', 'strt')) package_abbr = "gwfic" _package_type = "ic" dfn_file_name = "gwf-ic.dfn" - dfn = [ - [ - "block griddata", - "name strt", - "type double precision", - "shape (nodes)", - "reader readarray", - "layered true", - "default_value 1.0", - ] - ] + dfn = [["block griddata", "name strt", "type double precision", + "shape (nodes)", "reader readarray", "layered true", + "default_value 1.0"]] - def __init__( - self, - model, - loading_package=False, - strt=1.0, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwfic, self).__init__( - model, "ic", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, strt=1.0, filename=None, + pname=None, parent_file=None): + super(ModflowGwfic, self).__init__(model, "ic", filename, pname, + loading_package, parent_file) # set up variables self.strt = self.build_mfdata("strt", strt) diff --git a/flopy/mf6/modflow/mfgwflak.py b/flopy/mf6/modflow/mfgwflak.py index 4ad5980c43..e5eaf3e91e 100644 --- a/flopy/mf6/modflow/mfgwflak.py +++ b/flopy/mf6/modflow/mfgwflak.py @@ -408,820 +408,269 @@ class ModflowGwflak(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - auxiliary = ListTemplateGenerator(("gwf6", "lak", "options", "auxiliary")) - stage_filerecord = ListTemplateGenerator( - ("gwf6", "lak", "options", "stage_filerecord") - ) - budget_filerecord = ListTemplateGenerator( - ("gwf6", "lak", "options", "budget_filerecord") - ) - package_convergence_filerecord = ListTemplateGenerator( - ("gwf6", "lak", "options", "package_convergence_filerecord") - ) - ts_filerecord = ListTemplateGenerator( - ("gwf6", "lak", "options", "ts_filerecord") - ) - obs_filerecord = ListTemplateGenerator( - ("gwf6", "lak", "options", "obs_filerecord") - ) - packagedata = ListTemplateGenerator( - ("gwf6", "lak", "packagedata", "packagedata") - ) - connectiondata = ListTemplateGenerator( - ("gwf6", "lak", "connectiondata", "connectiondata") - ) - tables = ListTemplateGenerator(("gwf6", "lak", "tables", "tables")) - outlets = ListTemplateGenerator(("gwf6", "lak", "outlets", "outlets")) - perioddata = ListTemplateGenerator(("gwf6", "lak", "period", "perioddata")) + auxiliary = ListTemplateGenerator(('gwf6', 'lak', 'options', + 'auxiliary')) + stage_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', + 'stage_filerecord')) + budget_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', + 'budget_filerecord')) + package_convergence_filerecord = ListTemplateGenerator(( + 'gwf6', 'lak', 'options', 'package_convergence_filerecord')) + ts_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', + 'ts_filerecord')) + obs_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', + 'obs_filerecord')) + packagedata = ListTemplateGenerator(('gwf6', 'lak', 'packagedata', + 'packagedata')) + connectiondata = ListTemplateGenerator(('gwf6', 'lak', + 'connectiondata', + 'connectiondata')) + tables = ListTemplateGenerator(('gwf6', 'lak', 'tables', 'tables')) + outlets = ListTemplateGenerator(('gwf6', 'lak', 'outlets', + 'outlets')) + perioddata = ListTemplateGenerator(('gwf6', 'lak', 'period', + 'perioddata')) package_abbr = "gwflak" _package_type = "lak" dfn_file_name = "gwf-lak.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_stage", - "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 stage fileout stagefile", - "shape", - "reader urword", - "tagged true", - "optional true", - ], - [ - "block options", - "name stage", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block options", - "name stagefile", - "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 package_convergence_filerecord", + 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_stage", "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 stage fileout stagefile", "shape", "reader urword", + "tagged true", "optional true"], + ["block options", "name stage", "type keyword", "shape", + "in_record true", "reader urword", "tagged true", + "optional false"], + ["block options", "name stagefile", "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 package_convergence_filerecord", "type record package_convergence fileout " "package_convergence_filename", - "shape", - "reader urword", - "tagged true", - "optional true", - ], - [ - "block options", - "name package_convergence", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block options", - "name package_convergence_filename", - "type string", - "shape", - "in_record true", - "reader urword", - "tagged false", - "optional false", - ], - [ - "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 options", - "name surfdep", - "type double precision", - "reader urword", - "optional true", - ], - [ - "block options", - "name time_conversion", - "type double precision", - "reader urword", - "optional true", - ], - [ - "block options", - "name length_conversion", - "type double precision", - "reader urword", - "optional true", - ], - [ - "block dimensions", - "name nlakes", - "type integer", - "reader urword", - "optional false", - ], - [ - "block dimensions", - "name noutlets", - "type integer", - "reader urword", - "optional false", - ], - [ - "block dimensions", - "name ntables", - "type integer", - "reader urword", - "optional false", - ], - [ - "block packagedata", - "name packagedata", + "shape", "reader urword", "tagged true", "optional true"], + ["block options", "name package_convergence", "type keyword", + "shape", "in_record true", "reader urword", "tagged true", + "optional false"], + ["block options", "name package_convergence_filename", + "type string", "shape", "in_record true", "reader urword", + "tagged false", "optional false"], + ["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 options", "name surfdep", "type double precision", + "reader urword", "optional true"], + ["block options", "name time_conversion", + "type double precision", "reader urword", "optional true"], + ["block options", "name length_conversion", + "type double precision", "reader urword", "optional true"], + ["block dimensions", "name nlakes", "type integer", + "reader urword", "optional false"], + ["block dimensions", "name noutlets", "type integer", + "reader urword", "optional false"], + ["block dimensions", "name ntables", "type integer", + "reader urword", "optional false"], + ["block packagedata", "name packagedata", "type recarray lakeno strt nlakeconn aux boundname", - "shape (maxbound)", - "reader urword", - ], - [ - "block packagedata", - "name lakeno", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block packagedata", - "name strt", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block packagedata", - "name nlakeconn", - "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", + "shape (maxbound)", "reader urword"], + ["block packagedata", "name lakeno", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block packagedata", "name strt", "type double precision", + "shape", "tagged false", "in_record true", "reader urword"], + ["block packagedata", "name nlakeconn", "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 lakeno iconn cellid claktype bedleak belev telev " "connlen connwidth", - "shape (sum(nlakeconn))", - "reader urword", - ], - [ - "block connectiondata", - "name lakeno", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block connectiondata", - "name iconn", - "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 claktype", - "type string", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block connectiondata", - "name bedleak", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block connectiondata", - "name belev", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block connectiondata", - "name telev", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block connectiondata", - "name connlen", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block connectiondata", - "name connwidth", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block tables", - "name tables", + "shape (sum(nlakeconn))", "reader urword"], + ["block connectiondata", "name lakeno", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block connectiondata", "name iconn", "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 claktype", "type string", "shape", + "tagged false", "in_record true", "reader urword"], + ["block connectiondata", "name bedleak", "type double precision", + "shape", "tagged false", "in_record true", "reader urword"], + ["block connectiondata", "name belev", "type double precision", + "shape", "tagged false", "in_record true", "reader urword"], + ["block connectiondata", "name telev", "type double precision", + "shape", "tagged false", "in_record true", "reader urword"], + ["block connectiondata", "name connlen", "type double precision", + "shape", "tagged false", "in_record true", "reader urword"], + ["block connectiondata", "name connwidth", + "type double precision", "shape", "tagged false", + "in_record true", "reader urword"], + ["block tables", "name tables", "type recarray lakeno tab6 filein tab6_filename", - "shape (ntables)", - "reader urword", - ], - [ - "block tables", - "name lakeno", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block tables", - "name tab6", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block tables", - "name filein", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block tables", - "name tab6_filename", - "type string", - "preserve_case true", - "in_record true", - "reader urword", - "optional false", - "tagged false", - ], - [ - "block outlets", - "name outlets", + "shape (ntables)", "reader urword"], + ["block tables", "name lakeno", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block tables", "name tab6", "type keyword", "shape", + "in_record true", "reader urword", "tagged true", + "optional false"], + ["block tables", "name filein", "type keyword", "shape", + "in_record true", "reader urword", "tagged true", + "optional false"], + ["block tables", "name tab6_filename", "type string", + "preserve_case true", "in_record true", "reader urword", + "optional false", "tagged false"], + ["block outlets", "name outlets", "type recarray outletno lakein lakeout couttype invert width " "rough slope", - "shape (noutlets)", - "reader urword", - ], - [ - "block outlets", - "name outletno", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block outlets", - "name lakein", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block outlets", - "name lakeout", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block outlets", - "name couttype", - "type string", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block outlets", - "name invert", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block outlets", - "name width", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block outlets", - "name rough", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block outlets", - "name slope", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "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 number laksetting", - "shape", - "reader urword", - ], - [ - "block period", - "name number", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block period", - "name laksetting", + "shape (noutlets)", "reader urword"], + ["block outlets", "name outletno", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block outlets", "name lakein", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block outlets", "name lakeout", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block outlets", "name couttype", "type string", "shape", + "tagged false", "in_record true", "reader urword"], + ["block outlets", "name invert", "type double precision", + "shape", "tagged false", "in_record true", "reader urword", + "time_series true"], + ["block outlets", "name width", "type double precision", "shape", + "tagged false", "in_record true", "reader urword", + "time_series true"], + ["block outlets", "name rough", "type double precision", "shape", + "tagged false", "in_record true", "reader urword", + "time_series true"], + ["block outlets", "name slope", "type double precision", "shape", + "tagged false", "in_record true", "reader urword", + "time_series true"], + ["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 number laksetting", "shape", "reader urword"], + ["block period", "name number", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block period", "name laksetting", "type keystring status stage rainfall evaporation runoff inflow " "withdrawal rate invert width slope rough 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 stage", - "type string", - "shape", - "tagged true", - "in_record true", - "time_series true", - "reader urword", - ], - [ - "block period", - "name rainfall", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name evaporation", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name runoff", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name inflow", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name withdrawal", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name rate", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name invert", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name rough", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name width", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "block period", - "name slope", - "type string", - "shape", - "tagged true", - "in_record true", - "reader urword", - "time_series true", - ], - [ - "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", - ], - ] + "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 stage", "type string", "shape", + "tagged true", "in_record true", "time_series true", + "reader urword"], + ["block period", "name rainfall", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name evaporation", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name runoff", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name inflow", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name withdrawal", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name rate", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name invert", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name rough", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name width", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["block period", "name slope", "type string", "shape", + "tagged true", "in_record true", "reader urword", + "time_series true"], + ["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_stage=None, - print_flows=None, - save_flows=None, - stage_filerecord=None, - budget_filerecord=None, - package_convergence_filerecord=None, - timeseries=None, - observations=None, - mover=None, - surfdep=None, - time_conversion=None, - length_conversion=None, - nlakes=None, - noutlets=None, - ntables=None, - packagedata=None, - connectiondata=None, - tables=None, - outlets=None, - perioddata=None, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwflak, self).__init__( - model, "lak", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, auxiliary=None, + boundnames=None, print_input=None, print_stage=None, + print_flows=None, save_flows=None, stage_filerecord=None, + budget_filerecord=None, package_convergence_filerecord=None, + timeseries=None, observations=None, mover=None, surfdep=None, + time_conversion=None, length_conversion=None, nlakes=None, + noutlets=None, ntables=None, packagedata=None, + connectiondata=None, tables=None, outlets=None, + perioddata=None, filename=None, pname=None, parent_file=None): + super(ModflowGwflak, self).__init__(model, "lak", filename, pname, + loading_package, parent_file) # set up variables self.auxiliary = self.build_mfdata("auxiliary", auxiliary) @@ -1230,38 +679,34 @@ def __init__( self.print_stage = self.build_mfdata("print_stage", print_stage) 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.stage_filerecord = self.build_mfdata("stage_filerecord", + stage_filerecord) + self.budget_filerecord = self.build_mfdata("budget_filerecord", + budget_filerecord) self.package_convergence_filerecord = self.build_mfdata( - "package_convergence_filerecord", package_convergence_filerecord - ) - 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 - ) + "package_convergence_filerecord", package_convergence_filerecord) + 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.surfdep = self.build_mfdata("surfdep", surfdep) - self.time_conversion = self.build_mfdata( - "time_conversion", time_conversion - ) - self.length_conversion = self.build_mfdata( - "length_conversion", length_conversion - ) + self.time_conversion = self.build_mfdata("time_conversion", + time_conversion) + self.length_conversion = self.build_mfdata("length_conversion", + length_conversion) self.nlakes = self.build_mfdata("nlakes", nlakes) self.noutlets = self.build_mfdata("noutlets", noutlets) self.ntables = self.build_mfdata("ntables", ntables) self.packagedata = self.build_mfdata("packagedata", packagedata) - self.connectiondata = self.build_mfdata( - "connectiondata", connectiondata - ) + self.connectiondata = self.build_mfdata("connectiondata", + connectiondata) self.tables = self.build_mfdata("tables", tables) self.outlets = self.build_mfdata("outlets", outlets) self.perioddata = self.build_mfdata("perioddata", perioddata) diff --git a/flopy/mf6/modflow/mfgwfmaw.py b/flopy/mf6/modflow/mfgwfmaw.py index b20432a924..1790054168 100644 --- a/flopy/mf6/modflow/mfgwfmaw.py +++ b/flopy/mf6/modflow/mfgwfmaw.py @@ -52,8 +52,8 @@ class ModflowGwfmaw(mfpackage.MFPackage): * 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 + head_filerecord : [headfile] + * headfile (string) name of the binary output file to write head information. budget_filerecord : [budgetfile] * budgetfile (string) name of the binary output file to write budget @@ -127,12 +127,21 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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. + * radius (double) radius for the multi-aquifer well. The program will + terminate with an error if the radius is less than or equal to zero. + * bottom (double) bottom elevation of the multi-aquifer well. If + CONDEQN is SPECIFIED, THIEM, SKIN, or COMPOSITE, BOTTOM is set 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. If + CONDEQN is MEAN, BOTTOM is set to the lowermost GWF cell connection + screen bottom in cases where the specified well bottom is above this + value. The bottom elevation defines the lowest well head that will be + simulated when the NEWTON UNDER_RELAXATION option is specified in the + GWF model name file. The bottom elevation is also used to calculate + volumetric storage in the well. + * strt (double) starting head for the multi-aquifer well. The program + will terminate with an error if the starting head is less than the + specified well bottom. * 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 @@ -207,16 +216,19 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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. + for the multi-aquifer well connection. If CONDEQN is SPECIFIED, + THIEM, SKIN, or COMPOSITE, SCRN_TOP can be any value and is set to + the top of the cell. If CONDEQN is MEAN, SCRN_TOP is set to the + multi-aquifer well connection cell top if the specified value is + greater than the cell top. The program will terminate with an error + if the screen top is less than the screen bottom. * 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. + screen for the multi-aquifer well connection. If CONDEQN is + SPECIFIED, THIEM, SKIN, or COMPOSITE, SCRN_BOT can be any value is + set to the bottom of the cell. If CONDEQN is MEAN, SCRN_BOT is set to + the multi-aquifer well connection cell bottom if the specified value + is less than the cell bottom. The program will terminate with an + error if the screen bottom is greater than the screen top. * 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 @@ -234,8 +246,9 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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. + if CONDEQN is SPECIFIED or THIEM. If CONDEQN is SKIN, CUMULATIVE, or + MEAN, the program will terminate with an error if RADIUS_SKIN is less + than or equal to the 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 @@ -281,7 +294,8 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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. + in place of a numeric value. The program will terminate with + an error if WELL_HEAD is less than the bottom of the well. 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 @@ -335,690 +349,221 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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 + 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")) + auxiliary = ListTemplateGenerator(('gwf6', 'maw', 'options', + 'auxiliary')) + head_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options', + 'head_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", + 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 head_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", + "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", + "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", - ], - ] + "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 - ) + def __init__(self, model, loading_package=False, auxiliary=None, + boundnames=None, print_input=None, print_head=None, + print_flows=None, save_flows=None, head_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) @@ -1027,38 +572,33 @@ def __init__( 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.head_filerecord = self.build_mfdata("head_filerecord", + head_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.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.connectiondata = self.build_mfdata("connectiondata", + connectiondata) self.perioddata = self.build_mfdata("perioddata", perioddata) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfmvr.py b/flopy/mf6/modflow/mfgwfmvr.py index 768e717e0f..85b120fe06 100644 --- a/flopy/mf6/modflow/mfgwfmvr.py +++ b/flopy/mf6/modflow/mfgwfmvr.py @@ -102,248 +102,86 @@ class ModflowGwfmvr(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - budget_filerecord = ListTemplateGenerator( - ("gwf6", "mvr", "options", "budget_filerecord") - ) - packages = ListTemplateGenerator(("gwf6", "mvr", "packages", "packages")) - perioddata = ListTemplateGenerator(("gwf6", "mvr", "period", "perioddata")) + budget_filerecord = ListTemplateGenerator(('gwf6', 'mvr', 'options', + 'budget_filerecord')) + packages = ListTemplateGenerator(('gwf6', 'mvr', 'packages', + 'packages')) + perioddata = ListTemplateGenerator(('gwf6', 'mvr', 'period', + 'perioddata')) package_abbr = "gwfmvr" _package_type = "mvr" dfn_file_name = "gwf-mvr.dfn" - dfn = [ - [ - "block options", - "name print_input", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name print_flows", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name modelnames", - "type keyword", - "reader urword", - "optional true", - ], - [ - "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 dimensions", - "name maxmvr", - "type integer", - "reader urword", - "optional false", - ], - [ - "block dimensions", - "name maxpackages", - "type integer", - "reader urword", - "optional false", - ], - [ - "block packages", - "name packages", - "type recarray mname pname", - "reader urword", - "shape (npackages)", - "optional false", - ], - [ - "block packages", - "name mname", - "type string", - "reader urword", - "shape", - "tagged false", - "in_record true", - "optional true", - ], - [ - "block packages", - "name pname", - "type string", - "reader urword", - "shape", - "tagged false", - "in_record true", - "optional false", - ], - [ - "block period", - "name iper", - "type integer", - "block_variable True", - "in_record true", - "tagged false", - "shape", - "valid", - "reader urword", - "optional false", - ], - [ - "block period", - "name perioddata", + dfn = [["block options", "name print_input", "type keyword", + "reader urword", "optional true"], + ["block options", "name print_flows", "type keyword", + "reader urword", "optional true"], + ["block options", "name modelnames", "type keyword", + "reader urword", "optional true"], + ["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 dimensions", "name maxmvr", "type integer", + "reader urword", "optional false"], + ["block dimensions", "name maxpackages", "type integer", + "reader urword", "optional false"], + ["block packages", "name packages", "type recarray mname pname", + "reader urword", "shape (npackages)", "optional false"], + ["block packages", "name mname", "type string", "reader urword", + "shape", "tagged false", "in_record true", "optional true"], + ["block packages", "name pname", "type string", "reader urword", + "shape", "tagged false", "in_record true", "optional false"], + ["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 mname1 pname1 id1 mname2 pname2 id2 mvrtype value", - "shape (maxbound)", - "reader urword", - ], - [ - "block period", - "name mname1", - "type string", - "reader urword", - "shape", - "tagged false", - "in_record true", - "optional true", - ], - [ - "block period", - "name pname1", - "type string", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name id1", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block period", - "name mname2", - "type string", - "reader urword", - "shape", - "tagged false", - "in_record true", - "optional true", - ], - [ - "block period", - "name pname2", - "type string", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name id2", - "type integer", - "shape", - "tagged false", - "in_record true", - "reader urword", - "numeric_index true", - ], - [ - "block period", - "name mvrtype", - "type string", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name value", - "type double precision", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - ] + "shape (maxbound)", "reader urword"], + ["block period", "name mname1", "type string", "reader urword", + "shape", "tagged false", "in_record true", "optional true"], + ["block period", "name pname1", "type string", "shape", + "tagged false", "in_record true", "reader urword"], + ["block period", "name id1", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block period", "name mname2", "type string", "reader urword", + "shape", "tagged false", "in_record true", "optional true"], + ["block period", "name pname2", "type string", "shape", + "tagged false", "in_record true", "reader urword"], + ["block period", "name id2", "type integer", "shape", + "tagged false", "in_record true", "reader urword", + "numeric_index true"], + ["block period", "name mvrtype", "type string", "shape", + "tagged false", "in_record true", "reader urword"], + ["block period", "name value", "type double precision", "shape", + "tagged false", "in_record true", "reader urword"]] - def __init__( - self, - model, - loading_package=False, - print_input=None, - print_flows=None, - modelnames=None, - budget_filerecord=None, - maxmvr=None, - maxpackages=None, - packages=None, - perioddata=None, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwfmvr, self).__init__( - model, "mvr", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, print_input=None, + print_flows=None, modelnames=None, budget_filerecord=None, + maxmvr=None, maxpackages=None, packages=None, perioddata=None, + filename=None, pname=None, parent_file=None): + super(ModflowGwfmvr, self).__init__(model, "mvr", filename, pname, + loading_package, parent_file) # set up variables self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.modelnames = self.build_mfdata("modelnames", modelnames) - self.budget_filerecord = self.build_mfdata( - "budget_filerecord", budget_filerecord - ) + self.budget_filerecord = self.build_mfdata("budget_filerecord", + budget_filerecord) self.maxmvr = self.build_mfdata("maxmvr", maxmvr) self.maxpackages = self.build_mfdata("maxpackages", maxpackages) self.packages = self.build_mfdata("packages", packages) diff --git a/flopy/mf6/modflow/mfgwfnam.py b/flopy/mf6/modflow/mfgwfnam.py index 4bbf3b8e62..93fe13820f 100644 --- a/flopy/mf6/modflow/mfgwfnam.py +++ b/flopy/mf6/modflow/mfgwfnam.py @@ -64,119 +64,47 @@ class ModflowGwfnam(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - packages = ListTemplateGenerator(("gwf6", "nam", "packages", "packages")) + packages = ListTemplateGenerator(('gwf6', 'nam', 'packages', + 'packages')) package_abbr = "gwfnam" _package_type = "nam" dfn_file_name = "gwf-nam.dfn" - dfn = [ - [ - "block options", - "name list", - "type string", - "reader urword", - "optional true", - ], - [ - "block options", - "name print_input", - "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 newtonoptions", - "type record newton under_relaxation", - "reader urword", - "optional true", - ], - [ - "block options", - "name newton", - "in_record true", - "type keyword", - "reader urword", - ], - [ - "block options", - "name under_relaxation", - "in_record true", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block packages", - "name packages", - "type recarray ftype fname pname", - "reader urword", - "optional false", - ], - [ - "block packages", - "name ftype", - "in_record true", - "type string", - "tagged false", - "reader urword", - ], - [ - "block packages", - "name fname", - "in_record true", - "type string", - "preserve_case true", - "tagged false", - "reader urword", - ], - [ - "block packages", - "name pname", - "in_record true", - "type string", - "tagged false", - "reader urword", - "optional true", - ], - ] + dfn = [["block options", "name list", "type string", "reader urword", + "optional true"], + ["block options", "name print_input", "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 newtonoptions", + "type record newton under_relaxation", "reader urword", + "optional true"], + ["block options", "name newton", "in_record true", + "type keyword", "reader urword"], + ["block options", "name under_relaxation", "in_record true", + "type keyword", "reader urword", "optional true"], + ["block packages", "name packages", + "type recarray ftype fname pname", "reader urword", + "optional false"], + ["block packages", "name ftype", "in_record true", "type string", + "tagged false", "reader urword"], + ["block packages", "name fname", "in_record true", "type string", + "preserve_case true", "tagged false", "reader urword"], + ["block packages", "name pname", "in_record true", "type string", + "tagged false", "reader urword", "optional true"]] - def __init__( - self, - model, - loading_package=False, - list=None, - print_input=None, - print_flows=None, - save_flows=None, - newtonoptions=None, - packages=None, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwfnam, self).__init__( - model, "nam", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, list=None, + print_input=None, print_flows=None, save_flows=None, + newtonoptions=None, packages=None, filename=None, pname=None, + parent_file=None): + super(ModflowGwfnam, self).__init__(model, "nam", filename, pname, + loading_package, parent_file) # set up variables self.list = self.build_mfdata("list", list) diff --git a/flopy/mf6/modflow/mfgwfnpf.py b/flopy/mf6/modflow/mfgwfnpf.py index 9ef4b66f68..b024c8b15d 100644 --- a/flopy/mf6/modflow/mfgwfnpf.py +++ b/flopy/mf6/modflow/mfgwfnpf.py @@ -188,300 +188,119 @@ class ModflowGwfnpf(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - rewet_record = ListTemplateGenerator( - ("gwf6", "npf", "options", "rewet_record") - ) - icelltype = ArrayTemplateGenerator( - ("gwf6", "npf", "griddata", "icelltype") - ) - k = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k")) - k22 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k22")) - k33 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k33")) - angle1 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle1")) - angle2 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle2")) - angle3 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle3")) - wetdry = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "wetdry")) + rewet_record = ListTemplateGenerator(('gwf6', 'npf', 'options', + 'rewet_record')) + icelltype = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', + 'icelltype')) + k = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k')) + k22 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k22')) + k33 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k33')) + angle1 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', + 'angle1')) + angle2 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', + 'angle2')) + angle3 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', + 'angle3')) + wetdry = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', + 'wetdry')) package_abbr = "gwfnpf" _package_type = "npf" dfn_file_name = "gwf-npf.dfn" - dfn = [ - [ - "block options", - "name save_flows", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name alternative_cell_averaging", - "type string", - "valid logarithmic amt-lmk amt-hmk", - "reader urword", - "optional true", - ], - [ - "block options", - "name thickstrt", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name cvoptions", - "type record variablecv dewatered", - "reader urword", - "optional true", - ], - [ - "block options", - "name variablecv", - "in_record true", - "type keyword", - "reader urword", - ], - [ - "block options", - "name dewatered", - "in_record true", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name perched", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name rewet_record", - "type record rewet wetfct iwetit ihdwet", - "reader urword", - "optional true", - ], - [ - "block options", - "name rewet", - "type keyword", - "in_record true", - "reader urword", - "optional false", - ], - [ - "block options", - "name wetfct", - "type double precision", - "in_record true", - "reader urword", - "optional false", - ], - [ - "block options", - "name iwetit", - "type integer", - "in_record true", - "reader urword", - "optional false", - ], - [ - "block options", - "name ihdwet", - "type integer", - "in_record true", - "reader urword", - "optional false", - ], - [ - "block options", - "name xt3doptions", - "type record xt3d rhs", - "reader urword", - "optional true", - ], - [ - "block options", - "name xt3d", - "in_record true", - "type keyword", - "reader urword", - ], - [ - "block options", - "name rhs", - "in_record true", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name save_specific_discharge", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name save_saturation", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name k22overk", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block options", - "name k33overk", - "type keyword", - "reader urword", - "optional true", - ], - [ - "block griddata", - "name icelltype", - "type integer", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional", - "default_value 0", - ], - [ - "block griddata", - "name k", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional", - "default_value 1.0", - ], - [ - "block griddata", - "name k22", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - [ - "block griddata", - "name k33", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - [ - "block griddata", - "name angle1", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - [ - "block griddata", - "name angle2", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - [ - "block griddata", - "name angle3", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - [ - "block griddata", - "name wetdry", - "type double precision", - "shape (nodes)", - "valid", - "reader readarray", - "layered true", - "optional true", - ], - ] + dfn = [["block options", "name save_flows", "type keyword", + "reader urword", "optional true"], + ["block options", "name alternative_cell_averaging", + "type string", "valid logarithmic amt-lmk amt-hmk", + "reader urword", "optional true"], + ["block options", "name thickstrt", "type keyword", + "reader urword", "optional true"], + ["block options", "name cvoptions", + "type record variablecv dewatered", "reader urword", + "optional true"], + ["block options", "name variablecv", "in_record true", + "type keyword", "reader urword"], + ["block options", "name dewatered", "in_record true", + "type keyword", "reader urword", "optional true"], + ["block options", "name perched", "type keyword", + "reader urword", "optional true"], + ["block options", "name rewet_record", + "type record rewet wetfct iwetit ihdwet", "reader urword", + "optional true"], + ["block options", "name rewet", "type keyword", "in_record true", + "reader urword", "optional false"], + ["block options", "name wetfct", "type double precision", + "in_record true", "reader urword", "optional false"], + ["block options", "name iwetit", "type integer", + "in_record true", "reader urword", "optional false"], + ["block options", "name ihdwet", "type integer", + "in_record true", "reader urword", "optional false"], + ["block options", "name xt3doptions", "type record xt3d rhs", + "reader urword", "optional true"], + ["block options", "name xt3d", "in_record true", "type keyword", + "reader urword"], + ["block options", "name rhs", "in_record true", "type keyword", + "reader urword", "optional true"], + ["block options", "name save_specific_discharge", "type keyword", + "reader urword", "optional true"], + ["block options", "name save_saturation", "type keyword", + "reader urword", "optional true"], + ["block options", "name k22overk", "type keyword", + "reader urword", "optional true"], + ["block options", "name k33overk", "type keyword", + "reader urword", "optional true"], + ["block griddata", "name icelltype", "type integer", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional", "default_value 0"], + ["block griddata", "name k", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional", "default_value 1.0"], + ["block griddata", "name k22", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"], + ["block griddata", "name k33", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"], + ["block griddata", "name angle1", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"], + ["block griddata", "name angle2", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"], + ["block griddata", "name angle3", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"], + ["block griddata", "name wetdry", "type double precision", + "shape (nodes)", "valid", "reader readarray", "layered true", + "optional true"]] - def __init__( - self, - model, - loading_package=False, - save_flows=None, - alternative_cell_averaging=None, - thickstrt=None, - cvoptions=None, - perched=None, - rewet_record=None, - xt3doptions=None, - save_specific_discharge=None, - save_saturation=None, - k22overk=None, - k33overk=None, - icelltype=0, - k=1.0, - k22=None, - k33=None, - angle1=None, - angle2=None, - angle3=None, - wetdry=None, - filename=None, - pname=None, - parent_file=None, - ): - super(ModflowGwfnpf, self).__init__( - model, "npf", filename, pname, loading_package, parent_file - ) + def __init__(self, model, loading_package=False, save_flows=None, + alternative_cell_averaging=None, thickstrt=None, + cvoptions=None, perched=None, rewet_record=None, + xt3doptions=None, save_specific_discharge=None, + save_saturation=None, k22overk=None, k33overk=None, + icelltype=0, k=1.0, k22=None, k33=None, angle1=None, + angle2=None, angle3=None, wetdry=None, filename=None, + pname=None, parent_file=None): + super(ModflowGwfnpf, self).__init__(model, "npf", filename, pname, + loading_package, parent_file) # set up variables self.save_flows = self.build_mfdata("save_flows", save_flows) self.alternative_cell_averaging = self.build_mfdata( - "alternative_cell_averaging", alternative_cell_averaging - ) + "alternative_cell_averaging", alternative_cell_averaging) self.thickstrt = self.build_mfdata("thickstrt", thickstrt) self.cvoptions = self.build_mfdata("cvoptions", cvoptions) self.perched = self.build_mfdata("perched", perched) self.rewet_record = self.build_mfdata("rewet_record", rewet_record) self.xt3doptions = self.build_mfdata("xt3doptions", xt3doptions) self.save_specific_discharge = self.build_mfdata( - "save_specific_discharge", save_specific_discharge - ) - self.save_saturation = self.build_mfdata( - "save_saturation", save_saturation - ) + "save_specific_discharge", save_specific_discharge) + self.save_saturation = self.build_mfdata("save_saturation", + save_saturation) self.k22overk = self.build_mfdata("k22overk", k22overk) self.k33overk = self.build_mfdata("k33overk", k33overk) self.icelltype = self.build_mfdata("icelltype", icelltype) diff --git a/flopy/mf6/modflow/mfgwfoc.py b/flopy/mf6/modflow/mfgwfoc.py index bd4b7096d7..a6d03681f1 100644 --- a/flopy/mf6/modflow/mfgwfoc.py +++ b/flopy/mf6/modflow/mfgwfoc.py @@ -81,307 +81,109 @@ class ModflowGwfoc(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - - budget_filerecord = ListTemplateGenerator( - ("gwf6", "oc", "options", "budget_filerecord") - ) - head_filerecord = ListTemplateGenerator( - ("gwf6", "oc", "options", "head_filerecord") - ) - headprintrecord = ListTemplateGenerator( - ("gwf6", "oc", "options", "headprintrecord") - ) - saverecord = ListTemplateGenerator(("gwf6", "oc", "period", "saverecord")) - printrecord = ListTemplateGenerator( - ("gwf6", "oc", "period", "printrecord") - ) + budget_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options', + 'budget_filerecord')) + head_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options', + 'head_filerecord')) + headprintrecord = ListTemplateGenerator(('gwf6', 'oc', 'options', + 'headprintrecord')) + saverecord = ListTemplateGenerator(('gwf6', 'oc', 'period', + 'saverecord')) + printrecord = ListTemplateGenerator(('gwf6', 'oc', 'period', + 'printrecord')) package_abbr = "gwfoc" _package_type = "oc" dfn_file_name = "gwf-oc.dfn" - dfn = [ - [ - "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 head_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 headprintrecord", - "type record head print_format formatrecord", - "shape", - "reader urword", - "optional true", - ], - [ - "block options", - "name print_format", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block options", - "name formatrecord", - "type record columns width digits format", - "shape", - "in_record true", - "reader urword", - "tagged", - "optional false", - ], - [ - "block options", - "name columns", - "type integer", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional", - ], - [ - "block options", - "name width", - "type integer", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional", - ], - [ - "block options", - "name digits", - "type integer", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional", - ], - [ - "block options", - "name format", - "type string", - "shape", - "in_record true", - "reader urword", - "tagged false", - "optional false", - ], - [ - "block period", - "name iper", - "type integer", - "block_variable True", - "in_record true", - "tagged false", - "shape", - "valid", - "reader urword", - "optional false", - ], - [ - "block period", - "name saverecord", - "type record save rtype ocsetting", - "shape", - "reader urword", - "tagged false", - "optional true", - ], - [ - "block period", - "name save", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block period", - "name printrecord", - "type record print rtype ocsetting", - "shape", - "reader urword", - "tagged false", - "optional true", - ], - [ - "block period", - "name print", - "type keyword", - "shape", - "in_record true", - "reader urword", - "tagged true", - "optional false", - ], - [ - "block period", - "name rtype", - "type string", - "shape", - "in_record true", - "reader urword", - "tagged false", - "optional false", - ], - [ - "block period", - "name ocsetting", - "type keystring all first last frequency steps", - "shape", - "tagged false", - "in_record true", - "reader urword", - ], - [ - "block period", - "name all", - "type keyword", - "shape", - "in_record true", - "reader urword", - ], - [ - "block period", - "name first", - "type keyword", - "shape", - "in_record true", - "reader urword", - ], - [ - "block period", - "name last", - "type keyword", - "shape", - "in_record true", - "reader urword", - ], - [ - "block period", - "name frequency", - "type integer", - "shape", - "tagged true", - "in_record true", - "reader urword", - ], - [ - "block period", - "name steps", - "type integer", - "shape ( Date: Tue, 20 Oct 2020 13:31:42 -0400 Subject: [PATCH 2/2] feat(mf6): Add MODFLOW 6 GWT dfn and classes black reformatting --- flopy/mf6/modflow/mfgnc.py | 134 +++- flopy/mf6/modflow/mfgwf.py | 71 +- flopy/mf6/modflow/mfgwfbuy.py | 207 ++++-- flopy/mf6/modflow/mfgwfchd.py | 314 ++++++--- flopy/mf6/modflow/mfgwfcsub.py | 1080 +++++++++++++++++++++-------- flopy/mf6/modflow/mfgwfdis.py | 175 +++-- flopy/mf6/modflow/mfgwfdisu.py | 369 +++++++--- flopy/mf6/modflow/mfgwfdisv.py | 269 ++++++-- flopy/mf6/modflow/mfgwfdrn.py | 348 +++++++--- flopy/mf6/modflow/mfgwfevt.py | 415 +++++++++--- flopy/mf6/modflow/mfgwfevta.py | 314 ++++++--- flopy/mf6/modflow/mfgwfghb.py | 337 ++++++--- flopy/mf6/modflow/mfgwfgnc.py | 135 +++- flopy/mf6/modflow/mfgwfgwf.py | 407 ++++++++--- flopy/mf6/modflow/mfgwfgwt.py | 21 +- flopy/mf6/modflow/mfgwfhfb.py | 112 ++- flopy/mf6/modflow/mfgwfic.py | 35 +- flopy/mf6/modflow/mfgwflak.py | 1087 ++++++++++++++++++++++-------- flopy/mf6/modflow/mfgwfmaw.py | 924 ++++++++++++++++++------- flopy/mf6/modflow/mfgwfmvr.py | 294 ++++++-- flopy/mf6/modflow/mfgwfnam.py | 138 +++- flopy/mf6/modflow/mfgwfnpf.py | 371 +++++++--- flopy/mf6/modflow/mfgwfoc.py | 384 ++++++++--- flopy/mf6/modflow/mfgwfrch.py | 326 ++++++--- flopy/mf6/modflow/mfgwfrcha.py | 287 +++++--- flopy/mf6/modflow/mfgwfriv.py | 350 +++++++--- flopy/mf6/modflow/mfgwfsfr.py | 998 ++++++++++++++++++++------- flopy/mf6/modflow/mfgwfsto.py | 138 +++- flopy/mf6/modflow/mfgwfuzf.py | 729 +++++++++++++++----- flopy/mf6/modflow/mfgwfwel.py | 341 +++++++--- flopy/mf6/modflow/mfgwt.py | 70 +- flopy/mf6/modflow/mfgwtadv.py | 32 +- flopy/mf6/modflow/mfgwtcnc.py | 314 ++++++--- flopy/mf6/modflow/mfgwtdis.py | 175 +++-- flopy/mf6/modflow/mfgwtdisu.py | 347 +++++++--- flopy/mf6/modflow/mfgwtdisv.py | 269 ++++++-- flopy/mf6/modflow/mfgwtdsp.py | 134 +++- flopy/mf6/modflow/mfgwtfmi.py | 85 ++- flopy/mf6/modflow/mfgwtic.py | 35 +- flopy/mf6/modflow/mfgwtist.py | 340 +++++++--- flopy/mf6/modflow/mfgwtlkt.py | 611 ++++++++++++----- flopy/mf6/modflow/mfgwtmst.py | 154 +++-- flopy/mf6/modflow/mfgwtmvt.py | 114 +++- flopy/mf6/modflow/mfgwtmwt.py | 567 ++++++++++++---- flopy/mf6/modflow/mfgwtnam.py | 107 ++- flopy/mf6/modflow/mfgwtoc.py | 380 ++++++++--- flopy/mf6/modflow/mfgwtsft.py | 611 ++++++++++++----- flopy/mf6/modflow/mfgwtsrc.py | 312 ++++++--- flopy/mf6/modflow/mfgwtssm.py | 87 ++- flopy/mf6/modflow/mfgwtuzt.py | 580 ++++++++++++---- flopy/mf6/modflow/mfims.py | 596 +++++++++++----- flopy/mf6/modflow/mfmvr.py | 292 ++++++-- flopy/mf6/modflow/mfnam.py | 246 +++++-- flopy/mf6/modflow/mftdis.py | 108 ++- flopy/mf6/modflow/mfutllaktab.py | 99 ++- flopy/mf6/modflow/mfutlobs.py | 181 +++-- flopy/mf6/modflow/mfutltas.py | 240 +++++-- flopy/mf6/modflow/mfutlts.py | 344 +++++++--- 58 files changed, 13849 insertions(+), 4691 deletions(-) diff --git a/flopy/mf6/modflow/mfgnc.py b/flopy/mf6/modflow/mfgnc.py index b03c87d996..9c2f147d2e 100644 --- a/flopy/mf6/modflow/mfgnc.py +++ b/flopy/mf6/modflow/mfgnc.py @@ -92,46 +92,118 @@ class ModflowGnc(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - gncdata = ListTemplateGenerator(('gnc', 'gncdata', 'gncdata')) + + gncdata = ListTemplateGenerator(("gnc", "gncdata", "gncdata")) package_abbr = "gnc" _package_type = "gnc" dfn_file_name = "gwf-gnc.dfn" - dfn = [["block options", "name print_input", "type keyword", - "reader urword", "optional true"], - ["block options", "name print_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name explicit", "type keyword", "tagged true", - "reader urword", "optional true"], - ["block dimensions", "name numgnc", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name numalphaj", "type integer", - "reader urword", "optional false"], - ["block gncdata", "name gncdata", + dfn = [ + [ + "block options", + "name print_input", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name explicit", + "type keyword", + "tagged true", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name numgnc", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name numalphaj", + "type integer", + "reader urword", + "optional false", + ], + [ + "block gncdata", + "name gncdata", "type recarray cellidn cellidm cellidsj alphasj", - "shape (maxbound)", "reader urword"], - ["block gncdata", "name cellidn", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block gncdata", "name cellidm", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block gncdata", "name cellidsj", "type integer", - "shape (numalphaj)", "tagged false", "in_record true", - "reader urword", "numeric_index true"], - ["block gncdata", "name alphasj", "type double precision", - "shape (numalphaj)", "tagged false", "in_record true", - "reader urword"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block gncdata", + "name cellidn", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name cellidm", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name cellidsj", + "type integer", + "shape (numalphaj)", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name alphasj", + "type double precision", + "shape (numalphaj)", + "tagged false", + "in_record true", + "reader urword", + ], + ] - def __init__(self, simulation, loading_package=False, print_input=None, - print_flows=None, explicit=None, numgnc=None, numalphaj=None, - gncdata=None, filename=None, pname=None, parent_file=None): - super(ModflowGnc, self).__init__(simulation, "gnc", filename, pname, - loading_package, parent_file) + def __init__( + self, + simulation, + loading_package=False, + print_input=None, + print_flows=None, + explicit=None, + numgnc=None, + numalphaj=None, + gncdata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGnc, self).__init__( + simulation, "gnc", filename, pname, loading_package, parent_file + ) # set up variables self.print_input = self.build_mfdata("print_input", print_input) diff --git a/flopy/mf6/modflow/mfgwf.py b/flopy/mf6/modflow/mfgwf.py index 07766a3895..497502258c 100644 --- a/flopy/mf6/modflow/mfgwf.py +++ b/flopy/mf6/modflow/mfgwf.py @@ -73,18 +73,35 @@ class ModflowGwf(mfmodel.MFModel): model_ws : string, strict : boolean) : MFSimulation a class method that loads a model from files """ - model_type = 'gwf' - def __init__(self, simulation, modelname='model', model_nam_file=None, - version='mf6', exe_name='mf6.exe', model_rel_path='.', - list=None, print_input=None, print_flows=None, - save_flows=None, newtonoptions=None, packages=None, **kwargs): - super(ModflowGwf, self).__init__(simulation, model_type='gwf6', - modelname=modelname, - model_nam_file=model_nam_file, - version=version, exe_name=exe_name, - model_rel_path=model_rel_path, - **kwargs) + model_type = "gwf" + + def __init__( + self, + simulation, + modelname="model", + model_nam_file=None, + version="mf6", + exe_name="mf6.exe", + model_rel_path=".", + list=None, + print_input=None, + print_flows=None, + save_flows=None, + newtonoptions=None, + packages=None, + **kwargs + ): + super(ModflowGwf, self).__init__( + simulation, + model_type="gwf6", + modelname=modelname, + model_nam_file=model_nam_file, + version=version, + exe_name=exe_name, + model_rel_path=model_rel_path, + **kwargs + ) self.name_file.list.set_data(list) self.name_file.print_input.set_data(print_input) @@ -94,11 +111,27 @@ def __init__(self, simulation, modelname='model', model_nam_file=None, self.name_file.packages.set_data(packages) @classmethod - def load(cls, simulation, structure, modelname='NewModel', - model_nam_file='modflowtest.nam', version='mf6', - exe_name='mf6.exe', strict=True, model_rel_path='.', - load_only=None): - return mfmodel.MFModel.load_base(simulation, structure, modelname, - model_nam_file, 'gwf', version, - exe_name, strict, model_rel_path, - load_only) + def load( + cls, + simulation, + structure, + modelname="NewModel", + model_nam_file="modflowtest.nam", + version="mf6", + exe_name="mf6.exe", + strict=True, + model_rel_path=".", + load_only=None, + ): + return mfmodel.MFModel.load_base( + simulation, + structure, + modelname, + model_nam_file, + "gwf", + version, + exe_name, + strict, + model_rel_path, + load_only, + ) diff --git a/flopy/mf6/modflow/mfgwfbuy.py b/flopy/mf6/modflow/mfgwfbuy.py index 696349aba7..d106190c09 100644 --- a/flopy/mf6/modflow/mfgwfbuy.py +++ b/flopy/mf6/modflow/mfgwfbuy.py @@ -79,68 +79,175 @@ class ModflowGwfbuy(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - density_filerecord = ListTemplateGenerator(('gwf6', 'buy', 'options', - 'density_filerecord')) - packagedata = ListTemplateGenerator(('gwf6', 'buy', 'packagedata', - 'packagedata')) + + density_filerecord = ListTemplateGenerator( + ("gwf6", "buy", "options", "density_filerecord") + ) + packagedata = ListTemplateGenerator( + ("gwf6", "buy", "packagedata", "packagedata") + ) package_abbr = "gwfbuy" _package_type = "buy" dfn_file_name = "gwf-buy.dfn" - dfn = [["block options", "name hhformulation_rhs", "type keyword", - "reader urword", "optional true"], - ["block options", "name denseref", "type double", - "reader urword", "optional true", "default_value 1000."], - ["block options", "name density_filerecord", - "type record density fileout densityfile", "shape", - "reader urword", "tagged true", "optional true"], - ["block options", "name density", "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 densityfile", "type string", - "preserve_case true", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["block options", "name dev_efh_formulation", "type keyword", - "reader urword", "optional true"], - ["block dimensions", "name nrhospecies", "type integer", - "reader urword", "optional false"], - ["block packagedata", "name packagedata", + dfn = [ + [ + "block options", + "name hhformulation_rhs", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name denseref", + "type double", + "reader urword", + "optional true", + "default_value 1000.", + ], + [ + "block options", + "name density_filerecord", + "type record density fileout densityfile", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name density", + "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 densityfile", + "type string", + "preserve_case true", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name dev_efh_formulation", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name nrhospecies", + "type integer", + "reader urword", + "optional false", + ], + [ + "block packagedata", + "name packagedata", "type recarray irhospec drhodc crhoref modelname auxspeciesname", - "shape (nrhospecies)", "reader urword"], - ["block packagedata", "name irhospec", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block packagedata", "name drhodc", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name crhoref", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name modelname", "type string", - "in_record true", "tagged false", "shape", "reader urword"], - ["block packagedata", "name auxspeciesname", "type string", - "in_record true", "tagged false", "shape", "reader urword"]] + "shape (nrhospecies)", + "reader urword", + ], + [ + "block packagedata", + "name irhospec", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block packagedata", + "name drhodc", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name crhoref", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name modelname", + "type string", + "in_record true", + "tagged false", + "shape", + "reader urword", + ], + [ + "block packagedata", + "name auxspeciesname", + "type string", + "in_record true", + "tagged false", + "shape", + "reader urword", + ], + ] - def __init__(self, model, loading_package=False, hhformulation_rhs=None, - denseref=1000., density_filerecord=None, - dev_efh_formulation=None, nrhospecies=None, packagedata=None, - filename=None, pname=None, parent_file=None): - super(ModflowGwfbuy, self).__init__(model, "buy", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + hhformulation_rhs=None, + denseref=1000.0, + density_filerecord=None, + dev_efh_formulation=None, + nrhospecies=None, + packagedata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfbuy, self).__init__( + model, "buy", filename, pname, loading_package, parent_file + ) # set up variables - self.hhformulation_rhs = self.build_mfdata("hhformulation_rhs", - hhformulation_rhs) + self.hhformulation_rhs = self.build_mfdata( + "hhformulation_rhs", hhformulation_rhs + ) self.denseref = self.build_mfdata("denseref", denseref) - self.density_filerecord = self.build_mfdata("density_filerecord", - density_filerecord) - self.dev_efh_formulation = self.build_mfdata("dev_efh_formulation", - dev_efh_formulation) + self.density_filerecord = self.build_mfdata( + "density_filerecord", density_filerecord + ) + self.dev_efh_formulation = self.build_mfdata( + "dev_efh_formulation", dev_efh_formulation + ) self.nrhospecies = self.build_mfdata("nrhospecies", nrhospecies) self.packagedata = self.build_mfdata("packagedata", packagedata) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfchd.py b/flopy/mf6/modflow/mfgwfchd.py index ff86c47b48..9e1651e182 100644 --- a/flopy/mf6/modflow/mfgwfchd.py +++ b/flopy/mf6/modflow/mfgwfchd.py @@ -96,85 +96,234 @@ class ModflowGwfchd(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'chd', 'options', - 'auxiliary')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'chd', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'chd', 'options', - 'obs_filerecord')) - stress_period_data = ListTemplateGenerator(('gwf6', 'chd', 'period', - 'stress_period_data')) + + auxiliary = ListTemplateGenerator(("gwf6", "chd", "options", "auxiliary")) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "chd", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "chd", "options", "obs_filerecord") + ) + stress_period_data = ListTemplateGenerator( + ("gwf6", "chd", "period", "stress_period_data") + ) package_abbr = "gwfchd" _package_type = "chd" dfn_file_name = "gwf-chd.dfn" - dfn = [["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name auxmultname", "type string", "shape", - "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_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_flows", "type keyword", - "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 dimensions", "name maxbound", "type integer", - "reader urword", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", - "type recarray cellid head aux boundname", "shape (maxbound)", - "reader urword"], - ["block period", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name head", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name aux", "type double precision", - "in_record true", "tagged false", "shape (naux)", "reader urword", - "optional true", "time_series true"], - ["block period", "name boundname", "type string", "shape", - "tagged false", "in_record true", "reader urword", - "optional true"]] + dfn = [ + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxmultname", + "type string", + "shape", + "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_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_flows", + "type keyword", + "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 dimensions", + "name maxbound", + "type integer", + "reader urword", + "optional false", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", + "type recarray cellid head aux boundname", + "shape (maxbound)", + "reader urword", + ], + [ + "block period", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name head", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name aux", + "type double precision", + "in_record true", + "tagged false", + "shape (naux)", + "reader urword", + "optional true", + "time_series true", + ], + [ + "block period", + "name boundname", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, auxiliary=None, - auxmultname=None, boundnames=None, print_input=None, - print_flows=None, save_flows=None, timeseries=None, - observations=None, maxbound=None, stress_period_data=None, - filename=None, pname=None, parent_file=None): - super(ModflowGwfchd, self).__init__(model, "chd", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + auxiliary=None, + auxmultname=None, + boundnames=None, + print_input=None, + print_flows=None, + save_flows=None, + timeseries=None, + observations=None, + maxbound=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfchd, self).__init__( + model, "chd", filename, pname, loading_package, parent_file + ) # set up variables self.auxiliary = self.build_mfdata("auxiliary", auxiliary) @@ -183,17 +332,16 @@ def __init__(self, model, loading_package=False, auxiliary=None, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - 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._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.maxbound = self.build_mfdata("maxbound", maxbound) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfcsub.py b/flopy/mf6/modflow/mfgwfcsub.py index 6d7953b781..83e3484bb3 100644 --- a/flopy/mf6/modflow/mfgwfcsub.py +++ b/flopy/mf6/modflow/mfgwfcsub.py @@ -266,272 +266,780 @@ class ModflowGwfcsub(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - strainib_filerecord = ListTemplateGenerator(('gwf6', 'csub', - 'options', - 'strainib_filerecord')) - straincg_filerecord = ListTemplateGenerator(('gwf6', 'csub', - 'options', - 'straincg_filerecord')) - compaction_filerecord = ListTemplateGenerator(('gwf6', 'csub', - 'options', - 'compaction_filerecord')) - compaction_elastic_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'compaction_elastic_filerecord')) - compaction_inelastic_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'compaction_inelastic_filerecord')) - compaction_interbed_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'compaction_interbed_filerecord')) - compaction_coarse_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'compaction_coarse_filerecord')) - zdisplacement_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'zdisplacement_filerecord')) - package_convergence_filerecord = ListTemplateGenerator(( - 'gwf6', 'csub', 'options', 'package_convergence_filerecord')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'csub', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'csub', 'options', - 'obs_filerecord')) - cg_ske_cr = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', - 'cg_ske_cr')) - cg_theta = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', - 'cg_theta')) - sgm = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', 'sgm')) - sgs = ArrayTemplateGenerator(('gwf6', 'csub', 'griddata', 'sgs')) - packagedata = ListTemplateGenerator(('gwf6', 'csub', 'packagedata', - 'packagedata')) - stress_period_data = ListTemplateGenerator(('gwf6', 'csub', 'period', - 'stress_period_data')) + + strainib_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "strainib_filerecord") + ) + straincg_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "straincg_filerecord") + ) + compaction_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "compaction_filerecord") + ) + compaction_elastic_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "compaction_elastic_filerecord") + ) + compaction_inelastic_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "compaction_inelastic_filerecord") + ) + compaction_interbed_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "compaction_interbed_filerecord") + ) + compaction_coarse_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "compaction_coarse_filerecord") + ) + zdisplacement_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "zdisplacement_filerecord") + ) + package_convergence_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "package_convergence_filerecord") + ) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "csub", "options", "obs_filerecord") + ) + cg_ske_cr = ArrayTemplateGenerator( + ("gwf6", "csub", "griddata", "cg_ske_cr") + ) + cg_theta = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "cg_theta")) + sgm = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "sgm")) + sgs = ArrayTemplateGenerator(("gwf6", "csub", "griddata", "sgs")) + packagedata = ListTemplateGenerator( + ("gwf6", "csub", "packagedata", "packagedata") + ) + stress_period_data = ListTemplateGenerator( + ("gwf6", "csub", "period", "stress_period_data") + ) package_abbr = "gwfcsub" _package_type = "csub" dfn_file_name = "gwf-csub.dfn" - dfn = [["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 save_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name gammaw", "type double precision", - "reader urword", "optional true", "default_value 9806.65"], - ["block options", "name beta", "type double precision", - "reader urword", "optional true", "default_value 4.6512e-10"], - ["block options", "name head_based", "type keyword", - "reader urword", "optional true"], - ["block options", "name initial_preconsolidation_head", - "type keyword", "reader urword", "optional true"], - ["block options", "name ndelaycells", "type integer", - "reader urword", "optional true"], - ["block options", "name compression_indices", "type keyword", - "reader urword", "optional true"], - ["block options", "name update_material_properties", - "type keyword", "reader urword", "optional true"], - ["block options", "name cell_fraction", "type keyword", - "reader urword", "optional true"], - ["block options", "name specified_initial_interbed_state", - "type keyword", "reader urword", "optional true"], - ["block options", - "name specified_initial_preconsolidation_stress", "type keyword", - "reader urword", "optional true"], - ["block options", "name specified_initial_delay_head", - "type keyword", "reader urword", "optional true"], - ["block options", "name effective_stress_lag", "type keyword", - "reader urword", "optional true"], - ["block options", "name strainib_filerecord", + dfn = [ + [ + "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 save_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name gammaw", + "type double precision", + "reader urword", + "optional true", + "default_value 9806.65", + ], + [ + "block options", + "name beta", + "type double precision", + "reader urword", + "optional true", + "default_value 4.6512e-10", + ], + [ + "block options", + "name head_based", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name initial_preconsolidation_head", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name ndelaycells", + "type integer", + "reader urword", + "optional true", + ], + [ + "block options", + "name compression_indices", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name update_material_properties", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name cell_fraction", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name specified_initial_interbed_state", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name specified_initial_preconsolidation_stress", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name specified_initial_delay_head", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name effective_stress_lag", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name strainib_filerecord", "type record strain_csv_interbed fileout interbedstrain_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name strain_csv_interbed", "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 interbedstrain_filename", "type string", - "shape", "in_record true", "reader urword", "tagged false", - "optional false"], - ["block options", "name straincg_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name strain_csv_interbed", + "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 interbedstrain_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name straincg_filerecord", "type record strain_csv_coarse fileout coarsestrain_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name strain_csv_coarse", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name coarsestrain_filename", "type string", - "shape", "in_record true", "reader urword", "tagged false", - "optional false"], - ["block options", "name compaction_filerecord", - "type record compaction fileout compaction_filename", "shape", - "reader urword", "tagged true", "optional true"], - ["block options", "name compaction", "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 compaction_filename", "type string", - "shape", "in_record true", "reader urword", "tagged false", - "optional false"], - ["block options", "name compaction_elastic_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name strain_csv_coarse", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name coarsestrain_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name compaction_filerecord", + "type record compaction fileout compaction_filename", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name compaction", + "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 compaction_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name compaction_elastic_filerecord", "type record compaction_elastic fileout elastic_compaction_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name compaction_elastic", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name elastic_compaction_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["block options", "name compaction_inelastic_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name compaction_elastic", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name elastic_compaction_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name compaction_inelastic_filerecord", "type record compaction_inelastic fileout " "inelastic_compaction_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name compaction_inelastic", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name inelastic_compaction_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["block options", "name compaction_interbed_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name compaction_inelastic", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name inelastic_compaction_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name compaction_interbed_filerecord", "type record compaction_interbed fileout " "interbed_compaction_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name compaction_interbed", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name interbed_compaction_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["block options", "name compaction_coarse_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name compaction_interbed", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name interbed_compaction_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name compaction_coarse_filerecord", "type record compaction_coarse fileout coarse_compaction_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name compaction_coarse", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name coarse_compaction_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["block options", "name zdisplacement_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name compaction_coarse", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name coarse_compaction_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name zdisplacement_filerecord", "type record zdisplacement fileout zdisplacement_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name zdisplacement", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name zdisplacement_filename", "type string", - "shape", "in_record true", "reader urword", "tagged false", - "optional false"], - ["block options", "name package_convergence_filerecord", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name zdisplacement", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name zdisplacement_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "block options", + "name package_convergence_filerecord", "type record package_convergence fileout " "package_convergence_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name package_convergence", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name package_convergence_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["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", - "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", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block dimensions", "name ninterbeds", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name maxsig0", "type integer", - "reader urword", "optional true"], - ["block griddata", "name cg_ske_cr", "type double precision", - "shape (nodes)", "valid", "reader readarray", - "default_value 1e-5"], - ["block griddata", "name cg_theta", "type double precision", - "shape (nodes)", "valid", "reader readarray", "default_value 0.2"], - ["block griddata", "name sgm", "type double precision", - "shape (nodes)", "valid", "reader readarray", "optional true"], - ["block griddata", "name sgs", "type double precision", - "shape (nodes)", "valid", "reader readarray", "optional true"], - ["block packagedata", "name packagedata", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name package_convergence", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name package_convergence_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "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", + "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", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name ninterbeds", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name maxsig0", + "type integer", + "reader urword", + "optional true", + ], + [ + "block griddata", + "name cg_ske_cr", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "default_value 1e-5", + ], + [ + "block griddata", + "name cg_theta", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "default_value 0.2", + ], + [ + "block griddata", + "name sgm", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "optional true", + ], + [ + "block griddata", + "name sgs", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "optional true", + ], + [ + "block packagedata", + "name packagedata", "type recarray icsubno cellid cdelay pcs0 thick_frac rnb ssv_cc " "sse_cr theta kv h0 boundname", - "shape (ninterbeds)", "reader urword"], - ["block packagedata", "name icsubno", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block packagedata", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block packagedata", "name cdelay", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name pcs0", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name thick_frac", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name rnb", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name ssv_cc", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name sse_cr", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name theta", "type double precision", - "shape", "tagged false", "in_record true", "reader urword", - "default_value 0.2"], - ["block packagedata", "name kv", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name h0", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name boundname", "type string", "shape", - "tagged false", "in_record true", "reader urword", - "optional true"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", - "type recarray cellid sig0", "shape (maxsig0)", "reader urword"], - ["block period", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name sig0", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"]] + "shape (ninterbeds)", + "reader urword", + ], + [ + "block packagedata", + "name icsubno", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block packagedata", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name cdelay", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name pcs0", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name thick_frac", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name rnb", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name ssv_cc", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name sse_cr", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name theta", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "default_value 0.2", + ], + [ + "block packagedata", + "name kv", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name h0", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name boundname", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", + "type recarray cellid sig0", + "shape (maxsig0)", + "reader urword", + ], + [ + "block period", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name sig0", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + ] - def __init__(self, model, loading_package=False, boundnames=None, - print_input=None, save_flows=None, gammaw=9806.65, - beta=4.6512e-10, head_based=None, - initial_preconsolidation_head=None, ndelaycells=None, - compression_indices=None, update_material_properties=None, - cell_fraction=None, specified_initial_interbed_state=None, - specified_initial_preconsolidation_stress=None, - specified_initial_delay_head=None, effective_stress_lag=None, - strainib_filerecord=None, straincg_filerecord=None, - compaction_filerecord=None, fileout=None, - compaction_elastic_filerecord=None, - compaction_inelastic_filerecord=None, - compaction_interbed_filerecord=None, - compaction_coarse_filerecord=None, - zdisplacement_filerecord=None, - package_convergence_filerecord=None, timeseries=None, - observations=None, ninterbeds=None, maxsig0=None, - cg_ske_cr=1e-5, cg_theta=0.2, sgm=None, sgs=None, - packagedata=None, stress_period_data=None, filename=None, - pname=None, parent_file=None): - super(ModflowGwfcsub, self).__init__(model, "csub", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + boundnames=None, + print_input=None, + save_flows=None, + gammaw=9806.65, + beta=4.6512e-10, + head_based=None, + initial_preconsolidation_head=None, + ndelaycells=None, + compression_indices=None, + update_material_properties=None, + cell_fraction=None, + specified_initial_interbed_state=None, + specified_initial_preconsolidation_stress=None, + specified_initial_delay_head=None, + effective_stress_lag=None, + strainib_filerecord=None, + straincg_filerecord=None, + compaction_filerecord=None, + fileout=None, + compaction_elastic_filerecord=None, + compaction_inelastic_filerecord=None, + compaction_interbed_filerecord=None, + compaction_coarse_filerecord=None, + zdisplacement_filerecord=None, + package_convergence_filerecord=None, + timeseries=None, + observations=None, + ninterbeds=None, + maxsig0=None, + cg_ske_cr=1e-5, + cg_theta=0.2, + sgm=None, + sgs=None, + packagedata=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfcsub, self).__init__( + model, "csub", filename, pname, loading_package, parent_file + ) # set up variables self.boundnames = self.build_mfdata("boundnames", boundnames) @@ -541,53 +1049,66 @@ def __init__(self, model, loading_package=False, boundnames=None, self.beta = self.build_mfdata("beta", beta) self.head_based = self.build_mfdata("head_based", head_based) self.initial_preconsolidation_head = self.build_mfdata( - "initial_preconsolidation_head", initial_preconsolidation_head) + "initial_preconsolidation_head", initial_preconsolidation_head + ) self.ndelaycells = self.build_mfdata("ndelaycells", ndelaycells) - self.compression_indices = self.build_mfdata("compression_indices", - compression_indices) + self.compression_indices = self.build_mfdata( + "compression_indices", compression_indices + ) self.update_material_properties = self.build_mfdata( - "update_material_properties", update_material_properties) + "update_material_properties", update_material_properties + ) self.cell_fraction = self.build_mfdata("cell_fraction", cell_fraction) self.specified_initial_interbed_state = self.build_mfdata( "specified_initial_interbed_state", - specified_initial_interbed_state) + specified_initial_interbed_state, + ) self.specified_initial_preconsolidation_stress = self.build_mfdata( "specified_initial_preconsolidation_stress", - specified_initial_preconsolidation_stress) + specified_initial_preconsolidation_stress, + ) self.specified_initial_delay_head = self.build_mfdata( - "specified_initial_delay_head", specified_initial_delay_head) - self.effective_stress_lag = self.build_mfdata("effective_stress_lag", - effective_stress_lag) - self.strainib_filerecord = self.build_mfdata("strainib_filerecord", - strainib_filerecord) - self.straincg_filerecord = self.build_mfdata("straincg_filerecord", - straincg_filerecord) - self.compaction_filerecord = self.build_mfdata("compaction_filerecord", - compaction_filerecord) + "specified_initial_delay_head", specified_initial_delay_head + ) + self.effective_stress_lag = self.build_mfdata( + "effective_stress_lag", effective_stress_lag + ) + self.strainib_filerecord = self.build_mfdata( + "strainib_filerecord", strainib_filerecord + ) + self.straincg_filerecord = self.build_mfdata( + "straincg_filerecord", straincg_filerecord + ) + self.compaction_filerecord = self.build_mfdata( + "compaction_filerecord", compaction_filerecord + ) self.fileout = self.build_mfdata("fileout", fileout) self.compaction_elastic_filerecord = self.build_mfdata( - "compaction_elastic_filerecord", compaction_elastic_filerecord) + "compaction_elastic_filerecord", compaction_elastic_filerecord + ) self.compaction_inelastic_filerecord = self.build_mfdata( - "compaction_inelastic_filerecord", - compaction_inelastic_filerecord) + "compaction_inelastic_filerecord", compaction_inelastic_filerecord + ) self.compaction_interbed_filerecord = self.build_mfdata( - "compaction_interbed_filerecord", compaction_interbed_filerecord) + "compaction_interbed_filerecord", compaction_interbed_filerecord + ) self.compaction_coarse_filerecord = self.build_mfdata( - "compaction_coarse_filerecord", compaction_coarse_filerecord) + "compaction_coarse_filerecord", compaction_coarse_filerecord + ) self.zdisplacement_filerecord = self.build_mfdata( - "zdisplacement_filerecord", zdisplacement_filerecord) + "zdisplacement_filerecord", zdisplacement_filerecord + ) self.package_convergence_filerecord = self.build_mfdata( - "package_convergence_filerecord", package_convergence_filerecord) - 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) + "package_convergence_filerecord", package_convergence_filerecord + ) + 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.ninterbeds = self.build_mfdata("ninterbeds", ninterbeds) self.maxsig0 = self.build_mfdata("maxsig0", maxsig0) self.cg_ske_cr = self.build_mfdata("cg_ske_cr", cg_ske_cr) @@ -595,6 +1116,7 @@ def __init__(self, model, loading_package=False, boundnames=None, self.sgm = self.build_mfdata("sgm", sgm) self.sgs = self.build_mfdata("sgs", sgs) self.packagedata = self.build_mfdata("packagedata", packagedata) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfdis.py b/flopy/mf6/modflow/mfgwfdis.py index a4398abfb8..537a4d8514 100644 --- a/flopy/mf6/modflow/mfgwfdis.py +++ b/flopy/mf6/modflow/mfgwfdis.py @@ -74,55 +74,148 @@ class ModflowGwfdis(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - delr = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'delr')) - delc = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'delc')) - top = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'top')) - botm = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', 'botm')) - idomain = ArrayTemplateGenerator(('gwf6', 'dis', 'griddata', - 'idomain')) + + delr = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "delr")) + delc = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "delc")) + top = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "top")) + botm = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "botm")) + idomain = ArrayTemplateGenerator(("gwf6", "dis", "griddata", "idomain")) package_abbr = "gwfdis" _package_type = "dis" dfn_file_name = "gwf-dis.dfn" - dfn = [["block options", "name length_units", "type string", - "reader urword", "optional true"], - ["block options", "name nogrb", "type keyword", "reader urword", - "optional true"], - ["block options", "name xorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name yorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name angrot", "type double precision", - "reader urword", "optional true"], - ["block dimensions", "name nlay", "type integer", - "reader urword", "optional false", "default_value 1"], - ["block dimensions", "name nrow", "type integer", - "reader urword", "optional false", "default_value 2"], - ["block dimensions", "name ncol", "type integer", - "reader urword", "optional false", "default_value 2"], - ["block griddata", "name delr", "type double precision", - "shape (ncol)", "reader readarray", "default_value 1.0"], - ["block griddata", "name delc", "type double precision", - "shape (nrow)", "reader readarray", "default_value 1.0"], - ["block griddata", "name top", "type double precision", - "shape (ncol, nrow)", "reader readarray", "default_value 1.0"], - ["block griddata", "name botm", "type double precision", - "shape (ncol, nrow, nlay)", "reader readarray", "layered true", - "default_value 0."], - ["block griddata", "name idomain", "type integer", - "shape (ncol, nrow, nlay)", "reader readarray", "layered true", - "optional true"]] + dfn = [ + [ + "block options", + "name length_units", + "type string", + "reader urword", + "optional true", + ], + [ + "block options", + "name nogrb", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name xorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name yorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name angrot", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name nlay", + "type integer", + "reader urword", + "optional false", + "default_value 1", + ], + [ + "block dimensions", + "name nrow", + "type integer", + "reader urword", + "optional false", + "default_value 2", + ], + [ + "block dimensions", + "name ncol", + "type integer", + "reader urword", + "optional false", + "default_value 2", + ], + [ + "block griddata", + "name delr", + "type double precision", + "shape (ncol)", + "reader readarray", + "default_value 1.0", + ], + [ + "block griddata", + "name delc", + "type double precision", + "shape (nrow)", + "reader readarray", + "default_value 1.0", + ], + [ + "block griddata", + "name top", + "type double precision", + "shape (ncol, nrow)", + "reader readarray", + "default_value 1.0", + ], + [ + "block griddata", + "name botm", + "type double precision", + "shape (ncol, nrow, nlay)", + "reader readarray", + "layered true", + "default_value 0.", + ], + [ + "block griddata", + "name idomain", + "type integer", + "shape (ncol, nrow, nlay)", + "reader readarray", + "layered true", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, length_units=None, - nogrb=None, xorigin=None, yorigin=None, angrot=None, nlay=1, - nrow=2, ncol=2, delr=1.0, delc=1.0, top=1.0, botm=0., - idomain=None, filename=None, pname=None, parent_file=None): - super(ModflowGwfdis, self).__init__(model, "dis", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + length_units=None, + nogrb=None, + xorigin=None, + yorigin=None, + angrot=None, + nlay=1, + nrow=2, + ncol=2, + delr=1.0, + delc=1.0, + top=1.0, + botm=0.0, + idomain=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfdis, self).__init__( + model, "dis", filename, pname, loading_package, parent_file + ) # set up variables self.length_units = self.build_mfdata("length_units", length_units) diff --git a/flopy/mf6/modflow/mfgwfdisu.py b/flopy/mf6/modflow/mfgwfdisu.py index 7093596aed..b2050d9327 100644 --- a/flopy/mf6/modflow/mfgwfdisu.py +++ b/flopy/mf6/modflow/mfgwfdisu.py @@ -168,110 +168,287 @@ class ModflowGwfdisu(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - top = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'top')) - bot = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'bot')) - area = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', 'area')) - idomain = ArrayTemplateGenerator(('gwf6', 'disu', 'griddata', - 'idomain')) - iac = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'iac')) - ja = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'ja')) - ihc = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'ihc')) - cl12 = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'cl12')) - hwva = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'hwva')) - angldegx = ArrayTemplateGenerator(('gwf6', 'disu', 'connectiondata', - 'angldegx')) - vertices = ListTemplateGenerator(('gwf6', 'disu', 'vertices', - 'vertices')) - cell2d = ListTemplateGenerator(('gwf6', 'disu', 'cell2d', 'cell2d')) + + top = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "top")) + bot = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "bot")) + area = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "area")) + idomain = ArrayTemplateGenerator(("gwf6", "disu", "griddata", "idomain")) + iac = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "iac")) + ja = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "ja")) + ihc = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "ihc")) + cl12 = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "cl12")) + hwva = ArrayTemplateGenerator(("gwf6", "disu", "connectiondata", "hwva")) + angldegx = ArrayTemplateGenerator( + ("gwf6", "disu", "connectiondata", "angldegx") + ) + vertices = ListTemplateGenerator(("gwf6", "disu", "vertices", "vertices")) + cell2d = ListTemplateGenerator(("gwf6", "disu", "cell2d", "cell2d")) package_abbr = "gwfdisu" _package_type = "disu" dfn_file_name = "gwf-disu.dfn" - dfn = [["block options", "name length_units", "type string", - "reader urword", "optional true"], - ["block options", "name nogrb", "type keyword", "reader urword", - "optional true"], - ["block options", "name xorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name yorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name angrot", "type double precision", - "reader urword", "optional true"], - ["block dimensions", "name nodes", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name nja", "type integer", "reader urword", - "optional false"], - ["block dimensions", "name nvert", "type integer", - "reader urword", "optional true"], - ["block griddata", "name top", "type double precision", - "shape (nodes)", "reader readarray"], - ["block griddata", "name bot", "type double precision", - "shape (nodes)", "reader readarray"], - ["block griddata", "name area", "type double precision", - "shape (nodes)", "reader readarray"], - ["block griddata", "name idomain", "type integer", - "shape (nodes)", "reader readarray", "layered false", - "optional true"], - ["block connectiondata", "name iac", "type integer", - "shape (nodes)", "reader readarray"], - ["block connectiondata", "name ja", "type integer", - "shape (nja)", "reader readarray", "numeric_index true", - "jagged_array iac"], - ["block connectiondata", "name ihc", "type integer", - "shape (nja)", "reader readarray", "jagged_array iac"], - ["block connectiondata", "name cl12", "type double precision", - "shape (nja)", "reader readarray", "jagged_array iac"], - ["block connectiondata", "name hwva", "type double precision", - "shape (nja)", "reader readarray", "jagged_array iac"], - ["block connectiondata", "name angldegx", - "type double precision", "optional true", "shape (nja)", - "reader readarray", "jagged_array iac"], - ["block vertices", "name vertices", "type recarray iv xv yv", - "reader urword", "optional false"], - ["block vertices", "name iv", "type integer", "in_record true", - "tagged false", "reader urword", "optional false", - "numeric_index true"], - ["block vertices", "name xv", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block vertices", "name yv", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name cell2d", - "type recarray icell2d xc yc ncvert icvert", "reader urword", - "optional false"], - ["block cell2d", "name icell2d", "type integer", - "in_record true", "tagged false", "reader urword", - "optional false", "numeric_index true"], - ["block cell2d", "name xc", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name yc", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name ncvert", "type integer", "in_record true", - "tagged false", "reader urword", "optional false"], - ["block cell2d", "name icvert", "type integer", "shape (ncvert)", - "in_record true", "tagged false", "reader urword", - "optional false"]] + dfn = [ + [ + "block options", + "name length_units", + "type string", + "reader urword", + "optional true", + ], + [ + "block options", + "name nogrb", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name xorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name yorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name angrot", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name nodes", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name nja", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name nvert", + "type integer", + "reader urword", + "optional true", + ], + [ + "block griddata", + "name top", + "type double precision", + "shape (nodes)", + "reader readarray", + ], + [ + "block griddata", + "name bot", + "type double precision", + "shape (nodes)", + "reader readarray", + ], + [ + "block griddata", + "name area", + "type double precision", + "shape (nodes)", + "reader readarray", + ], + [ + "block griddata", + "name idomain", + "type integer", + "shape (nodes)", + "reader readarray", + "layered false", + "optional true", + ], + [ + "block connectiondata", + "name iac", + "type integer", + "shape (nodes)", + "reader readarray", + ], + [ + "block connectiondata", + "name ja", + "type integer", + "shape (nja)", + "reader readarray", + "numeric_index true", + "jagged_array iac", + ], + [ + "block connectiondata", + "name ihc", + "type integer", + "shape (nja)", + "reader readarray", + "jagged_array iac", + ], + [ + "block connectiondata", + "name cl12", + "type double precision", + "shape (nja)", + "reader readarray", + "jagged_array iac", + ], + [ + "block connectiondata", + "name hwva", + "type double precision", + "shape (nja)", + "reader readarray", + "jagged_array iac", + ], + [ + "block connectiondata", + "name angldegx", + "type double precision", + "optional true", + "shape (nja)", + "reader readarray", + "jagged_array iac", + ], + [ + "block vertices", + "name vertices", + "type recarray iv xv yv", + "reader urword", + "optional false", + ], + [ + "block vertices", + "name iv", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block vertices", + "name xv", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block vertices", + "name yv", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name cell2d", + "type recarray icell2d xc yc ncvert icvert", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name icell2d", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block cell2d", + "name xc", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name yc", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name ncvert", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name icvert", + "type integer", + "shape (ncvert)", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + ] - def __init__(self, model, loading_package=False, length_units=None, - nogrb=None, xorigin=None, yorigin=None, angrot=None, - nodes=None, nja=None, nvert=None, top=None, bot=None, - area=None, idomain=None, iac=None, ja=None, ihc=None, - cl12=None, hwva=None, angldegx=None, vertices=None, - cell2d=None, filename=None, pname=None, parent_file=None): - super(ModflowGwfdisu, self).__init__(model, "disu", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + length_units=None, + nogrb=None, + xorigin=None, + yorigin=None, + angrot=None, + nodes=None, + nja=None, + nvert=None, + top=None, + bot=None, + area=None, + idomain=None, + iac=None, + ja=None, + ihc=None, + cl12=None, + hwva=None, + angldegx=None, + vertices=None, + cell2d=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfdisu, self).__init__( + model, "disu", filename, pname, loading_package, parent_file + ) # set up variables self.length_units = self.build_mfdata("length_units", length_units) diff --git a/flopy/mf6/modflow/mfgwfdisv.py b/flopy/mf6/modflow/mfgwfdisv.py index 1d14e7630d..84c1539c69 100644 --- a/flopy/mf6/modflow/mfgwfdisv.py +++ b/flopy/mf6/modflow/mfgwfdisv.py @@ -102,80 +102,217 @@ class ModflowGwfdisv(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - top = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata', 'top')) - botm = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata', 'botm')) - idomain = ArrayTemplateGenerator(('gwf6', 'disv', 'griddata', - 'idomain')) - vertices = ListTemplateGenerator(('gwf6', 'disv', 'vertices', - 'vertices')) - cell2d = ListTemplateGenerator(('gwf6', 'disv', 'cell2d', 'cell2d')) + + top = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "top")) + botm = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "botm")) + idomain = ArrayTemplateGenerator(("gwf6", "disv", "griddata", "idomain")) + vertices = ListTemplateGenerator(("gwf6", "disv", "vertices", "vertices")) + cell2d = ListTemplateGenerator(("gwf6", "disv", "cell2d", "cell2d")) package_abbr = "gwfdisv" _package_type = "disv" dfn_file_name = "gwf-disv.dfn" - dfn = [["block options", "name length_units", "type string", - "reader urword", "optional true"], - ["block options", "name nogrb", "type keyword", "reader urword", - "optional true"], - ["block options", "name xorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name yorigin", "type double precision", - "reader urword", "optional true"], - ["block options", "name angrot", "type double precision", - "reader urword", "optional true"], - ["block dimensions", "name nlay", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name ncpl", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name nvert", "type integer", - "reader urword", "optional false"], - ["block griddata", "name top", "type double precision", - "shape (ncpl)", "reader readarray"], - ["block griddata", "name botm", "type double precision", - "shape (nlay, ncpl)", "reader readarray", "layered true"], - ["block griddata", "name idomain", "type integer", - "shape (nlay, ncpl)", "reader readarray", "layered true", - "optional true"], - ["block vertices", "name vertices", "type recarray iv xv yv", - "reader urword", "optional false"], - ["block vertices", "name iv", "type integer", "in_record true", - "tagged false", "reader urword", "optional false", - "numeric_index true"], - ["block vertices", "name xv", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block vertices", "name yv", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name cell2d", - "type recarray icell2d xc yc ncvert icvert", "reader urword", - "optional false"], - ["block cell2d", "name icell2d", "type integer", - "in_record true", "tagged false", "reader urword", - "optional false", "numeric_index true"], - ["block cell2d", "name xc", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name yc", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block cell2d", "name ncvert", "type integer", "in_record true", - "tagged false", "reader urword", "optional false"], - ["block cell2d", "name icvert", "type integer", "shape (ncvert)", - "in_record true", "tagged false", "reader urword", - "optional false", "numeric_index true"]] + dfn = [ + [ + "block options", + "name length_units", + "type string", + "reader urword", + "optional true", + ], + [ + "block options", + "name nogrb", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name xorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name yorigin", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name angrot", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name nlay", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name ncpl", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name nvert", + "type integer", + "reader urword", + "optional false", + ], + [ + "block griddata", + "name top", + "type double precision", + "shape (ncpl)", + "reader readarray", + ], + [ + "block griddata", + "name botm", + "type double precision", + "shape (nlay, ncpl)", + "reader readarray", + "layered true", + ], + [ + "block griddata", + "name idomain", + "type integer", + "shape (nlay, ncpl)", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block vertices", + "name vertices", + "type recarray iv xv yv", + "reader urword", + "optional false", + ], + [ + "block vertices", + "name iv", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block vertices", + "name xv", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block vertices", + "name yv", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name cell2d", + "type recarray icell2d xc yc ncvert icvert", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name icell2d", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block cell2d", + "name xc", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name yc", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name ncvert", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block cell2d", + "name icvert", + "type integer", + "shape (ncvert)", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + ] - def __init__(self, model, loading_package=False, length_units=None, - nogrb=None, xorigin=None, yorigin=None, angrot=None, - nlay=None, ncpl=None, nvert=None, top=None, botm=None, - idomain=None, vertices=None, cell2d=None, filename=None, - pname=None, parent_file=None): - super(ModflowGwfdisv, self).__init__(model, "disv", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + length_units=None, + nogrb=None, + xorigin=None, + yorigin=None, + angrot=None, + nlay=None, + ncpl=None, + nvert=None, + top=None, + botm=None, + idomain=None, + vertices=None, + cell2d=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfdisv, self).__init__( + model, "disv", filename, pname, loading_package, parent_file + ) # set up variables self.length_units = self.build_mfdata("length_units", length_units) diff --git a/flopy/mf6/modflow/mfgwfdrn.py b/flopy/mf6/modflow/mfgwfdrn.py index ea29cc948c..4b1a55c5bb 100644 --- a/flopy/mf6/modflow/mfgwfdrn.py +++ b/flopy/mf6/modflow/mfgwfdrn.py @@ -118,93 +118,262 @@ class ModflowGwfdrn(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'drn', 'options', - 'auxiliary')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'drn', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'drn', 'options', - 'obs_filerecord')) - stress_period_data = ListTemplateGenerator(('gwf6', 'drn', 'period', - 'stress_period_data')) + + auxiliary = ListTemplateGenerator(("gwf6", "drn", "options", "auxiliary")) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "drn", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "drn", "options", "obs_filerecord") + ) + stress_period_data = ListTemplateGenerator( + ("gwf6", "drn", "period", "stress_period_data") + ) package_abbr = "gwfdrn" _package_type = "drn" dfn_file_name = "gwf-drn.dfn" - dfn = [["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name auxmultname", "type string", "shape", - "reader urword", "optional true"], - ["block options", "name auxdepthname", "type string", "shape", - "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_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_flows", "type keyword", - "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 maxbound", "type integer", - "reader urword", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", + dfn = [ + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxmultname", + "type string", + "shape", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxdepthname", + "type string", + "shape", + "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_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_flows", + "type keyword", + "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 maxbound", + "type integer", + "reader urword", + "optional false", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", "type recarray cellid elev cond aux boundname", - "shape (maxbound)", "reader urword"], - ["block period", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name elev", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name cond", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name aux", "type double precision", - "in_record true", "tagged false", "shape (naux)", "reader urword", - "optional true", "time_series true"], - ["block period", "name boundname", "type string", "shape", - "tagged false", "in_record true", "reader urword", - "optional true"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block period", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name elev", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name cond", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name aux", + "type double precision", + "in_record true", + "tagged false", + "shape (naux)", + "reader urword", + "optional true", + "time_series true", + ], + [ + "block period", + "name boundname", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, auxiliary=None, - auxmultname=None, auxdepthname=None, boundnames=None, - print_input=None, print_flows=None, save_flows=None, - timeseries=None, observations=None, mover=None, maxbound=None, - stress_period_data=None, filename=None, pname=None, - parent_file=None): - super(ModflowGwfdrn, self).__init__(model, "drn", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + auxiliary=None, + auxmultname=None, + auxdepthname=None, + boundnames=None, + print_input=None, + print_flows=None, + save_flows=None, + timeseries=None, + observations=None, + mover=None, + maxbound=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfdrn, self).__init__( + model, "drn", filename, pname, loading_package, parent_file + ) # set up variables self.auxiliary = self.build_mfdata("auxiliary", auxiliary) @@ -214,18 +383,17 @@ def __init__(self, model, loading_package=False, auxiliary=None, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - 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._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.maxbound = self.build_mfdata("maxbound", maxbound) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfevt.py b/flopy/mf6/modflow/mfgwfevt.py index ea16c8e788..6849128625 100644 --- a/flopy/mf6/modflow/mfgwfevt.py +++ b/flopy/mf6/modflow/mfgwfevt.py @@ -136,108 +136,311 @@ class ModflowGwfevt(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'evt', 'options', - 'auxiliary')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'evt', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'evt', 'options', - 'obs_filerecord')) - stress_period_data = ListTemplateGenerator(('gwf6', 'evt', 'period', - 'stress_period_data')) + + auxiliary = ListTemplateGenerator(("gwf6", "evt", "options", "auxiliary")) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "evt", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "evt", "options", "obs_filerecord") + ) + stress_period_data = ListTemplateGenerator( + ("gwf6", "evt", "period", "stress_period_data") + ) package_abbr = "gwfevt" _package_type = "evt" dfn_file_name = "gwf-evt.dfn" - dfn = [["block options", "name fixed_cell", "type keyword", "shape", - "reader urword", "optional true"], - ["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name auxmultname", "type string", "shape", - "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_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_flows", "type keyword", - "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 surf_rate_specified", "type keyword", - "reader urword", "optional true"], - ["block dimensions", "name maxbound", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name nseg", "type integer", - "reader urword", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", + dfn = [ + [ + "block options", + "name fixed_cell", + "type keyword", + "shape", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxmultname", + "type string", + "shape", + "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_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_flows", + "type keyword", + "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 surf_rate_specified", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name maxbound", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name nseg", + "type integer", + "reader urword", + "optional false", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", "type recarray cellid surface rate depth pxdp petm petm0 aux " "boundname", - "shape (maxbound)", "reader urword"], - ["block period", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name surface", "type double precision", - "shape", "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name rate", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name depth", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name pxdp", "type double precision", - "shape (nseg-1)", "tagged false", "in_record true", - "reader urword", "time_series true"], - ["block period", "name petm", "type double precision", - "shape (nseg-1)", "tagged false", "in_record true", - "reader urword", "time_series true"], - ["block period", "name petm0", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "optional true", "time_series true"], - ["block period", "name aux", "type double precision", - "in_record true", "tagged false", "shape (naux)", "reader urword", - "optional true", "time_series true"], - ["block period", "name boundname", "type string", "shape", - "tagged false", "in_record true", "reader urword", - "optional true"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block period", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name surface", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name rate", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name depth", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name pxdp", + "type double precision", + "shape (nseg-1)", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name petm", + "type double precision", + "shape (nseg-1)", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name petm0", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + "time_series true", + ], + [ + "block period", + "name aux", + "type double precision", + "in_record true", + "tagged false", + "shape (naux)", + "reader urword", + "optional true", + "time_series true", + ], + [ + "block period", + "name boundname", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, fixed_cell=None, - auxiliary=None, auxmultname=None, boundnames=None, - print_input=None, print_flows=None, save_flows=None, - timeseries=None, observations=None, surf_rate_specified=None, - maxbound=None, nseg=None, stress_period_data=None, - filename=None, pname=None, parent_file=None): - super(ModflowGwfevt, self).__init__(model, "evt", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + fixed_cell=None, + auxiliary=None, + auxmultname=None, + boundnames=None, + print_input=None, + print_flows=None, + save_flows=None, + timeseries=None, + observations=None, + surf_rate_specified=None, + maxbound=None, + nseg=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfevt, self).__init__( + model, "evt", filename, pname, loading_package, parent_file + ) # set up variables self.fixed_cell = self.build_mfdata("fixed_cell", fixed_cell) @@ -247,20 +450,20 @@ def __init__(self, model, loading_package=False, fixed_cell=None, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - 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.surf_rate_specified = self.build_mfdata("surf_rate_specified", - surf_rate_specified) + 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.surf_rate_specified = self.build_mfdata( + "surf_rate_specified", surf_rate_specified + ) self.maxbound = self.build_mfdata("maxbound", maxbound) self.nseg = self.build_mfdata("nseg", nseg) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfevta.py b/flopy/mf6/modflow/mfgwfevta.py index 628d93e766..478a33ce23 100644 --- a/flopy/mf6/modflow/mfgwfevta.py +++ b/flopy/mf6/modflow/mfgwfevta.py @@ -95,89 +95,235 @@ class ModflowGwfevta(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'evta', 'options', - 'auxiliary')) - tas_filerecord = ListTemplateGenerator(('gwf6', 'evta', 'options', - 'tas_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'evta', 'options', - 'obs_filerecord')) - ievt = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'ievt')) - surface = ArrayTemplateGenerator(('gwf6', 'evta', 'period', - 'surface')) - rate = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'rate')) - depth = ArrayTemplateGenerator(('gwf6', 'evta', 'period', 'depth')) - aux = ArrayTemplateGenerator(('gwf6', 'evta', 'period', - 'aux(iaux)')) + + auxiliary = ListTemplateGenerator(("gwf6", "evta", "options", "auxiliary")) + tas_filerecord = ListTemplateGenerator( + ("gwf6", "evta", "options", "tas_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "evta", "options", "obs_filerecord") + ) + ievt = ArrayTemplateGenerator(("gwf6", "evta", "period", "ievt")) + surface = ArrayTemplateGenerator(("gwf6", "evta", "period", "surface")) + rate = ArrayTemplateGenerator(("gwf6", "evta", "period", "rate")) + depth = ArrayTemplateGenerator(("gwf6", "evta", "period", "depth")) + aux = ArrayTemplateGenerator(("gwf6", "evta", "period", "aux(iaux)")) package_abbr = "gwfevta" _package_type = "evta" dfn_file_name = "gwf-evta.dfn" - dfn = [["block options", "name readasarrays", "type keyword", "shape", - "reader urword", "optional false", "default_value True"], - ["block options", "name fixed_cell", "type keyword", "shape", - "reader urword", "optional true"], - ["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name auxmultname", "type string", "shape", - "reader urword", "optional true"], - ["block options", "name print_input", "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 tas_filerecord", - "type record tas6 filein tas6_filename", "shape", "reader urword", - "tagged true", "optional true", "construct_package tas", - "construct_data tas_array", "parameter_name timearrayseries"], - ["block options", "name tas6", "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 tas6_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 period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name ievt", "type integer", - "shape (ncol*nrow; ncpl)", "reader readarray", - "numeric_index true", "optional true"], - ["block period", "name surface", "type double precision", - "shape (ncol*nrow; ncpl)", "reader readarray", "default_value 0."], - ["block period", "name rate", "type double precision", - "shape (ncol*nrow; ncpl)", "reader readarray", - "default_value 1.e-3"], - ["block period", "name depth", "type double precision", - "shape (ncol*nrow; ncpl)", "reader readarray", - "default_value 1.0"], - ["block period", "name aux(iaux)", "type double precision", - "shape (ncol*nrow; ncpl)", "reader readarray"]] + dfn = [ + [ + "block options", + "name readasarrays", + "type keyword", + "shape", + "reader urword", + "optional false", + "default_value True", + ], + [ + "block options", + "name fixed_cell", + "type keyword", + "shape", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxmultname", + "type string", + "shape", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_input", + "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 tas_filerecord", + "type record tas6 filein tas6_filename", + "shape", + "reader urword", + "tagged true", + "optional true", + "construct_package tas", + "construct_data tas_array", + "parameter_name timearrayseries", + ], + [ + "block options", + "name tas6", + "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 tas6_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 period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name ievt", + "type integer", + "shape (ncol*nrow; ncpl)", + "reader readarray", + "numeric_index true", + "optional true", + ], + [ + "block period", + "name surface", + "type double precision", + "shape (ncol*nrow; ncpl)", + "reader readarray", + "default_value 0.", + ], + [ + "block period", + "name rate", + "type double precision", + "shape (ncol*nrow; ncpl)", + "reader readarray", + "default_value 1.e-3", + ], + [ + "block period", + "name depth", + "type double precision", + "shape (ncol*nrow; ncpl)", + "reader readarray", + "default_value 1.0", + ], + [ + "block period", + "name aux(iaux)", + "type double precision", + "shape (ncol*nrow; ncpl)", + "reader readarray", + ], + ] - def __init__(self, model, loading_package=False, readasarrays=True, - fixed_cell=None, auxiliary=None, auxmultname=None, - print_input=None, print_flows=None, save_flows=None, - timearrayseries=None, observations=None, ievt=None, - surface=0., rate=1.e-3, depth=1.0, aux=None, filename=None, - pname=None, parent_file=None): - super(ModflowGwfevta, self).__init__(model, "evta", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + readasarrays=True, + fixed_cell=None, + auxiliary=None, + auxmultname=None, + print_input=None, + print_flows=None, + save_flows=None, + timearrayseries=None, + observations=None, + ievt=None, + surface=0.0, + rate=1.0e-3, + depth=1.0, + aux=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfevta, self).__init__( + model, "evta", filename, pname, loading_package, parent_file + ) # set up variables self.readasarrays = self.build_mfdata("readasarrays", readasarrays) @@ -187,16 +333,14 @@ def __init__(self, model, loading_package=False, readasarrays=True, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - self._tas_filerecord = self.build_mfdata("tas_filerecord", - None) - self._tas_package = self.build_child_package("tas", timearrayseries, - "tas_array", - self._tas_filerecord) - self._obs_filerecord = self.build_mfdata("obs_filerecord", - None) - self._obs_package = self.build_child_package("obs", observations, - "continuous", - self._obs_filerecord) + self._tas_filerecord = self.build_mfdata("tas_filerecord", None) + self._tas_package = self.build_child_package( + "tas", timearrayseries, "tas_array", self._tas_filerecord + ) + self._obs_filerecord = self.build_mfdata("obs_filerecord", None) + self._obs_package = self.build_child_package( + "obs", observations, "continuous", self._obs_filerecord + ) self.ievt = self.build_mfdata("ievt", ievt) self.surface = self.build_mfdata("surface", surface) self.rate = self.build_mfdata("rate", rate) diff --git a/flopy/mf6/modflow/mfgwfghb.py b/flopy/mf6/modflow/mfgwfghb.py index a320954fdd..8bc9a9c6e0 100644 --- a/flopy/mf6/modflow/mfgwfghb.py +++ b/flopy/mf6/modflow/mfgwfghb.py @@ -107,91 +107,253 @@ class ModflowGwfghb(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'ghb', 'options', - 'auxiliary')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'ghb', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'ghb', 'options', - 'obs_filerecord')) - stress_period_data = ListTemplateGenerator(('gwf6', 'ghb', 'period', - 'stress_period_data')) + + auxiliary = ListTemplateGenerator(("gwf6", "ghb", "options", "auxiliary")) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "ghb", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "ghb", "options", "obs_filerecord") + ) + stress_period_data = ListTemplateGenerator( + ("gwf6", "ghb", "period", "stress_period_data") + ) package_abbr = "gwfghb" _package_type = "ghb" dfn_file_name = "gwf-ghb.dfn" - dfn = [["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name auxmultname", "type string", "shape", - "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_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_flows", "type keyword", - "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 maxbound", "type integer", - "reader urword", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", + dfn = [ + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name auxmultname", + "type string", + "shape", + "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_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_flows", + "type keyword", + "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 maxbound", + "type integer", + "reader urword", + "optional false", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", "type recarray cellid bhead cond aux boundname", - "shape (maxbound)", "reader urword"], - ["block period", "name cellid", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name bhead", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name cond", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block period", "name aux", "type double precision", - "in_record true", "tagged false", "shape (naux)", "reader urword", - "optional true", "time_series true"], - ["block period", "name boundname", "type string", "shape", - "tagged false", "in_record true", "reader urword", - "optional true"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block period", + "name cellid", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name bhead", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name cond", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name aux", + "type double precision", + "in_record true", + "tagged false", + "shape (naux)", + "reader urword", + "optional true", + "time_series true", + ], + [ + "block period", + "name boundname", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, auxiliary=None, - auxmultname=None, boundnames=None, print_input=None, - print_flows=None, save_flows=None, timeseries=None, - observations=None, mover=None, maxbound=None, - stress_period_data=None, filename=None, pname=None, - parent_file=None): - super(ModflowGwfghb, self).__init__(model, "ghb", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + auxiliary=None, + auxmultname=None, + boundnames=None, + print_input=None, + print_flows=None, + save_flows=None, + timeseries=None, + observations=None, + mover=None, + maxbound=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfghb, self).__init__( + model, "ghb", filename, pname, loading_package, parent_file + ) # set up variables self.auxiliary = self.build_mfdata("auxiliary", auxiliary) @@ -200,18 +362,17 @@ def __init__(self, model, loading_package=False, auxiliary=None, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - 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._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.maxbound = self.build_mfdata("maxbound", maxbound) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfgnc.py b/flopy/mf6/modflow/mfgwfgnc.py index e08e90b3a5..8a388a30bb 100644 --- a/flopy/mf6/modflow/mfgwfgnc.py +++ b/flopy/mf6/modflow/mfgwfgnc.py @@ -92,47 +92,118 @@ class ModflowGwfgnc(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - gncdata = ListTemplateGenerator(('gwf6', 'gnc', 'gncdata', - 'gncdata')) + + gncdata = ListTemplateGenerator(("gwf6", "gnc", "gncdata", "gncdata")) package_abbr = "gwfgnc" _package_type = "gnc" dfn_file_name = "gwf-gnc.dfn" - dfn = [["block options", "name print_input", "type keyword", - "reader urword", "optional true"], - ["block options", "name print_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name explicit", "type keyword", "tagged true", - "reader urword", "optional true"], - ["block dimensions", "name numgnc", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name numalphaj", "type integer", - "reader urword", "optional false"], - ["block gncdata", "name gncdata", + dfn = [ + [ + "block options", + "name print_input", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name explicit", + "type keyword", + "tagged true", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name numgnc", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name numalphaj", + "type integer", + "reader urword", + "optional false", + ], + [ + "block gncdata", + "name gncdata", "type recarray cellidn cellidm cellidsj alphasj", - "shape (maxbound)", "reader urword"], - ["block gncdata", "name cellidn", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block gncdata", "name cellidm", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block gncdata", "name cellidsj", "type integer", - "shape (numalphaj)", "tagged false", "in_record true", - "reader urword", "numeric_index true"], - ["block gncdata", "name alphasj", "type double precision", - "shape (numalphaj)", "tagged false", "in_record true", - "reader urword"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block gncdata", + "name cellidn", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name cellidm", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name cellidsj", + "type integer", + "shape (numalphaj)", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block gncdata", + "name alphasj", + "type double precision", + "shape (numalphaj)", + "tagged false", + "in_record true", + "reader urword", + ], + ] - def __init__(self, model, loading_package=False, print_input=None, - print_flows=None, explicit=None, numgnc=None, numalphaj=None, - gncdata=None, filename=None, pname=None, parent_file=None): - super(ModflowGwfgnc, self).__init__(model, "gnc", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + print_input=None, + print_flows=None, + explicit=None, + numgnc=None, + numalphaj=None, + gncdata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfgnc, self).__init__( + model, "gnc", filename, pname, loading_package, parent_file + ) # set up variables self.print_input = self.build_mfdata("print_input", print_input) diff --git a/flopy/mf6/modflow/mfgwfgwf.py b/flopy/mf6/modflow/mfgwfgwf.py index 779cefcb55..b1948b073f 100644 --- a/flopy/mf6/modflow/mfgwfgwf.py +++ b/flopy/mf6/modflow/mfgwfgwf.py @@ -144,110 +144,303 @@ class ModflowGwfgwf(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwfgwf', 'options', 'auxiliary')) - gnc_filerecord = ListTemplateGenerator(('gwfgwf', 'options', - 'gnc_filerecord')) - mvr_filerecord = ListTemplateGenerator(('gwfgwf', 'options', - 'mvr_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwfgwf', 'options', - 'obs_filerecord')) - exchangedata = ListTemplateGenerator(('gwfgwf', 'exchangedata', - 'exchangedata')) + + auxiliary = ListTemplateGenerator(("gwfgwf", "options", "auxiliary")) + gnc_filerecord = ListTemplateGenerator( + ("gwfgwf", "options", "gnc_filerecord") + ) + mvr_filerecord = ListTemplateGenerator( + ("gwfgwf", "options", "mvr_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwfgwf", "options", "obs_filerecord") + ) + exchangedata = ListTemplateGenerator( + ("gwfgwf", "exchangedata", "exchangedata") + ) package_abbr = "gwfgwf" _package_type = "gwfgwf" dfn_file_name = "exg-gwfgwf.dfn" - dfn = [["block options", "name auxiliary", "type string", - "shape (naux)", "reader urword", "optional true"], - ["block options", "name print_input", "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 cell_averaging", "type string", - "valid harmonic logarithmic amt-lmk", "reader urword", - "optional true"], - ["block options", "name cvoptions", - "type record variablecv dewatered", "reader urword", - "optional true"], - ["block options", "name variablecv", "in_record true", - "type keyword", "reader urword"], - ["block options", "name dewatered", "in_record true", - "type keyword", "reader urword", "optional true"], - ["block options", "name newton", "type keyword", "reader urword", - "optional true"], - ["block options", "name gnc_filerecord", - "type record gnc6 filein gnc6_filename", "shape", "reader urword", - "tagged true", "optional true"], - ["block options", "name filein", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name gnc6", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name gnc6_filename", "type string", - "preserve_case true", "in_record true", "tagged false", - "reader urword", "optional false"], - ["block options", "name mvr_filerecord", - "type record mvr6 filein mvr6_filename", "shape", "reader urword", - "tagged true", "optional true"], - ["block options", "name mvr6", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name mvr6_filename", "type string", - "preserve_case true", "in_record true", "tagged false", - "reader urword", "optional 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 dimensions", "name nexg", "type integer", - "reader urword", "optional false"], - ["block exchangedata", "name exchangedata", + dfn = [ + [ + "block options", + "name auxiliary", + "type string", + "shape (naux)", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_input", + "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 cell_averaging", + "type string", + "valid harmonic logarithmic amt-lmk", + "reader urword", + "optional true", + ], + [ + "block options", + "name cvoptions", + "type record variablecv dewatered", + "reader urword", + "optional true", + ], + [ + "block options", + "name variablecv", + "in_record true", + "type keyword", + "reader urword", + ], + [ + "block options", + "name dewatered", + "in_record true", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name newton", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name gnc_filerecord", + "type record gnc6 filein gnc6_filename", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name filein", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name gnc6", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name gnc6_filename", + "type string", + "preserve_case true", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block options", + "name mvr_filerecord", + "type record mvr6 filein mvr6_filename", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name mvr6", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name mvr6_filename", + "type string", + "preserve_case true", + "in_record true", + "tagged false", + "reader urword", + "optional 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 dimensions", + "name nexg", + "type integer", + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name exchangedata", "type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux", - "reader urword", "optional false"], - ["block exchangedata", "name cellidm1", "type integer", - "in_record true", "tagged false", "reader urword", - "optional false", "numeric_index true"], - ["block exchangedata", "name cellidm2", "type integer", - "in_record true", "tagged false", "reader urword", - "optional false", "numeric_index true"], - ["block exchangedata", "name ihc", "type integer", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block exchangedata", "name cl1", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block exchangedata", "name cl2", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block exchangedata", "name hwva", "type double precision", - "in_record true", "tagged false", "reader urword", - "optional false"], - ["block exchangedata", "name aux", "type double precision", - "in_record true", "tagged false", "shape (naux)", "reader urword", - "optional true"]] + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name cellidm1", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block exchangedata", + "name cellidm2", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + "numeric_index true", + ], + [ + "block exchangedata", + "name ihc", + "type integer", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name cl1", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name cl2", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name hwva", + "type double precision", + "in_record true", + "tagged false", + "reader urword", + "optional false", + ], + [ + "block exchangedata", + "name aux", + "type double precision", + "in_record true", + "tagged false", + "shape (naux)", + "reader urword", + "optional true", + ], + ] - def __init__(self, simulation, loading_package=False, exgtype=None, - exgmnamea=None, exgmnameb=None, auxiliary=None, - print_input=None, print_flows=None, save_flows=None, - cell_averaging=None, cvoptions=None, newton=None, - gnc_filerecord=None, mvr_filerecord=None, observations=None, - nexg=None, exchangedata=None, filename=None, pname=None, - parent_file=None): - super(ModflowGwfgwf, self).__init__(simulation, "gwfgwf", filename, pname, - loading_package, parent_file) + def __init__( + self, + simulation, + loading_package=False, + exgtype=None, + exgmnamea=None, + exgmnameb=None, + auxiliary=None, + print_input=None, + print_flows=None, + save_flows=None, + cell_averaging=None, + cvoptions=None, + newton=None, + gnc_filerecord=None, + mvr_filerecord=None, + observations=None, + nexg=None, + exchangedata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfgwf, self).__init__( + simulation, "gwfgwf", filename, pname, loading_package, parent_file + ) # set up variables self.exgtype = exgtype @@ -262,19 +455,21 @@ def __init__(self, simulation, loading_package=False, exgtype=None, self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.save_flows = self.build_mfdata("save_flows", save_flows) - self.cell_averaging = self.build_mfdata("cell_averaging", - cell_averaging) + self.cell_averaging = self.build_mfdata( + "cell_averaging", cell_averaging + ) self.cvoptions = self.build_mfdata("cvoptions", cvoptions) self.newton = self.build_mfdata("newton", newton) - self.gnc_filerecord = self.build_mfdata("gnc_filerecord", - gnc_filerecord) - self.mvr_filerecord = self.build_mfdata("mvr_filerecord", - mvr_filerecord) - self._obs_filerecord = self.build_mfdata("obs_filerecord", - None) - self._obs_package = self.build_child_package("obs", observations, - "continuous", - self._obs_filerecord) + self.gnc_filerecord = self.build_mfdata( + "gnc_filerecord", gnc_filerecord + ) + self.mvr_filerecord = self.build_mfdata( + "mvr_filerecord", mvr_filerecord + ) + self._obs_filerecord = self.build_mfdata("obs_filerecord", None) + self._obs_package = self.build_child_package( + "obs", observations, "continuous", self._obs_filerecord + ) self.nexg = self.build_mfdata("nexg", nexg) self.exchangedata = self.build_mfdata("exchangedata", exchangedata) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfgwt.py b/flopy/mf6/modflow/mfgwfgwt.py index 002d63deb1..513437b585 100644 --- a/flopy/mf6/modflow/mfgwfgwt.py +++ b/flopy/mf6/modflow/mfgwfgwt.py @@ -27,7 +27,7 @@ class ModflowGwfgwt(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ @@ -38,11 +38,20 @@ class ModflowGwfgwt(mfpackage.MFPackage): dfn = [] - def __init__(self, simulation, loading_package=False, exgtype=None, - exgmnamea=None, exgmnameb=None, filename=None, pname=None, - parent_file=None): - super(ModflowGwfgwt, self).__init__(simulation, "gwfgwt", filename, pname, - loading_package, parent_file) + def __init__( + self, + simulation, + loading_package=False, + exgtype=None, + exgmnamea=None, + exgmnameb=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfgwt, self).__init__( + simulation, "gwfgwt", filename, pname, loading_package, parent_file + ) # set up variables self.exgtype = exgtype diff --git a/flopy/mf6/modflow/mfgwfhfb.py b/flopy/mf6/modflow/mfgwfhfb.py index b2453b9579..529460d1fe 100644 --- a/flopy/mf6/modflow/mfgwfhfb.py +++ b/flopy/mf6/modflow/mfgwfhfb.py @@ -60,44 +60,100 @@ class ModflowGwfhfb(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - stress_period_data = ListTemplateGenerator(('gwf6', 'hfb', 'period', - 'stress_period_data')) + + stress_period_data = ListTemplateGenerator( + ("gwf6", "hfb", "period", "stress_period_data") + ) package_abbr = "gwfhfb" _package_type = "hfb" dfn_file_name = "gwf-hfb.dfn" - dfn = [["block options", "name print_input", "type keyword", - "reader urword", "optional true"], - ["block dimensions", "name maxhfb", "type integer", - "reader urword", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name stress_period_data", - "type recarray cellid1 cellid2 hydchr", "shape (maxhfb)", - "reader urword"], - ["block period", "name cellid1", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name cellid2", "type integer", - "shape (ncelldim)", "tagged false", "in_record true", - "reader urword"], - ["block period", "name hydchr", "type double precision", "shape", - "tagged false", "in_record true", "reader urword"]] + dfn = [ + [ + "block options", + "name print_input", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name maxhfb", + "type integer", + "reader urword", + "optional false", + ], + [ + "block period", + "name iper", + "type integer", + "block_variable True", + "in_record true", + "tagged false", + "shape", + "valid", + "reader urword", + "optional false", + ], + [ + "block period", + "name stress_period_data", + "type recarray cellid1 cellid2 hydchr", + "shape (maxhfb)", + "reader urword", + ], + [ + "block period", + "name cellid1", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name cellid2", + "type integer", + "shape (ncelldim)", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name hydchr", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + ] - def __init__(self, model, loading_package=False, print_input=None, - maxhfb=None, stress_period_data=None, filename=None, - pname=None, parent_file=None): - super(ModflowGwfhfb, self).__init__(model, "hfb", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + print_input=None, + maxhfb=None, + stress_period_data=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfhfb, self).__init__( + model, "hfb", filename, pname, loading_package, parent_file + ) # set up variables self.print_input = self.build_mfdata("print_input", print_input) self.maxhfb = self.build_mfdata("maxhfb", maxhfb) - self.stress_period_data = self.build_mfdata("stress_period_data", - stress_period_data) + self.stress_period_data = self.build_mfdata( + "stress_period_data", stress_period_data + ) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfic.py b/flopy/mf6/modflow/mfgwfic.py index 0a0e33168a..99ce6335ec 100644 --- a/flopy/mf6/modflow/mfgwfic.py +++ b/flopy/mf6/modflow/mfgwfic.py @@ -33,23 +33,40 @@ class ModflowGwfic(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - strt = ArrayTemplateGenerator(('gwf6', 'ic', 'griddata', 'strt')) + + strt = ArrayTemplateGenerator(("gwf6", "ic", "griddata", "strt")) package_abbr = "gwfic" _package_type = "ic" dfn_file_name = "gwf-ic.dfn" - dfn = [["block griddata", "name strt", "type double precision", - "shape (nodes)", "reader readarray", "layered true", - "default_value 1.0"]] + dfn = [ + [ + "block griddata", + "name strt", + "type double precision", + "shape (nodes)", + "reader readarray", + "layered true", + "default_value 1.0", + ] + ] - def __init__(self, model, loading_package=False, strt=1.0, filename=None, - pname=None, parent_file=None): - super(ModflowGwfic, self).__init__(model, "ic", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + strt=1.0, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfic, self).__init__( + model, "ic", filename, pname, loading_package, parent_file + ) # set up variables self.strt = self.build_mfdata("strt", strt) diff --git a/flopy/mf6/modflow/mfgwflak.py b/flopy/mf6/modflow/mfgwflak.py index e5eaf3e91e..4ad5980c43 100644 --- a/flopy/mf6/modflow/mfgwflak.py +++ b/flopy/mf6/modflow/mfgwflak.py @@ -408,269 +408,820 @@ class ModflowGwflak(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'lak', 'options', - 'auxiliary')) - stage_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', - 'stage_filerecord')) - budget_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', - 'budget_filerecord')) - package_convergence_filerecord = ListTemplateGenerator(( - 'gwf6', 'lak', 'options', 'package_convergence_filerecord')) - ts_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', - 'ts_filerecord')) - obs_filerecord = ListTemplateGenerator(('gwf6', 'lak', 'options', - 'obs_filerecord')) - packagedata = ListTemplateGenerator(('gwf6', 'lak', 'packagedata', - 'packagedata')) - connectiondata = ListTemplateGenerator(('gwf6', 'lak', - 'connectiondata', - 'connectiondata')) - tables = ListTemplateGenerator(('gwf6', 'lak', 'tables', 'tables')) - outlets = ListTemplateGenerator(('gwf6', 'lak', 'outlets', - 'outlets')) - perioddata = ListTemplateGenerator(('gwf6', 'lak', 'period', - 'perioddata')) + + auxiliary = ListTemplateGenerator(("gwf6", "lak", "options", "auxiliary")) + stage_filerecord = ListTemplateGenerator( + ("gwf6", "lak", "options", "stage_filerecord") + ) + budget_filerecord = ListTemplateGenerator( + ("gwf6", "lak", "options", "budget_filerecord") + ) + package_convergence_filerecord = ListTemplateGenerator( + ("gwf6", "lak", "options", "package_convergence_filerecord") + ) + ts_filerecord = ListTemplateGenerator( + ("gwf6", "lak", "options", "ts_filerecord") + ) + obs_filerecord = ListTemplateGenerator( + ("gwf6", "lak", "options", "obs_filerecord") + ) + packagedata = ListTemplateGenerator( + ("gwf6", "lak", "packagedata", "packagedata") + ) + connectiondata = ListTemplateGenerator( + ("gwf6", "lak", "connectiondata", "connectiondata") + ) + tables = ListTemplateGenerator(("gwf6", "lak", "tables", "tables")) + outlets = ListTemplateGenerator(("gwf6", "lak", "outlets", "outlets")) + perioddata = ListTemplateGenerator(("gwf6", "lak", "period", "perioddata")) package_abbr = "gwflak" _package_type = "lak" dfn_file_name = "gwf-lak.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_stage", "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 stage fileout stagefile", "shape", "reader urword", - "tagged true", "optional true"], - ["block options", "name stage", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name stagefile", "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 package_convergence_filerecord", + 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_stage", + "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 stage fileout stagefile", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name stage", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name stagefile", + "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 package_convergence_filerecord", "type record package_convergence fileout " "package_convergence_filename", - "shape", "reader urword", "tagged true", "optional true"], - ["block options", "name package_convergence", "type keyword", - "shape", "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name package_convergence_filename", - "type string", "shape", "in_record true", "reader urword", - "tagged false", "optional false"], - ["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 options", "name surfdep", "type double precision", - "reader urword", "optional true"], - ["block options", "name time_conversion", - "type double precision", "reader urword", "optional true"], - ["block options", "name length_conversion", - "type double precision", "reader urword", "optional true"], - ["block dimensions", "name nlakes", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name noutlets", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name ntables", "type integer", - "reader urword", "optional false"], - ["block packagedata", "name packagedata", + "shape", + "reader urword", + "tagged true", + "optional true", + ], + [ + "block options", + "name package_convergence", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block options", + "name package_convergence_filename", + "type string", + "shape", + "in_record true", + "reader urword", + "tagged false", + "optional false", + ], + [ + "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 options", + "name surfdep", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name time_conversion", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block options", + "name length_conversion", + "type double precision", + "reader urword", + "optional true", + ], + [ + "block dimensions", + "name nlakes", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name noutlets", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name ntables", + "type integer", + "reader urword", + "optional false", + ], + [ + "block packagedata", + "name packagedata", "type recarray lakeno strt nlakeconn aux boundname", - "shape (maxbound)", "reader urword"], - ["block packagedata", "name lakeno", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block packagedata", "name strt", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block packagedata", "name nlakeconn", "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", + "shape (maxbound)", + "reader urword", + ], + [ + "block packagedata", + "name lakeno", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block packagedata", + "name strt", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block packagedata", + "name nlakeconn", + "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 lakeno iconn cellid claktype bedleak belev telev " "connlen connwidth", - "shape (sum(nlakeconn))", "reader urword"], - ["block connectiondata", "name lakeno", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block connectiondata", "name iconn", "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 claktype", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block connectiondata", "name bedleak", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block connectiondata", "name belev", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block connectiondata", "name telev", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block connectiondata", "name connlen", "type double precision", - "shape", "tagged false", "in_record true", "reader urword"], - ["block connectiondata", "name connwidth", - "type double precision", "shape", "tagged false", - "in_record true", "reader urword"], - ["block tables", "name tables", + "shape (sum(nlakeconn))", + "reader urword", + ], + [ + "block connectiondata", + "name lakeno", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block connectiondata", + "name iconn", + "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 claktype", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block connectiondata", + "name bedleak", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block connectiondata", + "name belev", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block connectiondata", + "name telev", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block connectiondata", + "name connlen", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block connectiondata", + "name connwidth", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block tables", + "name tables", "type recarray lakeno tab6 filein tab6_filename", - "shape (ntables)", "reader urword"], - ["block tables", "name lakeno", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block tables", "name tab6", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block tables", "name filein", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block tables", "name tab6_filename", "type string", - "preserve_case true", "in_record true", "reader urword", - "optional false", "tagged false"], - ["block outlets", "name outlets", + "shape (ntables)", + "reader urword", + ], + [ + "block tables", + "name lakeno", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block tables", + "name tab6", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block tables", + "name filein", + "type keyword", + "shape", + "in_record true", + "reader urword", + "tagged true", + "optional false", + ], + [ + "block tables", + "name tab6_filename", + "type string", + "preserve_case true", + "in_record true", + "reader urword", + "optional false", + "tagged false", + ], + [ + "block outlets", + "name outlets", "type recarray outletno lakein lakeout couttype invert width " "rough slope", - "shape (noutlets)", "reader urword"], - ["block outlets", "name outletno", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block outlets", "name lakein", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block outlets", "name lakeout", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block outlets", "name couttype", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block outlets", "name invert", "type double precision", - "shape", "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block outlets", "name width", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block outlets", "name rough", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["block outlets", "name slope", "type double precision", "shape", - "tagged false", "in_record true", "reader urword", - "time_series true"], - ["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 number laksetting", "shape", "reader urword"], - ["block period", "name number", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block period", "name laksetting", + "shape (noutlets)", + "reader urword", + ], + [ + "block outlets", + "name outletno", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block outlets", + "name lakein", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block outlets", + "name lakeout", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block outlets", + "name couttype", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block outlets", + "name invert", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block outlets", + "name width", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block outlets", + "name rough", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block outlets", + "name slope", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "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 number laksetting", + "shape", + "reader urword", + ], + [ + "block period", + "name number", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block period", + "name laksetting", "type keystring status stage rainfall evaporation runoff inflow " "withdrawal rate invert width slope rough 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 stage", "type string", "shape", - "tagged true", "in_record true", "time_series true", - "reader urword"], - ["block period", "name rainfall", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name evaporation", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name runoff", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name inflow", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name withdrawal", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name rate", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name invert", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name rough", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name width", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["block period", "name slope", "type string", "shape", - "tagged true", "in_record true", "reader urword", - "time_series true"], - ["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"]] + "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 stage", + "type string", + "shape", + "tagged true", + "in_record true", + "time_series true", + "reader urword", + ], + [ + "block period", + "name rainfall", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name evaporation", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name runoff", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name inflow", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name withdrawal", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name rate", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name invert", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name rough", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name width", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "block period", + "name slope", + "type string", + "shape", + "tagged true", + "in_record true", + "reader urword", + "time_series true", + ], + [ + "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_stage=None, - print_flows=None, save_flows=None, stage_filerecord=None, - budget_filerecord=None, package_convergence_filerecord=None, - timeseries=None, observations=None, mover=None, surfdep=None, - time_conversion=None, length_conversion=None, nlakes=None, - noutlets=None, ntables=None, packagedata=None, - connectiondata=None, tables=None, outlets=None, - perioddata=None, filename=None, pname=None, parent_file=None): - super(ModflowGwflak, self).__init__(model, "lak", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + auxiliary=None, + boundnames=None, + print_input=None, + print_stage=None, + print_flows=None, + save_flows=None, + stage_filerecord=None, + budget_filerecord=None, + package_convergence_filerecord=None, + timeseries=None, + observations=None, + mover=None, + surfdep=None, + time_conversion=None, + length_conversion=None, + nlakes=None, + noutlets=None, + ntables=None, + packagedata=None, + connectiondata=None, + tables=None, + outlets=None, + perioddata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwflak, self).__init__( + model, "lak", filename, pname, loading_package, parent_file + ) # set up variables self.auxiliary = self.build_mfdata("auxiliary", auxiliary) @@ -679,34 +1230,38 @@ def __init__(self, model, loading_package=False, auxiliary=None, self.print_stage = self.build_mfdata("print_stage", print_stage) 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.stage_filerecord = self.build_mfdata( + "stage_filerecord", stage_filerecord + ) + self.budget_filerecord = self.build_mfdata( + "budget_filerecord", budget_filerecord + ) self.package_convergence_filerecord = self.build_mfdata( - "package_convergence_filerecord", package_convergence_filerecord) - 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) + "package_convergence_filerecord", package_convergence_filerecord + ) + 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.surfdep = self.build_mfdata("surfdep", surfdep) - self.time_conversion = self.build_mfdata("time_conversion", - time_conversion) - self.length_conversion = self.build_mfdata("length_conversion", - length_conversion) + self.time_conversion = self.build_mfdata( + "time_conversion", time_conversion + ) + self.length_conversion = self.build_mfdata( + "length_conversion", length_conversion + ) self.nlakes = self.build_mfdata("nlakes", nlakes) self.noutlets = self.build_mfdata("noutlets", noutlets) self.ntables = self.build_mfdata("ntables", ntables) self.packagedata = self.build_mfdata("packagedata", packagedata) - self.connectiondata = self.build_mfdata("connectiondata", - connectiondata) + self.connectiondata = self.build_mfdata( + "connectiondata", connectiondata + ) self.tables = self.build_mfdata("tables", tables) self.outlets = self.build_mfdata("outlets", outlets) self.perioddata = self.build_mfdata("perioddata", perioddata) diff --git a/flopy/mf6/modflow/mfgwfmaw.py b/flopy/mf6/modflow/mfgwfmaw.py index 1790054168..2b297416f7 100644 --- a/flopy/mf6/modflow/mfgwfmaw.py +++ b/flopy/mf6/modflow/mfgwfmaw.py @@ -349,221 +349,690 @@ class ModflowGwfmaw(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - auxiliary = ListTemplateGenerator(('gwf6', 'maw', 'options', - 'auxiliary')) - head_filerecord = ListTemplateGenerator(('gwf6', 'maw', 'options', - 'head_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')) + + auxiliary = ListTemplateGenerator(("gwf6", "maw", "options", "auxiliary")) + head_filerecord = ListTemplateGenerator( + ("gwf6", "maw", "options", "head_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 head_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", + 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 head_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", + "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", + "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"]] + "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, head_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) + def __init__( + self, + model, + loading_package=False, + auxiliary=None, + boundnames=None, + print_input=None, + print_head=None, + print_flows=None, + save_flows=None, + head_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) @@ -572,33 +1041,38 @@ def __init__(self, model, loading_package=False, auxiliary=None, 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.head_filerecord = self.build_mfdata("head_filerecord", - head_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.head_filerecord = self.build_mfdata( + "head_filerecord", head_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.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.connectiondata = self.build_mfdata( + "connectiondata", connectiondata + ) self.perioddata = self.build_mfdata("perioddata", perioddata) self._init_complete = True diff --git a/flopy/mf6/modflow/mfgwfmvr.py b/flopy/mf6/modflow/mfgwfmvr.py index 85b120fe06..768e717e0f 100644 --- a/flopy/mf6/modflow/mfgwfmvr.py +++ b/flopy/mf6/modflow/mfgwfmvr.py @@ -102,86 +102,248 @@ class ModflowGwfmvr(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - budget_filerecord = ListTemplateGenerator(('gwf6', 'mvr', 'options', - 'budget_filerecord')) - packages = ListTemplateGenerator(('gwf6', 'mvr', 'packages', - 'packages')) - perioddata = ListTemplateGenerator(('gwf6', 'mvr', 'period', - 'perioddata')) + + budget_filerecord = ListTemplateGenerator( + ("gwf6", "mvr", "options", "budget_filerecord") + ) + packages = ListTemplateGenerator(("gwf6", "mvr", "packages", "packages")) + perioddata = ListTemplateGenerator(("gwf6", "mvr", "period", "perioddata")) package_abbr = "gwfmvr" _package_type = "mvr" dfn_file_name = "gwf-mvr.dfn" - dfn = [["block options", "name print_input", "type keyword", - "reader urword", "optional true"], - ["block options", "name print_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name modelnames", "type keyword", - "reader urword", "optional true"], - ["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 dimensions", "name maxmvr", "type integer", - "reader urword", "optional false"], - ["block dimensions", "name maxpackages", "type integer", - "reader urword", "optional false"], - ["block packages", "name packages", "type recarray mname pname", - "reader urword", "shape (npackages)", "optional false"], - ["block packages", "name mname", "type string", "reader urword", - "shape", "tagged false", "in_record true", "optional true"], - ["block packages", "name pname", "type string", "reader urword", - "shape", "tagged false", "in_record true", "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name perioddata", + dfn = [ + [ + "block options", + "name print_input", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name modelnames", + "type keyword", + "reader urword", + "optional true", + ], + [ + "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 dimensions", + "name maxmvr", + "type integer", + "reader urword", + "optional false", + ], + [ + "block dimensions", + "name maxpackages", + "type integer", + "reader urword", + "optional false", + ], + [ + "block packages", + "name packages", + "type recarray mname pname", + "reader urword", + "shape (npackages)", + "optional false", + ], + [ + "block packages", + "name mname", + "type string", + "reader urword", + "shape", + "tagged false", + "in_record true", + "optional true", + ], + [ + "block packages", + "name pname", + "type string", + "reader urword", + "shape", + "tagged false", + "in_record true", + "optional false", + ], + [ + "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 mname1 pname1 id1 mname2 pname2 id2 mvrtype value", - "shape (maxbound)", "reader urword"], - ["block period", "name mname1", "type string", "reader urword", - "shape", "tagged false", "in_record true", "optional true"], - ["block period", "name pname1", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block period", "name id1", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block period", "name mname2", "type string", "reader urword", - "shape", "tagged false", "in_record true", "optional true"], - ["block period", "name pname2", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block period", "name id2", "type integer", "shape", - "tagged false", "in_record true", "reader urword", - "numeric_index true"], - ["block period", "name mvrtype", "type string", "shape", - "tagged false", "in_record true", "reader urword"], - ["block period", "name value", "type double precision", "shape", - "tagged false", "in_record true", "reader urword"]] + "shape (maxbound)", + "reader urword", + ], + [ + "block period", + "name mname1", + "type string", + "reader urword", + "shape", + "tagged false", + "in_record true", + "optional true", + ], + [ + "block period", + "name pname1", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name id1", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block period", + "name mname2", + "type string", + "reader urword", + "shape", + "tagged false", + "in_record true", + "optional true", + ], + [ + "block period", + "name pname2", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name id2", + "type integer", + "shape", + "tagged false", + "in_record true", + "reader urword", + "numeric_index true", + ], + [ + "block period", + "name mvrtype", + "type string", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + [ + "block period", + "name value", + "type double precision", + "shape", + "tagged false", + "in_record true", + "reader urword", + ], + ] - def __init__(self, model, loading_package=False, print_input=None, - print_flows=None, modelnames=None, budget_filerecord=None, - maxmvr=None, maxpackages=None, packages=None, perioddata=None, - filename=None, pname=None, parent_file=None): - super(ModflowGwfmvr, self).__init__(model, "mvr", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + print_input=None, + print_flows=None, + modelnames=None, + budget_filerecord=None, + maxmvr=None, + maxpackages=None, + packages=None, + perioddata=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfmvr, self).__init__( + model, "mvr", filename, pname, loading_package, parent_file + ) # set up variables self.print_input = self.build_mfdata("print_input", print_input) self.print_flows = self.build_mfdata("print_flows", print_flows) self.modelnames = self.build_mfdata("modelnames", modelnames) - self.budget_filerecord = self.build_mfdata("budget_filerecord", - budget_filerecord) + self.budget_filerecord = self.build_mfdata( + "budget_filerecord", budget_filerecord + ) self.maxmvr = self.build_mfdata("maxmvr", maxmvr) self.maxpackages = self.build_mfdata("maxpackages", maxpackages) self.packages = self.build_mfdata("packages", packages) diff --git a/flopy/mf6/modflow/mfgwfnam.py b/flopy/mf6/modflow/mfgwfnam.py index 93fe13820f..4bbf3b8e62 100644 --- a/flopy/mf6/modflow/mfgwfnam.py +++ b/flopy/mf6/modflow/mfgwfnam.py @@ -64,47 +64,119 @@ class ModflowGwfnam(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - packages = ListTemplateGenerator(('gwf6', 'nam', 'packages', - 'packages')) + + packages = ListTemplateGenerator(("gwf6", "nam", "packages", "packages")) package_abbr = "gwfnam" _package_type = "nam" dfn_file_name = "gwf-nam.dfn" - dfn = [["block options", "name list", "type string", "reader urword", - "optional true"], - ["block options", "name print_input", "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 newtonoptions", - "type record newton under_relaxation", "reader urword", - "optional true"], - ["block options", "name newton", "in_record true", - "type keyword", "reader urword"], - ["block options", "name under_relaxation", "in_record true", - "type keyword", "reader urword", "optional true"], - ["block packages", "name packages", - "type recarray ftype fname pname", "reader urword", - "optional false"], - ["block packages", "name ftype", "in_record true", "type string", - "tagged false", "reader urword"], - ["block packages", "name fname", "in_record true", "type string", - "preserve_case true", "tagged false", "reader urword"], - ["block packages", "name pname", "in_record true", "type string", - "tagged false", "reader urword", "optional true"]] + dfn = [ + [ + "block options", + "name list", + "type string", + "reader urword", + "optional true", + ], + [ + "block options", + "name print_input", + "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 newtonoptions", + "type record newton under_relaxation", + "reader urword", + "optional true", + ], + [ + "block options", + "name newton", + "in_record true", + "type keyword", + "reader urword", + ], + [ + "block options", + "name under_relaxation", + "in_record true", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block packages", + "name packages", + "type recarray ftype fname pname", + "reader urword", + "optional false", + ], + [ + "block packages", + "name ftype", + "in_record true", + "type string", + "tagged false", + "reader urword", + ], + [ + "block packages", + "name fname", + "in_record true", + "type string", + "preserve_case true", + "tagged false", + "reader urword", + ], + [ + "block packages", + "name pname", + "in_record true", + "type string", + "tagged false", + "reader urword", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, list=None, - print_input=None, print_flows=None, save_flows=None, - newtonoptions=None, packages=None, filename=None, pname=None, - parent_file=None): - super(ModflowGwfnam, self).__init__(model, "nam", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + list=None, + print_input=None, + print_flows=None, + save_flows=None, + newtonoptions=None, + packages=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfnam, self).__init__( + model, "nam", filename, pname, loading_package, parent_file + ) # set up variables self.list = self.build_mfdata("list", list) diff --git a/flopy/mf6/modflow/mfgwfnpf.py b/flopy/mf6/modflow/mfgwfnpf.py index b024c8b15d..9ef4b66f68 100644 --- a/flopy/mf6/modflow/mfgwfnpf.py +++ b/flopy/mf6/modflow/mfgwfnpf.py @@ -188,119 +188,300 @@ class ModflowGwfnpf(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - rewet_record = ListTemplateGenerator(('gwf6', 'npf', 'options', - 'rewet_record')) - icelltype = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', - 'icelltype')) - k = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k')) - k22 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k22')) - k33 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', 'k33')) - angle1 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', - 'angle1')) - angle2 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', - 'angle2')) - angle3 = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', - 'angle3')) - wetdry = ArrayTemplateGenerator(('gwf6', 'npf', 'griddata', - 'wetdry')) + + rewet_record = ListTemplateGenerator( + ("gwf6", "npf", "options", "rewet_record") + ) + icelltype = ArrayTemplateGenerator( + ("gwf6", "npf", "griddata", "icelltype") + ) + k = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k")) + k22 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k22")) + k33 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "k33")) + angle1 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle1")) + angle2 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle2")) + angle3 = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "angle3")) + wetdry = ArrayTemplateGenerator(("gwf6", "npf", "griddata", "wetdry")) package_abbr = "gwfnpf" _package_type = "npf" dfn_file_name = "gwf-npf.dfn" - dfn = [["block options", "name save_flows", "type keyword", - "reader urword", "optional true"], - ["block options", "name alternative_cell_averaging", - "type string", "valid logarithmic amt-lmk amt-hmk", - "reader urword", "optional true"], - ["block options", "name thickstrt", "type keyword", - "reader urword", "optional true"], - ["block options", "name cvoptions", - "type record variablecv dewatered", "reader urword", - "optional true"], - ["block options", "name variablecv", "in_record true", - "type keyword", "reader urword"], - ["block options", "name dewatered", "in_record true", - "type keyword", "reader urword", "optional true"], - ["block options", "name perched", "type keyword", - "reader urword", "optional true"], - ["block options", "name rewet_record", - "type record rewet wetfct iwetit ihdwet", "reader urword", - "optional true"], - ["block options", "name rewet", "type keyword", "in_record true", - "reader urword", "optional false"], - ["block options", "name wetfct", "type double precision", - "in_record true", "reader urword", "optional false"], - ["block options", "name iwetit", "type integer", - "in_record true", "reader urword", "optional false"], - ["block options", "name ihdwet", "type integer", - "in_record true", "reader urword", "optional false"], - ["block options", "name xt3doptions", "type record xt3d rhs", - "reader urword", "optional true"], - ["block options", "name xt3d", "in_record true", "type keyword", - "reader urword"], - ["block options", "name rhs", "in_record true", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_specific_discharge", "type keyword", - "reader urword", "optional true"], - ["block options", "name save_saturation", "type keyword", - "reader urword", "optional true"], - ["block options", "name k22overk", "type keyword", - "reader urword", "optional true"], - ["block options", "name k33overk", "type keyword", - "reader urword", "optional true"], - ["block griddata", "name icelltype", "type integer", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional", "default_value 0"], - ["block griddata", "name k", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional", "default_value 1.0"], - ["block griddata", "name k22", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"], - ["block griddata", "name k33", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"], - ["block griddata", "name angle1", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"], - ["block griddata", "name angle2", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"], - ["block griddata", "name angle3", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"], - ["block griddata", "name wetdry", "type double precision", - "shape (nodes)", "valid", "reader readarray", "layered true", - "optional true"]] + dfn = [ + [ + "block options", + "name save_flows", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name alternative_cell_averaging", + "type string", + "valid logarithmic amt-lmk amt-hmk", + "reader urword", + "optional true", + ], + [ + "block options", + "name thickstrt", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name cvoptions", + "type record variablecv dewatered", + "reader urword", + "optional true", + ], + [ + "block options", + "name variablecv", + "in_record true", + "type keyword", + "reader urword", + ], + [ + "block options", + "name dewatered", + "in_record true", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name perched", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name rewet_record", + "type record rewet wetfct iwetit ihdwet", + "reader urword", + "optional true", + ], + [ + "block options", + "name rewet", + "type keyword", + "in_record true", + "reader urword", + "optional false", + ], + [ + "block options", + "name wetfct", + "type double precision", + "in_record true", + "reader urword", + "optional false", + ], + [ + "block options", + "name iwetit", + "type integer", + "in_record true", + "reader urword", + "optional false", + ], + [ + "block options", + "name ihdwet", + "type integer", + "in_record true", + "reader urword", + "optional false", + ], + [ + "block options", + "name xt3doptions", + "type record xt3d rhs", + "reader urword", + "optional true", + ], + [ + "block options", + "name xt3d", + "in_record true", + "type keyword", + "reader urword", + ], + [ + "block options", + "name rhs", + "in_record true", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_specific_discharge", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name save_saturation", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name k22overk", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block options", + "name k33overk", + "type keyword", + "reader urword", + "optional true", + ], + [ + "block griddata", + "name icelltype", + "type integer", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional", + "default_value 0", + ], + [ + "block griddata", + "name k", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional", + "default_value 1.0", + ], + [ + "block griddata", + "name k22", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block griddata", + "name k33", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block griddata", + "name angle1", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block griddata", + "name angle2", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block griddata", + "name angle3", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + [ + "block griddata", + "name wetdry", + "type double precision", + "shape (nodes)", + "valid", + "reader readarray", + "layered true", + "optional true", + ], + ] - def __init__(self, model, loading_package=False, save_flows=None, - alternative_cell_averaging=None, thickstrt=None, - cvoptions=None, perched=None, rewet_record=None, - xt3doptions=None, save_specific_discharge=None, - save_saturation=None, k22overk=None, k33overk=None, - icelltype=0, k=1.0, k22=None, k33=None, angle1=None, - angle2=None, angle3=None, wetdry=None, filename=None, - pname=None, parent_file=None): - super(ModflowGwfnpf, self).__init__(model, "npf", filename, pname, - loading_package, parent_file) + def __init__( + self, + model, + loading_package=False, + save_flows=None, + alternative_cell_averaging=None, + thickstrt=None, + cvoptions=None, + perched=None, + rewet_record=None, + xt3doptions=None, + save_specific_discharge=None, + save_saturation=None, + k22overk=None, + k33overk=None, + icelltype=0, + k=1.0, + k22=None, + k33=None, + angle1=None, + angle2=None, + angle3=None, + wetdry=None, + filename=None, + pname=None, + parent_file=None, + ): + super(ModflowGwfnpf, self).__init__( + model, "npf", filename, pname, loading_package, parent_file + ) # set up variables self.save_flows = self.build_mfdata("save_flows", save_flows) self.alternative_cell_averaging = self.build_mfdata( - "alternative_cell_averaging", alternative_cell_averaging) + "alternative_cell_averaging", alternative_cell_averaging + ) self.thickstrt = self.build_mfdata("thickstrt", thickstrt) self.cvoptions = self.build_mfdata("cvoptions", cvoptions) self.perched = self.build_mfdata("perched", perched) self.rewet_record = self.build_mfdata("rewet_record", rewet_record) self.xt3doptions = self.build_mfdata("xt3doptions", xt3doptions) self.save_specific_discharge = self.build_mfdata( - "save_specific_discharge", save_specific_discharge) - self.save_saturation = self.build_mfdata("save_saturation", - save_saturation) + "save_specific_discharge", save_specific_discharge + ) + self.save_saturation = self.build_mfdata( + "save_saturation", save_saturation + ) self.k22overk = self.build_mfdata("k22overk", k22overk) self.k33overk = self.build_mfdata("k33overk", k33overk) self.icelltype = self.build_mfdata("icelltype", icelltype) diff --git a/flopy/mf6/modflow/mfgwfoc.py b/flopy/mf6/modflow/mfgwfoc.py index a6d03681f1..bd4b7096d7 100644 --- a/flopy/mf6/modflow/mfgwfoc.py +++ b/flopy/mf6/modflow/mfgwfoc.py @@ -81,109 +81,307 @@ class ModflowGwfoc(mfpackage.MFPackage): 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 + utility packages (mfutl*). For example, mfutllaktab package must have a mfgwflak package parent_file. """ - budget_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options', - 'budget_filerecord')) - head_filerecord = ListTemplateGenerator(('gwf6', 'oc', 'options', - 'head_filerecord')) - headprintrecord = ListTemplateGenerator(('gwf6', 'oc', 'options', - 'headprintrecord')) - saverecord = ListTemplateGenerator(('gwf6', 'oc', 'period', - 'saverecord')) - printrecord = ListTemplateGenerator(('gwf6', 'oc', 'period', - 'printrecord')) + + budget_filerecord = ListTemplateGenerator( + ("gwf6", "oc", "options", "budget_filerecord") + ) + head_filerecord = ListTemplateGenerator( + ("gwf6", "oc", "options", "head_filerecord") + ) + headprintrecord = ListTemplateGenerator( + ("gwf6", "oc", "options", "headprintrecord") + ) + saverecord = ListTemplateGenerator(("gwf6", "oc", "period", "saverecord")) + printrecord = ListTemplateGenerator( + ("gwf6", "oc", "period", "printrecord") + ) package_abbr = "gwfoc" _package_type = "oc" dfn_file_name = "gwf-oc.dfn" - dfn = [["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 head_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 headprintrecord", - "type record head print_format formatrecord", "shape", - "reader urword", "optional true"], - ["block options", "name print_format", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block options", "name formatrecord", - "type record columns width digits format", "shape", - "in_record true", "reader urword", "tagged", "optional false"], - ["block options", "name columns", "type integer", "shape", - "in_record true", "reader urword", "tagged true", "optional"], - ["block options", "name width", "type integer", "shape", - "in_record true", "reader urword", "tagged true", "optional"], - ["block options", "name digits", "type integer", "shape", - "in_record true", "reader urword", "tagged true", "optional"], - ["block options", "name format", "type string", "shape", - "in_record true", "reader urword", "tagged false", - "optional false"], - ["block period", "name iper", "type integer", - "block_variable True", "in_record true", "tagged false", "shape", - "valid", "reader urword", "optional false"], - ["block period", "name saverecord", - "type record save rtype ocsetting", "shape", "reader urword", - "tagged false", "optional true"], - ["block period", "name save", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block period", "name printrecord", - "type record print rtype ocsetting", "shape", "reader urword", - "tagged false", "optional true"], - ["block period", "name print", "type keyword", "shape", - "in_record true", "reader urword", "tagged true", - "optional false"], - ["block period", "name rtype", "type string", "shape", - "in_record true", "reader urword", "tagged false", - "optional false"], - ["block period", "name ocsetting", - "type keystring all first last frequency steps", "shape", - "tagged false", "in_record true", "reader urword"], - ["block period", "name all", "type keyword", "shape", - "in_record true", "reader urword"], - ["block period", "name first", "type keyword", "shape", - "in_record true", "reader urword"], - ["block period", "name last", "type keyword", "shape", - "in_record true", "reader urword"], - ["block period", "name frequency", "type integer", "shape", - "tagged true", "in_record true", "reader urword"], - ["block period", "name steps", "type integer", "shape (