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

starting to add testing for I/O subroutine W3IOPO() so it can be converted to use netCDF #1096

Closed
wants to merge 71 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
e133088
starting to add testing
edwardhartnett Oct 12, 2023
dbe2e43
adding first test
edwardhartnett Oct 14, 2023
e0dbce3
adding first test
edwardhartnett Oct 14, 2023
67b6b4c
adding first test
edwardhartnett Oct 14, 2023
b1fcbaf
adding first test
edwardhartnett Oct 14, 2023
877e8dd
adding first test
edwardhartnett Oct 14, 2023
0b56fb9
adding first test
edwardhartnett Oct 14, 2023
9b895f2
Merge branch 'develop' into ejh_t1
edwardhartnett Oct 14, 2023
854d0b6
trying to set up for write
edwardhartnett Oct 16, 2023
6877dbb
test update
edwardhartnett Oct 31, 2023
2e2ca18
test development
edwardhartnett Nov 1, 2023
ccab76c
started on netCDF-based subroutine
edwardhartnett Nov 1, 2023
0576e98
test development
edwardhartnett Nov 3, 2023
7fd2439
test development
edwardhartnett Nov 3, 2023
0159251
adding IO workflow
edwardhartnett Nov 4, 2023
60a2bb1
adding IO workflow
edwardhartnett Nov 4, 2023
3aa2b05
adding IO workflow
edwardhartnett Nov 4, 2023
a32e69e
adding IO workflow
edwardhartnett Nov 4, 2023
4d657cf
further test development
edwardhartnett Nov 4, 2023
f4fde1b
further test development
edwardhartnett Nov 4, 2023
2c6c301
further test development
edwardhartnett Nov 4, 2023
8fe1e60
started documenting what is in the points file
edwardhartnett Nov 4, 2023
188b21e
clean up test
edwardhartnett Nov 4, 2023
979c46d
more test development
edwardhartnett Nov 5, 2023
0d28e39
more documentation, starting to work on netcdf version of subroutine
edwardhartnett Nov 6, 2023
7b9ef23
working on netCDF code
edwardhartnett Nov 6, 2023
52e4864
working on netCDF code
edwardhartnett Nov 6, 2023
6aaefe7
more netcdf write development
edwardhartnett Nov 6, 2023
4a7a57d
further netcdf write development
edwardhartnett Nov 6, 2023
ef13e37
further netcdf write development
edwardhartnett Nov 6, 2023
0e619c9
further netcdf write development
edwardhartnett Nov 6, 2023
0bd3b24
further netcdf write development
edwardhartnett Nov 6, 2023
9c170e4
further netcdf write development
edwardhartnett Nov 6, 2023
24679ed
adding code coverage
edwardhartnett Nov 6, 2023
4c99eed
working on CI workflow
edwardhartnett Nov 6, 2023
1b7be0d
working on CI workflow
edwardhartnett Nov 6, 2023
5715451
working on CI workflow
edwardhartnett Nov 6, 2023
4455938
working on CI workflow
edwardhartnett Nov 6, 2023
4f7cd93
working on netcdf write code
edwardhartnett Nov 6, 2023
cc13238
start adding doxygen variable descriptions
MatthewMasarik-NOAA Nov 6, 2023
c8b3516
working on netcdf write code
edwardhartnett Nov 6, 2023
d727e36
working on netcdf write code
edwardhartnett Nov 6, 2023
96baefb
working on netcdf write code
edwardhartnett Nov 6, 2023
ed03448
w3iopomd.F90: documentation update
MatthewMasarik-NOAA Nov 6, 2023
12d44c6
w3iopomd.F90: updates to w3iopomd.F90 for documentation.
MatthewMasarik-NOAA Nov 6, 2023
8359f15
w3iopomd.F90: a couple more definitions
MatthewMasarik-NOAA Nov 6, 2023
00c434c
dealing with filename passing to netcdf
edwardhartnett Nov 7, 2023
882bd6a
more work on netcdf out
edwardhartnett Nov 8, 2023
4c6ab0b
more work on netcdf out
edwardhartnett Nov 8, 2023
44a347b
more work on netcdf out
edwardhartnett Nov 8, 2023
fb90776
more work on netcdf out
edwardhartnett Nov 8, 2023
060519e
more work on netcdf out
edwardhartnett Nov 8, 2023
a59f6f3
more work on netcdf out
edwardhartnett Nov 8, 2023
7a5ff03
more work on netcdf out
edwardhartnett Nov 8, 2023
a9aeed2
Merge branch 'ejh_t1' into ejh_t1
edwardhartnett Nov 16, 2023
427a686
Merge pull request #1 from MatthewMasarik-NOAA/ejh_t1
edwardhartnett Nov 16, 2023
d91d533
working on filename
edwardhartnett Nov 16, 2023
9a98dad
working on filename
edwardhartnett Nov 16, 2023
53e799c
working on filename
edwardhartnett Nov 16, 2023
2063833
working on filename
edwardhartnett Nov 16, 2023
265b5c3
working on filename
edwardhartnett Nov 16, 2023
6c94493
working on filename
edwardhartnett Nov 16, 2023
6b515e9
changing cache key
edwardhartnett Nov 16, 2023
1f039f2
trying again
edwardhartnett Nov 17, 2023
544d88c
fixing intel compiler
edwardhartnett Nov 17, 2023
0a82641
added more documentation
edwardhartnett Nov 25, 2023
0411e78
updated docs
edwardhartnett Nov 25, 2023
cdc48a3
further development
edwardhartnett Nov 25, 2023
5bec17f
more changes
edwardhartnett Nov 30, 2023
41d64e8
fixed conflicts
edwardhartnett Dec 4, 2023
66cc6b7
fixed conflicts
edwardhartnett Dec 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1 intel-oneapi-openmp

