Skip to content

Commit 2507f7a

Browse files
Merge pull request #4 from ocean-eddy-cpt/update-mom6-nov-2020
Update CPT fork of MOM6 to latest (12/10/2020) from NOAA-GFDL
2 parents adf6046 + 788aeb0 commit 2507f7a

238 files changed

Lines changed: 23079 additions & 5262 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: 'Build-.testing-prerequisites'
2+
description: 'Build pre-requisites for .testing including FMS and a symmetric MOM6 executable'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- name: Git info
7+
shell: bash
8+
run: |
9+
echo "::group::Git commit info"
10+
echo "git log:"
11+
git log | head -60
12+
echo "::endgroup::"
13+
14+
- name: Env
15+
shell: bash
16+
run: |
17+
echo "::group::Environment"
18+
env
19+
echo "::endgroup::"
20+
21+
- name: Install needed packages for compiling
22+
shell: bash
23+
run: |
24+
echo "::group::Install linux packages"
25+
sudo apt-get update
26+
sudo apt-get install netcdf-bin libnetcdf-dev libnetcdff-dev mpich libmpich-dev
27+
echo "::endgroup::"
28+
29+
- name: Compile FMS library
30+
shell: bash
31+
run: |
32+
echo "::group::Compile FMS library"
33+
cd .testing
34+
make deps/lib/libFMS.a -s -j
35+
echo "::endgroup::"
36+
37+
- name: Store compiler flags used in Makefile
38+
shell: bash
39+
run: |
40+
echo "::group::config.mk"
41+
cd .testing
42+
echo "FCFLAGS_DEBUG=-g -O0 -Wextra -Wno-compare-reals -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds" >> config.mk
43+
echo "FCFLAGS_REPRO=-g -O2 -fbacktrace" >> config.mk
44+
echo "FCFLAGS_INIT=-finit-real=snan -finit-integer=2147483647 -finit-derived" >> config.mk
45+
echo "FCFLAGS_COVERAGE=--coverage" >> config.mk
46+
cat config.mk
47+
echo "::endgroup::"
48+
49+
- name: Compile MOM6 in symmetric memory mode
50+
shell: bash
51+
run: |
52+
echo "::group::Compile MOM6 in symmetric memory mode"
53+
cd .testing
54+
make build/symmetric/MOM6 -j
55+
echo "::endgroup::"
56+
57+
- name: Install local python venv for generating input data
58+
shell: bash
59+
run: |
60+
echo "::group::Create local python env for input data generation"
61+
cd .testing
62+
make work/local-env
63+
echo "::endgroup::"
64+
65+
- name: Set flags
66+
shell: bash
67+
run: |
68+
echo "TIMEFORMAT=... completed in %lR (user: %lU, sys: %lS)" >> $GITHUB_ENV

.github/workflows/coverage.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Code coverage
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build-test-nans:
7+
8+
runs-on: ubuntu-latest
9+
defaults:
10+
run:
11+
working-directory: .testing
12+
13+
env:
14+
REPORT_COVERAGE: true
15+
16+
steps:
17+
- uses: actions/checkout@v2
18+
with:
19+
submodules: recursive
20+
21+
- uses: ./.github/actions/testing-setup
22+
23+
- name: Run and post coverage
24+
run: make run.symmetric -k -s
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Doxygen and style
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
doxygen:
7+
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- uses: actions/checkout@v2
12+
with:
13+
submodules: recursive
14+
15+
- name: Check white space (non-blocking)
16+
run: |
17+
./.testing/trailer.py -e TEOS10 -l 120 src config_src | tee style_errors
18+
continue-on-error: true
19+
20+
- name: Install packages used when generating documentation
21+
run: |
22+
sudo apt-get update
23+
sudo apt-get install python3-sphinx python3-lxml perl
24+
sudo apt-get install texlive-binaries texlive-base bibtool tex-common texlive-bibtex-extra
25+
sudo apt-get install graphviz
26+
27+
- name: Build doxygen HTML
28+
run: |
29+
cd docs
30+
perl -e 'print "perl version $^V" . "\n"'
31+
mkdir _build && make nortd DOXYGEN_RELEASE=Release_1_8_13 UPDATEHTMLEQS=Y
32+
cat _build/doxygen_warn_nortd_log.txt
33+
34+
- name: Report doxygen or style errors
35+
run: |
36+
grep "warning:" docs/_build/doxygen_warn_nortd_log.txt | grep -v "as part of a" | tee doxy_errors
37+
cat style_errors doxy_errors > all_errors
38+
test ! -s all_errors

.github/workflows/expression.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Expression verification
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
test-repro-and-dims:
7+
8+
runs-on: ubuntu-latest
9+
defaults:
10+
run:
11+
working-directory: .testing
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
with:
16+
submodules: recursive
17+
18+
- uses: ./.github/actions/testing-setup
19+
20+
- name: Compile MOM6 using repro optimization
21+
run: make build/repro/MOM6 -j
22+
23+
- name: Create validation data
24+
run: make run.symmetric -k -s
25+
26+
- name: Run tests
27+
run: make test.repros test.dims -k -s

