Skip to content

Commit

Permalink
Merge pull request #1847 from MODFLOW-USGS/v6.5.0
Browse files Browse the repository at this point in the history
Release 6.5.0
  • Loading branch information
wpbonelli authored May 23, 2024
2 parents 543a04b + a2fec41 commit 879f911
Show file tree
Hide file tree
Showing 911 changed files with 121,693 additions and 10,472 deletions.
2 changes: 1 addition & 1 deletion .build_rtd_docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ PROJECT_NAME = "MODFLOW 6"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = "version 6.5.0.dev0"
PROJECT_NUMBER = "version 6.5.0"

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
19 changes: 19 additions & 0 deletions .codespell.ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
alph
wel
nam
gage
drob
delt
lke
ist
inout
ot
initialx
initialy
initialz
iterm
dum
shft
lsat
thi
thckstrt
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@
*.inc linguist-language=Fortran
.build_rtd_docs/** linguist-documentation
.doc/** linguist-documentation
# GitHub syntax highlighting
pixi.lock linguist-language=YAML

20 changes: 20 additions & 0 deletions .github/actions/build-par-win/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build parallel MF6 (Windows)
description: Build parallel MODFLOW 6 on Windows
runs:
using: "composite"
steps:

- name: Setup PETSc
uses: ./modflow6/.github/actions/build-petsc-win

- name: Build modflow6
shell: cmd
run: |
unix2dos -n "%GITHUB_WORKSPACE%\modflow6\.github\common\compile_modflow6.bat" "%TEMP%\compile_modflow6.bat"
"%ONEAPI_ROOT%\setvars.bat" intel64 vs2022 && "%TEMP%\compile_modflow6.bat"
- name: Show Meson logs
if: failure()
shell: bash
working-directory: modflow6
run: cat builddir/meson-logs/meson-log.txt
81 changes: 81 additions & 0 deletions .github/actions/build-petsc-win/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Build PETSc (Windows)
description: Build PETSc on Windows with Cygwin
runs:
using: "composite"
steps:

- name: Convert line endings
shell: cmd
run: |
unix2dos -n "%GITHUB_WORKSPACE%\modflow6\.github\common\configure_petsc.sh" "%TEMP%\configure_petsc.sh"
unix2dos -n "%GITHUB_WORKSPACE%\modflow6\.github\common\compile_petsc.sh" "%TEMP%\compile_petsc.sh"
- name: Hide Strawberry programs
shell: bash
run: |
mkdir "$RUNNER_TEMP/strawberry"
mv /c/Strawberry/c/bin/gmake "$RUNNER_TEMP/strawberry/gmake"
mv /c/Strawberry/perl/bin/pkg-config "$RUNNER_TEMP/strawberry/pkg-config"
mv /c/Strawberry/perl/bin/pkg-config.bat "$RUNNER_TEMP/strawberry/pkg-config.bat"
- name: Get date
id: get-date
shell: bash
run: echo "date=$(/bin/date -u "+%Y%m%d")" >> "$GITHUB_OUTPUT"

- name: Setup oneAPI
uses: ./modflow6/.github/actions/setup-par-oneapi

- name: Restore PETSc cache
id: petsc-cache
uses: actions/cache/restore@v3
with:
path: petsc
key: petsc-${{ runner.os }}-${{ steps.get-date.outputs.date }}

- name: Download PETSc
if: steps.petsc-cache.outputs.cache-hit != 'true'
shell: bash
run: |
curl https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-3.20.5.tar.gz -O -J
mkdir petsc
tar -xzf petsc-3.20.5.tar.gz -C petsc --strip-components=1
- name: Setup Cygwin
if: steps.petsc-cache.outputs.cache-hit != 'true'
uses: egor-tensin/setup-cygwin@v4
with:
packages: python3 make gcc-core gcc-g++ pkg-config

- name: Hide Cygwin linker
if: steps.petsc-cache.outputs.cache-hit != 'true'
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
run: mv /usr/bin/link.exe /usr/bin/link-cygwin.exe

- name: Configure PETSc
if: steps.petsc-cache.outputs.cache-hit != 'true'
shell: cmd
run: |
"%ONEAPI_ROOT%\setvars.bat" intel64 vs2022 && "C:\tools\cygwin\bin\bash.exe" --login --norc -eo pipefail -o igncr "%TEMP%\configure_petsc.sh"
- name: Build PETSc
if: steps.petsc-cache.outputs.cache-hit != 'true'
shell: cmd
run: |
"%ONEAPI_ROOT%\setvars.bat" intel64 vs2022 && "C:\tools\cygwin\bin\bash.exe" --login --norc -eo pipefail -o igncr "%TEMP%\compile_petsc.sh"
- name: Save PETSc cache
if: steps.petsc-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v3
with:
path: petsc
key: petsc-${{ runner.os }}-${{ steps.get-date.outputs.date }}

- name: Setup PETSC environment
shell: cmd
run: |
set PETSC_DIR=%GITHUB_WORKSPACE%\petsc
set PETSC_ARCH=arch-mswin-c-opt
echo PETSC_DIR=%PETSC_DIR%>>%GITHUB_ENV%
echo PETSC_ARCH=%PETSC_ARCH%>>%GITHUB_ENV%
echo %PETSC_DIR%\%PETSC_ARCH%\lib>>%GITHUB_PATH%
48 changes: 48 additions & 0 deletions .github/actions/setup-par-oneapi/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Setup oneAPI for parallel MF6
description: Setup oneAPI components for parallel MODFLOW 6
runs:
using: "composite"
steps:

- name: Get date
id: get-date
shell: bash
run: echo "date=$(/bin/date -u "+%Y%m%d")" >> "$GITHUB_OUTPUT"

- name: Set oneAPI install dir
shell: bash
run: echo "ONEAPI_ROOT=C:\Program Files (x86)\Intel\oneAPI" >> "$GITHUB_ENV"

- name: Restore oneAPI cache
id: oneapi-cache
uses: actions/cache/restore@v3
with:
path: ${{ env.ONEAPI_ROOT }}
key: oneapi-${{ runner.os }}-${{ steps.get-date.outputs.date }}

- name: Install oneAPI BaseKit
shell: bash
if: steps.oneapi-cache.outputs.cache-hit != 'true'
run: |
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/5cb30fb9-21e9-47e8-82da-a91e00191670/w_BaseKit_p_2024.0.1.45_offline.exe"
cmp="intel.oneapi.win.mkl.devel"
"$GITHUB_WORKSPACE/modflow6/.github/common/install_intel_windows.bat" $url $cmp
rm -rf $TEMP/webimage.exe
rm -rf $TEMP/webimage_extracted
- name: Install oneAPI HPCKit
shell: bash
if: steps.oneapi-cache.outputs.cache-hit != 'true'
run: |
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7a6db8a1-a8b9-4043-8e8e-ca54b56c34e4/w_HPCKit_p_2024.0.1.35_offline.exe"
cmp="intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.ifort-compiler:intel.oneapi.win.mpi.devel"
"$GITHUB_WORKSPACE/modflow6/.github/common/install_intel_windows.bat" $url $cmp
rm -rf $TEMP/webimage.exe
rm -rf $TEMP/webimage_extracted
- name: Save oneAPI cache
if: steps.oneapi-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v3
with:
path: ${{ env.ONEAPI_ROOT }}
key: oneapi-${{ runner.os }}-${{ steps.get-date.outputs.date }}
42 changes: 42 additions & 0 deletions .github/actions/test-par-win/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Test parallel MF6 (Windows)
description: Build and test parallel MODFLOW 6 on Windows
runs:
using: "composite"
steps:

- name: Build MF6 parallel
uses: ./modflow6/.github/actions/build-par-win

- name: Update flopy
working-directory: modflow6
shell: cmd
run: pixi run update-flopy

- name: Get executables
working-directory: modflow6/autotest
shell: cmd
env:
GITHUB_TOKEN: ${{ github.token }}
run: pixi run get-exes

- name: Convert unix2dos
shell: cmd
run: |
unix2dos -n "%GITHUB_WORKSPACE%\modflow6\.github\common\test_modflow6.bat" "%TEMP%\test_modflow6.bat"
- name: Test programs
if: github.ref_name != 'master'
shell: cmd
env:
REPOS_PATH: ${{ github.workspace }}
run: |
"%ONEAPI_ROOT%\setvars.bat" intel64 vs2022 && "%TEMP%\test_modflow6.bat"
- name: Test programs
if: github.ref_name == 'master'
shell: cmd
env:
REPOS_PATH: ${{ github.workspace }}
MARKERS: not developmode
run: |
"%ONEAPI_ROOT%\setvars.bat" intel64 vs2022 && "%TEMP%\test_modflow6.bat"
82 changes: 82 additions & 0 deletions .github/actions/test-par/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Test parallel MF6
description: Build and test parallel MODFLOW 6
runs:
using: "composite"
steps:

- name: Setup GNU Fortran
uses: fortran-lang/setup-fortran@v1
with:
compiler: gcc
version: 13

- name: Checkout PETSc
uses: actions/checkout@v4
with:
repository: petsc/petsc
path: petsc
ref: release

- name: Configure environment
if: runner.os == 'Linux'
shell: bash
run: |
echo "PKG_CONFIG_PATH=$GITHUB_WORKSPACE/petsc/linux-gnu/lib/pkgconfig" >> $GITHUB_ENV
echo "$GITHUB_WORKSPACE/petsc/linux-gnu/bin" >> $GITHUB_PATH
- name: Configure environment
if: runner.os == 'macOS'
shell: bash
run: |
echo "PKG_CONFIG_PATH=$GITHUB_WORKSPACE/petsc/arch-darwin-gcc/lib/pkgconfig" >> $GITHUB_ENV
echo "$GITHUB_WORKSPACE/petsc/arch-darwin-gcc/bin" >> $GITHUB_PATH
- name: Configure PETSc
if: runner.os == 'Linux'
shell: bash
working-directory: petsc
run: |
sudo wget -P $GITHUB_WORKSPACE/petsc https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.2.tar.gz
sudo ./configure PETSC_ARCH=linux-gnu --download-fblaslapack --download-openmpi=$GITHUB_WORKSPACE/petsc/openmpi-5.0.2.tar.gz
sudo make all
- name: Configure PETSc
if: runner.os == 'macOS'
shell: bash
working-directory: petsc
run: |
sudo ./configure PETSC_DIR="$GITHUB_WORKSPACE/petsc" PETSC_ARCH=arch-darwin-gcc --download-fblaslapack --download-openmpi --with-debugging=0
sudo make all
- name: Build modflow6
shell: bash
working-directory: modflow6
run: |
pixi run setup -Dparallel=true builddir
pixi run build builddir
pixi run test builddir
- name: Show Meson logs
if: failure()
shell: bash
working-directory: modflow6
run: cat builddir/meson-logs/meson-log.txt

- name: Update flopy
shell: bash
working-directory: modflow6
run: pixi run update-flopy

- name: Get executables
shell: bash
working-directory: modflow6
env:
GITHUB_TOKEN: ${{ github.token }}
run: pixi run get-exes

- name: Test programs
shell: bash
working-directory: modflow6
env:
REPOS_PATH: ${{ github.workspace }}
run: pixi run autotest --parallel -k "test_par"
Loading

0 comments on commit 879f911

Please sign in to comment.