Skip to content

Commit

Permalink
docs(release): updates for 6.6.0 release (MODFLOW-USGS#2099)
Browse files Browse the repository at this point in the history
  • Loading branch information
langevin-usgs authored Dec 12, 2024
1 parent db33dd0 commit ab62755
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 39 deletions.
1 change: 1 addition & 0 deletions doc/ReleaseNotes/ReleaseNotes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ \section{Release History}
6.4.3 & February 7, 2024 & \url{https://doi.org/10.5066/P9FL1JCC} \\
6.4.4 & February 13, 2024 & \url{https://doi.org/10.5066/P9FL1JCC} \\
6.5.0 & May 23, 2024 & \url{https://doi.org/10.5066/P13COJJM} \\
6.6.0 & December 23, 2024 & \url{https://doi.org/10.5066/P1DXFBUR} \\
\hline
\label{tab:releases}
\end{tabular*}
Expand Down
1 change: 1 addition & 0 deletions doc/ReleaseNotes/develop.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

\underline{NEW FUNCTIONALITY}
\begin{itemize}
\item With this release, there are now two supported executables for MODFLOW 6. The standard executable has no external dependencies and is straightforward to install and use on common operating systems. The extended executable for MODFLOW, which is called Extended MODFLOW, has additional capabilities beyond the standard executable. These additional capabilities presently include parallel computing and support for NetCDF input and output files. Extended MODFLOW relies on third-party libraries, which must be available for the software to run properly. The MODFLOW 6---Description of Input and Output includes a new section on Extended MODFLOW. This input and output guide was also revised to clearly mark in red those input variables that only work with Extended MODFLOW.
\item A new adaptive time stepping (ATS) capability was added to the Advection (ADV) Package of the Groundwater Transport (GWT) Model. A new input option, called ATS\_PERCEL, specifies the fractional cell distance that a particle of water can travel within one time step. When ATS\_PERCEL is specified by the user, and the ATS utility is activated in the TDIS Package, the ADV Package will calculate the largest time step that will meet this fractional cell distance constraint, and will submit this time step to the ATS utility. This option may improve time stepping for solute transport models and for variable-density flow and transport models by allowing step lengths to be calculated as a function of the flow system rather than being specified as input by the user.
\item Added the capability to write sorbate concentrations to binary output files. A new SORBATE option is now available in the Mobile Storage and Transfer (MST) Package and the Immobile Storage and Transfer (IST) Package of the GWT Model to provide the name of the binary output file for sorbate concentrations. Sorbate concentrations will be written to the binary output file whenever concentrations for the GWT model are saved, as determined by the GWT Output Control option.
\item Add kinematic-wave routing option for the Streamflow Routing (SFR) Package. Prior to this change, the SFR Package could only simulate unidirectional, steady, uniform flow. With kinematic-wave routing, unidirectional waves can now propagate through the SFR network by explicitly including a storage term in the reach continuity equation. The kinematic-wave routing option is based on the ``TRANSROUTE'' option available in the SFR Package in MODFLOW-NWT. The kinematic-wave routing option is enabled by specifying ``STORAGE'' in the SFR Package OPTIONS block.
Expand Down
35 changes: 7 additions & 28 deletions doc/mf6io/extended_modflow.tex
Original file line number Diff line number Diff line change
@@ -1,35 +1,14 @@
Next to the standard \mf executable, a second, extended version of the program is made available. This version comes with more advanced functionality for which it partially relies on third-party libraries. Currently this concerns the parallel computing capability and the use of NetCDF4 for I/O data. Because the external dependencies increase the complexity of the installation procedure, \mf will remain available in its core set of functionality.
Next to the standard \mf executable, a second, extended program executable is made available. This extended executable comes with additional functionality for which it partially relies on third-party libraries. Extended functionality includes the parallel computing capability and the use of NetCDF4 for input and output data. Because the external dependencies increase the complexity of the installation procedure, \mf will remain available in its standard set of functionality.

Extended \mf contains all features available in the standard edition, runs on the same input configuration, and produces the same results. Reversely, when running with the standard executable, some features described in this document (HPC Utility, NetCDF4 I/O) will not be available and their configuration will be ignored or an error is reported. These features will be labeled accordingly below.
Extended \mf contains all features available in the standard executable, runs on the same input configuration, and produces the same results. Conversely, when running with the standard executable, some features described in this document (HPC Utility and NetCDF4 input and output, for example) will not be available and their configuration will be ignored or the program will terminate with an error. These features will be labeled accordingly below.

\subsection{NetCDF Export Files}
This sections describes input files that are only available with Extended \mf. For more information on using Extended \mf, refer to the \href{https://github.com/MODFLOW-USGS/modflow6/wiki}{MODFLOW 6 Wiki} on the version-controlled \href{https://github.com/MODFLOW-USGS/modflow6}{MODFLOW 6 repository}.

The extended build of \mf can optionally create model NetCDF export files. \mf supports two types of NetCDF exports, referred to here as ``structured'' and ``mesh''.

\mf NetCDF exports by default contain model dependent variable timeseries data, e.g. head. In addition, \mf package griddata input arrays can be configured to be written to the export file. Creating export files containing only one or the other of these these types of data form two distinct uses for the exports. Generating exports of these two types will described below.

These capabilities are dependent on the earlier described Input Data Processor (IDP). In particular, the package array export capability described below is limited to packages currently supported by IDP.

\subsubsection{Mesh Exports}
\mf mesh exports comply with UGRID 1.0 conventions and are based on the UGRID 3D layered mesh topology. A UGRID based NetCDF file explicitly describes the grid with a set of variables that gridded data can be associated with. \mf mesh exports can be generated with a DIS or DISV based GWF, GWT, or GWE model.

\subsubsection{Structured Exports}
\mf structured NetCDF exports define x and y geometric coordinate variables and are not based on the UGRID specification. \mf structured exports can be generated with a DIS based GWF, GWT, or GWE model.

\subsubsection{Dependent variable exports}
A typical use case creates an export that capture timeseries output for the model dependent variable. This export can be optioned simply by adding the ``EXPORT\_NETCDF'' keyword to a GWF, GWT, or GWE model name file. This keyword takes an argument for the NetCDF export type, either ``STRUCTURED'' or ``MESH'' (or alternatively, ``UGRID''). Configured in this way, the export will contain only the mesh or x and y coordinate variables and the dependent variable(s). Additional configuration options are possible when a NetCDF configuration package (UTL-NCF) is created, such as per-variable compression, chunking options, and options meant to support visualization in post-processing tools like QGIS. This package is described below.

\subsubsection{Exporting array input}
Packages that support exporting griddata input arrays to model NetCDF files support the ``EXPORT\_ARRAY\_NETCDF'' keyword. Using this keyword, when model NetCDF export also is active, has the effect of writing all package griddata arrays to the NetCDF export. Writing candidate arrays to a NetCDF file offers an alternative to storing them in an ascii or binary input file.

One approach to converting existing ascii or binary inputs to NetCDF inputs is described next. \mf supports a validate mode option intended to support error checking. In this mode no matrix equations are assembled or solved and no solution based outputs are created. Input, however, is still read in validate mode and thus can be written to NetCDF exports when configured. Specific IDP supported packages can be configured to export griddata array input by using the ``EXPORT\_ARRAY\_NETCDF'' package option when running the simulation in validate mode. When configured in this way, \mf will generate a NetCDF export file, absent a dependent or time coordinate variable, that can serve as a separate input file for model gridded package data.

\subsection{NetCDF as simulation input}
\mf can read NetCDF files as model inputs containing package griddata array input. Files generated using the validate method described in the previous section are suitable as inputs- note that \mf expects specific annotations for NetCDF input variables and that these are written by default into \mf NetCDF exports. An example follows showing a model name file that configures a NetCDF input and IC and NPF input files that specify specific griddata parameters should be read from the model NetCDF input:
\input{netcdf_input.tex}
\newpage
\subsection{NetCDF (NCF) Configuration Utility}
\input{utl_ncf.tex}

\newpage
\subsection{High Performance Computing (HPC) Utility}
\input{utl_hpc.tex}

\subsection{NetCDF configuration (NCF) Utility}
\input{utl_ncf.tex}
7 changes: 5 additions & 2 deletions doc/mf6io/framework/form_of_input.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ \subsection{Block and Keyword Input}
\end{lstlisting}
This example shows the items that may be specified with this OPTIONS block. Optional items are enclosed between ``['' and ``]'' symbols. The ``\texttt{<}'' and ``\texttt{>}'' symbols indicate a variable that must be provided by the user. In this case, \texttt{auxiliary} is an array of size \texttt{naux}. Because there are bracket symbols around the entire item, the user it not required to specify anything for this item. Likewise, the user may or may not invoke the ``\texttt{PRINT\_INPUT}'' option. Lastly, the user can specify ``\texttt{MAXIMUM\_ITERATION}'' followed by a numeric value for ``\texttt{maxsfrit}''. If the user does not specify an optional item, then a default condition will apply. Behavior of the default condition is described in the input instructions for that item.

Note that text color in the input instructions is indicative of special features or behaviors associated with the variables printed in that color. Specifically, the text color of blue is reserved to indicate a variable that may be represented with a time series. The text color of red is reserved for keywords or variables that are supported only in the extended build of \mf. The extended build is covered in its own section in this document.

\vspace{6pt}\noindent A valid user input block for OPTIONS might be:

\begin{lstlisting}[style=inputfile]
Expand Down Expand Up @@ -65,6 +63,11 @@ \subsection{Specification of Block Information in OPEN/CLOSE File}

Some blocks do not support the OPEN/CLOSE capability. A list of all of the blocks, organized by component and input file type, are listed in a table in appendix A. This table also indicates the blocks that do not support the OPEN/CLOSE capability.

\subsection{Text Color}

Note that text color in the input instructions is indicative of special features or behaviors associated with the variables printed in that color. Specifically, the {\color{blue} text color of blue} is reserved to indicate a variable that may be represented with a time series. The {\color{red} text color of red} is reserved for keywords or variables that are supported only in the extended build of \mf. The extended build is covered in its own section in this document.


\subsection{File Name Input}
Some blocks may require that a file name be entered. Although spaces within a file name are not generally recommended, they can be specified if the entire file name is enclosed within single quotes, which means that the file name itself cannot have a single quote within it. On Windows computers, file names are not case sensitive, and thus, ``model.dis'' can be referenced within the input files as ``MODEL.DIS''. On some other operating systems, however, file names are case sensitive and the case used in the input instructions must exactly reflect the case used to name the file.

Expand Down
9 changes: 9 additions & 0 deletions doc/mf6io/mf6io.tex
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,17 @@

\renewcommand{\cooperator}
{the \textusgs\ Water Availability and Use Science Program}

\renewcommand{\reporttitle}
{MODFLOW 6 -- Description of Input and Output}

\renewcommand{\preface}
{The user guide describes the input and output for the U.S. Geological Survey (USGS) modular hydrologic simulation program called MODFLOW 6. The program can be downloaded from the USGS for free. The performance of MODFLOW 6 has been tested in a variety of applications. Future applications, however, might reveal errors that were not detected in the test simulations. Users are requested to send notification of any errors found in this model documentation report or in the model program to the contact listed on the \href{https://doi.org/10.5066/F76Q1VQV}{MODFLOW Web page}. Updates might be made to both the report and to the model program. Additional details and information about ongoing developments are available through the version-controlled \href{https://github.com/MODFLOW-USGS/modflow6}{MODFLOW 6 repository}.

\vspace{5mm}

There are two supported executables for MODFLOW 6: standard and extended. The standard executable has no external dependencies and is straightforward to install and use on common operating systems. The extended executable for MODFLOW, referred to here as Extended MODFLOW, has additional capabilities beyond the standard executable. These additional capabilities presently include parallel computing and support for NetCDF input and output files. Extended MODFLOW relies on third-party libraries, which must be available for the software to run properly. A section called ``Extended MODFLOW'' describes the extended capabilities.}

\renewcommand{\coverphoto}{coverimage.jpg}
\renewcommand{\GSphotocredit}{Binary computer code illustration.}
\renewcommand{\reportseries}{}
Expand Down
2 changes: 1 addition & 1 deletion doc/mf6io/mf6ivar/mf6ivar.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ def parse_mf6var_file(fname):
RTD_DOC_DIR_PATH = Path(__file__).parents[3] / ".build_rtd_docs" / "_mf6io"
COMMON_DFN_PATH = parse_mf6var_file(DFNS_DIR_PATH / "common.dfn")
COMMON_DIR_PATH = MF6IVAR_DIR_PATH.parent.parent / "Common"
DEFAULT_MODELS = ["gwf", "gwt", "gwe", "prt", "chf", "olf"]
DEFAULT_MODELS = ["gwf", "gwt", "gwe", "prt"] # , "chf", "olf"]
VALID_TYPES = [
"integer",
"double precision",
Expand Down
6 changes: 3 additions & 3 deletions doc/mf6io/utl_hpc.tex
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
The High Performance Computing (HPC) utility file for the simulation can be activated by specifying the HPC6 option in the simulation name file. It's main purpose is to assign the models in a parallel simulation to the available CPU cores for cases where the internal distribution algorithm is not satisfactory. If activated, \mf will read HPC input according to the following description.

\vspace{5mm}
\subsection{Structure of Blocks}
\subsubsection{Structure of Blocks}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/utl-hpc-options.dat}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/utl-hpc-partitions.dat}

\vspace{5mm}
\subsection{Explanation of Variables}
\subsubsection{Explanation of Variables}
\begin{description}
\input{./mf6ivar/tex/utl-hpc-desc.tex}
\end{description}

\vspace{5mm}
\subsection{Example Input File}
\subsubsection{Example Input File}
Example 1: HPC input file distributing 6 models over 4 available CPU cores.
\lstinputlisting[style=inputfile]{./mf6ivar/examples/utl-hpc-example1.dat}

Expand Down
10 changes: 5 additions & 5 deletions doc/mf6io/utl_ncf.tex
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
The NetCDF configuration (NCF) utility can be activated by specifying the NCF6 option in a DIS or DISV input file.
The NetCDF (NCF) configuration utility can be activated by specifying the NCF6 option in a DIS or DISV input file.

The netcdf configuration utility applies to model NetCDF exports that are elected with the EXPORT\_NETCDF keyword in a model name file. The EXPORT\_NETCDF keyword can be used whether or not this configuration package is defined. When defined, this package provides options related to data variable chunking, compression and grid mapping (projections).
The NCF configuration utility applies to model NetCDF exports that are elected with the EXPORT\_NETCDF keyword in a model name file. The EXPORT\_NETCDF keyword can be used whether or not this configuration package is defined. When defined, this package provides options related to data variable chunking, compression and grid mapping (projections).

\subsection{Structure of Blocks}
\subsubsection{Structure of Blocks}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/utl-ncf-options.dat}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/utl-ncf-dimensions.dat}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/utl-ncf-griddata.dat}
\vspace{5mm}

\subsection{Explanation of Variables}
\subsubsection{Explanation of Variables}
\begin{description}
\input{./mf6ivar/tex/utl-ncf-desc.tex}
\end{description}
\vspace{5mm}

\subsection{Example Input File}
\subsubsection{Example Input File}
\lstinputlisting[style=inputfile]{./mf6ivar/examples/utl-ncf-example.dat}

0 comments on commit ab62755

Please sign in to comment.