Skip to content

Commit

Permalink
Release 6.4.4 (#1616)
Browse files Browse the repository at this point in the history
* fix(par): first version of message cache for MPI traffic (#1582)

* - cache mpi headers and bodies
* - final step in implementing caching: only cache message bodies (skip routing of headers and maps when possible)
* - fix: initialize mpi request handles
* - add MPI error check
* - PETSc vec readonly access
* - add more strategic MPI error checks

* fix(mvr): improve water mover performance (#1605)

* docs(mf6io): correct description of CDIST in gwfgwf/gwtgwt (#1606)

* docs(mf6io): correct description of CDIST in gwfgwf/gwtgwt
* correct deprecation warnings to use proper version number

* Prepare 6.4.4 release

* test: use v14 of executables distribution (#1614)

* v15 of exes distribution doesn't have double-precision program versions
* temporary workaround until double-prec mf2005/mfnwt/etc restored to dist

* ci(release): update version to 6.4.4

---------

Co-authored-by: mjr-deltares <[email protected]>
Co-authored-by: langevin-usgs <[email protected]>
Co-authored-by: wpbonelli <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
4 people committed Feb 13, 2024
1 parent be6d39f commit 543a04b
Show file tree
Hide file tree
Showing 39 changed files with 880 additions and 226 deletions.
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ cff-version: 1.2.0
message: If you use this software, please cite the software itself.
type: software
title: MODFLOW 6 Modular Hydrologic Model
version: 6.4.3
date-released: '2024-02-07'
version: 6.4.4
date-released: '2024-02-13'
doi: 10.5066/F76Q1VQV
abstract: MODFLOW 6 is an object-oriented program and framework developed to provide
a platform for supporting multiple models and multiple types of models within the
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

This is the development repository for the USGS MODFLOW 6 Hydrologic Model. The official USGS distribution is available at [USGS Release Page](https://water.usgs.gov/ogw/modflow/MODFLOW.html).

### Version 6.4.3
### Version 6.4.4

[![GitHub release](https://img.shields.io/github/release/MODFLOW-USGS/modflow6.svg)](https://github.com/MODFLOW-USGS/modflow6/releases/latest)
[![MODFLOW 6 continuous integration](https://github.com/MODFLOW-USGS/modflow6/actions/workflows/ci.yml/badge.svg)](https://github.com/MODFLOW-USGS/modflow6/actions/workflows/ci.yml)
Expand Down
4 changes: 3 additions & 1 deletion autotest/get_exes.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ def rebuild():
def test_get_executables(downloaded_bin_path: Path):
print(f"Installing MODFLOW-related executables to: {downloaded_bin_path}")
downloaded_bin_path.mkdir(exist_ok=True, parents=True)
flopy.utils.get_modflow(str(downloaded_bin_path))
# todo: remove release_id workaround when double-precision comparison issues fixed
# https://github.com/MODFLOW-USGS/modflow6/pull/1612
flopy.utils.get_modflow(str(downloaded_bin_path), release_id="14.0")


if __name__ == "__main__":
Expand Down
4 changes: 2 additions & 2 deletions code.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
"email": "[email protected]"
},
"laborHours": -1,
"version": "6.4.3",
"version": "6.4.4",
"date": {
"metadataLastUpdated": "2024-02-07"
"metadataLastUpdated": "2024-02-13"
},
"organization": "U.S. Geological Survey",
"permissions": {
Expand Down
1 change: 1 addition & 0 deletions doc/ReleaseNotes/ReleaseNotes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ \section{Release History}
6.4.1 & December 9, 2022 & \url{https://doi.org/10.5066/P9FL1JCC} \\
6.4.2 & June 28, 2023 & \url{https://doi.org/10.5066/P9FL1JCC} \\
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} \\
\hline
\label{tab:releases}
\end{tabular*}
Expand Down
1 change: 1 addition & 0 deletions doc/ReleaseNotes/appendixA.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
This appendix describes changes introduced into MODFLOW~6 in previous releases. These changes may substantially affect users.

\input{./previous/v6.4.3.tex}
\input{./previous/v6.4.2.tex}
\input{./previous/v6.4.1.tex}
\input{./previous/v6.4.0.tex}
Expand Down
71 changes: 38 additions & 33 deletions doc/ReleaseNotes/develop.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,47 @@
% after a release has just been made.

\item \currentmodflowversion

\underline{NEW FUNCTIONALITY}
\begin{itemize}
\item The Input Data Processor (IDP), first released in version 6.4.2, is a general utility for reading user-provided input files. Package-specific routines for reading input files continue to be replaced by the IDP approach. For packages that use IDP for input, logging information is written to the simulation list file (mfsim.lst). Additional information on the IDP and the list of supported packages is contained in the MODFLOW 6 Description of Input and Output (mf6io.pdf) under a section titled ``Processing of Program Input.''
\item The source code was refactored to support compilation of a parallel version of MODFLOW 6 based on the Message Passing Interface (MPI) and the Portable, Extensible Toolkit for Scientific Computation (PETSc) libraries. The parallel version of MODFLOW is considered preliminary. Limited testing of the parallel version has been performed on laptops, desktops, and supercomputers, but significant changes are expected in future releases. User support for the parallel version of MODFLOW 6 may be provided in the future.

%\underline{NEW FUNCTIONALITY}
%\begin{itemize}
% \item xxx
\end{itemize}
% \item xxx
% \item xxx
%\end{itemize}

\underline{EXAMPLES}
\begin{itemize}
\item A new exampled called ex-gwf-rad-disu was added. This new example uses a DISU grid to represent radial groundwater flow to a pumping well.
\item A new exampled called ex-gwf-curv-90 was added. This new example demonstrates use of a DISV grid to represent a curvilinear spatial discretization. For this example, the curvilinear grid is applied to one quarter of a radial groundwater flow system.
\item A new exampled called ex-gwf-curvilin was added. This new example uses a curvilinear grid, represented with the DISV Package, to simulate groundwater flow through a multi-region aquifer with bends in the domain boundaries.
\end{itemize}
%\underline{EXAMPLES}
%\begin{itemize}
% \item xxx
% \item xxx
% \item xxx
%\end{itemize}

\textbf{\underline{BUG FIXES AND OTHER CHANGES TO EXISTING FUNCTIONALITY}} \\
\underline{BASIC FUNCTIONALITY}
\begin{itemize}
\item Improve error message if the size of data read from a binary array file is inconsistent with READARRAY control line and variable description keywords.
\item The area calculation for cells in the DISV package was inaccurate for some cases with very large cell vertex coordinates. The area calculation was improved by using transformed cell vertex coordinates prior to making the area calculation.
\item Auxiliary variables in RCH and EVT Array-Based input packages are now reset to zero when otherwise not specified in period input data and the auxiliary parameter is not controlled by a time-series.
%\textbf{\underline{BUG FIXES AND OTHER CHANGES TO EXISTING FUNCTIONALITY}} \\
%\underline{BASIC FUNCTIONALITY}
%\begin{itemize}
% \item xxx
% \item xxx
\end{itemize}
% \item xxx
%\end{itemize}

\underline{INTERNAL FLOW PACKAGES}
\begin{itemize}
\item The data header in the binary output file written by the viscosity (VSC) package was printing `` VISCOSI'' instead of `` VISCOSITY''. The viscosity package now prints the full `` VISCOSITY'' header in the binary output file.
\item The CSUB Package did not support output of z-displacement arrays for models using the DISU package. The CSUB package was updated to support calculation of z-displacement arrays for DISU model grids.
%\underline{INTERNAL FLOW PACKAGES}
%\begin{itemize}
% \item xxx
\end{itemize}
% \item xxx
% \item xxx
%\end{itemize}

\underline{STRESS PACKAGES}
\begin{itemize}
\item This release contains a fix for a longstanding issue related to the use of AUXMULTNAME and time series. Previous release notes included the following description of a known issue: \textit{``The AUXMULTNAME option can be used to scale input values, such as riverbed conductance, using values in an auxiliary column. When this AUXMULTNAME option is used, the multiplier value in the AUXMULTNAME column should not be represented with a time series unless the value to scale is also represented with a time series.''} With this release, the Input Data Processor (IDP) is now used to read stress package input files, and the limitation with AUXMULTNAME and time series no longer applies.
%\underline{STRESS PACKAGES}
%\begin{itemize}
% \item xxx
% \item xxx
\end{itemize}
% \item xxx
%\end{itemize}

\underline{ADVANCED STRESS PACKAGES}
\begin{itemize}
\item Added functionality to support zero values for each grid dimension when specifying the CELLID for SFR reaches that are not connected to an underlying groundwater grid cell. For example, for a DIS grid a CELLID of 0 0 0 should be specified for reaches with no connection to a groundwater cell. Warning messages will be issued if NONE is specified for the CELLID of an unconnected reach. Specifying a CELLID of NONE will eventually be deprecated and will cause MODFLOW 6 to terminate with an error.
\item Added functionality to support specification of a DNODATA (3.0E+30) BEDLEAK value for LAK package connections. This DNODATA value is used to identify lake-GWF connections where conductance is solely a function of aquifer properties in the connected GWF cell. In this case, the lakebed sediments are assumed to be absent and all resistance to flow is assumed to be within the GWF cell. Warning messages are now issued if NONE is specified for LAK package connections. Specifying a BEDLEAK value equal to NONE will eventually be deprecated and will cause MODFLOW 6 to terminate with an error.
\item SFR diversion would not be updated if the outflow of its upstream reach is zero. If diversion was not zero in the previous stress period, it would report mass balance error in the SFR budget. This bug was fixed by always updating the diversion.
\item Refactoring of the Water Mover package in version 6.4.3 introduced a reduction in performance for GWF models with a large number of movers. The program was corrected so that performance is similar to previous versions.
\item Deprecation warnings in the Lake and Streamflow Routing Packages, which can be issued by MODFLOW 6 at run time, incorrectly listed the version number as 6.5.0. The warning was modified to show 6.4.3 as the version number for the deprecation.
% \item xxx
\end{itemize}

Expand All @@ -56,9 +53,17 @@
% \item xxx
%\end{itemize}

\underline{EXCHANGES}
%\underline{EXCHANGES}
%\begin{itemize}
% \item xxx
% \item xxx
% \item xxx
%\end{itemize}

\underline{PARALLEL}
\begin{itemize}
\item A model budget error would occur when a constant-head (CHD) cell in one model had a direct connection to an active cell in another model. For the model budget to be calculated correctly a new term called ``FLOW-JA-FACE-CHD'' was added to the GWF model budget. This term is only included in the budget table when the GWF Model is connected to another GWF Model using a GWF-GWF Exchange. Additionally, the CHD budget calculation for a very specific (and rare) configuration was also incorrect. The incorrect budget calculation occurred when the following conditions were met: (1) a GWF model was connected to another GWF model with a GWF-GWF Exchange; (2) the model as well as the Exchange had the XT3D option enabled, and (3) the model was configured with a CHD cell that is either an Exchange cell, i.e. a cell that is part of the EXCHANGEDATA block, or a cell directly connected to such an Exchange cell. The size of the error depends on the degree of anisotropy around the particular CHD cell and shows up as a discrepancy in the volume budget table reported in the GWF list file. The program has been updated with the correct budget calculation.
\item A memory leak was identified in the way MPI messages were constructed and cached. The memory leak caused problems for large models with many time steps. The message construction and caching was fixed and tests confirm that the memory leak is no longer present.
% \item xxx
% \item xxx
\end{itemize}

65 changes: 65 additions & 0 deletions doc/ReleaseNotes/previous/v6.4.3.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
% Use this template for starting initializing the release notes
% after a release has just been made.

%\item \currentmodflowversion
\subsection{Version mf6.4.3--February 7, 2024}

\underline{NEW FUNCTIONALITY}
\begin{itemize}
\item The Input Data Processor (IDP), first released in version 6.4.2, is a general utility for reading user-provided input files. Package-specific routines for reading input files continue to be replaced by the IDP approach. For packages that use IDP for input, logging information is written to the simulation list file (mfsim.lst). Additional information on the IDP and the list of supported packages is contained in the MODFLOW 6 Description of Input and Output (mf6io.pdf) under a section titled ``Processing of Program Input.''
\item The source code was refactored to support compilation of a parallel version of MODFLOW 6 based on the Message Passing Interface (MPI) and the Portable, Extensible Toolkit for Scientific Computation (PETSc) libraries. The parallel version of MODFLOW is considered preliminary. Limited testing of the parallel version has been performed on laptops, desktops, and supercomputers, but significant changes are expected in future releases. User support for the parallel version of MODFLOW 6 may be provided in the future.
% \item xxx
\end{itemize}

\underline{EXAMPLES}
\begin{itemize}
\item A new exampled called ex-gwf-rad-disu was added. This new example uses a DISU grid to represent radial groundwater flow to a pumping well.
\item A new exampled called ex-gwf-curv-90 was added. This new example demonstrates use of a DISV grid to represent a curvilinear spatial discretization. For this example, the curvilinear grid is applied to one quarter of a radial groundwater flow system.
\item A new exampled called ex-gwf-curvilin was added. This new example uses a curvilinear grid, represented with the DISV Package, to simulate groundwater flow through a multi-region aquifer with bends in the domain boundaries.
\end{itemize}

\textbf{\underline{BUG FIXES AND OTHER CHANGES TO EXISTING FUNCTIONALITY}} \\
\underline{BASIC FUNCTIONALITY}
\begin{itemize}
\item Improve error message if the size of data read from a binary array file is inconsistent with READARRAY control line and variable description keywords.
\item The area calculation for cells in the DISV package was inaccurate for some cases with very large cell vertex coordinates. The area calculation was improved by using transformed cell vertex coordinates prior to making the area calculation.
\item Auxiliary variables in RCH and EVT Array-Based input packages are now reset to zero when otherwise not specified in period input data and the auxiliary parameter is not controlled by a time-series.
% \item xxx
% \item xxx
\end{itemize}

\underline{INTERNAL FLOW PACKAGES}
\begin{itemize}
\item The data header in the binary output file written by the viscosity (VSC) package was printing `` VISCOSI'' instead of `` VISCOSITY''. The viscosity package now prints the full `` VISCOSITY'' header in the binary output file.
\item The CSUB Package did not support output of z-displacement arrays for models using the DISU package. The CSUB package was updated to support calculation of z-displacement arrays for DISU model grids.
% \item xxx
\end{itemize}

\underline{STRESS PACKAGES}
\begin{itemize}
\item This release contains a fix for a longstanding issue related to the use of AUXMULTNAME and time series. Previous release notes included the following description of a known issue: \textit{``The AUXMULTNAME option can be used to scale input values, such as riverbed conductance, using values in an auxiliary column. When this AUXMULTNAME option is used, the multiplier value in the AUXMULTNAME column should not be represented with a time series unless the value to scale is also represented with a time series.''} With this release, the Input Data Processor (IDP) is now used to read stress package input files, and the limitation with AUXMULTNAME and time series no longer applies.
% \item xxx
% \item xxx
\end{itemize}

\underline{ADVANCED STRESS PACKAGES}
\begin{itemize}
\item Added functionality to support zero values for each grid dimension when specifying the CELLID for SFR reaches that are not connected to an underlying groundwater grid cell. For example, for a DIS grid a CELLID of 0 0 0 should be specified for reaches with no connection to a groundwater cell. Warning messages will be issued if NONE is specified for the CELLID of an unconnected reach. Specifying a CELLID of NONE will eventually be deprecated and will cause MODFLOW 6 to terminate with an error.
\item Added functionality to support specification of a DNODATA (3.0E+30) BEDLEAK value for LAK package connections. This DNODATA value is used to identify lake-GWF connections where conductance is solely a function of aquifer properties in the connected GWF cell. In this case, the lakebed sediments are assumed to be absent and all resistance to flow is assumed to be within the GWF cell. Warning messages are now issued if NONE is specified for LAK package connections. Specifying a BEDLEAK value equal to NONE will eventually be deprecated and will cause MODFLOW 6 to terminate with an error.
\item SFR diversion would not be updated if the outflow of its upstream reach is zero. If diversion was not zero in the previous stress period, it would report mass balance error in the SFR budget. This bug was fixed by always updating the diversion.
% \item xxx
\end{itemize}

%\underline{SOLUTION}
%\begin{itemize}
% \item xxx
% \item xxx
% \item xxx
%\end{itemize}

\underline{EXCHANGES}
\begin{itemize}
\item A model budget error would occur when a constant-head (CHD) cell in one model had a direct connection to an active cell in another model. For the model budget to be calculated correctly a new term called ``FLOW-JA-FACE-CHD'' was added to the GWF model budget. This term is only included in the budget table when the GWF Model is connected to another GWF Model using a GWF-GWF Exchange. Additionally, the CHD budget calculation for a very specific (and rare) configuration was also incorrect. The incorrect budget calculation occurred when the following conditions were met: (1) a GWF model was connected to another GWF model with a GWF-GWF Exchange; (2) the model as well as the Exchange had the XT3D option enabled, and (3) the model was configured with a CHD cell that is either an Exchange cell, i.e. a cell that is part of the EXCHANGEDATA block, or a cell directly connected to such an Exchange cell. The size of the error depends on the degree of anisotropy around the particular CHD cell and shows up as a discrepancy in the volume budget table reported in the GWF list file. The program has been updated with the correct budget calculation.
% \item xxx
% \item xxx
\end{itemize}
7 changes: 7 additions & 0 deletions doc/ReleaseNotes/vx.x.x-template.tex
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,10 @@
% \item xxx
%\end{itemize}

%\underline{PARALLEL}
%\begin{itemize}
% \item xxx
% \item xxx
% \item xxx
%\end{itemize}

Loading

0 comments on commit 543a04b

Please sign in to comment.