.github/workflows/other.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: OpenMP and Restart verification
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
test-openmp-nan-restarts:
7+
8+
runs-on: ubuntu-latest
9+
defaults:
10+
run:
11+
working-directory: .testing
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
with:
16+
submodules: recursive
17+
18+
- uses: ./.github/actions/testing-setup
19+
20+
- name: Compile with openMP
21+
run: make build/openmp/MOM6 -j
22+
23+
- name: Create validation data
24+
run: make run.symmetric -k -s
25+
26+
- name: Run tests
27+
run: make test.openmps test.nans test.restarts -k -s

.github/workflows/regression.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Regression
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
build-test-regression:
7+
8+
runs-on: ubuntu-latest
9+
defaults:
10+
run:
11+
working-directory: .testing
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
with:
16+
submodules: recursive
17+
18+
- uses: ./.github/actions/testing-setup
19+
20+
- name: Compile reference model
21+
run: make build.regressions MOM_TARGET_SLUG=$GITHUB_REPOSITORY MOM_TARGET_LOCAL_BRANCH=$GITHUB_BASE_REF DO_REGRESSION_TESTS=true -j
22+
23+
- name: Create validation data
24+
run: make run.symmetric -k -s
25+
26+
- name: Regression test
27+
run: make test.regressions DO_REGRESSION_TESTS=true -k -s

.github/workflows/stencil.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Stencil related verification
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
test-symmetric-layout-rotation:
7+
8+
runs-on: ubuntu-latest
9+
defaults:
10+
run:
11+
working-directory: .testing
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
with:
16+
submodules: recursive
17+
18+
- uses: ./.github/actions/testing-setup
19+
20+
- name: Compile MOM6 in asymmetric memory mode
21+
run: make build/asymmetric/MOM6 -j
22+
23+
- name: Create validation data
24+
run: make run.symmetric -k -s
25+
26+
- name: Run tests
27+
run: make test.grids test.layouts test.rotations -k -s

.gitignore

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,25 @@
22
*.swp
33
*~
44
html
5-
*.log
5+
6+
7+
# Build output
8+
*.o
9+
*.mod
610
MOM6
711
build/
12+
_build/
813
deps/
14+
MOM6.tags
15+
bib*.aux
16+
citelist.doc*
17+
18+
19+
# Autoconf
20+
aclocal.m4
21+
autom4te.cache/
22+
config.log
23+
config.status
24+
configure
25+
/Makefile
26+
Makefile.mkmf

.gitlab-ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,30 @@ run:
122122
- test -f restart_results_gnu.tar.gz
123123
- time tar zvcf $CACHE_DIR/results-$CI_PIPELINE_ID.tgz *.tar.gz
124124

125+
gnu.testing:
126+
stage: run
127+
tags:
128+
- ncrc4
129+
script:
130+
- cd .testing
131+
- module unload PrgEnv-pgi PrgEnv-intel PrgEnv-gnu darshan ; module load PrgEnv-gnu ; module unload netcdf gcc ; module load gcc/7.3.0 cray-hdf5 cray-netcdf
132+
- make work/local-env
133+
- make -s -j
134+
- (echo '#!/bin/bash';echo '. ./work/local-env/bin/activate';echo 'make MPIRUN="srun -mblock --exclusive" test -s -j') > job.sh
135+
- sbatch --clusters=c3,c4 --nodes=5 --time=0:05:00 --account=gfdl_o --qos=debug --job-name=MOM6.gnu.testing --output=log.$CI_PIPELINE_ID --wait job.sh || cat log.$CI_PIPELINE_ID && make test
136+
137+
intel.testing:
138+
stage: run
139+
tags:
140+
- ncrc4
141+
script:
142+
- cd .testing
143+
- module unload PrgEnv-pgi PrgEnv-intel PrgEnv-gnu darshan; module load PrgEnv-intel; module unload netcdf intel; module load intel/18.0.6.288 cray-hdf5 cray-netcdf
144+
- make work/local-env
145+
- make -s -j
146+
- (echo '#!/bin/bash';echo '. ./work/local-env/bin/activate';echo 'make MPIRUN="srun -mblock --exclusive" test -s -j') > job.sh
147+
- sbatch --clusters=c3,c4 --nodes=5 --time=0:05:00 --account=gfdl_o --qos=debug --job-name=MOM6.gnu.testing --output=log.$CI_PIPELINE_ID --wait job.sh || cat log.$CI_PIPELINE_ID && make test
148+
125149
# Tests
126150
gnu:non-symmetric:
127151
stage: tests

.readthedocs.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
# don't build extra formats (like HTML zip)
2-
formats:
3-
- none
1+
version: 2
42

5-
# path to pip requirements file to bring in
6-
# doxygen extensions
7-
requirements_file: docs/requirements.txt
3+
# Extra formats
4+
# PDF generation is failing for now; disabled on 2020-12-02
5+
#formats:
6+
# - pdf
7+
8+
# Build documentation
9+
sphinx:
10+
configuration: docs/conf.py
811

912
python:
1013
# make sure we're using Python 3
11-
version: 3.5
14+
version: 3
15+
install:
16+
- requirements: docs/requirements.txt

0 commit comments

Comments
 (0)