# Build WW3 spack environment
- name: install-dependencies-with-spack
Expand Down
123 changes: 123 additions & 0 deletions .github/workflows/io_gnu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: io_gnu
on: [push, pull_request, workflow_dispatch]

# Cancel in-progress workflows when pushing to a branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
cache_key: gnu11-1
CC: gcc-10
FC: gfortran-10
CXX: g++-10


# Split into a steup step, and a WW3 build step which
# builds multiple switches in a matrix. The setup is run once and
# the environment is cached so each build of WW3 can share the dependencies.

jobs:
setup:
runs-on: ubuntu-latest

steps:
- name: checkout-ww3
if: steps.cache-env.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
path: ww3
# Cache spack, OASIS, and compiler
# No way to flush Action cache, so key may have # appended
- name: cache-env
id: cache-env
uses: actions/cache@v3
with:
path: |
spack
~/.spack
work_oasis3-mct
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_gnu.yaml') }}

# Build WW3 spack environment
- name: install-dependencies-with-spack
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
# Install NetCDF, ESMF, g2, etc using Spack
sudo apt install cmake
git clone -c feature.manyFiles=true https://github.com/JCSDA/spack.git
source spack/share/spack/setup-env.sh
spack env create ww3-gnu ww3/model/ci/spack_gnu.yaml
spack env activate ww3-gnu
spack compiler find
spack external find cmake
spack add [email protected]
spack concretize
spack install --dirty -v

- name: build-oasis
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
source spack/share/spack/setup-env.sh
spack env activate ww3-gnu
export WWATCH3_DIR=${GITHUB_WORKSPACE}/ww3/model
export OASIS_INPUT_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/oasis3-mct
export OASIS_WORK_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct
cd ww3/regtests/ww3_tp2.14/input/oasis3-mct/util/make_dir
cmake .
make VERBOSE=1
cp -r ${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct ${GITHUB_WORKSPACE}

io_gnu:
needs: setup
runs-on: ubuntu-latest

steps:
- name: install-dependencies
run: |
sudo apt-get update
sudo apt-get install doxygen gcovr valgrind

- name: checkout-ww3
uses: actions/checkout@v3
with:
path: ww3

- name: cache-env
id: cache-env
uses: actions/cache@v3
with:
path: |
spack
~/.spack
work_oasis3-mct
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_gnu.yaml') }}

- name: build-ww3
run: |
source spack/share/spack/setup-env.sh
spack env activate ww3-gnu
set -x
cd ww3
export CC=mpicc
export FC=mpif90
export OASISDIR=${GITHUB_WORKSPACE}/work_oasis3-mct
mkdir build && cd build
pwd
echo "${GITHUB_WORKSPACE}"
export LD_LIBRARY_PATH="/home/runner/work/WW3/WW3/spack/var/spack/environments/ww3-gnu/.spack-env/view/:$LD_LIBRARY_PATH"
which ncdump
cmake -DSWITCH=${GITHUB_WORKSPACE}/ww3/model/tests/data/switch.io -DCMAKE_BUILD_TYPE=Debug -DCMAKE_Fortran_FLAGS="-g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -Wall -fno-omit-frame-pointer -fsanitize=address" -DCMAKE_C_FLAGS="-g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -Wall -fno-omit-frame-pointer -fsanitize=address" ..
make -j2 VERBOSE=1
ctest --verbose --output-on-failure --rerun-failed
gcovr --root .. -v --html-details --exclude ../model/tests --exclude CMakeFiles --print-summary -o test-coverage.html &> /dev/null

- name: upload-test-coverage
uses: actions/upload-artifact@v3
with:
name: ww3-test-coverage
path: |
ww3/build/*.html
ww3/build/*.css


7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,10 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release|RelWithDebInfo|MinSizeRel)$")
endif()

add_subdirectory(model)

# Turn on unit testing.
include(CTest)
if(BUILD_TESTING)
add_subdirectory(model/tests)
endif()

2 changes: 2 additions & 0 deletions model/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
add_subdirectory(src)


Loading