Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 6.6.0 #2116

Merged
merged 196 commits into from
Dec 20, 2024
Merged

Release 6.6.0 #2116

merged 196 commits into from
Dec 20, 2024

Conversation

github-actions[bot]
Copy link
Contributor

MODFLOW 6.6.0 release

The release can be approved by merging this PR into master. Merging rather than squashing is necessary to preserve the commit history.

When this PR is merged, a final job will be triggered to draft a tagged GitHub release, then upload assets (OS distributions and release notes).

wpbonelli and others added 30 commits May 23, 2024 16:40
The Windows parallel distribution was built with Intel Fortran Classic 2021.11.1 until now. When running PRT models, Win parallel distributions built with this version of the compiler produce a runtime error in MethodSubcellPool.f90 when the method pool's pointers to tracking methods are deallocated. This seems like a compiler bug, though we also do not properly deallocate all pointers on the method types, which could cause memory leaks if in future PRT is modified such that allocation/deallocation happens multiple times. This will be fixed in a subsequent PR.

The crash only occurs on the Windows parallel distribution because we use ifort 2021.7 to build the other Intel distributions. The reason we did not use 2021.7 to build the Win parallel dist is parallel requires the oneAPI base kit, and I've been unable to find the installer URL for that base kit. Luckily the latest ifort (2021.12.0) doesn't have the same issue, so we can simply switch the Win parallel dist to 2021.12.0.
Co-authored-by: GitHub <noreply@github.com>
…1858)

