diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 911a1849254..592af4bebb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,6 +47,14 @@ on: description: 'Version number to use for release.' required: true type: string + models: + description: 'Models to include in the release build' + required: false + type: string + exchanges: + description: 'Exchanges to include in the release build' + required: false + type: string outputs: version: description: 'Version number used for release' @@ -130,7 +138,7 @@ jobs: if: runner.os != 'Windows' working-directory: modflow6 run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin + meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin -Dmodels=${{ inputs.models }} -Dexchanges=${{ inputs.exchanges }} meson install -C builddir meson test --verbose --no-rebuild -C builddir @@ -139,7 +147,7 @@ jobs: working-directory: modflow6 shell: pwsh run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin + meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin -Dmodels=${{ inputs.models }} -Dexchanges=${{ inputs.exchanges }} meson install -C builddir meson test --verbose --no-rebuild -C builddir @@ -346,8 +354,32 @@ jobs: - name: Build example models if: inputs.full == true - working-directory: modflow6-examples/etc - run: python ci_build_files.py + working-directory: modflow6-examples/scripts + shell: python + run: | + from pathlib import Path + exclude = ["ex-gwf-capture.py"] + models = "${{ inputs.models }}"".split(',') + scripts = [ + fname + for fname in Path.cwd().glob("*") + if fname.suffix == ".py" + and fname.stem not in exclude + and any(fname.stem.startswith(f"ex-{m}") for m in models) + ] + if patterns: + scripts = [s for s in scripts if any(p in s for p in patterns)] + for script in scripts: + argv = [ + sys.executable, + script, + "--no_run", + "--no_plot", + "--destination", + examples_path, + ] + print(f"running {argv} in {scripts_folder}") + run_command(argv, scripts_folder) - name: Create full docs folder structure if: inputs.full == true @@ -389,7 +421,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} run: | mkdir -p "${{ needs.build.outputs.distname }}/doc" - cmd="python modflow6/distribution/build_docs.py -b bin -o doc" + cmd="python modflow6/distribution/build_docs.py -b bin -o doc --models ${{ inputs.models }} --exchanges ${{ inputs.exchanges }}" if [[ "${{ inputs.full }}" == "true" ]]; then cmd="$cmd --full" fi diff --git a/distribution/build_dist.py b/distribution/build_dist.py index 68c454ec650..9318c35e58a 100644 --- a/distribution/build_dist.py +++ b/distribution/build_dist.py @@ -8,6 +8,7 @@ from pathlib import Path from pprint import pprint from shutil import copytree +from typing import List, Optional import pytest from modflow_devtools.build import meson_build @@ -22,7 +23,6 @@ # default paths _project_root_path = get_project_root_path() -_examples_repo_path = _project_root_path.parent / "modflow6-examples" _build_path = _project_root_path / "builddir" # OS-specific extensions @@ -95,38 +95,6 @@ def test_copy_sources(tmp_path): assert (tmp_path / "msvs" / "mf6.sln").is_file() -def build_examples(examples_repo_path: PathLike, overwrite: bool = False): - examples_repo_path = Path(examples_repo_path).expanduser().absolute() - - # create examples, but don't run them - examples_path = examples_repo_path / "examples" - examples_path.mkdir(parents=True, exist_ok=True) - if not overwrite and any(get_model_paths(examples_path)): - print(f"Examples already built") - else: - print(f"Building examples") - scripts_folder = examples_repo_path / "scripts" - exclude_list = ["ex-gwf-capture.py"] - scripts = [ - fname - for fname in scripts_folder.glob("*") - if fname.suffix == ".py" - and fname.stem.startswith("ex-") - and fname.stem not in exclude_list - ] - for script in scripts: - argv = [ - sys.executable, - script, - "--no_run", - "--no_plot", - "--destination", - examples_path, - ] - print(f"running {argv} in {scripts_folder}") - run_command(argv, scripts_folder) - - def setup_examples( bin_path: PathLike, examples_path: PathLike, overwrite: bool = False ): @@ -197,7 +165,6 @@ def build_programs_meson( ): build_path = Path(build_path).expanduser().absolute() bin_path = Path(bin_path).expanduser().absolute() - exe_paths = [ bin_path / f"mf6{_eext}", bin_path / f"zbud6{_eext}", @@ -285,7 +252,6 @@ def test_build_makefiles(tmp_path): def build_distribution( build_path: PathLike, output_path: PathLike, - examples_repo_path: PathLike, full: bool = False, overwrite: bool = False, ): @@ -293,7 +259,6 @@ def build_distribution( build_path = Path(build_path).expanduser().absolute() output_path = Path(output_path).expanduser().absolute() - examples_repo_path = Path(examples_repo_path).expanduser().absolute() # binaries build_programs_meson( @@ -322,8 +287,6 @@ def build_distribution( build_documentation( bin_path=output_path / "bin", output_path=output_path / "doc", - examples_repo_path=examples_repo_path, - # benchmarks_path=_benchmarks_path / "run-time-comparison.md", full=full, overwrite=overwrite, ) @@ -337,7 +300,6 @@ def test_build_distribution(tmp_path, full): build_distribution( build_path=tmp_path / "builddir", output_path=output_path, - examples_repo_path=_examples_repo_path, full=full, overwrite=True, ) @@ -395,13 +357,6 @@ def test_build_distribution(tmp_path, full): default=str(_project_root_path / "distribution"), help="Path to create distribution artifacts", ) - parser.add_argument( - "-e", - "--examples-repo-path", - required=False, - default=str(_examples_repo_path), - help="Path to directory containing modflow6 example models", - ) parser.add_argument( "--full", required=False, @@ -420,20 +375,10 @@ def test_build_distribution(tmp_path, full): args = parser.parse_args() build_path = Path(args.build_path) out_path = Path(args.output_path) - examples_repo_path = ( - Path(args.examples_repo_path) - if args.examples_repo_path - else _examples_repo_path - ) - assert ( - examples_repo_path.is_dir() - ), f"Examples repo not found at path: {examples_repo_path}" out_path.mkdir(parents=True, exist_ok=True) - build_distribution( build_path=build_path, output_path=out_path, - examples_repo_path=examples_repo_path, full=args.full, overwrite=args.force, ) diff --git a/distribution/build_docs.py b/distribution/build_docs.py index 032ca846f47..6c806b26c7e 100644 --- a/distribution/build_docs.py +++ b/distribution/build_docs.py @@ -51,7 +51,6 @@ # OS-specific extensions _system = platform.system() _eext = ".exe" if _system == "Windows" else "" -_soext = ".dll" if _system == "Windows" else ".so" if _system == "Linux" else ".dylib" # publications included in full dist docs _publication_urls = [ @@ -213,7 +212,9 @@ def build_deprecations_tex(): assert (_docs_path / "ReleaseNotes" / f"{deprecations_path.stem}.tex").is_file() -def build_mf6io_tex_from_dfn(overwrite: bool = False): +def build_mf6io_tex_from_dfn( + overwrite: bool = False, + models: Optional[List[str]] = None): if overwrite: clean_tex_files() @@ -255,7 +256,10 @@ def files_match(tex_path, dfn_path, ignored): f.unlink() # run python script - out, err, ret = run_cmd(sys.executable, "mf6ivar.py") + args = [sys.executable, "mf6ivar.py"] + for model in models: + args += ["--model", model] + out, err, ret = run_cmd(*args) assert not ret, out + err # check that dfn and tex files match @@ -595,6 +599,12 @@ def test_build_documentation(tmp_path): default="MODFLOW-USGS", help="Repository owner (substitute your own for a fork)", ) + parser.add_argument( + "--models", + required=False, + default="" + ) + parser.add_argument() args = parser.parse_args() output_path = Path(args.output_path).expanduser().absolute() output_path.mkdir(parents=True, exist_ok=True) diff --git a/doc/mf6io/mf6ivar/md/mf6ivar.md b/doc/mf6io/mf6ivar/md/mf6ivar.md index f2fdfdd12fd..99c228e44c5 100644 --- a/doc/mf6io/mf6ivar/md/mf6ivar.md +++ b/doc/mf6io/mf6ivar/md/mf6ivar.md @@ -2,33 +2,6 @@ | component | package | block | variable name | type | description | | :---: | :---: | :---: | :---: | :---: | --- | -| SIM | NAM | OPTIONS | CONTINUE | KEYWORD | keyword flag to indicate that the simulation should continue even if one or more solutions do not converge. | -| SIM | NAM | OPTIONS | NOCHECK | KEYWORD | keyword flag to indicate that the model input check routines should not be called prior to each time step. Checks are performed by default. | -| SIM | NAM | OPTIONS | MEMORY_PRINT_OPTION | STRING | is a flag that controls printing of detailed memory manager usage to the end of the simulation list file. NONE means do not print detailed information. SUMMARY means print only the total memory for each simulation component. ALL means print information for each variable stored in the memory manager. NONE is default if MEMORY\_PRINT\_OPTION is not specified. | -| SIM | NAM | OPTIONS | MAXERRORS | INTEGER | maximum number of errors that will be stored and printed. | -| SIM | NAM | OPTIONS | PRINT_INPUT | KEYWORD | keyword to activate printing of simulation input summaries to the simulation list file (mfsim.lst). With this keyword, input summaries will be written for those packages that support newer input data model routines. Not all packages are supported yet by the newer input data model routines. | -| SIM | NAM | TIMING | TDIS6 | STRING | is the name of the Temporal Discretization (TDIS) Input File. | -| SIM | NAM | MODELS | MTYPE | STRING | is the type of model to add to simulation. | -| SIM | NAM | MODELS | MFNAME | STRING | is the file name of the model name file. | -| SIM | NAM | MODELS | MNAME | STRING | is the user-assigned name of the model. The model name cannot exceed 16 characters and must not have blanks within the name. The model name is case insensitive; any lowercase letters are converted and stored as upper case letters. | -| SIM | NAM | EXCHANGES | EXGTYPE | STRING | is the exchange type. | -| SIM | NAM | EXCHANGES | EXGFILE | STRING | is the input file for the exchange. | -| SIM | NAM | EXCHANGES | EXGMNAMEA | STRING | is the name of the first model that is part of this exchange. | -| SIM | NAM | EXCHANGES | EXGMNAMEB | STRING | is the name of the second model that is part of this exchange. | -| SIM | NAM | SOLUTIONGROUP | GROUP_NUM | INTEGER | is the group number of the solution group. Solution groups must be numbered sequentially, starting with group number one. | -| SIM | NAM | SOLUTIONGROUP | MXITER | INTEGER | is the maximum number of outer iterations for this solution group. The default value is 1. If there is only one solution in the solution group, then MXITER must be 1. | -| SIM | NAM | SOLUTIONGROUP | SLNTYPE | STRING | is the type of solution. The Integrated Model Solution (IMS6) is the only supported option in this version. | -| SIM | NAM | SOLUTIONGROUP | SLNFNAME | STRING | name of file containing solution input. | -| SIM | NAM | SOLUTIONGROUP | SLNMNAMES | STRING (:) | is the array of model names to add to this solution. The number of model names is determined by the number of model names the user provides on this line. | -| SIM | TDIS | OPTIONS | TIME_UNITS | STRING | is the time units of the simulation. This is a text string that is used as a label within model output files. Values for time\_units may be ``unknown'', ``seconds'', ``minutes'', ``hours'', ``days'', or ``years''. The default time unit is ``unknown''. | -| SIM | TDIS | OPTIONS | START_DATE_TIME | STRING | is the starting date and time of the simulation. This is a text string that is used as a label within the simulation list file. The value has no effect on the simulation. The recommended format for the starting date and time is described at https://www.w3.org/TR/NOTE-datetime. | -| SIM | TDIS | OPTIONS | ATS6 | KEYWORD | keyword to specify that record corresponds to an adaptive time step (ATS) input file. The behavior of ATS and a description of the input file is provided separately. | -| SIM | TDIS | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| SIM | TDIS | OPTIONS | ATS6_FILENAME | STRING | defines an adaptive time step (ATS) input file defining ATS controls. Records in the ATS file can be used to override the time step behavior for selected stress periods. | -| SIM | TDIS | DIMENSIONS | NPER | INTEGER | is the number of stress periods for the simulation. | -| SIM | TDIS | PERIODDATA | PERLEN | DOUBLE PRECISION | is the length of a stress period. | -| SIM | TDIS | PERIODDATA | NSTP | INTEGER | is the number of time steps in a stress period. | -| SIM | TDIS | PERIODDATA | TSMULT | DOUBLE PRECISION | is the multiplier for the length of successive time steps. The length of a time step is calculated by multiplying the length of the previous time step by TSMULT. The length of the first time step, $\Delta t_1$, is related to PERLEN, NSTP, and TSMULT by the relation $\Delta t_1= perlen \frac{tsmult - 1}{tsmult^{nstp}-1}$. | | EXG | GWFGWF | OPTIONS | AUXILIARY | STRING (NAUX) | an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package. If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models. | | EXG | GWFGWF | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of GWF Exchange cells. | | EXG | GWFGWF | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of exchange entries will be echoed to the listing file immediately after it is read. | @@ -81,145 +54,15 @@ | EXG | GWTGWT | EXCHANGEDATA | HWVA | DOUBLE PRECISION | is the horizontal width of the flow connection between cell 1 and cell 2 if IHC $>$ 0, or it is the area perpendicular to flow of the vertical connection between cell 1 and cell 2 if IHC = 0. | | EXG | GWTGWT | EXCHANGEDATA | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each GWTGWT Exchange. The values of auxiliary variables must be present for each exchange. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. | | EXG | GWTGWT | EXCHANGEDATA | BOUNDNAME | STRING | name of the GWT Exchange cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| SLN | IMS | OPTIONS | PRINT_OPTION | STRING | is a flag that controls printing of convergence information from the solver. NONE means print nothing. SUMMARY means print only the total number of iterations and nonlinear residual reduction summaries. ALL means print linear matrix solver convergence information to the solution listing file and model specific linear matrix solver convergence information to each model listing file in addition to SUMMARY information. NONE is default if PRINT\_OPTION is not specified. | -| SLN | IMS | OPTIONS | COMPLEXITY | STRING | is an optional keyword that defines default non-linear and linear solver parameters. SIMPLE - indicates that default solver input values will be defined that work well for nearly linear models. This would be used for models that do not include nonlinear stress packages and models that are either confined or consist of a single unconfined layer that is thick enough to contain the water table within a single layer. MODERATE - indicates that default solver input values will be defined that work well for moderately nonlinear models. This would be used for models that include nonlinear stress packages and models that consist of one or more unconfined layers. The MODERATE option should be used when the SIMPLE option does not result in successful convergence. COMPLEX - indicates that default solver input values will be defined that work well for highly nonlinear models. This would be used for models that include nonlinear stress packages and models that consist of one or more unconfined layers representing complex geology and surface-water/groundwater interaction. The COMPLEX option should be used when the MODERATE option does not result in successful convergence. Non-linear and linear solver parameters assigned using a specified complexity can be modified in the NONLINEAR and LINEAR blocks. If the COMPLEXITY option is not specified, NONLINEAR and LINEAR variables will be assigned the simple complexity values. | -| SLN | IMS | OPTIONS | CSV_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values solver convergence output. The CSV\_OUTPUT option has been deprecated and split into the CSV_OUTER_OUTPUT and CSV_INNER_OUTPUT options. Starting with MODFLOW 6 version 6.1.1 if the CSV_OUTPUT option is specified, then it is treated as the CSV_OUTER_OUTPUT option. | -| SLN | IMS | OPTIONS | CSVFILE | STRING | name of the ascii comma separated values output file to write solver convergence information. If PRINT\_OPTION is NONE or SUMMARY, comma separated values output includes maximum head change convergence information at the end of each outer iteration for each time step. If PRINT\_OPTION is ALL, comma separated values output includes maximum head change and maximum residual convergence information for the solution and each model (if the solution includes more than one model) and linear acceleration information for each inner iteration. | -| SLN | IMS | OPTIONS | CSV_OUTER_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values outer iteration convergence output. | -| SLN | IMS | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | -| SLN | IMS | OPTIONS | OUTER_CSVFILE | STRING | name of the ascii comma separated values output file to write maximum dependent-variable (for example, head) change convergence information at the end of each outer iteration for each time step. | -| SLN | IMS | OPTIONS | CSV_INNER_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values solver convergence output. | -| SLN | IMS | OPTIONS | INNER_CSVFILE | STRING | name of the ascii comma separated values output file to write solver convergence information. Comma separated values output includes maximum dependent-variable (for example, head) change and maximum residual convergence information for the solution and each model (if the solution includes more than one model) and linear acceleration information for each inner iteration. | -| SLN | IMS | OPTIONS | NO_PTC | KEYWORD | is a flag that is used to disable pseudo-transient continuation (PTC). Option only applies to steady-state stress periods for models using the Newton-Raphson formulation. For many problems, PTC can significantly improve convergence behavior for steady-state simulations, and for this reason it is active by default. In some cases, however, PTC can worsen the convergence behavior, especially when the initial conditions are similar to the solution. When the initial conditions are similar to, or exactly the same as, the solution and convergence is slow, then the NO\_PTC FIRST option should be used to deactivate PTC for the first stress period. The NO\_PTC ALL option should also be used in order to compare convergence behavior with other MODFLOW versions, as PTC is only available in MODFLOW 6. | -| SLN | IMS | OPTIONS | NO_PTC_OPTION | STRING | is an optional keyword that is used to define options for disabling pseudo-transient continuation (PTC). FIRST is an optional keyword to disable PTC for the first stress period, if steady-state and one or more model is using the Newton-Raphson formulation. ALL is an optional keyword to disable PTC for all steady-state stress periods for models using the Newton-Raphson formulation. If NO\_PTC\_OPTION is not specified, the NO\_PTC ALL option is used. | -| SLN | IMS | OPTIONS | ATS_OUTER_MAXIMUM_FRACTION | DOUBLE PRECISION | real value defining the fraction of the maximum allowable outer iterations used with the Adaptive Time Step (ATS) capability if it is active. If this value is set to zero by the user, then this solution will have no effect on ATS behavior. This value must be greater than or equal to zero and less than or equal to 0.5 or the program will terminate with an error. If it is not specified by the user, then it is assigned a default value of one third. When the number of outer iterations for this solution is less than the product of this value and the maximum allowable outer iterations, then ATS will increase the time step length by a factor of DTADJ in the ATS input file. When the number of outer iterations for this solution is greater than the maximum allowable outer iterations minus the product of this value and the maximum allowable outer iterations, then the ATS (if active) will decrease the time step length by a factor of 1 / DTADJ. | -| SLN | IMS | NONLINEAR | OUTER_HCLOSE | DOUBLE PRECISION | real value defining the head change criterion for convergence of the outer (nonlinear) iterations, in units of length. When the maximum absolute value of the head change at all nodes during an iteration is less than or equal to OUTER\_HCLOSE, iteration stops. Commonly, OUTER\_HCLOSE equals 0.01. The OUTER\_HCLOSE option has been deprecated in favor of the more general OUTER\_DVCLOSE (for dependent variable), however either one can be specified in order to maintain backward compatibility. | -| SLN | IMS | NONLINEAR | OUTER_DVCLOSE | DOUBLE PRECISION | real value defining the dependent-variable (for example, head) change criterion for convergence of the outer (nonlinear) iterations, in units of the dependent-variable (for example, length for head). When the maximum absolute value of the dependent-variable change at all nodes during an iteration is less than or equal to OUTER\_DVCLOSE, iteration stops. Commonly, OUTER\_DVCLOSE equals 0.01. The keyword, OUTER\_HCLOSE can be still be specified instead of OUTER\_DVCLOSE for backward compatibility with previous versions of MODFLOW 6 but eventually OUTER\_HCLOSE will be deprecated and specification of OUTER\_HCLOSE will cause MODFLOW 6 to terminate with an error. | -| SLN | IMS | NONLINEAR | OUTER_RCLOSEBND | DOUBLE PRECISION | real value defining the residual tolerance for convergence of model packages that solve a separate equation not solved by the IMS linear solver. This value represents the maximum allowable residual between successive outer iterations at any single model package element. An example of a model package that would use OUTER\_RCLOSEBND to evaluate convergence is the SFR package which solves a continuity equation for each reach. The OUTER\_RCLOSEBND option is deprecated and has no effect on simulation results as of version 6.1.1. The keyword, OUTER\_RCLOSEBND can be still be specified for backward compatibility with previous versions of MODFLOW 6 but eventually specificiation of OUTER\_RCLOSEBND will cause MODFLOW 6 to terminate with an error. | -| SLN | IMS | NONLINEAR | OUTER_MAXIMUM | INTEGER | integer value defining the maximum number of outer (nonlinear) iterations -- that is, calls to the solution routine. For a linear problem OUTER\_MAXIMUM should be 1. | -| SLN | IMS | NONLINEAR | UNDER_RELAXATION | STRING | is an optional keyword that defines the nonlinear under-relaxation schemes used. Under-relaxation is also known as dampening, and is used to reduce the size of the calculated dependent variable before proceeding to the next outer iteration. Under-relaxation can be an effective tool for highly nonlinear models when there are large and often counteracting changes in the calculated dependent variable between successive outer iterations. By default under-relaxation is not used. NONE - under-relaxation is not used (default). SIMPLE - Simple under-relaxation scheme with a fixed relaxation factor (UNDER\_RELAXATION\_GAMMA) is used. COOLEY - Cooley under-relaxation scheme is used. DBD - delta-bar-delta under-relaxation is used. Note that the under-relaxation schemes are often used in conjunction with problems that use the Newton-Raphson formulation, however, experience has indicated that they also work well for non-Newton problems, such as those with the wet/dry options of MODFLOW 6. | -| SLN | IMS | NONLINEAR | UNDER_RELAXATION_GAMMA | DOUBLE PRECISION | real value defining either the relaxation factor for the SIMPLE scheme or the history or memory term factor of the Cooley and delta-bar-delta algorithms. For the SIMPLE scheme, a value of one indicates that there is no under-relaxation and the full head change is applied. This value can be gradually reduced from one as a way to improve convergence; for well behaved problems, using a value less than one can increase the number of outer iterations required for convergence and needlessly increase run times. UNDER\_RELAXATION\_GAMMA must be greater than zero for the SIMPLE scheme or the program will terminate with an error. For the Cooley and delta-bar-delta schemes, UNDER\_RELAXATION\_GAMMA is a memory term that can range between zero and one. When UNDER\_RELAXATION\_GAMMA is zero, only the most recent history (previous iteration value) is maintained. As UNDER\_RELAXATION\_GAMMA is increased, past history of iteration changes has greater influence on the memory term. The memory term is maintained as an exponential average of past changes. Retaining some past history can overcome granular behavior in the calculated function surface and therefore helps to overcome cyclic patterns of non-convergence. The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems. UNDER\_RELAXATION\_GAMMA only needs to be specified if UNDER\_RELAXATION is not NONE. | -| SLN | IMS | NONLINEAR | UNDER_RELAXATION_THETA | DOUBLE PRECISION | real value defining the reduction factor for the learning rate (under-relaxation term) of the delta-bar-delta algorithm. The value of UNDER\_RELAXATION\_THETA is between zero and one. If the change in the dependent-variable (for example, head) is of opposite sign to that of the previous iteration, the under-relaxation term is reduced by a factor of UNDER\_RELAXATION\_THETA. The value usually ranges from 0.3 to 0.9; a value of 0.7 works well for most problems. UNDER\_RELAXATION\_THETA only needs to be specified if UNDER\_RELAXATION is DBD. | -| SLN | IMS | NONLINEAR | UNDER_RELAXATION_KAPPA | DOUBLE PRECISION | real value defining the increment for the learning rate (under-relaxation term) of the delta-bar-delta algorithm. The value of UNDER\_RELAXATION\_kappa is between zero and one. If the change in the dependent-variable (for example, head) is of the same sign to that of the previous iteration, the under-relaxation term is increased by an increment of UNDER\_RELAXATION\_KAPPA. The value usually ranges from 0.03 to 0.3; a value of 0.1 works well for most problems. UNDER\_RELAXATION\_KAPPA only needs to be specified if UNDER\_RELAXATION is DBD. | -| SLN | IMS | NONLINEAR | UNDER_RELAXATION_MOMENTUM | DOUBLE PRECISION | real value defining the fraction of past history changes that is added as a momentum term to the step change for a nonlinear iteration. The value of UNDER\_RELAXATION\_MOMENTUM is between zero and one. A large momentum term should only be used when small learning rates are expected. Small amounts of the momentum term help convergence. The value usually ranges from 0.0001 to 0.1; a value of 0.001 works well for most problems. UNDER\_RELAXATION\_MOMENTUM only needs to be specified if UNDER\_RELAXATION is DBD. | -| SLN | IMS | NONLINEAR | BACKTRACKING_NUMBER | INTEGER | integer value defining the maximum number of backtracking iterations allowed for residual reduction computations. If BACKTRACKING\_NUMBER = 0 then the backtracking iterations are omitted. The value usually ranges from 2 to 20; a value of 10 works well for most problems. | -| SLN | IMS | NONLINEAR | BACKTRACKING_TOLERANCE | DOUBLE PRECISION | real value defining the tolerance for residual change that is allowed for residual reduction computations. BACKTRACKING\_TOLERANCE should not be less than one to avoid getting stuck in local minima. A large value serves to check for extreme residual increases, while a low value serves to control step size more severely. The value usually ranges from 1.0 to 10$^6$; a value of 10$^4$ works well for most problems but lower values like 1.1 may be required for harder problems. BACKTRACKING\_TOLERANCE only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | -| SLN | IMS | NONLINEAR | BACKTRACKING_REDUCTION_FACTOR | DOUBLE PRECISION | real value defining the reduction in step size used for residual reduction computations. The value of BACKTRACKING\_REDUCTION\_FACTOR is between zero and one. The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems. BACKTRACKING\_REDUCTION\_FACTOR only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | -| SLN | IMS | NONLINEAR | BACKTRACKING_RESIDUAL_LIMIT | DOUBLE PRECISION | real value defining the limit to which the residual is reduced with backtracking. If the residual is smaller than BACKTRACKING\_RESIDUAL\_LIMIT, then further backtracking is not performed. A value of 100 is suitable for large problems and residual reduction to smaller values may only slow down computations. BACKTRACKING\_RESIDUAL\_LIMIT only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | -| SLN | IMS | LINEAR | INNER_MAXIMUM | INTEGER | integer value defining the maximum number of inner (linear) iterations. The number typically depends on the characteristics of the matrix solution scheme being used. For nonlinear problems, INNER\_MAXIMUM usually ranges from 60 to 600; a value of 100 will be sufficient for most linear problems. | -| SLN | IMS | LINEAR | INNER_HCLOSE | DOUBLE PRECISION | real value defining the head change criterion for convergence of the inner (linear) iterations, in units of length. When the maximum absolute value of the head change at all nodes during an iteration is less than or equal to INNER\_HCLOSE, the matrix solver assumes convergence. Commonly, INNER\_HCLOSE is set equal to or an order of magnitude less than the OUTER\_HCLOSE value specified for the NONLINEAR block. The INNER\_HCLOSE keyword has been deprecated in favor of the more general INNER\_DVCLOSE (for dependent variable), however either one can be specified in order to maintain backward compatibility. | -| SLN | IMS | LINEAR | INNER_DVCLOSE | DOUBLE PRECISION | real value defining the dependent-variable (for example, head) change criterion for convergence of the inner (linear) iterations, in units of the dependent-variable (for example, length for head). When the maximum absolute value of the dependent-variable change at all nodes during an iteration is less than or equal to INNER\_DVCLOSE, the matrix solver assumes convergence. Commonly, INNER\_DVCLOSE is set equal to or an order of magnitude less than the OUTER\_DVCLOSE value specified for the NONLINEAR block. The keyword, INNER\_HCLOSE can be still be specified instead of INNER\_DVCLOSE for backward compatibility with previous versions of MODFLOW 6 but eventually INNER\_HCLOSE will be deprecated and specification of INNER\_HCLOSE will cause MODFLOW 6 to terminate with an error. | -| SLN | IMS | LINEAR | INNER_RCLOSE | DOUBLE PRECISION | real value that defines the flow residual tolerance for convergence of the IMS linear solver and specific flow residual criteria used. This value represents the maximum allowable residual at any single node. Value is in units of length cubed per time, and must be consistent with \mf length and time units. Usually a value of $1.0 \times 10^{-1}$ is sufficient for the flow-residual criteria when meters and seconds are the defined \mf length and time. | -| SLN | IMS | LINEAR | RCLOSE_OPTION | STRING | an optional keyword that defines the specific flow residual criterion used. STRICT--an optional keyword that is used to specify that INNER\_RCLOSE represents a infinity-Norm (absolute convergence criteria) and that the dependent-variable (for example, head) and flow convergence criteria must be met on the first inner iteration (this criteria is equivalent to the criteria used by the MODFLOW-2005 PCG package~\citep{hill1990preconditioned}). L2NORM\_RCLOSE--an optional keyword that is used to specify that INNER\_RCLOSE represents a L-2 Norm closure criteria instead of a infinity-Norm (absolute convergence criteria). When L2NORM\_RCLOSE is specified, a reasonable initial INNER\_RCLOSE value is 0.1 times the number of active cells when meters and seconds are the defined \mf length and time. RELATIVE\_RCLOSE--an optional keyword that is used to specify that INNER\_RCLOSE represents a relative L-2 Norm reduction closure criteria instead of a infinity-Norm (absolute convergence criteria). When RELATIVE\_RCLOSE is specified, a reasonable initial INNER\_RCLOSE value is $1.0 \times 10^{-4}$ and convergence is achieved for a given inner (linear) iteration when $\Delta h \le$ INNER\_DVCLOSE and the current L-2 Norm is $\le$ the product of the RELATIVE\_RCLOSE and the initial L-2 Norm for the current inner (linear) iteration. If RCLOSE\_OPTION is not specified, an absolute residual (infinity-norm) criterion is used. | -| SLN | IMS | LINEAR | LINEAR_ACCELERATION | STRING | a keyword that defines the linear acceleration method used by the default IMS linear solvers. CG - preconditioned conjugate gradient method. BICGSTAB - preconditioned bi-conjugate gradient stabilized method. | -| SLN | IMS | LINEAR | RELAXATION_FACTOR | DOUBLE PRECISION | optional real value that defines the relaxation factor used by the incomplete LU factorization preconditioners (MILU(0) and MILUT). RELAXATION\_FACTOR is unitless and should be greater than or equal to 0.0 and less than or equal to 1.0. RELAXATION\_FACTOR values of about 1.0 are commonly used, and experience suggests that convergence can be optimized in some cases with relax values of 0.97. A RELAXATION\_FACTOR value of 0.0 will result in either ILU(0) or ILUT preconditioning (depending on the value specified for PRECONDITIONER\_LEVELS and/or PRECONDITIONER\_DROP\_TOLERANCE). By default, RELAXATION\_FACTOR is zero. | -| SLN | IMS | LINEAR | PRECONDITIONER_LEVELS | INTEGER | optional integer value defining the level of fill for ILU decomposition used in the ILUT and MILUT preconditioners. Higher levels of fill provide more robustness but also require more memory. For optimal performance, it is suggested that a large level of fill be applied (7 or 8) with use of a drop tolerance. Specification of a PRECONDITIONER\_LEVELS value greater than zero results in use of the ILUT preconditioner. By default, PRECONDITIONER\_LEVELS is zero and the zero-fill incomplete LU factorization preconditioners (ILU(0) and MILU(0)) are used. | -| SLN | IMS | LINEAR | PRECONDITIONER_DROP_TOLERANCE | DOUBLE PRECISION | optional real value that defines the drop tolerance used to drop preconditioner terms based on the magnitude of matrix entries in the ILUT and MILUT preconditioners. A value of $10^{-4}$ works well for most problems. By default, PRECONDITIONER\_DROP\_TOLERANCE is zero and the zero-fill incomplete LU factorization preconditioners (ILU(0) and MILU(0)) are used. | -| SLN | IMS | LINEAR | NUMBER_ORTHOGONALIZATIONS | INTEGER | optional integer value defining the interval used to explicitly recalculate the residual of the flow equation using the solver coefficient matrix, the latest dependent-variable (for example, head) estimates, and the right hand side. For problems that benefit from explicit recalculation of the residual, a number between 4 and 10 is appropriate. By default, NUMBER\_ORTHOGONALIZATIONS is zero. | -| SLN | IMS | LINEAR | SCALING_METHOD | STRING | an optional keyword that defines the matrix scaling approach used. By default, matrix scaling is not applied. NONE - no matrix scaling applied. DIAGONAL - symmetric matrix scaling using the POLCG preconditioner scaling method in Hill (1992). L2NORM - symmetric matrix scaling using the L2 norm. | -| SLN | IMS | LINEAR | REORDERING_METHOD | STRING | an optional keyword that defines the matrix reordering approach used. By default, matrix reordering is not applied. NONE - original ordering. RCM - reverse Cuthill McKee ordering. MD - minimum degree ordering. | -| GWF | NAM | OPTIONS | LIST | STRING | is name of the listing file to create for this GWF model. If not specified, then the name of the list file will be the basename of the GWF model name file and the '.lst' extension. For example, if the GWF name file is called ``my.model.nam'' then the list file will be called ``my.model.lst''. | -| GWF | NAM | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of all model stress package information will be written to the listing file immediately after it is read. | -| GWF | NAM | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of all model package flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | NAM | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that all model package flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | NAM | OPTIONS | NEWTON | KEYWORD | keyword that activates the Newton-Raphson formulation for groundwater flow between connected, convertible groundwater cells and stress packages that support calculation of Newton-Raphson terms for groundwater exchanges. Cells will not dry when this option is used. By default, the Newton-Raphson formulation is not applied. | -| GWF | NAM | OPTIONS | UNDER_RELAXATION | KEYWORD | keyword that indicates whether the groundwater head in a cell will be under-relaxed when water levels fall below the bottom of the model below any given cell. By default, Newton-Raphson UNDER\_RELAXATION is not applied. | -| GWF | NAM | PACKAGES | FTYPE | STRING | 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. | -| GWF | NAM | PACKAGES | FNAME | STRING | 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. | -| GWF | NAM | PACKAGES | PNAME | STRING | 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 GWF 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. | -| GWF | DIS | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | -| GWF | DIS | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | -| GWF | DIS | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | -| GWF | DIS | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | -| GWF | DIS | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | -| GWF | DIS | DIMENSIONS | NLAY | INTEGER | is the number of layers in the model grid. | -| GWF | DIS | DIMENSIONS | NROW | INTEGER | is the number of rows in the model grid. | -| GWF | DIS | DIMENSIONS | NCOL | INTEGER | is the number of columns in the model grid. | -| GWF | DIS | GRIDDATA | DELR | DOUBLE PRECISION (NCOL) | is the column spacing in the row direction. | -| GWF | DIS | GRIDDATA | DELC | DOUBLE PRECISION (NROW) | is the row spacing in the column direction. | -| GWF | DIS | GRIDDATA | TOP | DOUBLE PRECISION (NCOL, NROW) | is the top elevation for each cell in the top model layer. | -| GWF | DIS | GRIDDATA | BOTM | DOUBLE PRECISION (NCOL, NROW, NLAY) | is the bottom elevation for each cell. | -| GWF | DIS | GRIDDATA | IDOMAIN | INTEGER (NCOL, NROW, NLAY) | 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 | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | -| GWF | DISV | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | -| GWF | DISV | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | -| GWF | DISV | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | -| GWF | DISV | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | -| GWF | DISV | DIMENSIONS | NLAY | INTEGER | is the number of layers in the model grid. | -| GWF | DISV | DIMENSIONS | NCPL | INTEGER | is the number of cells per layer. This is a constant value for the grid and it applies to all layers. | -| GWF | DISV | DIMENSIONS | NVERT | INTEGER | is the total number of (x, y) vertex pairs used to characterize the horizontal configuration of the model grid. | -| GWF | DISV | GRIDDATA | TOP | DOUBLE PRECISION (NCPL) | is the top elevation for each cell in the top model layer. | -| GWF | DISV | GRIDDATA | BOTM | DOUBLE PRECISION (NCPL, NLAY) | is the bottom elevation for each cell. | -| GWF | DISV | GRIDDATA | IDOMAIN | INTEGER (NCPL, NLAY) | 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 | IV | INTEGER | is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. | -| GWF | DISV | VERTICES | XV | DOUBLE PRECISION | is the x-coordinate for the vertex. | -| GWF | DISV | VERTICES | YV | DOUBLE PRECISION | is the y-coordinate for the vertex. | -| GWF | DISV | CELL2D | ICELL2D | INTEGER | is the CELL2D number. Records in the CELL2D block must be listed in consecutive order from the first to the last. | -| GWF | DISV | CELL2D | XC | DOUBLE PRECISION | is the x-coordinate for the cell center. | -| GWF | DISV | CELL2D | YC | DOUBLE PRECISION | is the y-coordinate for the cell center. | -| GWF | DISV | CELL2D | NCVERT | INTEGER | is the number of vertices required to define the cell. There may be a different number of vertices for each cell. | -| GWF | DISV | CELL2D | ICVERT | INTEGER (NCVERT) | 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. | -| GWF | DISU | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | -| GWF | DISU | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | -| GWF | DISU | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | -| GWF | DISU | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | -| GWF | DISU | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | -| GWF | DISU | OPTIONS | VERTICAL_OFFSET_TOLERANCE | DOUBLE PRECISION | checks are performed to ensure that the top of a cell is not higher than the bottom of an overlying cell. This option can be used to specify the tolerance that is used for checking. If top of a cell is above the bottom of an overlying cell by a value less than this tolerance, then the program will not terminate with an error. The default value is zero. This option should generally not be used. | -| GWF | DISU | DIMENSIONS | NODES | INTEGER | is the number of cells in the model grid. | -| GWF | DISU | DIMENSIONS | NJA | INTEGER | 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. | -| GWF | DISU | DIMENSIONS | NVERT | INTEGER | 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. | -| GWF | DISU | GRIDDATA | TOP | DOUBLE PRECISION (NODES) | is the top elevation for each cell in the model grid. | -| GWF | DISU | GRIDDATA | BOT | DOUBLE PRECISION (NODES) | is the bottom elevation for each cell. | -| GWF | DISU | GRIDDATA | AREA | DOUBLE PRECISION (NODES) | is the cell surface area (in plan view). | -| GWF | DISU | GRIDDATA | IDOMAIN | INTEGER (NODES) | 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 | IAC | INTEGER (NODES) | is the number of connections (plus 1) for each cell. The sum of all the entries in IAC must be equal to NJA. | -| GWF | DISU | CONNECTIONDATA | JA | INTEGER (NJA) | 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. | -| GWF | DISU | CONNECTIONDATA | IHC | INTEGER (NJA) | 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. | -| GWF | DISU | CONNECTIONDATA | CL12 | DOUBLE PRECISION (NJA) | is the array containing connection lengths between the center of cell n and the shared face with each adjacent m cell. | -| GWF | DISU | CONNECTIONDATA | HWVA | DOUBLE PRECISION (NJA) | 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. | -| GWF | DISU | CONNECTIONDATA | ANGLDEGX | DOUBLE PRECISION (NJA) | 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. | -| GWF | DISU | VERTICES | IV | INTEGER | is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. | -| GWF | DISU | VERTICES | XV | DOUBLE PRECISION | is the x-coordinate for the vertex. | -| GWF | DISU | VERTICES | YV | DOUBLE PRECISION | is the y-coordinate for the vertex. | -| GWF | DISU | CELL2D | ICELL2D | INTEGER | is the cell2d number. Records in the CELL2D block must be listed in consecutive order from 1 to NODES. | -| GWF | DISU | CELL2D | XC | DOUBLE PRECISION | is the x-coordinate for the cell center. | -| GWF | DISU | CELL2D | YC | DOUBLE PRECISION | is the y-coordinate for the cell center. | -| GWF | DISU | CELL2D | NCVERT | INTEGER | is the number of vertices required to define the cell. There may be a different number of vertices for each cell. | -| GWF | DISU | CELL2D | ICVERT | INTEGER (NCVERT) | 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. | -| GWF | IC | GRIDDATA | STRT | DOUBLE PRECISION (NODES) | is the initial (starting) head---that is, head at the beginning of the GWF 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 (exceptions may occur if cells go dry and (or) rewet). The execution time, however, will be less if STRT includes hydraulic heads that are close to the steady-state solution. A head value lower than the cell bottom can be provided if a cell should start as dry. | -| GWF | NPF | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that budget flow terms will be written to the file specified with ``BUDGET SAVE FILE'' in Output Control. | -| GWF | NPF | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that calculated flows between cells will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. This option can produce extremely large list files because all cell-by-cell flows are printed. It should only be used with the NPF Package for models that have a small number of cells. | -| GWF | NPF | OPTIONS | ALTERNATIVE_CELL_AVERAGING | STRING | is a text keyword to indicate that an alternative method will be used for calculating the conductance for horizontal cell connections. The text value for ALTERNATIVE\_CELL\_AVERAGING can be ``LOGARITHMIC'', ``AMT-LMK'', or ``AMT-HMK''. ``AMT-LMK'' signifies that the conductance will be calculated using arithmetic-mean thickness and logarithmic-mean hydraulic conductivity. ``AMT-HMK'' signifies that the conductance will be calculated using arithmetic-mean thickness and harmonic-mean hydraulic conductivity. If the user does not specify a value for ALTERNATIVE\_CELL\_AVERAGING, then the harmonic-mean method will be used. This option cannot be used if the XT3D option is invoked. | -| GWF | NPF | OPTIONS | THICKSTRT | KEYWORD | indicates that cells having a negative ICELLTYPE are confined, and their cell thickness for conductance calculations will be computed as STRT-BOT rather than TOP-BOT. This option should be used with caution as it only affects conductance calculations in the NPF Package. | -| GWF | NPF | OPTIONS | VARIABLECV | KEYWORD | keyword to indicate that the vertical conductance will be calculated using the saturated thickness and properties of the overlying cell and the thickness and properties of the underlying cell. If the DEWATERED keyword is also specified, then the vertical conductance is calculated using only the saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top. If these keywords are not specified, then the default condition is to calculate the vertical conductance at the start of the simulation using the initial head and the cell properties. The vertical conductance remains constant for the entire simulation. | -| GWF | NPF | OPTIONS | DEWATERED | KEYWORD | If the DEWATERED keyword is specified, then the vertical conductance is calculated using only the saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top. | -| GWF | NPF | OPTIONS | PERCHED | KEYWORD | keyword to indicate that when a cell is overlying a dewatered convertible cell, the head difference used in Darcy's Law is equal to the head in the overlying cell minus the bottom elevation of the overlying cell. If not specified, then the default is to use the head difference between the two cells. | -| GWF | NPF | OPTIONS | REWET | KEYWORD | activates model rewetting. Rewetting is off by default. | -| GWF | NPF | OPTIONS | WETFCT | DOUBLE PRECISION | is a keyword and factor that is included in the calculation of the head that is initially established at a cell when that cell is converted from dry to wet. | -| GWF | NPF | OPTIONS | IWETIT | INTEGER | is a keyword and iteration interval for attempting to wet cells. Wetting is attempted every IWETIT iteration. This applies to outer iterations and not inner iterations. If IWETIT is specified as zero or less, then the value is changed to 1. | -| GWF | NPF | OPTIONS | IHDWET | INTEGER | is a keyword and integer flag that determines which equation is used to define the initial head at cells that become wet. If IHDWET is 0, h = BOT + WETFCT (hm - BOT). If IHDWET is not 0, h = BOT + WETFCT (THRESH). | -| GWF | NPF | OPTIONS | XT3D | KEYWORD | keyword indicating that the XT3D formulation will be used. If the RHS keyword is also included, then the XT3D additional terms will be added to the right-hand side. If the RHS keyword is excluded, then the XT3D terms will be put into the coefficient matrix. Use of XT3D will substantially increase the computational effort, but will result in improved accuracy for anisotropic conductivity fields and for unstructured grids in which the CVFD requirement is violated. XT3D requires additional information about the shapes of grid cells. If XT3D is active and the DISU Package is used, then the user will need to provide in the DISU Package the angldegx array in the CONNECTIONDATA block and the VERTICES and CELL2D blocks. | -| GWF | NPF | OPTIONS | RHS | KEYWORD | If the RHS keyword is also included, then the XT3D additional terms will be added to the right-hand side. If the RHS keyword is excluded, then the XT3D terms will be put into the coefficient matrix. | -| GWF | NPF | OPTIONS | SAVE_SPECIFIC_DISCHARGE | KEYWORD | keyword to indicate that x, y, and z components of specific discharge will be calculated at cell centers and written to the budget file, which is specified with ``BUDGET SAVE FILE'' in Output Control. If this option is activated, then additional information may be required in the discretization packages and the GWF Exchange package (if GWF models are coupled). Specifically, ANGLDEGX must be specified in the CONNECTIONDATA block of the DISU Package; ANGLDEGX must also be specified for the GWF Exchange as an auxiliary variable. | -| GWF | NPF | OPTIONS | SAVE_SATURATION | KEYWORD | keyword to indicate that cell saturation will be written to the budget file, which is specified with ``BUDGET SAVE FILE'' in Output Control. Saturation will be saved to the budget file as an auxiliary variable saved with the DATA-SAT text label. Saturation is a cell variable that ranges from zero to one and can be used by post processing programs to determine how much of a cell volume is saturated. If ICELLTYPE is 0, then saturation is always one. | -| GWF | NPF | OPTIONS | K22OVERK | KEYWORD | keyword to indicate that specified K22 is a ratio of K22 divided by K. If this option is specified, then the K22 array entered in the NPF Package will be multiplied by K after being read. | -| GWF | NPF | OPTIONS | K33OVERK | KEYWORD | keyword to indicate that specified K33 is a ratio of K33 divided by K. If this option is specified, then the K33 array entered in the NPF Package will be multiplied by K after being read. | -| GWF | NPF | OPTIONS | TVK6 | KEYWORD | keyword to specify that record corresponds to a time-varying hydraulic conductivity (TVK) file. The behavior of TVK and a description of the input file is provided separately. | -| GWF | NPF | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | NPF | OPTIONS | TVK6_FILENAME | STRING | defines a time-varying hydraulic conductivity (TVK) input file. Records in the TVK file can be used to change hydraulic conductivity properties at specified times or stress periods. | -| GWF | NPF | OPTIONS | DEV_NO_NEWTON | KEYWORD | turn off Newton for unconfined cells | -| GWF | NPF | OPTIONS | DEV_MODFLOWUSG_UPSTREAM_WEIGHTED_SATURATION | KEYWORD | use MODFLOW-USG upstream-weighted saturation approach | -| GWF | NPF | OPTIONS | DEV_MODFLOWNWT_UPSTREAM_WEIGHTING | KEYWORD | use MODFLOW-NWT approach for upstream weighting | -| GWF | NPF | OPTIONS | DEV_MINIMUM_SATURATED_THICKNESS | DOUBLE PRECISION | set minimum allowed saturated thickness | -| GWF | NPF | OPTIONS | DEV_OMEGA | DOUBLE PRECISION | set saturation omega value | -| GWF | NPF | GRIDDATA | ICELLTYPE | INTEGER (NODES) | flag for each cell that specifies how saturated thickness is treated. 0 means saturated thickness is held constant; $>$0 means saturated thickness varies with computed head when head is below the cell top; $<$0 means saturated thickness varies with computed head unless the THICKSTRT option is in effect. When THICKSTRT is in effect, a negative value for ICELLTYPE indicates that the saturated thickness value used in conductance calculations in the NPF Package will be computed as STRT-BOT and held constant. If the THICKSTRT option is not in effect, then negative values provided by the user for ICELLTYPE are automatically reassigned by the program to a value of one. | -| GWF | NPF | GRIDDATA | K | DOUBLE PRECISION (NODES) | is the hydraulic conductivity. For the common case in which the user would like to specify the horizontal hydraulic conductivity and the vertical hydraulic conductivity, then K should be assigned as the horizontal hydraulic conductivity, K33 should be assigned as the vertical hydraulic conductivity, and K22 and the three rotation angles should not be specified. When more sophisticated anisotropy is required, then K corresponds to the K11 hydraulic conductivity axis. All included cells (IDOMAIN $>$ 0) must have a K value greater than zero. | -| GWF | NPF | GRIDDATA | K22 | DOUBLE PRECISION (NODES) | is the hydraulic conductivity of the second ellipsoid axis (or the ratio of K22/K if the K22OVERK option is specified); for an unrotated case this is the hydraulic conductivity in the y direction. If K22 is not included in the GRIDDATA block, then K22 is set equal to K. For a regular MODFLOW grid (DIS Package is used) in which no rotation angles are specified, K22 is the hydraulic conductivity along columns in the y direction. For an unstructured DISU grid, the user must assign principal x and y axes and provide the angle for each cell face relative to the assigned x direction. All included cells (IDOMAIN $>$ 0) must have a K22 value greater than zero. | -| GWF | NPF | GRIDDATA | K33 | DOUBLE PRECISION (NODES) | is the hydraulic conductivity of the third ellipsoid axis (or the ratio of K33/K if the K33OVERK option is specified); for an unrotated case, this is the vertical hydraulic conductivity. When anisotropy is applied, K33 corresponds to the K33 tensor component. All included cells (IDOMAIN $>$ 0) must have a K33 value greater than zero. | -| GWF | NPF | GRIDDATA | ANGLE1 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the first of three sequential rotations of the hydraulic conductivity ellipsoid. With the K11, K22, and K33 axes of the ellipsoid initially aligned with the x, y, and z coordinate axes, respectively, ANGLE1 rotates the ellipsoid about its K33 axis (within the x - y plane). A positive value represents counter-clockwise rotation when viewed from any point on the positive K33 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - z plane. If ANGLE1 is not specified, default values of zero are assigned to ANGLE1, ANGLE2, and ANGLE3, in which case the K11, K22, and K33 axes are aligned with the x, y, and z axes, respectively. | -| GWF | NPF | GRIDDATA | ANGLE2 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the second of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotation by ANGLE1 described above, ANGLE2 rotates the ellipsoid about its K22 axis (out of the x - y plane). An array can be specified for ANGLE2 only if ANGLE1 is also specified. A positive value of ANGLE2 represents clockwise rotation when viewed from any point on the positive K22 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - y plane. If ANGLE2 is not specified, default values of zero are assigned to ANGLE2 and ANGLE3; connections that are not user-designated as vertical are assumed to be strictly horizontal (that is, to have no z component to their orientation); and connection lengths are based on horizontal distances. | -| GWF | NPF | GRIDDATA | ANGLE3 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the third of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotations by ANGLE1 and ANGLE2 described above, ANGLE3 rotates the ellipsoid about its K11 axis. An array can be specified for ANGLE3 only if ANGLE1 and ANGLE2 are also specified. An array must be specified for ANGLE3 if ANGLE2 is specified. A positive value of ANGLE3 represents clockwise rotation when viewed from any point on the positive K11 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K22 axis lies within the x - y plane. | -| GWF | NPF | GRIDDATA | WETDRY | DOUBLE PRECISION (NODES) | is a combination of the wetting threshold and a flag to indicate which neighboring cells can cause a cell to become wet. If WETDRY $<$ 0, only a cell below a dry cell can cause the cell to become wet. If WETDRY $>$ 0, the cell below a dry cell and horizontally adjacent cells can cause a cell to become wet. If WETDRY is 0, the cell cannot be wetted. The absolute value of WETDRY is the wetting threshold. When the sum of BOT and the absolute value of WETDRY at a dry cell is equaled or exceeded by the head at an adjacent cell, the cell is wetted. WETDRY must be specified if ``REWET'' is specified in the OPTIONS block. If ``REWET'' is not specified in the options block, then WETDRY can be entered, and memory will be allocated for it, even though it is not used. | +| GWF | API | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of api boundary cells. | +| GWF | API | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of api boundary information will be written to the listing file immediately after it is read. | +| GWF | API | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of api boundary flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | API | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that api boundary flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | API | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | +| GWF | API | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | API | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the api boundary package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the api boundary package. | +| GWF | API | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the api boundary Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | +| GWF | API | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of api boundary cells that will be specified for use during any stress period. | | GWF | BUY | OPTIONS | HHFORMULATION_RHS | KEYWORD | 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. | | GWF | BUY | OPTIONS | DENSEREF | DOUBLE PRECISION | fluid reference density used in the equation of state. This value is set to 1000. if not specified as an option. | | GWF | BUY | OPTIONS | DENSITY | KEYWORD | keyword to specify that record corresponds to density. | @@ -232,18 +75,24 @@ | GWF | BUY | PACKAGEDATA | CRHOREF | DOUBLE PRECISION | real value that defines the reference concentration value used for this species in the density equation of state. | | GWF | BUY | PACKAGEDATA | MODELNAME | STRING | name of GWT model used to simulate a species that will be used in the density equation of state. This name will have no effect if the simulation does not include a GWT model that corresponds to this GWF model. | | GWF | BUY | PACKAGEDATA | AUXSPECIESNAME | STRING | 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. | -| GWF | STO | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that cell-by-cell flow terms will be written to the file specified with ``BUDGET SAVE FILE'' in Output Control. | -| GWF | STO | OPTIONS | STORAGECOEFFICIENT | KEYWORD | keyword to indicate that the SS array is read as storage coefficient rather than specific storage. | -| GWF | STO | OPTIONS | SS_CONFINED_ONLY | KEYWORD | keyword to indicate that compressible storage is only calculated for a convertible cell (ICONVERT>0) when the cell is under confined conditions (head greater than or equal to the top of the cell). This option has no effect on cells that are marked as being always confined (ICONVERT=0). This option is identical to the approach used to calculate storage changes under confined conditions in MODFLOW-2005. | -| GWF | STO | OPTIONS | TVS6 | KEYWORD | keyword to specify that record corresponds to a time-varying storage (TVS) file. The behavior of TVS and a description of the input file is provided separately. | -| GWF | STO | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | STO | OPTIONS | TVS_FILENAME | STRING | defines a time-varying storage (TVS) input file. Records in the TVS file can be used to change specific storage and specific yield properties at specified times or stress periods. | -| GWF | STO | GRIDDATA | ICONVERT | INTEGER (NODES) | is a flag for each cell that specifies whether or not a cell is convertible for the storage calculation. 0 indicates confined storage is used. $>$0 indicates confined storage is used when head is above cell top and a mixed formulation of unconfined and confined storage is used when head is below cell top. | -| GWF | STO | GRIDDATA | SS | DOUBLE PRECISION (NODES) | is specific storage (or the storage coefficient if STORAGECOEFFICIENT is specified as an option). Specific storage values must be greater than or equal to 0. If the CSUB Package is included in the GWF model, specific storage must be zero for every cell. | -| GWF | STO | GRIDDATA | SY | DOUBLE PRECISION (NODES) | is specific yield. Specific yield values must be greater than or equal to 0. Specific yield does not have to be specified if there are no convertible cells (ICONVERT=0 in every cell). | -| GWF | STO | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | STO | PERIOD | STEADY-STATE | KEYWORD | keyword to indicate that stress period IPER is steady-state. Steady-state conditions will apply until the TRANSIENT keyword is specified in a subsequent BEGIN PERIOD block. If the CSUB Package is included in the GWF model, only the first and last stress period can be steady-state. | -| GWF | STO | PERIOD | TRANSIENT | KEYWORD | keyword to indicate that stress period IPER is transient. Transient conditions will apply until the STEADY-STATE keyword is specified in a subsequent BEGIN PERIOD block. | +| GWF | CHD | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | +| GWF | CHD | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of CHD head value. | +| GWF | CHD | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of constant-head cells. | +| GWF | CHD | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of constant-head information will be written to the listing file immediately after it is read. | +| GWF | CHD | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of constant-head flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | CHD | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that constant-head flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | CHD | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | +| GWF | CHD | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | CHD | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | +| GWF | CHD | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | +| GWF | CHD | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the constant-head package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the constant-head package. | +| GWF | CHD | OPTIONS | DEV_NO_NEWTON | KEYWORD | turn off Newton for unconfined cells | +| GWF | CHD | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of constant-head cells that will be specified for use during any stress period. | +| GWF | CHD | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | CHD | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | +| GWF | CHD | PERIOD | HEAD | DOUBLE PRECISION | is the head at the boundary. 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. | +| GWF | CHD | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each constant head. The values of auxiliary variables must be present for each constant head. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | +| GWF | CHD | PERIOD | BOUNDNAME | STRING | name of the constant head boundary cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | | GWF | CSUB | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of CSUB cells. | | GWF | CSUB | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of CSUB information will be written to the listing file immediately after it is read. | | GWF | CSUB | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that cell-by-cell flow terms will be written to the file specified with ``BUDGET SAVE FILE'' in Output Control. | @@ -304,144 +153,86 @@ | GWF | CSUB | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | | GWF | CSUB | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | | GWF | CSUB | PERIOD | SIG0 | DOUBLE PRECISION | is the stress offset for the cell. SIG0 is added to the calculated geostatic stress for the cell. SIG0 is specified only if MAXSIG0 is specified to be greater than 0 in the DIMENSIONS block. 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. | -| GWF | HFB | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of horizontal flow barriers will be written to the listing file immediately after it is read. | -| GWF | HFB | DIMENSIONS | MAXHFB | INTEGER | integer value specifying the maximum number of horizontal flow barriers that will be entered in this input file. The value of MAXHFB is used to allocate memory for the horizontal flow barriers. | -| GWF | HFB | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | HFB | PERIOD | CELLID1 | INTEGER (NCELLDIM) | identifier for the first cell. For a structured grid that uses the DIS input file, CELLID1 is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLID1 is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLID1 is the node numbers for the cell. The barrier is located between cells designated as CELLID1 and CELLID2. For models that use the DIS and DISV grid types, the layer number for CELLID1 and CELLID2 must be the same. For all grid types, cells must be horizontally adjacent or the program will terminate with an error. | -| GWF | HFB | PERIOD | CELLID2 | INTEGER (NCELLDIM) | identifier for the second cell. See CELLID1 for description of how to specify. | -| GWF | HFB | PERIOD | HYDCHR | DOUBLE PRECISION | is the hydraulic characteristic of the horizontal-flow barrier. The hydraulic characteristic is the barrier hydraulic conductivity divided by the width of the horizontal-flow barrier. If the hydraulic characteristic is negative, then the absolute value of HYDCHR acts as a multiplier to the conductance between the two model cells specified as containing the barrier. For example, if the value for HYDCHR was specified as -1.5, the conductance calculated for the two cells would be multiplied by 1.5. | -| GWF | CHD | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | CHD | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of CHD head value. | -| GWF | CHD | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of constant-head cells. | -| GWF | CHD | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of constant-head information will be written to the listing file immediately after it is read. | -| GWF | CHD | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of constant-head flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | CHD | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that constant-head flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | CHD | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | CHD | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | CHD | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | CHD | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | CHD | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the constant-head package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the constant-head package. | -| GWF | CHD | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of constant-head cells that will be specified for use during any stress period. | -| GWF | CHD | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | CHD | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | CHD | PERIOD | HEAD | DOUBLE PRECISION | is the head at the boundary. 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. | -| GWF | CHD | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each constant head. The values of auxiliary variables must be present for each constant head. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | CHD | PERIOD | BOUNDNAME | STRING | name of the constant head boundary cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | WEL | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | WEL | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of well flow rate. | -| GWF | WEL | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of well cells. | -| GWF | WEL | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of well information will be written to the listing file immediately after it is read. | -| GWF | WEL | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of well flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | WEL | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that well flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | WEL | OPTIONS | AUTO_FLOW_REDUCE | DOUBLE PRECISION | keyword and real value that defines the fraction of the cell thickness used as an interval for smoothly adjusting negative pumping rates to 0 in cells with head values less than or equal to the bottom of the cell. Negative pumping rates are adjusted to 0 or a smaller negative value when the head in the cell is equal to or less than the calculated interval above the cell bottom. AUTO\_FLOW\_REDUCE is set to 0.1 if the specified value is less than or equal to zero. By default, negative pumping rates are not reduced during a simulation. | -| GWF | WEL | OPTIONS | AUTO_FLOW_REDUCE_CSV | KEYWORD | keyword to specify that record corresponds to the AUTO\_FLOW\_REDUCE output option in which a new record is written for each well and for each time step in which the user-requested extraction rate is reduced by the program. | -| GWF | WEL | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | -| GWF | WEL | OPTIONS | AFRCSVFILE | STRING | name of the comma-separated value (CSV) output file to write information about well extraction rates that have been reduced by the program. Entries are only written if the extraction rates are reduced. | -| GWF | WEL | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | WEL | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | WEL | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | WEL | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | WEL | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the Well package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the Well package. | -| GWF | WEL | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the Well Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | -| GWF | WEL | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of wells cells that will be specified for use during any stress period. | -| GWF | WEL | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | WEL | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | WEL | PERIOD | Q | DOUBLE PRECISION | is the volumetric well rate. A positive value indicates recharge (injection) and a negative value indicates discharge (extraction). 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. | -| GWF | WEL | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each well. The values of auxiliary variables must be present for each well. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | WEL | PERIOD | BOUNDNAME | STRING | name of the well cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | DRN | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | DRN | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of drain conductance. | -| GWF | DRN | OPTIONS | AUXDEPTHNAME | STRING | name of a variable listed in AUXILIARY that defines the depth at which drainage discharge will be scaled. If a positive value is specified for the AUXDEPTHNAME AUXILIARY variable, then ELEV is the elevation at which the drain starts to discharge and ELEV + DDRN (assuming DDRN is the AUXDEPTHNAME variable) is the elevation when the drain conductance (COND) scaling factor is 1. If a negative drainage depth value is specified for DDRN, then ELEV + DDRN is the elevation at which the drain starts to discharge and ELEV is the elevation when the conductance (COND) scaling factor is 1. A linear- or cubic-scaling is used to scale the drain conductance (COND) when the Standard or Newton-Raphson Formulation is used, respectively. This discharge scaling option is described in more detail in Chapter 3 of the Supplemental Technical Information. | -| GWF | DRN | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of drain cells. | -| GWF | DRN | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of drain information will be written to the listing file immediately after it is read. | -| GWF | DRN | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of drain flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | DRN | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that drain flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | DRN | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | DRN | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | DRN | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | DRN | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | DRN | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the Drain package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the Drain package. | -| GWF | DRN | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the Drain Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | -| GWF | DRN | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of drains cells that will be specified for use during any stress period. | -| GWF | DRN | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | DRN | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | DRN | PERIOD | ELEV | DOUBLE PRECISION | is the elevation of the drain. 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. | -| GWF | DRN | PERIOD | COND | DOUBLE PRECISION | is the hydraulic conductance of the interface between the aquifer and the drain. 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. | -| GWF | DRN | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each drain. The values of auxiliary variables must be present for each drain. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | DRN | PERIOD | BOUNDNAME | STRING | name of the drain cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | RIV | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | RIV | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of riverbed conductance. | -| GWF | RIV | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of river cells. | -| GWF | RIV | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of river information will be written to the listing file immediately after it is read. | -| GWF | RIV | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of river flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | RIV | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that river flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | RIV | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | RIV | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | RIV | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | RIV | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | RIV | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the River package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the River package. | -| GWF | RIV | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the River Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | -| GWF | RIV | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of rivers cells that will be specified for use during any stress period. | -| GWF | RIV | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | RIV | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | RIV | PERIOD | STAGE | DOUBLE PRECISION | is the head in the river. 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. | -| GWF | RIV | PERIOD | COND | DOUBLE PRECISION | is the riverbed hydraulic conductance. 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. | -| GWF | RIV | PERIOD | RBOT | DOUBLE PRECISION | is the elevation of the bottom of the riverbed. 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. | -| GWF | RIV | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each river. The values of auxiliary variables must be present for each river. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | RIV | PERIOD | BOUNDNAME | STRING | name of the river cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | GHB | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | GHB | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of general-head boundary conductance. | -| GWF | GHB | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of general-head boundary cells. | -| GWF | GHB | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of general-head boundary information will be written to the listing file immediately after it is read. | -| GWF | GHB | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of general-head boundary flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | GHB | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that general-head boundary flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | GHB | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | GHB | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | GHB | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | GHB | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | GHB | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the General-Head Boundary package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the General-Head Boundary package. | -| GWF | GHB | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the General-Head Boundary Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | -| GWF | GHB | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of general-head boundary cells that will be specified for use during any stress period. | -| GWF | GHB | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | GHB | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | GHB | PERIOD | BHEAD | DOUBLE PRECISION | is the boundary head. 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. | -| GWF | GHB | PERIOD | COND | DOUBLE PRECISION | is the hydraulic conductance of the interface between the aquifer cell and the boundary. 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. | -| GWF | GHB | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each general-head boundary. The values of auxiliary variables must be present for each general-head boundary. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | GHB | PERIOD | BOUNDNAME | STRING | name of the general-head boundary cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | RCH | OPTIONS | FIXED_CELL | KEYWORD | indicates that recharge will not be reassigned to a cell underlying the cell specified in the list if the specified cell is inactive. | -| GWF | RCH | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | RCH | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of recharge. | -| GWF | RCH | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of recharge cells. | -| GWF | RCH | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of recharge information will be written to the listing file immediately after it is read. | -| GWF | RCH | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of recharge flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | RCH | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that recharge flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | RCH | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | RCH | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | RCH | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | RCH | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | RCH | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the Recharge package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the Recharge package. | -| GWF | RCH | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of recharge cells cells that will be specified for use during any stress period. | -| GWF | RCH | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | RCH | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | -| GWF | RCH | PERIOD | RECHARGE | DOUBLE PRECISION | is the recharge flux rate ($LT^{-1}$). This rate is multiplied inside the program by the surface area of the cell to calculate the volumetric recharge rate. 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. | -| GWF | RCH | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each recharge. The values of auxiliary variables must be present for each recharge. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | RCH | PERIOD | BOUNDNAME | STRING | name of the recharge cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | -| GWF | RCHA | OPTIONS | READASARRAYS | KEYWORD | indicates that array-based input will be used for the Recharge Package. This keyword must be specified to use array-based input. | -| GWF | RCHA | OPTIONS | FIXED_CELL | KEYWORD | indicates that recharge will not be reassigned to a cell underlying the cell specified in the list if the specified cell is inactive. | -| GWF | RCHA | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | RCHA | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of recharge. | -| GWF | RCHA | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of recharge information will be written to the listing file immediately after it is read. | -| GWF | RCHA | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of recharge flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | RCHA | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that recharge flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | RCHA | OPTIONS | TAS6 | KEYWORD | keyword to specify that record corresponds to a time-array-series file. | -| GWF | RCHA | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | RCHA | OPTIONS | TAS6_FILENAME | STRING | defines a time-array-series file defining a time-array series that can be used to assign time-varying values. See the Time-Variable Input section for instructions on using the time-array series capability. | -| GWF | RCHA | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | RCHA | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the Recharge package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the Recharge package. | -| GWF | RCHA | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | RCHA | PERIOD | IRCH | INTEGER (NCOL*NROW; NCPL) | IRCH is the layer number that defines the layer in each vertical column where recharge is applied. If IRCH is omitted, recharge by default is applied to cells in layer 1. IRCH can only be used if READASARRAYS is specified in the OPTIONS block. If IRCH is specified, it must be specified as the first variable in the PERIOD block or MODFLOW will terminate with an error. | -| GWF | RCHA | PERIOD | RECHARGE | DOUBLE PRECISION (NCOL*NROW; NCPL) | is the recharge flux rate ($LT^{-1}$). This rate is multiplied inside the program by the surface area of the cell to calculate the volumetric recharge rate. The recharge array may be defined by a time-array series (see the "Using Time-Array Series in a Package" section). | -| GWF | RCHA | PERIOD | AUX | DOUBLE PRECISION (NCOL*NROW; NCPL) | is an array of values for auxiliary variable aux(iaux), where iaux is a value from 1 to naux, and aux(iaux) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the recharge array will be multiplied by this array. | +| GWF | DIS | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | +| GWF | DIS | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | +| GWF | DIS | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | +| GWF | DIS | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | +| GWF | DIS | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | +| GWF | DIS | DIMENSIONS | NLAY | INTEGER | is the number of layers in the model grid. | +| GWF | DIS | DIMENSIONS | NROW | INTEGER | is the number of rows in the model grid. | +| GWF | DIS | DIMENSIONS | NCOL | INTEGER | is the number of columns in the model grid. | +| GWF | DIS | GRIDDATA | DELR | DOUBLE PRECISION (NCOL) | is the column spacing in the row direction. | +| GWF | DIS | GRIDDATA | DELC | DOUBLE PRECISION (NROW) | is the row spacing in the column direction. | +| GWF | DIS | GRIDDATA | TOP | DOUBLE PRECISION (NCOL, NROW) | is the top elevation for each cell in the top model layer. | +| GWF | DIS | GRIDDATA | BOTM | DOUBLE PRECISION (NCOL, NROW, NLAY) | is the bottom elevation for each cell. | +| GWF | DIS | GRIDDATA | IDOMAIN | INTEGER (NCOL, NROW, NLAY) | 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 | DISU | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | +| GWF | DISU | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | +| GWF | DISU | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | +| GWF | DISU | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | +| GWF | DISU | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | +| GWF | DISU | OPTIONS | VERTICAL_OFFSET_TOLERANCE | DOUBLE PRECISION | checks are performed to ensure that the top of a cell is not higher than the bottom of an overlying cell. This option can be used to specify the tolerance that is used for checking. If top of a cell is above the bottom of an overlying cell by a value less than this tolerance, then the program will not terminate with an error. The default value is zero. This option should generally not be used. | +| GWF | DISU | DIMENSIONS | NODES | INTEGER | is the number of cells in the model grid. | +| GWF | DISU | DIMENSIONS | NJA | INTEGER | 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. | +| GWF | DISU | DIMENSIONS | NVERT | INTEGER | 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. | +| GWF | DISU | GRIDDATA | TOP | DOUBLE PRECISION (NODES) | is the top elevation for each cell in the model grid. | +| GWF | DISU | GRIDDATA | BOT | DOUBLE PRECISION (NODES) | is the bottom elevation for each cell. | +| GWF | DISU | GRIDDATA | AREA | DOUBLE PRECISION (NODES) | is the cell surface area (in plan view). | +| GWF | DISU | GRIDDATA | IDOMAIN | INTEGER (NODES) | 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 | IAC | INTEGER (NODES) | is the number of connections (plus 1) for each cell. The sum of all the entries in IAC must be equal to NJA. | +| GWF | DISU | CONNECTIONDATA | JA | INTEGER (NJA) | 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. | +| GWF | DISU | CONNECTIONDATA | IHC | INTEGER (NJA) | 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. | +| GWF | DISU | CONNECTIONDATA | CL12 | DOUBLE PRECISION (NJA) | is the array containing connection lengths between the center of cell n and the shared face with each adjacent m cell. | +| GWF | DISU | CONNECTIONDATA | HWVA | DOUBLE PRECISION (NJA) | 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. | +| GWF | DISU | CONNECTIONDATA | ANGLDEGX | DOUBLE PRECISION (NJA) | 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. | +| GWF | DISU | VERTICES | IV | INTEGER | is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. | +| GWF | DISU | VERTICES | XV | DOUBLE PRECISION | is the x-coordinate for the vertex. | +| GWF | DISU | VERTICES | YV | DOUBLE PRECISION | is the y-coordinate for the vertex. | +| GWF | DISU | CELL2D | ICELL2D | INTEGER | is the cell2d number. Records in the CELL2D block must be listed in consecutive order from 1 to NODES. | +| GWF | DISU | CELL2D | XC | DOUBLE PRECISION | is the x-coordinate for the cell center. | +| GWF | DISU | CELL2D | YC | DOUBLE PRECISION | is the y-coordinate for the cell center. | +| GWF | DISU | CELL2D | NCVERT | INTEGER | is the number of vertices required to define the cell. There may be a different number of vertices for each cell. | +| GWF | DISU | CELL2D | ICVERT | INTEGER (NCVERT) | 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. | +| GWF | DISV | OPTIONS | LENGTH_UNITS | STRING | is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''. | +| GWF | DISV | OPTIONS | NOGRB | KEYWORD | keyword to deactivate writing of the binary grid file. | +| GWF | DISV | OPTIONS | XORIGIN | DOUBLE PRECISION | 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. | +| GWF | DISV | OPTIONS | YORIGIN | DOUBLE PRECISION | 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. | +| GWF | DISV | OPTIONS | ANGROT | DOUBLE PRECISION | 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. | +| GWF | DISV | DIMENSIONS | NLAY | INTEGER | is the number of layers in the model grid. | +| GWF | DISV | DIMENSIONS | NCPL | INTEGER | is the number of cells per layer. This is a constant value for the grid and it applies to all layers. | +| GWF | DISV | DIMENSIONS | NVERT | INTEGER | is the total number of (x, y) vertex pairs used to characterize the horizontal configuration of the model grid. | +| GWF | DISV | GRIDDATA | TOP | DOUBLE PRECISION (NCPL) | is the top elevation for each cell in the top model layer. | +| GWF | DISV | GRIDDATA | BOTM | DOUBLE PRECISION (NCPL, NLAY) | is the bottom elevation for each cell. | +| GWF | DISV | GRIDDATA | IDOMAIN | INTEGER (NCPL, NLAY) | 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 | IV | INTEGER | is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT. | +| GWF | DISV | VERTICES | XV | DOUBLE PRECISION | is the x-coordinate for the vertex. | +| GWF | DISV | VERTICES | YV | DOUBLE PRECISION | is the y-coordinate for the vertex. | +| GWF | DISV | CELL2D | ICELL2D | INTEGER | is the CELL2D number. Records in the CELL2D block must be listed in consecutive order from the first to the last. | +| GWF | DISV | CELL2D | XC | DOUBLE PRECISION | is the x-coordinate for the cell center. | +| GWF | DISV | CELL2D | YC | DOUBLE PRECISION | is the y-coordinate for the cell center. | +| GWF | DISV | CELL2D | NCVERT | INTEGER | is the number of vertices required to define the cell. There may be a different number of vertices for each cell. | +| GWF | DISV | CELL2D | ICVERT | INTEGER (NCVERT) | 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. | +| GWF | DRN | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | +| GWF | DRN | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of drain conductance. | +| GWF | DRN | OPTIONS | AUXDEPTHNAME | STRING | name of a variable listed in AUXILIARY that defines the depth at which drainage discharge will be scaled. If a positive value is specified for the AUXDEPTHNAME AUXILIARY variable, then ELEV is the elevation at which the drain starts to discharge and ELEV + DDRN (assuming DDRN is the AUXDEPTHNAME variable) is the elevation when the drain conductance (COND) scaling factor is 1. If a negative drainage depth value is specified for DDRN, then ELEV + DDRN is the elevation at which the drain starts to discharge and ELEV is the elevation when the conductance (COND) scaling factor is 1. A linear- or cubic-scaling is used to scale the drain conductance (COND) when the Standard or Newton-Raphson Formulation is used, respectively. This discharge scaling option is described in more detail in Chapter 3 of the Supplemental Technical Information. | +| GWF | DRN | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of drain cells. | +| GWF | DRN | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of drain information will be written to the listing file immediately after it is read. | +| GWF | DRN | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of drain flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | DRN | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that drain flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | DRN | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | +| GWF | DRN | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | DRN | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | +| GWF | DRN | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | +| GWF | DRN | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the Drain package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the Drain package. | +| GWF | DRN | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the Drain Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | +| GWF | DRN | OPTIONS | DEV_CUBIC_SCALING | KEYWORD | cubic-scaling is used to scale the drain conductance | +| GWF | DRN | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of drains cells that will be specified for use during any stress period. | +| GWF | DRN | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | DRN | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | +| GWF | DRN | PERIOD | ELEV | DOUBLE PRECISION | is the elevation of the drain. 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. | +| GWF | DRN | PERIOD | COND | DOUBLE PRECISION | is the hydraulic conductance of the interface between the aquifer and the drain. 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. | +| GWF | DRN | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each drain. The values of auxiliary variables must be present for each drain. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | +| GWF | DRN | PERIOD | BOUNDNAME | STRING | name of the drain cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | | GWF | EVT | OPTIONS | FIXED_CELL | KEYWORD | indicates that evapotranspiration will not be reassigned to a cell underlying the cell specified in the list if the specified cell is inactive. | | GWF | EVT | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | | GWF | EVT | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of evapotranspiration rate. | @@ -484,7 +275,115 @@ | GWF | EVTA | PERIOD | SURFACE | DOUBLE PRECISION (NCOL*NROW; NCPL) | is the elevation of the ET surface ($L$). | | GWF | EVTA | PERIOD | RATE | DOUBLE PRECISION (NCOL*NROW; NCPL) | is the maximum ET flux rate ($LT^{-1}$). | | GWF | EVTA | PERIOD | DEPTH | DOUBLE PRECISION (NCOL*NROW; NCPL) | is the ET extinction depth ($L$). | -| GWF | EVTA | PERIOD | AUX(IAUX) | DOUBLE PRECISION (NCOL*NROW; NCPL) | is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and AUX(IAUX) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate will be multiplied by this array. | +| GWF | EVTA | PERIOD | AUX | DOUBLE PRECISION (NCOL*NROW; NCPL) | is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and AUX(IAUX) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate will be multiplied by this array. | +| GWF | GHB | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | +| GWF | GHB | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of general-head boundary conductance. | +| GWF | GHB | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of general-head boundary cells. | +| GWF | GHB | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of general-head boundary information will be written to the listing file immediately after it is read. | +| GWF | GHB | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of general-head boundary flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | GHB | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that general-head boundary flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | GHB | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | +| GWF | GHB | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | GHB | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | +| GWF | GHB | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | +| GWF | GHB | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the General-Head Boundary package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the General-Head Boundary package. | +| GWF | GHB | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the General-Head Boundary Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | +| GWF | GHB | DIMENSIONS | MAXBOUND | INTEGER | integer value specifying the maximum number of general-head boundary cells that will be specified for use during any stress period. | +| GWF | GHB | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | GHB | PERIOD | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | +| GWF | GHB | PERIOD | BHEAD | DOUBLE PRECISION | is the boundary head. 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. | +| GWF | GHB | PERIOD | COND | DOUBLE PRECISION | is the hydraulic conductance of the interface between the aquifer cell and the boundary. 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. | +| GWF | GHB | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each general-head boundary. The values of auxiliary variables must be present for each general-head boundary. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | +| GWF | GHB | PERIOD | BOUNDNAME | STRING | name of the general-head boundary cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | +| GWF | GNC | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of GNC information will be written to the listing file immediately after it is read. | +| GWF | GNC | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of GNC flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | GNC | OPTIONS | EXPLICIT | KEYWORD | keyword to indicate that the ghost node correction is applied in an explicit manner on the right-hand side of the matrix. The explicit approach will likely require additional outer iterations. If the keyword is not specified, then the correction will be applied in an implicit manner on the left-hand side. The implicit approach will likely converge better, but may require additional memory. If the EXPLICIT keyword is not specified, then the BICGSTAB linear acceleration option should be specified within the LINEAR block of the Sparse Matrix Solver. | +| GWF | GNC | DIMENSIONS | NUMGNC | INTEGER | is the number of GNC entries. | +| GWF | GNC | DIMENSIONS | NUMALPHAJ | INTEGER | is the number of contributing factors. | +| GWF | GNC | GNCDATA | CELLIDN | INTEGER | is the cellid of the cell, $n$, in which the ghost node is located. For a structured grid that uses the DIS input file, CELLIDN is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDN is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDN is the node number for the cell. | +| GWF | GNC | GNCDATA | CELLIDM | INTEGER | is the cellid of the connecting cell, $m$, to which flow occurs from the ghost node. For a structured grid that uses the DIS input file, CELLIDM is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDM is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDM is the node number for the cell. | +| GWF | GNC | GNCDATA | CELLIDSJ | INTEGER (NUMALPHAJ) | is the array of CELLIDS for the contributing j cells, which contribute to the interpolated head value at the ghost node. This item contains one CELLID for each of the contributing cells of the ghost node. Note that if the number of actual contributing cells needed by the user is less than NUMALPHAJ for any ghost node, then a dummy CELLID of zero(s) should be inserted with an associated contributing factor of zero. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLID is the layer number and cell2d number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLID is the node number for the cell. | +| GWF | GNC | GNCDATA | ALPHASJ | DOUBLE PRECISION (NUMALPHAJ) | is the contributing factors for each contributing node in CELLIDSJ. Note that if the number of actual contributing cells is less than NUMALPHAJ for any ghost node, then dummy CELLIDS should be inserted with an associated contributing factor of zero. The sum of ALPHASJ should be less than one. This is because one minus the sum of ALPHASJ is equal to the alpha term (alpha n in equation 4-61 of the GWF Model report) that is multiplied by the head in cell n. | +| GWF | HFB | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of horizontal flow barriers will be written to the listing file immediately after it is read. | +| GWF | HFB | DIMENSIONS | MAXHFB | INTEGER | integer value specifying the maximum number of horizontal flow barriers that will be entered in this input file. The value of MAXHFB is used to allocate memory for the horizontal flow barriers. | +| GWF | HFB | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | HFB | PERIOD | CELLID1 | INTEGER (NCELLDIM) | identifier for the first cell. For a structured grid that uses the DIS input file, CELLID1 is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLID1 is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLID1 is the node numbers for the cell. The barrier is located between cells designated as CELLID1 and CELLID2. For models that use the DIS and DISV grid types, the layer number for CELLID1 and CELLID2 must be the same. For all grid types, cells must be horizontally adjacent or the program will terminate with an error. | +| GWF | HFB | PERIOD | CELLID2 | INTEGER (NCELLDIM) | identifier for the second cell. See CELLID1 for description of how to specify. | +| GWF | HFB | PERIOD | HYDCHR | DOUBLE PRECISION | is the hydraulic characteristic of the horizontal-flow barrier. The hydraulic characteristic is the barrier hydraulic conductivity divided by the width of the horizontal-flow barrier. If the hydraulic characteristic is negative, then the absolute value of HYDCHR acts as a multiplier to the conductance between the two model cells specified as containing the barrier. For example, if the value for HYDCHR was specified as -1.5, the conductance calculated for the two cells would be multiplied by 1.5. | +| GWF | IC | GRIDDATA | STRT | DOUBLE PRECISION (NODES) | is the initial (starting) head---that is, head at the beginning of the GWF 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 (exceptions may occur if cells go dry and (or) rewet). The execution time, however, will be less if STRT includes hydraulic heads that are close to the steady-state solution. A head value lower than the cell bottom can be provided if a cell should start as dry. | +| GWF | LAK | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | +| GWF | LAK | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of lake cells. | +| GWF | LAK | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of lake information will be written to the listing file immediately after it is read. | +| GWF | LAK | OPTIONS | PRINT_STAGE | KEYWORD | keyword to indicate that the list of lake stages will be printed to the listing file for every stress period in which ``HEAD PRINT'' is specified in Output Control. If there is no Output Control option and PRINT\_STAGE is specified, then stages are printed for the last time step of each stress period. | +| GWF | LAK | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of lake flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | LAK | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that lake flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | LAK | OPTIONS | STAGE | KEYWORD | keyword to specify that record corresponds to stage. | +| GWF | LAK | OPTIONS | STAGEFILE | STRING | name of the binary output file to write stage information. | +| GWF | LAK | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | +| GWF | LAK | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | +| GWF | LAK | OPTIONS | BUDGETFILE | STRING | name of the binary output file to write budget information. | +| GWF | LAK | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | +| GWF | LAK | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | +| GWF | LAK | OPTIONS | PACKAGE_CONVERGENCE | KEYWORD | keyword to specify that record corresponds to the package convergence comma spaced values file. | +| GWF | LAK | OPTIONS | PACKAGE_CONVERGENCE_FILENAME | STRING | name of the comma spaced values output file to write package convergence information. | +| GWF | LAK | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | +| GWF | LAK | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | LAK | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | +| GWF | LAK | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | +| GWF | LAK | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the LAK package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the LAK package. | +| GWF | LAK | OPTIONS | MOVER | KEYWORD | keyword to indicate that this instance of the LAK Package can be used with the Water Mover (MVR) Package. When the MOVER option is specified, additional memory is allocated within the package to store the available, provided, and received water. | +| GWF | LAK | OPTIONS | SURFDEP | DOUBLE PRECISION | real value that defines the surface depression depth for VERTICAL lake-GWF connections. If specified, SURFDEP must be greater than or equal to zero. If SURFDEP is not specified, a default value of zero is used for all vertical lake-GWF connections. | +| GWF | LAK | OPTIONS | MAXIMUM_ITERATIONS | INTEGER | integer value that defines the maximum number of Newton-Raphson iterations allowed for a lake. By default, MAXIMUM\_ITERATIONS is equal to 100. MAXIMUM\_ITERATIONS would only need to be increased from the default value if one or more lakes in a simulation has a large water budget error. | +| GWF | LAK | OPTIONS | MAXIMUM_STAGE_CHANGE | DOUBLE PRECISION | real value that defines the lake stage closure tolerance. By default, MAXIMUM\_STAGE\_CHANGE is equal to $1 \times 10^{-5}$. The MAXIMUM\_STAGE\_CHANGE would only need to be increased or decreased from the default value if the water budget error for one or more lakes is too small or too large, respectively. | +| GWF | LAK | OPTIONS | TIME_CONVERSION | DOUBLE PRECISION | real value that is used to convert user-specified Manning's roughness coefficients or gravitational acceleration used to calculate outlet flows from seconds to model time units. TIME\_CONVERSION should be set to 1.0, 60.0, 3,600.0, 86,400.0, and 31,557,600.0 when using time units (TIME\_UNITS) of seconds, minutes, hours, days, or years in the simulation, respectively. CONVTIME does not need to be specified if no lake outlets are specified or TIME\_UNITS are seconds. | +| GWF | LAK | OPTIONS | LENGTH_CONVERSION | DOUBLE PRECISION | real value that is used to convert outlet user-specified Manning's roughness coefficients or gravitational acceleration used to calculate outlet flows from meters to model length units. LENGTH\_CONVERSION should be set to 3.28081, 1.0, and 100.0 when using length units (LENGTH\_UNITS) of feet, meters, or centimeters in the simulation, respectively. LENGTH\_CONVERSION does not need to be specified if no lake outlets are specified or LENGTH\_UNITS are meters. | +| GWF | LAK | DIMENSIONS | NLAKES | INTEGER | value specifying the number of lakes that will be simulated for all stress periods. | +| GWF | LAK | DIMENSIONS | NOUTLETS | INTEGER | value specifying the number of outlets that will be simulated for all stress periods. If NOUTLETS is not specified, a default value of zero is used. | +| GWF | LAK | DIMENSIONS | NTABLES | INTEGER | value specifying the number of lakes tables that will be used to define the lake stage, volume relation, and surface area. If NTABLES is not specified, a default value of zero is used. | +| GWF | LAK | PACKAGEDATA | IFNO | INTEGER | integer value that defines the feature (lake) number associated with the specified PACKAGEDATA data on the line. IFNO 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. | +| GWF | LAK | PACKAGEDATA | STRT | DOUBLE PRECISION | real value that defines the starting stage for the lake. | +| GWF | LAK | PACKAGEDATA | NLAKECONN | INTEGER | integer value that defines the number of GWF cells connected to this (IFNO) lake. There can only be one vertical lake connection to each GWF cell. NLAKECONN must be greater than zero. | +| GWF | LAK | PACKAGEDATA | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each lake. The values of auxiliary variables must be present for each lake. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | +| GWF | LAK | PACKAGEDATA | BOUNDNAME | STRING | name of the lake cell. BOUNDNAME is an ASCII character variable that can contain as many as 40 characters. If BOUNDNAME contains spaces in it, then the entire name must be enclosed within single quotes. | +| GWF | LAK | CONNECTIONDATA | IFNO | INTEGER | integer value that defines the feature (lake) number associated with the specified CONNECTIONDATA data on the line. IFNO must be greater than zero and less than or equal to NLAKES. Lake connection information must be specified for every lake connection to the GWF model (NLAKECONN) or the program will terminate with an error. The program will also terminate with an error if connection information for a lake connection to the GWF model is specified more than once. | +| GWF | LAK | CONNECTIONDATA | ICONN | INTEGER | integer value that defines the GWF connection number for this lake connection entry. ICONN must be greater than zero and less than or equal to NLAKECONN for lake IFNO. | +| GWF | LAK | CONNECTIONDATA | CELLID | INTEGER (NCELLDIM) | is the cell identifier, and depends on the type of grid that is used for the simulation. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column. For a grid that uses the DISV input file, CELLID is the layer and CELL2D number. If the model uses the unstructured discretization (DISU) input file, CELLID is the node number for the cell. | +| GWF | LAK | CONNECTIONDATA | CLAKTYPE | STRING | character string that defines the lake-GWF connection type for the lake connection. Possible lake-GWF connection type strings include: VERTICAL--character keyword to indicate the lake-GWF connection is vertical and connection conductance calculations use the hydraulic conductivity corresponding to the $K_{33}$ tensor component defined for CELLID in the NPF package. HORIZONTAL--character keyword to indicate the lake-GWF connection is horizontal and connection conductance calculations use the hydraulic conductivity corresponding to the $K_{11}$ tensor component defined for CELLID in the NPF package. EMBEDDEDH--character keyword to indicate the lake-GWF connection is embedded in a single cell and connection conductance calculations use the hydraulic conductivity corresponding to the $K_{11}$ tensor component defined for CELLID in the NPF package. EMBEDDEDV--character keyword to indicate the lake-GWF connection is embedded in a single cell and connection conductance calculations use the hydraulic conductivity corresponding to the $K_{33}$ tensor component defined for CELLID in the NPF package. Embedded lakes can only be connected to a single cell (NLAKECONN = 1) and there must be a lake table associated with each embedded lake. | +| GWF | LAK | CONNECTIONDATA | BEDLEAK | STRING | real value or character string that defines the bed leakance for the lake-GWF connection. BEDLEAK must be greater than or equal to zero, equal to the DNODATA value (3.0E+30), or specified to be NONE. If DNODATA or NONE is specified for BEDLEAK, the lake-GWF connection conductance is solely a function of aquifer properties in the connected GWF cell and lakebed sediments are assumed to be absent. Warning messages will be issued if NONE is specified. Eventually the ability to specify NONE will be deprecated and cause MODFLOW 6 to terminate with an error. | +| GWF | LAK | CONNECTIONDATA | BELEV | DOUBLE PRECISION | real value that defines the bottom elevation for a HORIZONTAL lake-GWF connection. Any value can be specified if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV. If CLAKTYPE is HORIZONTAL and BELEV is not equal to TELEV, BELEV must be greater than or equal to the bottom of the GWF cell CELLID. If BELEV is equal to TELEV, BELEV is reset to the bottom of the GWF cell CELLID. | +| GWF | LAK | CONNECTIONDATA | TELEV | DOUBLE PRECISION | real value that defines the top elevation for a HORIZONTAL lake-GWF connection. Any value can be specified if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV. If CLAKTYPE is HORIZONTAL and TELEV is not equal to BELEV, TELEV must be less than or equal to the top of the GWF cell CELLID. If TELEV is equal to BELEV, TELEV is reset to the top of the GWF cell CELLID. | +| GWF | LAK | CONNECTIONDATA | CONNLEN | DOUBLE PRECISION | real value that defines the distance between the connected GWF CELLID node and the lake for a HORIZONTAL, EMBEDDEDH, or EMBEDDEDV lake-GWF connection. CONLENN must be greater than zero for a HORIZONTAL, EMBEDDEDH, or EMBEDDEDV lake-GWF connection. Any value can be specified if CLAKTYPE is VERTICAL. | +| GWF | LAK | CONNECTIONDATA | CONNWIDTH | DOUBLE PRECISION | real value that defines the connection face width for a HORIZONTAL lake-GWF connection. CONNWIDTH must be greater than zero for a HORIZONTAL lake-GWF connection. Any value can be specified if CLAKTYPE is VERTICAL, EMBEDDEDH, or EMBEDDEDV. | +| GWF | LAK | TABLES | IFNO | INTEGER | integer value that defines the feature (lake) number associated with the specified TABLES data on the line. IFNO must be greater than zero and less than or equal to NLAKES. The program will terminate with an error if table information for a lake is specified more than once or the number of specified tables is less than NTABLES. | +| GWF | LAK | TABLES | TAB6 | KEYWORD | keyword to specify that record corresponds to a table file. | +| GWF | LAK | TABLES | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | LAK | TABLES | TAB6_FILENAME | STRING | character string that defines the path and filename for the file containing lake table data for the lake connection. The TAB6\_FILENAME file includes the number of entries in the file and the relation between stage, volume, and surface area for each entry in the file. Lake table files for EMBEDDEDH and EMBEDDEDV lake-GWF connections also include lake-GWF exchange area data for each entry in the file. Instructions for creating the TAB6\_FILENAME input file are provided in Lake Table Input File section. | +| GWF | LAK | OUTLETS | OUTLETNO | INTEGER | integer value that defines the outlet number associated with the specified OUTLETS data on the line. OUTLETNO must be greater than zero and less than or equal to NOUTLETS. Outlet information must be specified for every outlet or the program will terminate with an error. The program will also terminate with an error if information for a outlet is specified more than once. | +| GWF | LAK | OUTLETS | LAKEIN | INTEGER | integer value that defines the lake number that outlet is connected to. LAKEIN must be greater than zero and less than or equal to NLAKES. | +| GWF | LAK | OUTLETS | LAKEOUT | INTEGER | integer value that defines the lake number that outlet discharge from lake outlet OUTLETNO is routed to. LAKEOUT must be greater than or equal to zero and less than or equal to NLAKES. If LAKEOUT is zero, outlet discharge from lake outlet OUTLETNO is discharged to an external boundary. | +| GWF | LAK | OUTLETS | COUTTYPE | STRING | character string that defines the outlet type for the outlet OUTLETNO. Possible COUTTYPE strings include: SPECIFIED--character keyword to indicate the outlet is defined as a specified flow. MANNING--character keyword to indicate the outlet is defined using Manning's equation. WEIR--character keyword to indicate the outlet is defined using a sharp weir equation. | +| GWF | LAK | OUTLETS | INVERT | DOUBLE PRECISION | real value that defines the invert elevation for the lake outlet. Any value can be specified if COUTTYPE is SPECIFIED. 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. | +| GWF | LAK | OUTLETS | WIDTH | DOUBLE PRECISION | real value that defines the width of the lake outlet. Any value can be specified if COUTTYPE is SPECIFIED. 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. | +| GWF | LAK | OUTLETS | ROUGH | DOUBLE PRECISION | real value that defines the roughness coefficient for the lake outlet. Any value can be specified if COUTTYPE is not MANNING. 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. | +| GWF | LAK | OUTLETS | SLOPE | DOUBLE PRECISION | real value that defines the bed slope for the lake outlet. Any value can be specified if COUTTYPE is not MANNING. 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. | +| GWF | LAK | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | LAK | PERIOD | NUMBER | INTEGER | integer value that defines the lake or outlet number associated with the specified PERIOD data on the line. NUMBER must be greater than zero and less than or equal to NLAKES for a lake number and less than or equal to NOUTLETS for an outlet number. | +| GWF | LAK | PERIOD | LAKSETTING | KEYSTRING | line of information that is parsed into a keyword and values. Keyword values that can be used to start the LAKSETTING string include both keywords for lake settings and keywords for outlet settings. Keywords for lake settings include: STATUS, STAGE, RAINFALL, EVAPORATION, RUNOFF, INFLOW, WITHDRAWAL, and AUXILIARY. Keywords for outlet settings include RATE, INVERT, WIDTH, SLOPE, and ROUGH. | +| GWF | LAK | PERIOD | STATUS | STRING | keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE. | +| GWF | LAK | PERIOD | STAGE | STRING | real or character value that defines the stage for the lake. The specified STAGE is only applied if the lake is a constant stage 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. | +| GWF | LAK | PERIOD | RAINFALL | STRING | real or character value that defines the rainfall rate $(LT^{-1})$ 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. | +| GWF | LAK | PERIOD | EVAPORATION | STRING | real or character value that defines the maximum evaporation rate $(LT^{-1})$ 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. | +| GWF | LAK | PERIOD | RUNOFF | STRING | real or character value that defines the runoff rate $(L^3 T^{-1})$ 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. | +| GWF | LAK | PERIOD | INFLOW | STRING | real or character value that defines the volumetric inflow rate $(L^3 T^{-1})$ 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. By default, inflow rates are zero for each lake. | +| GWF | LAK | PERIOD | WITHDRAWAL | STRING | real or character value that defines the maximum withdrawal rate $(L^3 T^{-1})$ 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. | +| GWF | LAK | PERIOD | RATE | STRING | real or character value that defines the extraction rate for the lake outflow. A positive value indicates inflow and a negative value indicates outflow from the lake. RATE only applies to outlets associated with active lakes (STATUS is ACTIVE). A specified RATE is only applied if COUTTYPE for the OUTLETNO is SPECIFIED. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. By default, the RATE for each SPECIFIED lake outlet is zero. | +| GWF | LAK | PERIOD | INVERT | STRING | real or character value that defines the invert elevation for the lake outlet. A specified INVERT value is only used for active lakes if COUTTYPE for lake outlet OUTLETNO is not SPECIFIED. 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. | +| GWF | LAK | PERIOD | ROUGH | STRING | real value that defines the roughness coefficient for the lake outlet. Any value can be specified if COUTTYPE is not MANNING. 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. | +| GWF | LAK | PERIOD | WIDTH | STRING | real or character value that defines the width of the lake outlet. A specified WIDTH value is only used for active lakes if COUTTYPE for lake outlet OUTLETNO is not SPECIFIED. 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. | +| GWF | LAK | PERIOD | SLOPE | STRING | real or character value that defines the bed slope for the lake outlet. A specified SLOPE value is only used for active lakes if COUTTYPE for lake outlet OUTLETNO is MANNING. 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. | +| GWF | LAK | PERIOD | AUXILIARY | KEYWORD | keyword for specifying auxiliary variable. | +| GWF | LAK | PERIOD | AUXNAME | STRING | name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable names defined in the OPTIONS block the data are ignored. | +| GWF | LAK | PERIOD | AUXVAL | DOUBLE PRECISION | 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. | | GWF | MAW | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | | GWF | MAW | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of multi-aquifer well cells. | | GWF | MAW | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of multi-aquifer well information will be written to the listing file immediately after it is read. | @@ -547,26 +446,165 @@ | GWF | MAW | PERIOD | AUXILIARY | KEYWORD | keyword for specifying auxiliary variable. | | GWF | MAW | PERIOD | AUXNAME | STRING | name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable names defined in the OPTIONS block the data are ignored. | | GWF | MAW | PERIOD | AUXVAL | DOUBLE PRECISION | 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. | -| GWF | SFR | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | -| GWF | SFR | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of stream reach cells. | -| GWF | SFR | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of stream reach information will be written to the listing file immediately after it is read. | -| GWF | SFR | OPTIONS | PRINT_STAGE | KEYWORD | keyword to indicate that the list of stream reach stages will be printed to the listing file for every stress period in which ``HEAD PRINT'' is specified in Output Control. If there is no Output Control option and PRINT\_STAGE is specified, then stages are printed for the last time step of each stress period. | -| GWF | SFR | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of stream reach flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | SFR | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that stream reach flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | -| GWF | SFR | OPTIONS | STAGE | KEYWORD | keyword to specify that record corresponds to stage. | -| GWF | SFR | OPTIONS | STAGEFILE | STRING | name of the binary output file to write stage information. | -| GWF | SFR | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | -| GWF | SFR | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | -| GWF | SFR | OPTIONS | BUDGETFILE | STRING | name of the binary output file to write budget information. | -| GWF | SFR | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | -| GWF | SFR | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | -| GWF | SFR | OPTIONS | PACKAGE_CONVERGENCE | KEYWORD | keyword to specify that record corresponds to the package convergence comma spaced values file. | -| GWF | SFR | OPTIONS | PACKAGE_CONVERGENCE_FILENAME | STRING | name of the comma spaced values output file to write package convergence information. | -| GWF | SFR | OPTIONS | TS6 | KEYWORD | keyword to specify that record corresponds to a time-series file. | -| GWF | SFR | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | -| GWF | SFR | OPTIONS | TS6_FILENAME | STRING | defines a time-series file defining time series that can be used to assign time-varying values. See the ``Time-Variable Input'' section for instructions on using the time-series capability. | -| GWF | SFR | OPTIONS | OBS6 | KEYWORD | keyword to specify that record corresponds to an observations file. | -| GWF | SFR | OPTIONS | OBS6_FILENAME | STRING | name of input file to define observations for the SFR package. See the ``Observation utility'' section for instructions for preparing observation input files. Tables \ref{table:gwf-obstypetable} and \ref{table:gwt-obstypetable} lists observation type(s) supported by the SFR package. | +| GWF | MVR | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of MVR information will be written to the listing file immediately after it is read. | +| GWF | MVR | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of MVR flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | MVR | OPTIONS | MODELNAMES | KEYWORD | keyword to indicate that all package names will be preceded by the model name for the package. Model names are required when the Mover Package is used with a GWF-GWF Exchange. The MODELNAME keyword should not be used for a Mover Package that is for a single GWF Model. | +| GWF | MVR | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | +| GWF | MVR | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | +| GWF | MVR | OPTIONS | BUDGETFILE | STRING | name of the output file to write budget information. | +| GWF | MVR | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | +| GWF | MVR | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | +| GWF | MVR | DIMENSIONS | MAXMVR | INTEGER | integer value specifying the maximum number of water mover entries that will specified for any stress period. | +| GWF | MVR | DIMENSIONS | MAXPACKAGES | INTEGER | integer value specifying the number of unique packages that are included in this water mover input file. | +| GWF | MVR | PACKAGES | MNAME | STRING | name of model containing the package. Model names are assigned by the user in the simulation name file. | +| GWF | MVR | PACKAGES | PNAME | STRING | is the name of a package that may be included in a subsequent stress period block. The package name is assigned in the name file for the GWF Model. Package names are optionally provided in the name file. If they are not provided by the user, then packages are assigned a default value, which is the package acronym followed by a hyphen and the package number. For example, the first Drain Package is named DRN-1. The second Drain Package is named DRN-2, and so forth. | +| GWF | MVR | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | MVR | PERIOD | MNAME1 | STRING | name of model containing the package, PNAME1. | +| GWF | MVR | PERIOD | PNAME1 | STRING | is the package name for the provider. The package PNAME1 must be designated to provide water through the MVR Package by specifying the keyword ``MOVER'' in its OPTIONS block. | +| GWF | MVR | PERIOD | ID1 | INTEGER | is the identifier for the provider. For the standard boundary packages, the provider identifier is the number of the boundary as it is listed in the package input file. (Note that the order of these boundaries may change by stress period, which must be accounted for in the Mover Package.) So the first well has an identifier of one. The second is two, and so forth. For the advanced packages, the identifier is the reach number (SFR Package), well number (MAW Package), or UZF cell number. For the Lake Package, ID1 is the lake outlet number. Thus, outflows from a single lake can be routed to different streams, for example. | +| GWF | MVR | PERIOD | MNAME2 | STRING | name of model containing the package, PNAME2. | +| GWF | MVR | PERIOD | PNAME2 | STRING | is the package name for the receiver. The package PNAME2 must be designated to receive water from the MVR Package by specifying the keyword ``MOVER'' in its OPTIONS block. | +| GWF | MVR | PERIOD | ID2 | INTEGER | is the identifier for the receiver. The receiver identifier is the reach number (SFR Package), Lake number (LAK Package), well number (MAW Package), or UZF cell number. | +| GWF | MVR | PERIOD | MVRTYPE | STRING | is the character string signifying the method for determining how much water will be moved. Supported values are ``FACTOR'' ``EXCESS'' ``THRESHOLD'' and ``UPTO''. These four options determine how the receiver flow rate, $Q_R$, is calculated. These options mirror the options defined for the cprior variable in the SFR package, with the term ``FACTOR'' being functionally equivalent to the ``FRACTION'' option for cprior. | +| GWF | MVR | PERIOD | VALUE | DOUBLE PRECISION | is the value to be used in the equation for calculating the amount of water to move. For the ``FACTOR'' option, VALUE is the $\alpha$ factor. For the remaining options, VALUE is the specified flow rate, $Q_S$. | +| GWF | NAM | OPTIONS | LIST | STRING | is name of the listing file to create for this GWF model. If not specified, then the name of the list file will be the basename of the GWF model name file and the '.lst' extension. For example, if the GWF name file is called ``my.model.nam'' then the list file will be called ``my.model.lst''. | +| GWF | NAM | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of all model stress package information will be written to the listing file immediately after it is read. | +| GWF | NAM | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of all model package flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | +| GWF | NAM | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that all model package flow terms will be written to the file specified with ``BUDGET FILEOUT'' in Output Control. | +| GWF | NAM | OPTIONS | NEWTON | KEYWORD | keyword that activates the Newton-Raphson formulation for groundwater flow between connected, convertible groundwater cells and stress packages that support calculation of Newton-Raphson terms for groundwater exchanges. Cells will not dry when this option is used. By default, the Newton-Raphson formulation is not applied. | +| GWF | NAM | OPTIONS | UNDER_RELAXATION | KEYWORD | keyword that indicates whether the groundwater head in a cell will be under-relaxed when water levels fall below the bottom of the model below any given cell. By default, Newton-Raphson UNDER\_RELAXATION is not applied. | +| GWF | NAM | PACKAGES | FTYPE | STRING | 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. | +| GWF | NAM | PACKAGES | FNAME | STRING | 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. | +| GWF | NAM | PACKAGES | PNAME | STRING | 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 GWF 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. | +| GWF | NPF | OPTIONS | SAVE_FLOWS | KEYWORD | keyword to indicate that budget flow terms will be written to the file specified with ``BUDGET SAVE FILE'' in Output Control. | +| GWF | NPF | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that calculated flows between cells will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. This option can produce extremely large list files because all cell-by-cell flows are printed. It should only be used with the NPF Package for models that have a small number of cells. | +| GWF | NPF | OPTIONS | ALTERNATIVE_CELL_AVERAGING | STRING | is a text keyword to indicate that an alternative method will be used for calculating the conductance for horizontal cell connections. The text value for ALTERNATIVE\_CELL\_AVERAGING can be ``LOGARITHMIC'', ``AMT-LMK'', or ``AMT-HMK''. ``AMT-LMK'' signifies that the conductance will be calculated using arithmetic-mean thickness and logarithmic-mean hydraulic conductivity. ``AMT-HMK'' signifies that the conductance will be calculated using arithmetic-mean thickness and harmonic-mean hydraulic conductivity. If the user does not specify a value for ALTERNATIVE\_CELL\_AVERAGING, then the harmonic-mean method will be used. This option cannot be used if the XT3D option is invoked. | +| GWF | NPF | OPTIONS | THICKSTRT | KEYWORD | indicates that cells having a negative ICELLTYPE are confined, and their cell thickness for conductance calculations will be computed as STRT-BOT rather than TOP-BOT. This option should be used with caution as it only affects conductance calculations in the NPF Package. | +| GWF | NPF | OPTIONS | VARIABLECV | KEYWORD | keyword to indicate that the vertical conductance will be calculated using the saturated thickness and properties of the overlying cell and the thickness and properties of the underlying cell. If the DEWATERED keyword is also specified, then the vertical conductance is calculated using only the saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top. If these keywords are not specified, then the default condition is to calculate the vertical conductance at the start of the simulation using the initial head and the cell properties. The vertical conductance remains constant for the entire simulation. | +| GWF | NPF | OPTIONS | DEWATERED | KEYWORD | If the DEWATERED keyword is specified, then the vertical conductance is calculated using only the saturated thickness and properties of the overlying cell if the head in the underlying cell is below its top. | +| GWF | NPF | OPTIONS | PERCHED | KEYWORD | keyword to indicate that when a cell is overlying a dewatered convertible cell, the head difference used in Darcy's Law is equal to the head in the overlying cell minus the bottom elevation of the overlying cell. If not specified, then the default is to use the head difference between the two cells. | +| GWF | NPF | OPTIONS | REWET | KEYWORD | activates model rewetting. Rewetting is off by default. | +| GWF | NPF | OPTIONS | WETFCT | DOUBLE PRECISION | is a keyword and factor that is included in the calculation of the head that is initially established at a cell when that cell is converted from dry to wet. | +| GWF | NPF | OPTIONS | IWETIT | INTEGER | is a keyword and iteration interval for attempting to wet cells. Wetting is attempted every IWETIT iteration. This applies to outer iterations and not inner iterations. If IWETIT is specified as zero or less, then the value is changed to 1. | +| GWF | NPF | OPTIONS | IHDWET | INTEGER | is a keyword and integer flag that determines which equation is used to define the initial head at cells that become wet. If IHDWET is 0, h = BOT + WETFCT (hm - BOT). If IHDWET is not 0, h = BOT + WETFCT (THRESH). | +| GWF | NPF | OPTIONS | XT3D | KEYWORD | keyword indicating that the XT3D formulation will be used. If the RHS keyword is also included, then the XT3D additional terms will be added to the right-hand side. If the RHS keyword is excluded, then the XT3D terms will be put into the coefficient matrix. Use of XT3D will substantially increase the computational effort, but will result in improved accuracy for anisotropic conductivity fields and for unstructured grids in which the CVFD requirement is violated. XT3D requires additional information about the shapes of grid cells. If XT3D is active and the DISU Package is used, then the user will need to provide in the DISU Package the angldegx array in the CONNECTIONDATA block and the VERTICES and CELL2D blocks. | +| GWF | NPF | OPTIONS | RHS | KEYWORD | If the RHS keyword is also included, then the XT3D additional terms will be added to the right-hand side. If the RHS keyword is excluded, then the XT3D terms will be put into the coefficient matrix. | +| GWF | NPF | OPTIONS | SAVE_SPECIFIC_DISCHARGE | KEYWORD | keyword to indicate that x, y, and z components of specific discharge will be calculated at cell centers and written to the budget file, which is specified with ``BUDGET SAVE FILE'' in Output Control. If this option is activated, then additional information may be required in the discretization packages and the GWF Exchange package (if GWF models are coupled). Specifically, ANGLDEGX must be specified in the CONNECTIONDATA block of the DISU Package; ANGLDEGX must also be specified for the GWF Exchange as an auxiliary variable. | +| GWF | NPF | OPTIONS | SAVE_SATURATION | KEYWORD | keyword to indicate that cell saturation will be written to the budget file, which is specified with ``BUDGET SAVE FILE'' in Output Control. Saturation will be saved to the budget file as an auxiliary variable saved with the DATA-SAT text label. Saturation is a cell variable that ranges from zero to one and can be used by post processing programs to determine how much of a cell volume is saturated. If ICELLTYPE is 0, then saturation is always one. | +| GWF | NPF | OPTIONS | K22OVERK | KEYWORD | keyword to indicate that specified K22 is a ratio of K22 divided by K. If this option is specified, then the K22 array entered in the NPF Package will be multiplied by K after being read. | +| GWF | NPF | OPTIONS | K33OVERK | KEYWORD | keyword to indicate that specified K33 is a ratio of K33 divided by K. If this option is specified, then the K33 array entered in the NPF Package will be multiplied by K after being read. | +| GWF | NPF | OPTIONS | TVK6 | KEYWORD | keyword to specify that record corresponds to a time-varying hydraulic conductivity (TVK) file. The behavior of TVK and a description of the input file is provided separately. | +| GWF | NPF | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | NPF | OPTIONS | TVK6_FILENAME | STRING | defines a time-varying hydraulic conductivity (TVK) input file. Records in the TVK file can be used to change hydraulic conductivity properties at specified times or stress periods. | +| GWF | NPF | OPTIONS | DEV_NO_NEWTON | KEYWORD | turn off Newton for unconfined cells | +| GWF | NPF | OPTIONS | DEV_MODFLOWUSG_UPSTREAM_WEIGHTED_SATURATION | KEYWORD | use MODFLOW-USG upstream-weighted saturation approach | +| GWF | NPF | OPTIONS | DEV_MODFLOWNWT_UPSTREAM_WEIGHTING | KEYWORD | use MODFLOW-NWT approach for upstream weighting | +| GWF | NPF | OPTIONS | DEV_MINIMUM_SATURATED_THICKNESS | DOUBLE PRECISION | set minimum allowed saturated thickness | +| GWF | NPF | OPTIONS | DEV_OMEGA | DOUBLE PRECISION | set saturation omega value | +| GWF | NPF | GRIDDATA | ICELLTYPE | INTEGER (NODES) | flag for each cell that specifies how saturated thickness is treated. 0 means saturated thickness is held constant; $>$0 means saturated thickness varies with computed head when head is below the cell top; $<$0 means saturated thickness varies with computed head unless the THICKSTRT option is in effect. When THICKSTRT is in effect, a negative value for ICELLTYPE indicates that the saturated thickness value used in conductance calculations in the NPF Package will be computed as STRT-BOT and held constant. If the THICKSTRT option is not in effect, then negative values provided by the user for ICELLTYPE are automatically reassigned by the program to a value of one. | +| GWF | NPF | GRIDDATA | K | DOUBLE PRECISION (NODES) | is the hydraulic conductivity. For the common case in which the user would like to specify the horizontal hydraulic conductivity and the vertical hydraulic conductivity, then K should be assigned as the horizontal hydraulic conductivity, K33 should be assigned as the vertical hydraulic conductivity, and K22 and the three rotation angles should not be specified. When more sophisticated anisotropy is required, then K corresponds to the K11 hydraulic conductivity axis. All included cells (IDOMAIN $>$ 0) must have a K value greater than zero. | +| GWF | NPF | GRIDDATA | K22 | DOUBLE PRECISION (NODES) | is the hydraulic conductivity of the second ellipsoid axis (or the ratio of K22/K if the K22OVERK option is specified); for an unrotated case this is the hydraulic conductivity in the y direction. If K22 is not included in the GRIDDATA block, then K22 is set equal to K. For a regular MODFLOW grid (DIS Package is used) in which no rotation angles are specified, K22 is the hydraulic conductivity along columns in the y direction. For an unstructured DISU grid, the user must assign principal x and y axes and provide the angle for each cell face relative to the assigned x direction. All included cells (IDOMAIN $>$ 0) must have a K22 value greater than zero. | +| GWF | NPF | GRIDDATA | K33 | DOUBLE PRECISION (NODES) | is the hydraulic conductivity of the third ellipsoid axis (or the ratio of K33/K if the K33OVERK option is specified); for an unrotated case, this is the vertical hydraulic conductivity. When anisotropy is applied, K33 corresponds to the K33 tensor component. All included cells (IDOMAIN $>$ 0) must have a K33 value greater than zero. | +| GWF | NPF | GRIDDATA | ANGLE1 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the first of three sequential rotations of the hydraulic conductivity ellipsoid. With the K11, K22, and K33 axes of the ellipsoid initially aligned with the x, y, and z coordinate axes, respectively, ANGLE1 rotates the ellipsoid about its K33 axis (within the x - y plane). A positive value represents counter-clockwise rotation when viewed from any point on the positive K33 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - z plane. If ANGLE1 is not specified, default values of zero are assigned to ANGLE1, ANGLE2, and ANGLE3, in which case the K11, K22, and K33 axes are aligned with the x, y, and z axes, respectively. | +| GWF | NPF | GRIDDATA | ANGLE2 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the second of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotation by ANGLE1 described above, ANGLE2 rotates the ellipsoid about its K22 axis (out of the x - y plane). An array can be specified for ANGLE2 only if ANGLE1 is also specified. A positive value of ANGLE2 represents clockwise rotation when viewed from any point on the positive K22 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K11 axis lies within the x - y plane. If ANGLE2 is not specified, default values of zero are assigned to ANGLE2 and ANGLE3; connections that are not user-designated as vertical are assumed to be strictly horizontal (that is, to have no z component to their orientation); and connection lengths are based on horizontal distances. | +| GWF | NPF | GRIDDATA | ANGLE3 | DOUBLE PRECISION (NODES) | is a rotation angle of the hydraulic conductivity tensor in degrees. The angle represents the third of three sequential rotations of the hydraulic conductivity ellipsoid. Following the rotations by ANGLE1 and ANGLE2 described above, ANGLE3 rotates the ellipsoid about its K11 axis. An array can be specified for ANGLE3 only if ANGLE1 and ANGLE2 are also specified. An array must be specified for ANGLE3 if ANGLE2 is specified. A positive value of ANGLE3 represents clockwise rotation when viewed from any point on the positive K11 axis, looking toward the center of the ellipsoid. A value of zero indicates that the K22 axis lies within the x - y plane. | +| GWF | NPF | GRIDDATA | WETDRY | DOUBLE PRECISION (NODES) | is a combination of the wetting threshold and a flag to indicate which neighboring cells can cause a cell to become wet. If WETDRY $<$ 0, only a cell below a dry cell can cause the cell to become wet. If WETDRY $>$ 0, the cell below a dry cell and horizontally adjacent cells can cause a cell to become wet. If WETDRY is 0, the cell cannot be wetted. The absolute value of WETDRY is the wetting threshold. When the sum of BOT and the absolute value of WETDRY at a dry cell is equaled or exceeded by the head at an adjacent cell, the cell is wetted. WETDRY must be specified if ``REWET'' is specified in the OPTIONS block. If ``REWET'' is not specified in the options block, then WETDRY can be entered, and memory will be allocated for it, even though it is not used. | +| GWF | OC | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | +| GWF | OC | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | +| GWF | OC | OPTIONS | BUDGETFILE | STRING | name of the output file to write budget information. | +| GWF | OC | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | +| GWF | OC | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | +| GWF | OC | OPTIONS | HEAD | KEYWORD | keyword to specify that record corresponds to head. | +| GWF | OC | OPTIONS | HEADFILE | STRING | name of the output file to write head information. | +| GWF | OC | OPTIONS | PRINT_FORMAT | KEYWORD | keyword to specify format for printing to the listing file. | +| GWF | OC | OPTIONS | COLUMNS | INTEGER | number of columns for writing data. | +| GWF | OC | OPTIONS | WIDTH | INTEGER | width for writing each number. | +| GWF | OC | OPTIONS | DIGITS | INTEGER | number of digits to use for writing a number. | +| GWF | OC | OPTIONS | FORMAT | STRING | write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC. | +| GWF | OC | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | OC | PERIOD | SAVE | KEYWORD | keyword to indicate that information will be saved this stress period. | +| GWF | OC | PERIOD | PRINT | KEYWORD | keyword to indicate that information will be printed this stress period. | +| GWF | OC | PERIOD | RTYPE | STRING | type of information to save or print. Can be BUDGET or HEAD. | +| GWF | OC | PERIOD | OCSETTING | KEYSTRING | specifies the steps for which the data will be saved. | +| GWF | OC | PERIOD | ALL | KEYWORD | keyword to indicate save for all time steps in period. | +| GWF | OC | PERIOD | FIRST | KEYWORD | 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. | +| GWF | OC | PERIOD | LAST | KEYWORD | 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. | +| GWF | OC | PERIOD | FREQUENCY | INTEGER | 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. | +| GWF | OC | PERIOD | STEPS | INTEGER (0) when the cell is under confined conditions (head greater than or equal to the top of the cell). This option has no effect on cells that are marked as being always confined (ICONVERT=0). This option is identical to the approach used to calculate storage changes under confined conditions in MODFLOW-2005. | +| GWF | STO | OPTIONS | TVS6 | KEYWORD | keyword to specify that record corresponds to a time-varying storage (TVS) file. The behavior of TVS and a description of the input file is provided separately. | +| GWF | STO | OPTIONS | FILEIN | KEYWORD | keyword to specify that an input filename is expected next. | +| GWF | STO | OPTIONS | TVS_FILENAME | STRING | defines a time-varying storage (TVS) input file. Records in the TVS file can be used to change specific storage and specific yield properties at specified times or stress periods. | +| GWF | STO | GRIDDATA | ICONVERT | INTEGER (NODES) | is a flag for each cell that specifies whether or not a cell is convertible for the storage calculation. 0 indicates confined storage is used. $>$0 indicates confined storage is used when head is above cell top and a mixed formulation of unconfined and confined storage is used when head is below cell top. | +| GWF | STO | GRIDDATA | SS | DOUBLE PRECISION (NODES) | is specific storage (or the storage coefficient if STORAGECOEFFICIENT is specified as an option). Specific storage values must be greater than or equal to 0. If the CSUB Package is included in the GWF model, specific storage must be zero for every cell. | +| GWF | STO | GRIDDATA | SY | DOUBLE PRECISION (NODES) | is specific yield. Specific yield values must be greater than or equal to 0. Specific yield does not have to be specified if there are no convertible cells (ICONVERT=0 in every cell). | +| GWF | STO | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | +| GWF | STO | PERIOD | STEADY-STATE | KEYWORD | keyword to indicate that stress period IPER is steady-state. Steady-state conditions will apply until the TRANSIENT keyword is specified in a subsequent BEGIN PERIOD block. If the CSUB Package is included in the GWF model, only the first and last stress period can be steady-state. | +| GWF | STO | PERIOD | TRANSIENT | KEYWORD | keyword to indicate that stress period IPER is transient. Transient conditions will apply until the STEADY-STATE keyword is specified in a subsequent BEGIN PERIOD block. | | GWF | UZF | OPTIONS | AUXILIARY | STRING (NAUX) | defines an array of one or more auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided on this line; however, lists of information provided in subsequent blocks must have a column of data for each auxiliary variable name defined here. The number of auxiliary variables detected on this line determines the value for naux. Comments cannot be provided anywhere on this line as they will be interpreted as auxiliary variable names. Auxiliary variables may not be used by the package, but they will be available for use by other parts of the program. The program will terminate with an error if auxiliary variables are specified on more than one line in the options block. | | GWF | UZF | OPTIONS | AUXMULTNAME | STRING | name of auxiliary variable to be used as multiplier of GWF cell area used by UZF cell. | | GWF | UZF | OPTIONS | BOUNDNAMES | KEYWORD | keyword to indicate that boundary names may be provided with the list of UZF cells. | @@ -744,58 +721,6 @@ | GWF | UZF | PERIOD | HROOT | STRING | real or character value that defines the root potential (head) of the UZF cell. HROOT is always specified, but is only used if SIMULATE\_ET and UNSAT\_ETAE are specified in the OPTIONS block. 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. | | GWF | UZF | PERIOD | ROOTACT | STRING | real or character value that defines the root activity function of the UZF cell. ROOTACT is the length of roots in a given volume of soil divided by that volume. Values range from 0 to about 3 $cm^{-2}$, depending on the plant community and its stage of development. ROOTACT is always specified, but is only used if SIMULATE\_ET and UNSAT\_ETAE are specified in the OPTIONS block. 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. | | GWF | UZF | PERIOD | AUX | DOUBLE PRECISION (NAUX) | represents the values of the auxiliary variables for each UZF. The values of auxiliary variables must be present for each UZF. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block. If the package supports time series and the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value. | -| GWF | MVR | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of MVR information will be written to the listing file immediately after it is read. | -| GWF | MVR | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of MVR flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | MVR | OPTIONS | MODELNAMES | KEYWORD | keyword to indicate that all package names will be preceded by the model name for the package. Model names are required when the Mover Package is used with a GWF-GWF Exchange. The MODELNAME keyword should not be used for a Mover Package that is for a single GWF Model. | -| GWF | MVR | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | -| GWF | MVR | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | -| GWF | MVR | OPTIONS | BUDGETFILE | STRING | name of the output file to write budget information. | -| GWF | MVR | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | -| GWF | MVR | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | -| GWF | MVR | DIMENSIONS | MAXMVR | INTEGER | integer value specifying the maximum number of water mover entries that will specified for any stress period. | -| GWF | MVR | DIMENSIONS | MAXPACKAGES | INTEGER | integer value specifying the number of unique packages that are included in this water mover input file. | -| GWF | MVR | PACKAGES | MNAME | STRING | name of model containing the package. Model names are assigned by the user in the simulation name file. | -| GWF | MVR | PACKAGES | PNAME | STRING | is the name of a package that may be included in a subsequent stress period block. The package name is assigned in the name file for the GWF Model. Package names are optionally provided in the name file. If they are not provided by the user, then packages are assigned a default value, which is the package acronym followed by a hyphen and the package number. For example, the first Drain Package is named DRN-1. The second Drain Package is named DRN-2, and so forth. | -| GWF | MVR | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | MVR | PERIOD | MNAME1 | STRING | name of model containing the package, PNAME1. | -| GWF | MVR | PERIOD | PNAME1 | STRING | is the package name for the provider. The package PNAME1 must be designated to provide water through the MVR Package by specifying the keyword ``MOVER'' in its OPTIONS block. | -| GWF | MVR | PERIOD | ID1 | INTEGER | is the identifier for the provider. For the standard boundary packages, the provider identifier is the number of the boundary as it is listed in the package input file. (Note that the order of these boundaries may change by stress period, which must be accounted for in the Mover Package.) So the first well has an identifier of one. The second is two, and so forth. For the advanced packages, the identifier is the reach number (SFR Package), well number (MAW Package), or UZF cell number. For the Lake Package, ID1 is the lake outlet number. Thus, outflows from a single lake can be routed to different streams, for example. | -| GWF | MVR | PERIOD | MNAME2 | STRING | name of model containing the package, PNAME2. | -| GWF | MVR | PERIOD | PNAME2 | STRING | is the package name for the receiver. The package PNAME2 must be designated to receive water from the MVR Package by specifying the keyword ``MOVER'' in its OPTIONS block. | -| GWF | MVR | PERIOD | ID2 | INTEGER | is the identifier for the receiver. The receiver identifier is the reach number (SFR Package), Lake number (LAK Package), well number (MAW Package), or UZF cell number. | -| GWF | MVR | PERIOD | MVRTYPE | STRING | is the character string signifying the method for determining how much water will be moved. Supported values are ``FACTOR'' ``EXCESS'' ``THRESHOLD'' and ``UPTO''. These four options determine how the receiver flow rate, $Q_R$, is calculated. These options mirror the options defined for the cprior variable in the SFR package, with the term ``FACTOR'' being functionally equivalent to the ``FRACTION'' option for cprior. | -| GWF | MVR | PERIOD | VALUE | DOUBLE PRECISION | is the value to be used in the equation for calculating the amount of water to move. For the ``FACTOR'' option, VALUE is the $\alpha$ factor. For the remaining options, VALUE is the specified flow rate, $Q_S$. | -| GWF | GNC | OPTIONS | PRINT_INPUT | KEYWORD | keyword to indicate that the list of GNC information will be written to the listing file immediately after it is read. | -| GWF | GNC | OPTIONS | PRINT_FLOWS | KEYWORD | keyword to indicate that the list of GNC flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period. | -| GWF | GNC | OPTIONS | EXPLICIT | KEYWORD | keyword to indicate that the ghost node correction is applied in an explicit manner on the right-hand side of the matrix. The explicit approach will likely require additional outer iterations. If the keyword is not specified, then the correction will be applied in an implicit manner on the left-hand side. The implicit approach will likely converge better, but may require additional memory. If the EXPLICIT keyword is not specified, then the BICGSTAB linear acceleration option should be specified within the LINEAR block of the Sparse Matrix Solver. | -| GWF | GNC | DIMENSIONS | NUMGNC | INTEGER | is the number of GNC entries. | -| GWF | GNC | DIMENSIONS | NUMALPHAJ | INTEGER | is the number of contributing factors. | -| GWF | GNC | GNCDATA | CELLIDN | INTEGER | is the cellid of the cell, $n$, in which the ghost node is located. For a structured grid that uses the DIS input file, CELLIDN is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDN is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDN is the node number for the cell. | -| GWF | GNC | GNCDATA | CELLIDM | INTEGER | is the cellid of the connecting cell, $m$, to which flow occurs from the ghost node. For a structured grid that uses the DIS input file, CELLIDM is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDM is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDM is the node number for the cell. | -| GWF | GNC | GNCDATA | CELLIDSJ | INTEGER (NUMALPHAJ) | is the array of CELLIDS for the contributing j cells, which contribute to the interpolated head value at the ghost node. This item contains one CELLID for each of the contributing cells of the ghost node. Note that if the number of actual contributing cells needed by the user is less than NUMALPHAJ for any ghost node, then a dummy CELLID of zero(s) should be inserted with an associated contributing factor of zero. For a structured grid that uses the DIS input file, CELLID is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLID is the layer number and cell2d number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLID is the node number for the cell. | -| GWF | GNC | GNCDATA | ALPHASJ | DOUBLE PRECISION (NUMALPHAJ) | is the contributing factors for each contributing node in CELLIDSJ. Note that if the number of actual contributing cells is less than NUMALPHAJ for any ghost node, then dummy CELLIDS should be inserted with an associated contributing factor of zero. The sum of ALPHASJ should be less than one. This is because one minus the sum of ALPHASJ is equal to the alpha term (alpha n in equation 4-61 of the GWF Model report) that is multiplied by the head in cell n. | -| GWF | OC | OPTIONS | BUDGET | KEYWORD | keyword to specify that record corresponds to the budget. | -| GWF | OC | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | -| GWF | OC | OPTIONS | BUDGETFILE | STRING | name of the output file to write budget information. | -| GWF | OC | OPTIONS | BUDGETCSV | KEYWORD | keyword to specify that record corresponds to the budget CSV. | -| GWF | OC | OPTIONS | BUDGETCSVFILE | STRING | name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation. | -| GWF | OC | OPTIONS | HEAD | KEYWORD | keyword to specify that record corresponds to head. | -| GWF | OC | OPTIONS | HEADFILE | STRING | name of the output file to write head information. | -| GWF | OC | OPTIONS | PRINT_FORMAT | KEYWORD | keyword to specify format for printing to the listing file. | -| GWF | OC | OPTIONS | COLUMNS | INTEGER | number of columns for writing data. | -| GWF | OC | OPTIONS | WIDTH | INTEGER | width for writing each number. | -| GWF | OC | OPTIONS | DIGITS | INTEGER | number of digits to use for writing a number. | -| GWF | OC | OPTIONS | FORMAT | STRING | write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC. | -| GWF | OC | PERIOD | IPER | INTEGER | integer value specifying the starting stress period number for which the data specified in the PERIOD block apply. IPER must be less than or equal to NPER in the TDIS Package and greater than zero. The IPER value assigned to a stress period block must be greater than the IPER value assigned for the previous PERIOD block. The information specified in the PERIOD block will continue to apply for all subsequent stress periods, unless the program encounters another PERIOD block. | -| GWF | OC | PERIOD | SAVE | KEYWORD | keyword to indicate that information will be saved this stress period. | -| GWF | OC | PERIOD | PRINT | KEYWORD | keyword to indicate that information will be printed this stress period. | -| GWF | OC | PERIOD | RTYPE | STRING | type of information to save or print. Can be BUDGET or HEAD. | -| GWF | OC | PERIOD | OCSETTING | KEYSTRING | specifies the steps for which the data will be saved. | -| GWF | OC | PERIOD | ALL | KEYWORD | keyword to indicate save for all time steps in period. | -| GWF | OC | PERIOD | FIRST | KEYWORD | 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. | -| GWF | OC | PERIOD | LAST | KEYWORD | 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. | -| GWF | OC | PERIOD | FREQUENCY | INTEGER | 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. | -| GWF | OC | PERIOD | STEPS | INTEGER ( 0: - name = vd['name'] - if 'block' in vd: - block = vd['block'] + name = vd["name"] + if "block" in vd: + block = vd["block"] key = (name, block) else: key = name if key in vardict: - raise Exception( - 'Variable already exists in dictionary: ' + name) + raise Exception("Variable already exists in dictionary: " + name) vardict[key] = vd vd = {} continue # skip comments - if '#' in line.strip()[0]: + if "#" in line.strip()[0]: continue ll = line.strip().split() if len(ll) > 1: k = ll[0] - istart = line.index(' ') + istart = line.index(" ") v = line[istart:].strip() if k in vd: - raise Exception('Attribute already exists in dictionary: ' + k) + raise Exception("Attribute already exists in dictionary: " + k) vd[k] = v if len(vd) > 0: - name = vd['name'] - if 'block' in vd: - block = vd['block'] + name = vd["name"] + if "block" in vd: + block = vd["block"] key = (name, block) else: key = name if key in vardict: - raise Exception( - 'Variable already exists in dictionary: ' + name) + raise Exception("Variable already exists in dictionary: " + name) vardict[key] = vd return vardict -COMMONDESCRIPTIONS = parse_mf6var_file(os.path.join('.', 'dfn', 'common.dfn')) +COMMONDESCRIPTIONS = parse_mf6var_file(os.path.join(".", "dfn", "common.dfn")) VALID_TYPES = [ - 'integer', - 'double precision', - 'string', - 'keystring', - 'keyword', - 'recarray', - 'record', + "integer", + "double precision", + "string", + "keystring", + "keyword", + "recarray", + "record", ] -def block_entry(varname, block, vardict, prefix=' '): +def block_entry(varname, block, vardict, prefix=" "): key = (varname, block) v = vardict[key] - s = '{}'.format(varname.upper()) - if 'tagged' in v: - if v['tagged'] == 'false': - s = '' + s = "{}".format(varname.upper()) + if "tagged" in v: + if v["tagged"] == "false": + s = "" # set up the time series marker @ - tsmarker = '' - if 'time_series' in v: - if v['time_series'] == 'true': - tsmarker = '@' + tsmarker = "" + if "time_series" in v: + if v["time_series"] == "true": + tsmarker = "@" # check valid type - vtype = v['type'] + vtype = v["type"] if vtype == "double precision": pass elif " " in vtype: @@ -234,65 +224,65 @@ def block_entry(varname, block, vardict, prefix=' '): if vtype not in VALID_TYPES: raise ValueError( "{}: {}: {!r} is not a valid type from {}".format( - fname, key, vtype, VALID_TYPES) + fname, key, vtype, VALID_TYPES + ) ) # record or recarray - if v['type'].startswith('rec'): - varnames = v['type'].strip().split()[1:] - s = '' + if v["type"].startswith("rec"): + varnames = v["type"].strip().split()[1:] + s = "" for vn in varnames: - blockentry = block_entry(vn, block, vardict, prefix='') - s += '{} '.format(blockentry.strip()) - if v['type'].startswith('recarray'): + blockentry = block_entry(vn, block, vardict, prefix="") + s += "{} ".format(blockentry.strip()) + if v["type"].startswith("recarray"): s = s.strip() - s = '{}{}\n{}{}\n{}{}'.format('', s, prefix, s, prefix, '...') + s = "{}{}\n{}{}\n{}{}".format("", s, prefix, s, prefix, "...") # layered - elif v['reader'] in ['readarray', 'u1ddbl', 'u2ddbl', 'u1dint']: - shape = v['shape'] - reader = v['reader'].upper() - layered = '' - if 'layered' in v: - if v['layered'] == 'true': - layered = ' [LAYERED]' - s = '{}{}\n{}{}<{}{}> -- {}'.format(s, layered, prefix, prefix, - varname, - shape, reader) + elif v["reader"] in ["readarray", "u1ddbl", "u2ddbl", "u1dint"]: + shape = v["shape"] + reader = v["reader"].upper() + layered = "" + if "layered" in v: + if v["layered"] == "true": + layered = " [LAYERED]" + s = "{}{}\n{}{}<{}{}> -- {}".format( + s, layered, prefix, prefix, varname, shape, reader + ) # keyword - elif v['type'] != 'keyword': + elif v["type"] != "keyword": vtmp = varname - if 'shape' in v: - shape = v['shape'] + if "shape" in v: + shape = v["shape"] vtmp += shape - s = '{} <{}{}{}>'.format(s, tsmarker, vtmp, tsmarker) + s = "{} <{}{}{}>".format(s, tsmarker, vtmp, tsmarker) # if optional, wrap string in square brackets - if 'optional' in v: - if v['optional'] == 'true': - s = '[{}]'.format(s.strip()) + if "optional" in v: + if v["optional"] == "true": + s = "[{}]".format(s.strip()) # prepend with prefix and return string - s = '{}{}'.format(prefix, s) + s = "{}{}".format(prefix, s) return s -def write_block(vardict, block, blk_var_list, varexcludeprefix=None, - indent=None): +def write_block(vardict, block, blk_var_list, varexcludeprefix=None, indent=None): if indent is None: prepend = "" else: prepend = indent * " " - s = prepend + 'BEGIN {}'.format(block.upper()) + s = prepend + "BEGIN {}".format(block.upper()) for variable in blk_var_list: ts = block_entry(variable[0], block, vardict).strip() if variable[1]: - s = '{} [{}]'.format(s, ts) + s = "{} [{}]".format(s, ts) else: - s = '{} {}'.format(s, ts) - s += '\n' + s = "{} {}".format(s, ts) + s += "\n" for iv, key in enumerate(vardict): name, b = key v = vardict[key] @@ -304,23 +294,23 @@ def write_block(vardict, block, blk_var_list, varexcludeprefix=None, n = name.upper() if n.startswith(varexcludeprefix.upper()): addv = False - if 'in_record' in v: - if v['in_record'] == 'true': + if "in_record" in v: + if v["in_record"] == "true": # do not separately include this variable # because it is part of a record addv = False - if 'block_variable' in v: - if v['block_variable'] == 'true': + if "block_variable" in v: + if v["block_variable"] == "true": # do not separately include this variable # because it is part of a record addv = False - if 'deprecated' in v: - if v['deprecated'] != '': + if "deprecated" in v: + if v["deprecated"] != "": addv = False if addv: ts = block_entry(name, block, vardict, prefix=" " + prepend) - s += '{}\n'.format(ts) - s += prepend + 'END {}'.format(block.upper()) + s += "{}\n".format(ts) + s += prepend + "END {}".format(block.upper()) return s @@ -330,11 +320,11 @@ def get_description(desc): substitutions if so. """ - if desc.strip().split()[0] == 'REPLACE': + if desc.strip().split()[0] == "REPLACE": bcoption = desc.strip().split()[1] - constantstring = COMMONDESCRIPTIONS[bcoption]['description'] - istart = desc.index('{') - istop = desc.rfind('}') + 1 + constantstring = COMMONDESCRIPTIONS[bcoption]["description"] + istart = desc.index("{") + istop = desc.rfind("}") + 1 d = eval(desc[istart:istop]) # d = eval(desc[desc.index('{'):]) for k in d: @@ -345,13 +335,13 @@ def get_description(desc): def write_desc(vardict, block, blk_var_list, varexcludeprefix=None): - s = '' + s = "" for iv, (name, b) in enumerate(vardict): v = vardict[(name, b)] - if v['block'] == block: - if 'block_variable' in v and v['block_variable']: - optional = 'optional' in v and v['optional'] == 'true' - blk_var_list.append((v['name'], optional)) + if v["block"] == block: + if "block_variable" in v and v["block_variable"]: + optional = "optional" in v and v["optional"] == "true" + blk_var_list.append((v["name"], optional)) addv = True if varexcludeprefix is not None: # exclude variables that start with `dev_`. These are @@ -359,61 +349,61 @@ def write_desc(vardict, block, blk_var_list, varexcludeprefix=None): n = name.upper() if n.startswith(varexcludeprefix.upper()): addv = False - if v['type'].startswith('rec'): + if v["type"].startswith("rec"): addv = False - if 'deprecated' in v: - if v['deprecated'] != '': + if "deprecated" in v: + if v["deprecated"] != "": addv = False - if 'removed' in v: - if v['removed'] != '': + if "removed" in v: + if v["removed"] != "": addv = False if addv: - if v['type'] == 'keyword': + if v["type"] == "keyword": n = name.upper() else: - if 'tagged' in v: + if "tagged" in v: # could be used in future to write tag and name - n = '{}'.format(name) + n = "{}".format(name) else: n = name - n = n.replace('_', '\\_') - if 'description' in v: - desc = get_description(v['description']) + n = n.replace("_", "\\_") + if "description" in v: + desc = get_description(v["description"]) else: - msg = '' + msg = "" for k, v in v.items(): - msg += ' {}: {}\n'.format(k, v) + msg += " {}: {}\n".format(k, v) print(msg) raise Exception(msg) - ss = '\\texttt{' + n + '}---' + desc - if 'time_series' in v: - if v['time_series'] == 'true': - fmt = '\\textcolor{blue}\{\}' - ss = '\\textcolor{blue}{' + ss + '}' + ss = "\\texttt{" + n + "}---" + desc + if "time_series" in v: + if v["time_series"] == "true": + fmt = "\\textcolor{blue}\{\}" + ss = "\\textcolor{blue}{" + ss + "}" # \textcolor{declared-color}{text} - s += '\\item ' + ss + '\n\n' + s += "\\item " + ss + "\n\n" - t = v['type'] - if t.startswith('keystring'): + t = v["type"] + if t.startswith("keystring"): # s += '\\begin{verbatim}\n' - s += '\\begin{lstlisting}[style=blockdefinition]\n' + s += "\\begin{lstlisting}[style=blockdefinition]\n" for vn in t.strip().split()[1:]: - blockentry = block_entry(vn, block, vardict, '') - s += '{}\n'.format(blockentry) + blockentry = block_entry(vn, block, vardict, "") + s += "{}\n".format(blockentry) # s += '\\end{verbatim}\n\n' - s += '\\end{lstlisting}\n\n' + s += "\\end{lstlisting}\n\n" return s def write_desc_md(vardict, block, blk_var_list, varexcludeprefix=None): - s = '' + s = "" for iv, (name, b) in enumerate(vardict): v = vardict[(name, b)] - if v['block'] == block: - if 'block_variable' in v and v['block_variable']: - optional = 'optional' in v and v['optional'] == 'true' - blk_var_list.append((v['name'], optional)) + if v["block"] == block: + if "block_variable" in v and v["block_variable"]: + optional = "optional" in v and v["optional"] == "true" + blk_var_list.append((v["name"], optional)) addv = True if varexcludeprefix is not None: # exclude variables that start with `dev_`. These are @@ -421,45 +411,45 @@ def write_desc_md(vardict, block, blk_var_list, varexcludeprefix=None): n = name.upper() if n.startswith(varexcludeprefix.upper()): addv = False - if v['type'].startswith('rec'): + if v["type"].startswith("rec"): addv = False - if 'deprecated' in v: - if v['deprecated'] != '': + if "deprecated" in v: + if v["deprecated"] != "": addv = False - if 'removed' in v: - if v['removed'] != '': + if "removed" in v: + if v["removed"] != "": addv = False if addv: - if v['type'] == 'keyword': + if v["type"] == "keyword": n = name.upper() else: - if 'tagged' in v: + if "tagged" in v: # could be used in future to write tag and name - n = '{}'.format(name) + n = "{}".format(name) else: n = name - if 'description' in v: - desc = get_description(v['description']) + if "description" in v: + desc = get_description(v["description"]) else: - msg = '' + msg = "" for k, v in v.items(): - msg += ' {}: {}\n'.format(k, v) + msg += " {}: {}\n".format(k, v) print(msg) raise Exception(msg) desc = md_replace(desc) - ss = '`' + n + '` ' + desc - if 'time_series' in v: - if v['time_series'] == 'true': - ss = '' + ss + '' - s += ' * ' + ss + '\n\n' - - t = v['type'] - if t.startswith('keystring'): + ss = "`" + n + "` " + desc + if "time_series" in v: + if v["time_series"] == "true": + ss = '' + ss + "" + s += " * " + ss + "\n\n" + + t = v["type"] + if t.startswith("keystring"): for vn in t.strip().split()[1:]: blockentry = md_replace( block_entry(vn, block, vardict, 10 * " ") ) - s += '{}\n'.format(blockentry) + s += "{}\n".format(blockentry) return s @@ -470,7 +460,7 @@ def md_replace(s): re.compile("\\\\cite{(.*?)\\}"): ("\\cite{{{}}}", None), re.compile("\\\\citep{(.*?)\\}"): ("\\citep{{{}}}", None), re.compile("\\\\texttt{(.*?)\\}"): ("\\texttt{{{}}}", "`{}`"), - re.compile("\\$(.*?)\\$"): ("${}$", '{}'), + re.compile("\\$(.*?)\\$"): ("${}$", "{}"), re.compile("\\^{(.*?)\\}"): ("^{{{}}}", "{}"), re.compile("\\^(.*?)\\ "): ("^{:.1}", "{:.1}"), re.compile("\\``(.*?)\\''"): ("``{}''", '"{}"'), @@ -487,7 +477,7 @@ def md_replace(s): # replace individual characters replace_dict = { - "\mf": 'MODFLOW 6', + "\mf": "MODFLOW 6", "~": " ", "@": "", "$": "", @@ -505,9 +495,11 @@ def md_replace(s): def get_examples(component): pth = os.path.join("examples") - files = [filename for filename in sorted(os.listdir(pth)) if - component.lower() in filename.lower() and - "-obs" not in filename.lower()] + files = [ + filename + for filename in sorted(os.listdir(pth)) + if component.lower() in filename.lower() and "-obs" not in filename.lower() + ] s = "" for idx, filename in enumerate(files): if idx == 0: @@ -515,7 +507,7 @@ def get_examples(component): if len(files) > 1: s += "Example {}\n\n".format(idx + 1) fpth = os.path.join(pth, filename) - with open(fpth, 'r') as f: + with open(fpth, "r") as f: lines = f.readlines() s += "```\n" for line in lines: @@ -527,16 +519,18 @@ def get_examples(component): def get_obs_examples(component): pth = os.path.join("examples") - files = [filename for filename in sorted(os.listdir(pth)) if - component.lower() in filename.lower() and - "-obs" in filename.lower()] + files = [ + filename + for filename in sorted(os.listdir(pth)) + if component.lower() in filename.lower() and "-obs" in filename.lower() + ] s = "" for idx, filename in enumerate(files): s += "#### Example Observation Input File\n" if len(files) > 1: s += "Example {}\n\n".format(idx + 1) fpth = os.path.join(pth, filename) - with open(fpth, 'r') as f: + with open(fpth, "r") as f: lines = f.readlines() s += "```\n" for line in lines: @@ -548,9 +542,12 @@ def get_obs_examples(component): def get_obs_table(component): pth = os.path.join("..", "..", "Common") - files = [filename for filename in sorted(os.listdir(pth)) if - component.lower() in filename.lower() and - filename.lower().endswith("obs.tex")] + files = [ + filename + for filename in sorted(os.listdir(pth)) + if component.lower() in filename.lower() + and filename.lower().endswith("obs.tex") + ] s = "" if files: s += "#### Available Observation Types\n\n" @@ -558,7 +555,7 @@ def get_obs_table(component): s += "|----------------|------------------|-----|-----|-------------|\n" for idx, filename in enumerate(files): fpth = os.path.join(pth, filename) - with open(fpth, 'r') as f: + with open(fpth, "r") as f: lines = f.readlines() for line in lines: line = md_replace(line.rstrip()) @@ -575,14 +572,15 @@ def get_obs_table(component): def write_md_header(f): - s = '# MODFLOW 6 INPUT VARIABLES\n\n' + s = "# MODFLOW 6 INPUT VARIABLES\n\n" fmd.write(s) - s = '| {} | {} | {} | {} | {} | {} |\n'.format('component', 'package', - 'block', 'variable name', - 'type', 'description') + s = "| {} | {} | {} | {} | {} | {} |\n".format( + "component", "package", "block", "variable name", "type", "description" + ) fmd.write(s) - s = '| {} | {} | {} | {} | {} | {} |\n'.format(':---:', ':---:', ':---:', - ':---:', ':---:', '---') + s = "| {} | {} | {} | {} | {} | {} |\n".format( + ":---:", ":---:", ":---:", ":---:", ":---:", "---" + ) fmd.write(s) return @@ -593,143 +591,102 @@ def write_md(f, vardict, component, package): for iv, (name, b) in enumerate(vardict): n = name.upper() v = vardict[(name, b)] - b = v['block'].upper() - t = v['type'].upper() - s = '' - if t.startswith('REC'): + b = v["block"].upper() + t = v["type"].upper() + s = "" + if t.startswith("REC"): pass else: - if t.startswith('KEYSTRING'): - t = 'KEYSTRING' - t = '{}'.format(t) - if 'shape' in v: - shape = v['shape'].upper() - t = '{} {}'.format(t, shape) - d = get_description(v['description']) - s = '| {} | {} | {} | {} | {} | {} |\n'.format(c, p, b, n, t, d) + if t.startswith("KEYSTRING"): + t = "KEYSTRING" + t = "{}".format(t) + if "shape" in v: + shape = v["shape"].upper() + t = "{} {}".format(t, shape) + d = get_description(v["description"]) + s = "| {} | {} | {} | {} | {} | {} |\n".format(c, p, b, n, t, d) f.write(s) return def write_appendix(texdir, allblocks): - fname = os.path.join(texdir, 'appendixA.tex') - with open(fname, 'w') as f: - f.write('\\small\n\\begin{longtable}{p{1.5cm} p{1.5cm} p{3cm} c}\n') + fname = Path(texdir) / "appendixA.tex" + with open(fname, "w") as f: + f.write("\\small\n\\begin{longtable}{p{1.5cm} p{1.5cm} p{3cm} c}\n") f.write( - '\\caption{List of block names organized by component and input file ' - 'type. OPEN/CLOSE indicates whether or not the block information ' - 'can be contained in separate file} \\tabularnewline \n\n') - f.write('\\hline\n\\hline\n') + "\\caption{List of block names organized by component and input file " + "type. OPEN/CLOSE indicates whether or not the block information " + "can be contained in separate file} \\tabularnewline \n\n" + ) + f.write("\\hline\n\\hline\n") f.write( - '\\textbf{Component} & \\textbf{FTYPE} & \\textbf{Blockname} & \\textbf{OPEN/CLOSE} \\\\\n') - f.write('\\hline\n\\endfirsthead\n\n\n') + "\\textbf{Component} & \\textbf{FTYPE} & \\textbf{Blockname} & \\textbf{OPEN/CLOSE} \\\\\n" + ) + f.write("\\hline\n\\endfirsthead\n\n\n") - f.write('\captionsetup{textformat=simple}\n') - f.write('\caption*{\\textbf{Table A--\\arabic{table}.}{\quad}List of block' - ' names organized by component and input file type. OPEN/CLOSE ' - 'indicates whether or not the block information can be contained ' - 'in separate file.---Continued} \\tabularnewline\n') + f.write("\captionsetup{textformat=simple}\n") + f.write( + "\caption*{\\textbf{Table A--\\arabic{table}.}{\quad}List of block" + " names organized by component and input file type. OPEN/CLOSE " + "indicates whether or not the block information can be contained " + "in separate file.---Continued} \\tabularnewline\n" + ) - f.write('\n\\hline\n\\hline\n') + f.write("\n\\hline\n\\hline\n") f.write( - '\\textbf{Component} & \\textbf{FTYPE} & \\textbf{Blockname} & \\textbf{OPEN/CLOSE} \\\\\n') - f.write('\\hline\n\\endhead\n\n\\hline\n\\endfoot\n\n\n') + "\\textbf{Component} & \\textbf{FTYPE} & \\textbf{Blockname} & \\textbf{OPEN/CLOSE} \\\\\n" + ) + f.write("\\hline\n\\endhead\n\n\\hline\n\\endfoot\n\n\n") - lastftype = '' + lastftype = "" for b in allblocks: - l = b.strip().split('-') + l = b.strip().split("-") component, ftype, blockname = l if lastftype != ftype: - f.write('\\hline\n') - oc = 'yes' - if 'griddata' in blockname.lower(): - oc = 'no' - if 'utl' in component.lower() and \ - 'tas' in ftype.lower() and 'time' in blockname.lower(): - oc = 'no' - s = '{} & {} & {} & {} \\\\ \n'.format(component.upper(), - ftype.upper(), - blockname.upper(), oc) + f.write("\\hline\n") + oc = "yes" + if "griddata" in blockname.lower(): + oc = "no" + if ( + "utl" in component.lower() + and "tas" in ftype.lower() + and "time" in blockname.lower() + ): + oc = "no" + s = "{} & {} & {} & {} \\\\ \n".format( + component.upper(), ftype.upper(), blockname.upper(), oc + ) f.write(s) lastftype = ftype - f.write( - '\n\n\\hline\n\\end{longtable}\n\\label{table:blocks}\n\\normalsize\n') - - -if __name__ == '__main__': - - file_order = ['sim-nam', # dfn completed tex updated - 'sim-tdis', # dfn completed tex updated - 'exg-gwfgwf', # dfn completed tex updated - 'exg-gwfgwt', - 'exg-gwtgwt', - 'sln-ims', # dfn completed tex updated - 'sln-ems', # dfn completed tex updated - 'gwf-nam', # dfn completed tex updated - 'gwf-dis', # dfn completed tex updated - 'gwf-disv', # dfn completed tex updated - 'gwf-disu', # dfn completed tex updated - 'gwf-ic', # dfn completed tex updated - 'gwf-npf', # dfn completed tex updated - 'gwf-buy', # dfn completed tex updated - 'gwf-sto', # dfn completed tex updated - 'gwf-csub', # dfn completed tex updated - 'gwf-hfb', # dfn completed tex updated - 'gwf-chd', # dfn completed tex updated - 'gwf-wel', # dfn completed tex updated - 'gwf-drn', # dfn completed tex updated - 'gwf-riv', # dfn completed tex updated - 'gwf-ghb', # dfn completed tex updated - 'gwf-rch', # dfn completed tex updated - 'gwf-rcha', # dfn completed tex updated - 'gwf-evt', # dfn completed tex updated - 'gwf-evta', # dfn completed tex updated - 'gwf-maw', # dfn completed tex updated - 'gwf-sfr', # dfn completed tex updated - 'gwf-lak', # dfn completed tex updated - 'gwf-uzf', # dfn completed tex updated - 'gwf-mvr', # dfn completed tex updated - 'gwf-gnc', # dfn completed tex updated - 'gwf-oc', # dfn completed tex updated - 'gwf-vsc', - 'gwf-api', - 'gwt-adv', - 'gwt-dsp', - 'gwt-cnc', - 'gwt-dis', - 'gwt-disv', - 'gwt-disu', - 'gwt-ic', - 'gwt-nam', - 'gwt-oc', - 'gwt-ssm', - 'gwt-src', - 'gwt-mst', - 'gwt-ist', - 'gwt-sft', - 'gwt-lkt', - 'gwt-mwt', - 'gwt-uzt', - 'gwt-fmi', - 'gwt-mvt', - 'gwt-api', - 'utl-spc', - 'utl-spca', - 'utl-obs', - 'utl-laktab', - 'utl-sfrtab', - 'utl-ts', - 'utl-tas', - 'utl-ats', - 'utl-tvk', - 'utl-tvs'] - - # directories - dfndir = os.path.join('.', 'dfn') - texdir = os.path.join('.', 'tex') - mddir = os.path.join('.', 'md') - docdir = os.path.join("..", "..", "..", ".build_rtd_docs", "_mf6io") + f.write("\n\n\\hline\n\\end{longtable}\n\\label{table:blocks}\n\\normalsize\n") + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="Generate MF6 IO documentation files", + ) + parser.add_argument( + "-m", + "--model", + required=False, + action="append", + ) + parser.add_argument("-e", "--exchange", required=False, action="append") + parser.add_argument( + "-v", "--verbose", required=False, default=False, action="store_true" + ) + args = parser.parse_args() + models = args.model if args.model else ["gwf", "gwt"] + exchanges = args.exchange if args.exchange else ["gwf-gwf", "gwt-gwt", "gwf-gwt"] + verbose = args.verbose + + # define directories + mf6ivar_dir = Path(__file__).parent + dfndir = mf6ivar_dir / "dfn" + texdir = mf6ivar_dir / "tex" + mddir = mf6ivar_dir / "md" + docdir = Path(__file__).parents[3] / ".build_rtd_docs" / "_mf6io" # regenerate docdir if os.path.isdir(docdir): @@ -740,82 +697,76 @@ def write_appendix(texdir, allblocks): allblocks = [] # setup a markdown file - fname = os.path.join(mddir, 'mf6ivar.md') - with open(fname, 'w') as fmd: + with open(mddir / "mf6ivar.md", "w") as fmd: write_md_header(fmd) - # construct list of dfn files to process in the order of file_order - files = os.listdir(dfndir) - for f in files: - if 'common' in f: - continue - if '.DS_Store' in f: - continue - if os.path.splitext(f)[0] not in file_order: - raise Exception('File not in file_order: ', f) - files = [fname + '.dfn' for fname in file_order if fname + '.dfn' in files] - # files = ['gwf-obs.dfn'] - - # # create rst file for markdown - # fpth = os.path.join(docdir, "mf6io.rst") - # frst = open(fpth, "w") - # s = ".. toctree::\n" - # s += " :maxdepth: 4\n" - # s += " :name: mf6-io\n\n" - # frst.write(s) - - for txtname in files: - component, package = os.path.splitext(txtname)[0].split('-')[0:2] - vardict = parse_mf6var_file(os.path.join(dfndir, txtname)) + # construct list of dfn files to process + def filter(paths: Iterable[Path]) -> Iterable[Path]: + for p in paths: + s = p.stem + if ( + "sim" in s + or "utl" in s + or any(e in s for e in exchanges) + or any(m in s for m in models) + ): + yield p + + files = sorted(filter(dfndir.glob("*.dfn"))) + + for fpath in files: + component, package = fpath.stem.split("-")[0:2] + vardict = parse_mf6var_file(fpath) # make list of unique block names blocks = [] for k in vardict: v = vardict[k] - b = v['block'] + b = v["block"] if b not in blocks: blocks.append(b) # add a full block name to allblocks for block in blocks: - b = '{}-{}-{}'.format(component, package, block) + b = "{}-{}-{}".format(component, package, block) allblocks.append(b) # go through each block and write information - desc = '% DO NOT MODIFY THIS FILE DIRECTLY. IT IS CREATED BY mf6ivar.py \n\n' + desc = ( + "% DO NOT MODIFY THIS FILE DIRECTLY. IT IS CREATED BY mf6ivar.py \n\n" + ) for b in blocks: blk_var_list = [] # Write the name of the block to the latex file - desc += '\item \\textbf{}\n\n'.format('{Block: ' + b.upper() + '}') - - desc += '\\begin{description}\n' - desc += write_desc(vardict, b, blk_var_list, - varexcludeprefix='dev_') - desc += '\\end{description}\n' - - fname = os.path.join(texdir, os.path.splitext(txtname)[ - 0] + '-' + b + '.dat') - f = open(fname, 'w') - s = write_block(vardict, b, blk_var_list, - varexcludeprefix='dev_') + '\n' + desc += "\item \\textbf{}\n\n".format("{Block: " + b.upper() + "}") + + desc += "\\begin{description}\n" + desc += write_desc(vardict, b, blk_var_list, varexcludeprefix="dev_") + desc += "\\end{description}\n" + + fname = texdir / f"{fpath.stem}-{b}.dat" + f = open(fname, "w") + s = ( + write_block(vardict, b, blk_var_list, varexcludeprefix="dev_") + + "\n" + ) f.write(s) - if VERBOSE: + if verbose: print(s) f.close() - fname = os.path.join(texdir, - os.path.splitext(txtname)[0] + '-desc' + '.tex') - f = open(fname, 'w') - s = desc + '\n' + fname = texdir / f"{fpath.stem}-desc.tex" + f = open(fname, "w") + s = desc + "\n" f.write(s) - if VERBOSE: + if verbose: print(s) f.close() # write markdown description - mdname = os.path.splitext(txtname)[0] - fname = os.path.join(docdir, mdname + '.md') - f = open(fname, 'w') + mdname = fpath.stem + fname = os.path.join(docdir, mdname + ".md") + f = open(fname, "w") f.write("### {}\n\n".format(mdname.upper())) f.write("#### Structure of Blocks\n\n") f.write("_FOR EACH SIMULATION_\n\n") @@ -824,21 +775,24 @@ def write_appendix(texdir, allblocks): blk_var_list = [] # Write the name of the block to the latex file - desc += '##### Block: {}\n\n'.format(b.upper()) + desc += "##### Block: {}\n\n".format(b.upper()) - desc += write_desc_md(vardict, b, blk_var_list, - varexcludeprefix='dev_') + desc += write_desc_md(vardict, b, blk_var_list, varexcludeprefix="dev_") if "period" in b.lower(): f.write("\n_FOR ANY STRESS PERIOD_\n\n") f.write("```\n") - s = md_replace(write_block(vardict, b, blk_var_list, - varexcludeprefix='dev_', - indent=4)) + "\n" - # s = s.replace("@", "") + "\n" + s = ( + md_replace( + write_block( + vardict, b, blk_var_list, varexcludeprefix="dev_", indent=4 + ) + ) + + "\n" + ) f.write(s) f.write("```\n") - if VERBOSE: + if verbose: print(s) f.write("\n#### Explanation of Variables\n\n") @@ -862,20 +816,10 @@ def write_appendix(texdir, allblocks): # close the markdown file f.close() - # # add to rst catalog - # s = " {}\n".format(os.path.basename(fname)) - # frst.write(s) - # write markdown write_md(fmd, vardict, component, package) - # # close restart catalog - # frst.write("\n\n") - # frst.close() - - if VERBOSE: + if verbose: for b in allblocks: print(b) write_appendix(texdir, allblocks) - - diff --git a/doc/mf6io/mf6ivar/tex/appendixA.tex b/doc/mf6io/mf6ivar/tex/appendixA.tex index 7cbb933e60e..07bf120021e 100644 --- a/doc/mf6io/mf6ivar/tex/appendixA.tex +++ b/doc/mf6io/mf6ivar/tex/appendixA.tex @@ -22,16 +22,6 @@ \endfoot -\hline -SIM & NAM & OPTIONS & yes \\ -SIM & NAM & TIMING & yes \\ -SIM & NAM & MODELS & yes \\ -SIM & NAM & EXCHANGES & yes \\ -SIM & NAM & SOLUTIONGROUP & yes \\ -\hline -SIM & TDIS & OPTIONS & yes \\ -SIM & TDIS & DIMENSIONS & yes \\ -SIM & TDIS & PERIODDATA & yes \\ \hline EXG & GWFGWF & OPTIONS & yes \\ EXG & GWFGWF & DIMENSIONS & yes \\ @@ -41,23 +31,27 @@ EXG & GWTGWT & DIMENSIONS & yes \\ EXG & GWTGWT & EXCHANGEDATA & yes \\ \hline -SLN & IMS & OPTIONS & yes \\ -SLN & IMS & NONLINEAR & yes \\ -SLN & IMS & LINEAR & yes \\ +GWF & API & OPTIONS & yes \\ +GWF & API & DIMENSIONS & yes \\ \hline -GWF & NAM & OPTIONS & yes \\ -GWF & NAM & PACKAGES & yes \\ +GWF & BUY & OPTIONS & yes \\ +GWF & BUY & DIMENSIONS & yes \\ +GWF & BUY & PACKAGEDATA & yes \\ +\hline +GWF & CHD & OPTIONS & yes \\ +GWF & CHD & DIMENSIONS & yes \\ +GWF & CHD & PERIOD & yes \\ +\hline +GWF & CSUB & OPTIONS & yes \\ +GWF & CSUB & DIMENSIONS & yes \\ +GWF & CSUB & GRIDDATA & no \\ +GWF & CSUB & PACKAGEDATA & yes \\ +GWF & CSUB & PERIOD & yes \\ \hline GWF & DIS & OPTIONS & yes \\ GWF & DIS & DIMENSIONS & yes \\ GWF & DIS & GRIDDATA & no \\ \hline -GWF & DISV & OPTIONS & yes \\ -GWF & DISV & DIMENSIONS & yes \\ -GWF & DISV & GRIDDATA & no \\ -GWF & DISV & VERTICES & yes \\ -GWF & DISV & CELL2D & yes \\ -\hline GWF & DISU & OPTIONS & yes \\ GWF & DISU & DIMENSIONS & yes \\ GWF & DISU & GRIDDATA & no \\ @@ -65,48 +59,64 @@ GWF & DISU & VERTICES & yes \\ GWF & DISU & CELL2D & yes \\ \hline -GWF & IC & GRIDDATA & no \\ +GWF & DISV & OPTIONS & yes \\ +GWF & DISV & DIMENSIONS & yes \\ +GWF & DISV & GRIDDATA & no \\ +GWF & DISV & VERTICES & yes \\ +GWF & DISV & CELL2D & yes \\ \hline -GWF & NPF & OPTIONS & yes \\ -GWF & NPF & GRIDDATA & no \\ +GWF & DRN & OPTIONS & yes \\ +GWF & DRN & DIMENSIONS & yes \\ +GWF & DRN & PERIOD & yes \\ \hline -GWF & BUY & OPTIONS & yes \\ -GWF & BUY & DIMENSIONS & yes \\ -GWF & BUY & PACKAGEDATA & yes \\ +GWF & EVT & OPTIONS & yes \\ +GWF & EVT & DIMENSIONS & yes \\ +GWF & EVT & PERIOD & yes \\ \hline -GWF & STO & OPTIONS & yes \\ -GWF & STO & GRIDDATA & no \\ -GWF & STO & PERIOD & yes \\ +GWF & EVTA & OPTIONS & yes \\ +GWF & EVTA & PERIOD & yes \\ \hline -GWF & CSUB & OPTIONS & yes \\ -GWF & CSUB & DIMENSIONS & yes \\ -GWF & CSUB & GRIDDATA & no \\ -GWF & CSUB & PACKAGEDATA & yes \\ -GWF & CSUB & PERIOD & yes \\ +GWF & GHB & OPTIONS & yes \\ +GWF & GHB & DIMENSIONS & yes \\ +GWF & GHB & PERIOD & yes \\ +\hline +GWF & GNC & OPTIONS & yes \\ +GWF & GNC & DIMENSIONS & yes \\ +GWF & GNC & GNCDATA & yes \\ \hline GWF & HFB & OPTIONS & yes \\ GWF & HFB & DIMENSIONS & yes \\ GWF & HFB & PERIOD & yes \\ \hline -GWF & CHD & OPTIONS & yes \\ -GWF & CHD & DIMENSIONS & yes \\ -GWF & CHD & PERIOD & yes \\ +GWF & IC & GRIDDATA & no \\ \hline -GWF & WEL & OPTIONS & yes \\ -GWF & WEL & DIMENSIONS & yes \\ -GWF & WEL & PERIOD & yes \\ +GWF & LAK & OPTIONS & yes \\ +GWF & LAK & DIMENSIONS & yes \\ +GWF & LAK & PACKAGEDATA & yes \\ +GWF & LAK & CONNECTIONDATA & yes \\ +GWF & LAK & TABLES & yes \\ +GWF & LAK & OUTLETS & yes \\ +GWF & LAK & PERIOD & yes \\ \hline -GWF & DRN & OPTIONS & yes \\ -GWF & DRN & DIMENSIONS & yes \\ -GWF & DRN & PERIOD & yes \\ +GWF & MAW & OPTIONS & yes \\ +GWF & MAW & DIMENSIONS & yes \\ +GWF & MAW & PACKAGEDATA & yes \\ +GWF & MAW & CONNECTIONDATA & yes \\ +GWF & MAW & PERIOD & yes \\ \hline -GWF & RIV & OPTIONS & yes \\ -GWF & RIV & DIMENSIONS & yes \\ -GWF & RIV & PERIOD & yes \\ +GWF & MVR & OPTIONS & yes \\ +GWF & MVR & DIMENSIONS & yes \\ +GWF & MVR & PACKAGES & yes \\ +GWF & MVR & PERIOD & yes \\ \hline -GWF & GHB & OPTIONS & yes \\ -GWF & GHB & DIMENSIONS & yes \\ -GWF & GHB & PERIOD & yes \\ +GWF & NAM & OPTIONS & yes \\ +GWF & NAM & PACKAGES & yes \\ +\hline +GWF & NPF & OPTIONS & yes \\ +GWF & NPF & GRIDDATA & no \\ +\hline +GWF & OC & OPTIONS & yes \\ +GWF & OC & PERIOD & yes \\ \hline GWF & RCH & OPTIONS & yes \\ GWF & RCH & DIMENSIONS & yes \\ @@ -115,18 +125,9 @@ GWF & RCHA & OPTIONS & yes \\ GWF & RCHA & PERIOD & yes \\ \hline -GWF & EVT & OPTIONS & yes \\ -GWF & EVT & DIMENSIONS & yes \\ -GWF & EVT & PERIOD & yes \\ -\hline -GWF & EVTA & OPTIONS & yes \\ -GWF & EVTA & PERIOD & yes \\ -\hline -GWF & MAW & OPTIONS & yes \\ -GWF & MAW & DIMENSIONS & yes \\ -GWF & MAW & PACKAGEDATA & yes \\ -GWF & MAW & CONNECTIONDATA & yes \\ -GWF & MAW & PERIOD & yes \\ +GWF & RIV & OPTIONS & yes \\ +GWF & RIV & DIMENSIONS & yes \\ +GWF & RIV & PERIOD & yes \\ \hline GWF & SFR & OPTIONS & yes \\ GWF & SFR & DIMENSIONS & yes \\ @@ -136,42 +137,27 @@ GWF & SFR & DIVERSIONS & yes \\ GWF & SFR & PERIOD & yes \\ \hline -GWF & LAK & OPTIONS & yes \\ -GWF & LAK & DIMENSIONS & yes \\ -GWF & LAK & PACKAGEDATA & yes \\ -GWF & LAK & CONNECTIONDATA & yes \\ -GWF & LAK & TABLES & yes \\ -GWF & LAK & OUTLETS & yes \\ -GWF & LAK & PERIOD & yes \\ +GWF & STO & OPTIONS & yes \\ +GWF & STO & GRIDDATA & no \\ +GWF & STO & PERIOD & yes \\ \hline GWF & UZF & OPTIONS & yes \\ GWF & UZF & DIMENSIONS & yes \\ GWF & UZF & PACKAGEDATA & yes \\ GWF & UZF & PERIOD & yes \\ \hline -GWF & MVR & OPTIONS & yes \\ -GWF & MVR & DIMENSIONS & yes \\ -GWF & MVR & PACKAGES & yes \\ -GWF & MVR & PERIOD & yes \\ -\hline -GWF & GNC & OPTIONS & yes \\ -GWF & GNC & DIMENSIONS & yes \\ -GWF & GNC & GNCDATA & yes \\ -\hline -GWF & OC & OPTIONS & yes \\ -GWF & OC & PERIOD & yes \\ -\hline GWF & VSC & OPTIONS & yes \\ GWF & VSC & DIMENSIONS & yes \\ GWF & VSC & PACKAGEDATA & yes \\ \hline -GWF & API & OPTIONS & yes \\ -GWF & API & DIMENSIONS & yes \\ +GWF & WEL & OPTIONS & yes \\ +GWF & WEL & DIMENSIONS & yes \\ +GWF & WEL & PERIOD & yes \\ \hline GWT & ADV & OPTIONS & yes \\ \hline -GWT & DSP & OPTIONS & yes \\ -GWT & DSP & GRIDDATA & no \\ +GWT & API & OPTIONS & yes \\ +GWT & API & DIMENSIONS & yes \\ \hline GWT & CNC & OPTIONS & yes \\ GWT & CNC & DIMENSIONS & yes \\ @@ -181,12 +167,6 @@ GWT & DIS & DIMENSIONS & yes \\ GWT & DIS & GRIDDATA & no \\ \hline -GWT & DISV & OPTIONS & yes \\ -GWT & DISV & DIMENSIONS & yes \\ -GWT & DISV & GRIDDATA & no \\ -GWT & DISV & VERTICES & yes \\ -GWT & DISV & CELL2D & yes \\ -\hline GWT & DISU & OPTIONS & yes \\ GWT & DISU & DIMENSIONS & yes \\ GWT & DISU & GRIDDATA & no \\ @@ -194,76 +174,92 @@ GWT & DISU & VERTICES & yes \\ GWT & DISU & CELL2D & yes \\ \hline -GWT & IC & GRIDDATA & no \\ -\hline -GWT & NAM & OPTIONS & yes \\ -GWT & NAM & PACKAGES & yes \\ -\hline -GWT & OC & OPTIONS & yes \\ -GWT & OC & PERIOD & yes \\ +GWT & DISV & OPTIONS & yes \\ +GWT & DISV & DIMENSIONS & yes \\ +GWT & DISV & GRIDDATA & no \\ +GWT & DISV & VERTICES & yes \\ +GWT & DISV & CELL2D & yes \\ \hline -GWT & SSM & OPTIONS & yes \\ -GWT & SSM & SOURCES & yes \\ -GWT & SSM & FILEINPUT & yes \\ +GWT & DSP & OPTIONS & yes \\ +GWT & DSP & GRIDDATA & no \\ \hline -GWT & SRC & OPTIONS & yes \\ -GWT & SRC & DIMENSIONS & yes \\ -GWT & SRC & PERIOD & yes \\ +GWT & FMI & OPTIONS & yes \\ +GWT & FMI & PACKAGEDATA & yes \\ \hline -GWT & MST & OPTIONS & yes \\ -GWT & MST & GRIDDATA & no \\ +GWT & IC & GRIDDATA & no \\ \hline GWT & IST & OPTIONS & yes \\ GWT & IST & GRIDDATA & no \\ \hline -GWT & SFT & OPTIONS & yes \\ -GWT & SFT & PACKAGEDATA & yes \\ -GWT & SFT & PERIOD & yes \\ -\hline GWT & LKT & OPTIONS & yes \\ GWT & LKT & PACKAGEDATA & yes \\ GWT & LKT & PERIOD & yes \\ \hline +GWT & MST & OPTIONS & yes \\ +GWT & MST & GRIDDATA & no \\ +\hline +GWT & MVT & OPTIONS & yes \\ +\hline GWT & MWT & OPTIONS & yes \\ GWT & MWT & PACKAGEDATA & yes \\ GWT & MWT & PERIOD & yes \\ \hline +GWT & NAM & OPTIONS & yes \\ +GWT & NAM & PACKAGES & yes \\ +\hline +GWT & OC & OPTIONS & yes \\ +GWT & OC & PERIOD & yes \\ +\hline +GWT & SFT & OPTIONS & yes \\ +GWT & SFT & PACKAGEDATA & yes \\ +GWT & SFT & PERIOD & yes \\ +\hline +GWT & SRC & OPTIONS & yes \\ +GWT & SRC & DIMENSIONS & yes \\ +GWT & SRC & PERIOD & yes \\ +\hline +GWT & SSM & OPTIONS & yes \\ +GWT & SSM & SOURCES & yes \\ +GWT & SSM & FILEINPUT & yes \\ +\hline GWT & UZT & OPTIONS & yes \\ GWT & UZT & PACKAGEDATA & yes \\ GWT & UZT & PERIOD & yes \\ \hline -GWT & FMI & OPTIONS & yes \\ -GWT & FMI & PACKAGEDATA & yes \\ -\hline -GWT & MVT & OPTIONS & yes \\ +SIM & NAM & OPTIONS & yes \\ +SIM & NAM & TIMING & yes \\ +SIM & NAM & MODELS & yes \\ +SIM & NAM & EXCHANGES & yes \\ +SIM & NAM & SOLUTIONGROUP & yes \\ \hline -GWT & API & OPTIONS & yes \\ -GWT & API & DIMENSIONS & yes \\ +SIM & TDIS & OPTIONS & yes \\ +SIM & TDIS & DIMENSIONS & yes \\ +SIM & TDIS & PERIODDATA & yes \\ \hline -UTL & SPC & OPTIONS & yes \\ -UTL & SPC & DIMENSIONS & yes \\ -UTL & SPC & PERIOD & yes \\ +UTL & ATS & DIMENSIONS & yes \\ +UTL & ATS & PERIODDATA & yes \\ \hline -UTL & SPCA & OPTIONS & yes \\ -UTL & SPCA & PERIOD & yes \\ +UTL & LAKTAB & DIMENSIONS & yes \\ +UTL & LAKTAB & TABLE & yes \\ \hline UTL & OBS & OPTIONS & yes \\ UTL & OBS & CONTINUOUS & yes \\ \hline -UTL & LAKTAB & DIMENSIONS & yes \\ -UTL & LAKTAB & TABLE & yes \\ -\hline UTL & SFRTAB & DIMENSIONS & yes \\ UTL & SFRTAB & TABLE & yes \\ \hline -UTL & TS & ATTRIBUTES & yes \\ -UTL & TS & TIMESERIES & yes \\ +UTL & SPC & OPTIONS & yes \\ +UTL & SPC & DIMENSIONS & yes \\ +UTL & SPC & PERIOD & yes \\ +\hline +UTL & SPCA & OPTIONS & yes \\ +UTL & SPCA & PERIOD & yes \\ \hline UTL & TAS & ATTRIBUTES & yes \\ UTL & TAS & TIME & no \\ \hline -UTL & ATS & DIMENSIONS & yes \\ -UTL & ATS & PERIODDATA & yes \\ +UTL & TS & ATTRIBUTES & yes \\ +UTL & TS & TIMESERIES & yes \\ \hline UTL & TVK & OPTIONS & yes \\ UTL & TVK & PERIOD & yes \\ diff --git a/doc/mf6io/mf6ivar/tex/gwf-evt-period.dat b/doc/mf6io/mf6ivar/tex/gwf-evt-period.dat index 380761217d9..8b5288455ce 100644 --- a/doc/mf6io/mf6ivar/tex/gwf-evt-period.dat +++ b/doc/mf6io/mf6ivar/tex/gwf-evt-period.dat @@ -1,5 +1,5 @@ BEGIN PERIOD - <@surface@> <@rate@> <@depth@> <@pxdp(nseg-1)@> <@petm(nseg-1)@> [<@petm0@>] [<@aux(naux)@>] [] - <@surface@> <@rate@> <@depth@> <@pxdp(nseg-1)@> <@petm(nseg-1)@> [<@petm0@>] [<@aux(naux)@>] [] + <@surface@> <@rate@> <@depth@> [<@pxdp(nseg-1)@>] [<@petm(nseg-1)@>] [<@petm0@>] [<@aux(naux)@>] [] + <@surface@> <@rate@> <@depth@> [<@pxdp(nseg-1)@>] [<@petm(nseg-1)@>] [<@petm0@>] [<@aux(naux)@>] [] ... END PERIOD diff --git a/doc/mf6io/mf6ivar/tex/gwf-evta-desc.tex b/doc/mf6io/mf6ivar/tex/gwf-evta-desc.tex index 3dbded6c6c1..987b185558b 100644 --- a/doc/mf6io/mf6ivar/tex/gwf-evta-desc.tex +++ b/doc/mf6io/mf6ivar/tex/gwf-evta-desc.tex @@ -37,11 +37,11 @@ \item \texttt{surface}---is the elevation of the ET surface ($L$). -\item \texttt{rate}---is the maximum ET flux rate ($LT^{-1}$). +\item \textcolor{blue}{\texttt{rate}---is the maximum ET flux rate ($LT^{-1}$).} \item \texttt{depth}---is the ET extinction depth ($L$). -\item \texttt{aux(iaux)}---is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and AUX(IAUX) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate will be multiplied by this array. +\item \textcolor{blue}{\texttt{aux}---is an array of values for auxiliary variable AUX(IAUX), where iaux is a value from 1 to NAUX, and AUX(IAUX) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the evapotranspiration rate will be multiplied by this array.} \end{description} diff --git a/doc/mf6io/mf6ivar/tex/gwf-evta-period.dat b/doc/mf6io/mf6ivar/tex/gwf-evta-period.dat index 2fe138e798b..185b433f84e 100644 --- a/doc/mf6io/mf6ivar/tex/gwf-evta-period.dat +++ b/doc/mf6io/mf6ivar/tex/gwf-evta-period.dat @@ -7,6 +7,6 @@ BEGIN PERIOD -- READARRAY DEPTH -- READARRAY - AUX(IAUX) - -- READARRAY + AUX + -- READARRAY END PERIOD diff --git a/doc/mf6io/mf6ivar/tex/gwf-rcha-desc.tex b/doc/mf6io/mf6ivar/tex/gwf-rcha-desc.tex index c8ed6e6cda9..6257d63895f 100644 --- a/doc/mf6io/mf6ivar/tex/gwf-rcha-desc.tex +++ b/doc/mf6io/mf6ivar/tex/gwf-rcha-desc.tex @@ -35,9 +35,9 @@ \item \texttt{irch}---IRCH is the layer number that defines the layer in each vertical column where recharge is applied. If IRCH is omitted, recharge by default is applied to cells in layer 1. IRCH can only be used if READASARRAYS is specified in the OPTIONS block. If IRCH is specified, it must be specified as the first variable in the PERIOD block or MODFLOW will terminate with an error. -\item \texttt{recharge}---is the recharge flux rate ($LT^{-1}$). This rate is multiplied inside the program by the surface area of the cell to calculate the volumetric recharge rate. The recharge array may be defined by a time-array series (see the "Using Time-Array Series in a Package" section). +\item \textcolor{blue}{\texttt{recharge}---is the recharge flux rate ($LT^{-1}$). This rate is multiplied inside the program by the surface area of the cell to calculate the volumetric recharge rate. The recharge array may be defined by a time-array series (see the "Using Time-Array Series in a Package" section).} -\item \texttt{aux}---is an array of values for auxiliary variable aux(iaux), where iaux is a value from 1 to naux, and aux(iaux) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the recharge array will be multiplied by this array. +\item \textcolor{blue}{\texttt{aux}---is an array of values for auxiliary variable aux(iaux), where iaux is a value from 1 to naux, and aux(iaux) must be listed as part of the auxiliary variables. A separate array can be specified for each auxiliary variable. If an array is not specified for an auxiliary variable, then a value of zero is assigned. If the value specified here for the auxiliary variable is the same as auxmultname, then the recharge array will be multiplied by this array.} \end{description} diff --git a/doc/mf6io/mf6ivar/tex/gwt-lkt-desc.tex b/doc/mf6io/mf6ivar/tex/gwt-lkt-desc.tex index 0cb746186ca..052725643c4 100644 --- a/doc/mf6io/mf6ivar/tex/gwt-lkt-desc.tex +++ b/doc/mf6io/mf6ivar/tex/gwt-lkt-desc.tex @@ -63,7 +63,7 @@ \item \texttt{ifno}---integer value that defines the feature (lake) number associated with the specified PERIOD data on the line. IFNO must be greater than zero and less than or equal to NLAKES. -\item \texttt{laksetting}---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. +\item \texttt{laksetting}---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, EXT-INFLOW, 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. \begin{lstlisting}[style=blockdefinition] STATUS diff --git a/doc/mf6io/mf6ivar/tex/gwt-mwt-desc.tex b/doc/mf6io/mf6ivar/tex/gwt-mwt-desc.tex index e86f1b25d5e..76beee6ffa4 100644 --- a/doc/mf6io/mf6ivar/tex/gwt-mwt-desc.tex +++ b/doc/mf6io/mf6ivar/tex/gwt-mwt-desc.tex @@ -63,7 +63,7 @@ \item \texttt{ifno}---integer value that defines the feature (well) number associated with the specified PERIOD data on the line. IFNO must be greater than zero and less than or equal to NMAWWELLS. -\item \texttt{mwtsetting}---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 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. +\item \texttt{mwtsetting}---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, RATE, and AUXILIARY. These settings are used to assign the concentration 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. \begin{lstlisting}[style=blockdefinition] STATUS diff --git a/doc/mf6io/mf6ivar/tex/utl-spc-desc.tex b/doc/mf6io/mf6ivar/tex/utl-spc-desc.tex index bba10d98e87..3e5c0ccf826 100644 --- a/doc/mf6io/mf6ivar/tex/utl-spc-desc.tex +++ b/doc/mf6io/mf6ivar/tex/utl-spc-desc.tex @@ -25,7 +25,7 @@ \item \texttt{bndno}---integer value that defines the boundary package feature number associated with the specified PERIOD data on the line. BNDNO must be greater than zero and less than or equal to MAXBOUND. -\item \texttt{spcsetting}---line of information that is parsed into a keyword and values. Keyword values that can be used to start the MAWSETTING string include: CONCENTRATION. +\item \texttt{spcsetting}---line of information that is parsed into a keyword and values. Keyword values that can be used to start the SPCSETTING string include: CONCENTRATION. \begin{lstlisting}[style=blockdefinition] CONCENTRATION <@concentration@>