The codespell 2.3.0 update broke our spellchecks, add "rin" and "checkin" to .codespell.ignore and fix a typo in sfr.tex
…issing (#1859)

With gcc 13.3+ (from brew) on ARM macs we get this

Undefined symbols for architecture arm64:
  "_is_recursive.16.0", referenced from:
      ___characterstringmodule_MOD_assign_to_charstring in libmf6core.a(Utilities_CharString.f90.o)
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status

It reproduces locally. On inspection of the symbol table, _is_recursive.16.0 has type "U" (undefined) while there are several others with the same name and different index _is_recursive.N which have type "b" (local bss section symbol). Seems like a GCC bug? Maybe worth building from source and digging deeper, but that is not trivial. Falling back to gcc 12 for now.
* only allow one concurrent workflow run per branch
* didn't exercise FREQUENCY N period-block release option before
* fix duplication in timestep array causing double logging for timestep 1
* reenable FIRST and ALL cases with proper flopy perioddata input format
* Up to now we haven't had an autotest for quad-refined grids, only tested implicitly via MP7 example problems 2 and 4. Test 1-2 levels of refinement, without smoothing in 2-level case.
* Move generic routine for clamping barycentric coordinates to the interior of a triangle from MethodSubcellTernaryModule to GeomUtilModule.
…#1865)

* previously checked z coord in grid before local->global conversion
* unrelated: better routine names for particle and particle store
…tType (#1765)

* Create iterator for the ListType and MemoryListType. Use them in the MemoryManager and MemoryManangerExt

* Update mf5to6 make files

* Reimplement the get method in the memorylist to use the name and path of a variable.

* Extract ListNodeType to separate class. Add iterator method to the List class.

* Make iterator variables allocatable

* Add unit ListIterator unittests

* Add unit test for the MemoryContainerIterator

* Fix msvs  error

* Apply review comments

* Fix spelling errors

* Fix format errors
The pollock and ternary methods could hang when a particle should terminate due to no (sub)cell exit face. This occurred because a flag signaling particle advance was not set in the proper location.

Entangled with this, the ternary method could erroneously terminate a particle and report no exit face (as described above, previously this would hang) due to precision error in the exit time/position calculation. This could happen when two conditions are both met: the particle enters the subcell very close to one of its vertices, and flow very nearly parallels one of the subcell's faces. We have encountered similar situations before, solved by nudging the particle a small distance into the interior of the subcell before applying the tracking method. This particular case is resolved by increasing the padding distance from machine precision * 10^2 to machine precision * 10^5.
…by a MemoryHashTable (#1701)

* Create iterator for the ListType and MemoryListType. Use them in the MemoryManager and MemoryManangerExt

* Update mf5to6 make files

* Reimplement the get method in the memorylist to use the name and path of a variable.

* Extract ListNodeType to separate class. Add iterator method to the List class.

* Make iterator variables allocatable

* Add unit ListIterator unittests

* Add unit test for the MemoryContainerIterator

* Fix msvs  error

* Add and use KeyValueList

* Update make files and msvs project to support the new keyvaluelist

* Add and use HashTable

* Fix deallocation errors

* Fix msvs error

* Add KeyValueList unit tests

* Add unit tests for the PtrHashTable class

* Add unit test for the memorylist

* Fix format errors

* Clean up code. Remove unnecessary  dummy comments. Lowercase method names

* Regenerate makefiles

* Apply review comment. Rename MemoryList class to MemoryStore

* Rename MemoryList to MemoryStore in the testsuite
…1866)

* fix(inputoutput): handle line ending skipped by getline for cr or lf

* fprettify
* ci(pr-template): modify pr template and move location

Based on https://stackoverflow.com/questions/52139192/github-pull-requests-template-not-showing, renamed and moved pr template

* improved pr template and added references as suggested by @wpbonelli

* codespell!
Co-authored-by: mjreno <mjreno@IGSAAA071L01144.gs.doi.net>
* docs(release): mention #1865 in release notes

* mention #1874 in release notes

---------

Co-authored-by: langevin-usgs <langevin@usgs.gov>
Co-authored-by: mjreno <mjreno@IGSAAA071L01144.gs.doi.net>
Use proper scientific notation via siunitx to fix failing CI and nightly build (previously carets were not escaped). Also test building the PDF file from LaTeX files in docs.yml (previously only tested in ci.yml which is not triggered when a changeset touches only docs files). This should help catch LaTeX syntax errors like this.
* add pixi task (prepare-pull-request) to run common tasks needed for a PR
Improve source code comments and MF6IO descriptions:

* top/bottom IFLOWFACE settings were not mentioned
* clarify comment on IFLOWFACE mapping in PRT FMI
* clarify that TRACK_EXIT includes model/subcell exits
* rerun doc/mf6io/mf6ivar/mf6ivar.py
wpbonelli and others added 27 commits December 6, 2024 13:04
Hook PRT tests up to the mechanism introduced in #2087. Adds some duplication where check and plot functions both need the same data, but IMO it's worth it.
…ll area (#2073)

* fix(gwe-uze): stop simulation when multiple uze objects exist in one cell

* remove unused variable

* apply review comments

* fix spelling mistake

* remove leftover line from local testing

* adopting a more robust approach to this issue.  Instead of checking indices, comparing the area of individual UZF objects to the area of the host cell.  They should be equal

* fprettify

* spelling

* rename func

* update description of new test

* breakthrough

* spelling

* same mistake twice in a row

* remove leftover code from previous fix attemps

* clean-up note added to uze.tex

* rename apt_chk_aux_area() to apt-chk and move function to end of _rp() routine

* try calling check from _ad()

* Remove unused variables

* restore accidentally deleted line

* changes in response to #2073 (comment)

* changes in response #2073 (comment)

* changes in response to #2073 (comment)
* - add modflow extended description

* - add HPC print_input option
- mark section (red) for extended
* docs(swf): refactoring swf into chf and olf chapters

* more renaming of swf in dfn files

* replace swf with chf and olf in the build_docs script

* conditionally compile the chf and olf chapters based on the presence of a file
* - option to print partition table to file

* - print load balance upon request, also when default
- add test for default partitioning and printing

* - add to release notes
* baseline content for netcdf in mf6io

* fix spelling

* consolidate extended sections at end of document

* reformat mf6ivar.py

* update readasarrays for netcdf

* fix spelling

* restore prt dis and disv dfns

* adjustments to export_netcdf tag

* minor cleanup

* fix quoting in extended_modflow.tex
Co-authored-by: mjreno <mjreno@IGSAAA071L01144.gs.doi.net>
* fix(mf6io): cleanup of typos in the gwe section of mf6io

* weird that this popped up as a problem
…fileout tags (#2101)

* replace export_netcdf input tag with type specific fileout tags

* update mf6io doc and fortran error

---------

Co-authored-by: mjreno <mjreno@IGSAAA071L01144.gs.doi.net>
Address #2014. This fixes a crash, avoids a potential infinite loop condition, and reworks vertical tracking behavior more generally. The aim is to produce results matching MF6.5 and MP7 by default (barring a few edge cases), while giving more control over how particles behave in dry conditions. Also some miscellaneous reorganization and cleanup.

See the included dev notes document and/or mf6io for details on this change.
We previously only tested the example models on Linux. We have recently seen some platform-specific behavior differences in whose consideration it seems wise to test all platforms.
Rewrite some of the PRT and GWE supplemental technical info chapters. Also some fixes in PRT section of mf6io. These edits are courtesy of @aprovost-usgs.
* netcdf improved error handling and utl-ncf input adjustments
* escape underscores
* add autotest assert for netcdf data model
* add baseline testing for utl-ncf options
* remove in_record attribute from chunk params
* set chunk_time param optional
---------
Co-authored-by: mjreno <mjreno@IGSAAA071L01144.gs.doi.net>
…es (#2107)

Mention the EXIT_SOLVE_TOLERANCE option now in the PRP package in the release notes, I missed this before. This was previously a required option, but need not be — set a default of 1e-5, and simplify some tests in light of this.

Also draft a PRT migration guide, building on the development notes added in #2066, which could be distributed with the release. I'm not sure whether this is something to version, and if so, where it should go, but figured it can't hurt to have it.
Add more detail about the exit_solve_tolerance PRP variable and its caveats.
We missed a few tests that should only run in develop mode (IDEVELOPMODE = 1). It's making the release build fail.
The PRT model could write duplicative output, in volumes increasing with the current time step, due to a bug in the output file management logic. This bug has been fixed.
@wpbonelli wpbonelli marked this pull request as ready for review December 20, 2024 01:10
@wpbonelli wpbonelli merged commit 799088c into master Dec 20, 2024
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants