Skip to content

Commit 1bbe0d7

Browse files
authored
Merge branch 'NOAA-GFDL:main' into fixlibfms
2 parents c689d78 + 501e99b commit 1bbe0d7

448 files changed

Lines changed: 63995 additions & 30283 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.

.github/CODEOWNERS

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# These owners will be the default owners for all the files in the
2626
# repository. Unless a later match is found, these owners
2727
# will be requested for a review when a PR is opened.
28-
* @thomas-robinson @bensonr @rem1776
28+
* @uramirez8707 @bensonr @rem1776
2929

3030
# GNU autotools files
3131
Makefile.am @uramirez8707 @rem1776
@@ -34,16 +34,14 @@ Makefile.am @uramirez8707 @rem1776
3434
*.m4 @uramirez8707 @rem1776
3535

3636
# cmake files
37-
CM* @mlee03 @ngs333
38-
cmake @mlee03 @ngs333
37+
CM* @mlee03
38+
cmake @mlee03
3939

4040
# Files specific to GitHub or GitLab
41-
/.github/ @GFDL-Eric @rem1776
42-
/.gitlab/ @GFDL-Eric @rem1776
41+
/.github/ @rem1776
4342

4443
# Testing files
45-
/.gitlab-ci.yml @uramirez8707 @mlee03 @bensonr @thomas-robinson @rem1776
46-
/test_fms/ @uramirez8707 @mlee03 @bensonr @thomas-robinson @rem1776
44+
/test_fms/ @uramirez8707 @mlee03 @bensonr @rem1776
4745

4846
# Specific component directories
4947
/affinity/ @bensonr
@@ -52,20 +50,18 @@ cmake @mlee03 @ngs333
5250
/block_control/ @bensonr
5351
/test_fms/block_control/ @bensonr @rem1776
5452

55-
/data_override/ @GFDL-Eric
56-
/test_fms/data_override/ @GFDL-Eric @rem1776
53+
#/data_override/ Currently no code owner
54+
/test_fms/data_override/ @rem1776
5755

58-
/diag_manager @thomas-robinson @ngs333
59-
/test_fms/diag_manager/ @thomas-robinson @ngs333
56+
/diag_manager @uramirez8707
57+
/test_fms/diag_manager/ @uramirez8707
6058

61-
/fv3gfs/ @bensonr
59+
/fms/ @uramirez8707 @rem1776
60+
/test_fms/fms/ @uramirez8707 @rem1776
61+
/fms2/ @uramirez8707
62+
/test_fms/fms2/ @uramirez8707
6263

63-
/fms/ @thomas-robinson @rem1776
64-
/test_fms/fms/ @thomas-robinson @rem1776
65-
/fms2/ @uramirez8707 @GFDL-Eric
66-
/test_fms/fms2/ @uramirez8707 @GFDL-Eric
64+
/libFMS/ @uramirez8707 @rem1776
6765

68-
/libFMS/ @thomas-robinson @rem1776
69-
70-
/mpp/ @thomas-robinson @bensonr
71-
/test_fms/mpp/ @thomas-robinson @bensonr @rem1776
66+
/mpp/ @uramirez8707 @bensonr
67+
/test_fms/mpp/ @uramirez8707 @bensonr @rem1776

.github/workflows/am4_regression_parallelWorks_intel_tag.yml

Lines changed: 0 additions & 43 deletions
This file was deleted.

.github/workflows/build_cmake_gnu.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/workflows/build_ubuntu_gnu.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

.github/workflows/coupler.yml

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# 'main' required ci, does a distcheck (builds, tests, check install)
2+
# image created off dockerfile in repo, compile/link flags are set there
3+
name: Build libFMS test with autotools
4+
5+
on: [push, pull_request]
6+
7+
# cancel running jobs if theres a newer push
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
conf-flag: [ --disable-openmp, --disable-setting-flags, --with-mpi=no, --disable-r8-default]
18+
input-flag: [--with-yaml, --enable-test-input=/home/unit_tests_input]
19+
exclude:
20+
- conf-flag: --with-mpi=no
21+
input-flag: --enable-test-input=/home/unit_tests_input
22+
container:
23+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
24+
env:
25+
TEST_VERBOSE: 1
26+
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.conf-flag }} ${{ matrix.input-flag }} ${{ matrix.io-flag }}"
27+
SKIP_TESTS: "test_horiz_interp2.[23-24]" # TODO (couldn't reproduce outside CI)
28+
DEBUG_FLAGS: "-O0 -g -fbounds-check -ffpe-trap=invalid,zero,overflow" # debug compiler flags taken from the mkmf template
29+
steps:
30+
- name: Checkout code
31+
uses: actions/checkout@v4.2.2
32+
- name: Prepare GNU autoconf for build
33+
run: autoreconf -if
34+
- name: Configure the build
35+
if: ${{ matrix.conf-flag != '--disable-setting-flags' }}
36+
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="$FCFLAGS $DEBUG_FLAGS"
37+
- name: Configure the build with compiler flags
38+
if: ${{ matrix.conf-flag == '--disable-setting-flags' }}
39+
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include $FCFLAGS $DEBUG_FLAGS" || cat config.log
40+
- name: Build the library
41+
run: make distcheck
42+
if: ${{ matrix.conf-flag != '--with-mpi=no' }}
43+
- name: Build the library (without test suite for serial build)
44+
run: make
45+
if: ${{ matrix.conf-flag == '--with-mpi=no' }}

.github/workflows/intel_pr.yml renamed to .github/workflows/github_autotools_intel.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
on: pull_request
2+
3+
# cancel running jobs if theres a newer push
4+
concurrency:
5+
group: ${{ github.workflow }}-${{ github.ref }}
6+
cancel-in-progress: true
7+
28
jobs:
39
intel-autotools:
410
runs-on: ubuntu-latest
11+
strategy:
12+
matrix:
13+
io-flag: ["--disable-deprecated-io", "--enable-deprecated-io"]
514
container:
615
image: intel/oneapi-hpckit:2023.1.0-devel-ubuntu20.04
716
env:
@@ -17,7 +26,7 @@ jobs:
1726
steps:
1827
- name: Cache dependencies
1928
id: cache
20-
uses: actions/cache@v3
29+
uses: actions/cache@v4.2.0
2130
with:
2231
path: /libs
2332
key: ${{ runner.os }}-intel-libs
@@ -44,9 +53,12 @@ jobs:
4453
./configure --prefix=/libs
4554
make -j install && cd
4655
- name: checkout
47-
uses: actions/checkout@v2
56+
uses: actions/checkout@v4.2.2
4857
- name: Configure
49-
run: autoreconf -if ./configure.ac && ./configure --with-yaml
58+
run: |
59+
autoreconf -if ./configure.ac
60+
export LD_LIBRARY_PATH="/libs/lib:$LD_LIBRARY_PATH"
61+
./configure --with-yaml ${{ matrix.io-flag }}
5062
- name: Compile
5163
run: make -j || make
5264
- name: Run test suite
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build libFMS with cmake
2+
3+
on: [push, pull_request]
4+
5+
# cancel running jobs if theres a newer push
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: true
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
strategy:
14+
matrix:
15+
omp-flags: [ -DOPENMP=on, -DOPENMP=off ]
16+
libyaml-flag: [ "", -DWITH_YAML=on ]
17+
io-flag: [ "", -DUSE_DEPRECATED_IO=on ]
18+
build-type: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_BUILD_TYPE=Debug" ]
19+
container:
20+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
21+
env:
22+
CMAKE_FLAGS: "${{ matrix.build-type }} ${{ matrix.omp-flags }} ${{ matrix.io-flag }} ${{ matrix.libyaml-flag }} -D64BIT=on"
23+
steps:
24+
- name: Checkout code
25+
uses: actions/checkout@v4.2.2
26+
- name: Generate makefiles with CMake
27+
run: cmake $CMAKE_FLAGS -DNetCDF_ROOT=/opt/view -DLIBYAML_ROOT=/opt/view
28+
- name: Build the library
29+
run: make
30+
- name: Link with basic executable
31+
run: |
32+
echo "program test" > test.F90
33+
echo " use fms_mod" >> test.F90
34+
echo " call fms_init" >> test.F90
35+
echo " call fms_end" >> test.F90
36+
echo "end program" >> test.F90
37+
mpifort -L/opt/view/lib -fopenmp `nf-config --flibs` -Iinclude_r4 -Iinclude_r8 test.F90 libfms_r4.a libfms_r8.a -o test.x
38+
touch input.nml
39+
- name: Run executable
40+
run: ./test.x
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Test coupler build
2+
on: [pull_request]
3+
4+
# cancel running jobs if theres a newer push
5+
concurrency:
6+
group: ${{ github.workflow }}-${{ github.ref }}
7+
cancel-in-progress: true
8+
9+
jobs:
10+
coupler-build:
11+
runs-on: ubuntu-latest
12+
container:
13+
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
14+
credentials:
15+
username: ${{ github.actor }}
16+
password: ${{ secrets.github_token }}
17+
env:
18+
CC: mpicc
19+
FC: mpif90
20+
CPPFLAGS: '-I/opt/view/include'
21+
FFLAGS: '-fallow-argument-mismatch' # mkmf uses FFLAGS instead of FC
22+
LDFLAGS: '-L/opt/view/lib'
23+
steps:
24+
- name: Checkout FMS
25+
uses: actions/checkout@v4.2.2
26+
with:
27+
path: FMS
28+
- name: Checkout FMScoupler
29+
uses: actions/checkout@v4.2.2
30+
with:
31+
repository: 'NOAA-GFDL/FMScoupler'
32+
path: FMScoupler
33+
- name: Test Null build
34+
run: FMScoupler/t/null_model_build.sh --local-fms
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ on:
77
workflow_dispatch:
88
jobs:
99
build:
10-
runs-on: ubuntu-latest
10+
runs-on: ubuntu-22.04
1111
steps:
1212
- name: Checkout code
13-
uses: actions/checkout@v2
13+
uses: actions/checkout@v4.2.2
1414
- name: Setup repo
1515
run: | # do autotool's job for substitutes since we don't need a full build environement
1616
mkdir gen_docs
@@ -24,7 +24,7 @@ jobs:
2424
sudo apt -y install doxygen graphviz
2525
doxygen gen_docs/Doxyfile
2626
- name: Upload Pages Artifact
27-
uses: actions/upload-pages-artifact@v1
27+
uses: actions/upload-pages-artifact@v3.0.1
2828
with:
2929
path: 'gen_docs/html'
3030
deploy:
@@ -45,4 +45,4 @@ jobs:
4545
steps:
4646
- name: Deploy to GitHub Pages
4747
id: deployment
48-
uses: actions/deploy-pages@v1
48+
uses: actions/deploy-pages@v4.0.5

0 commit comments

Comments
 (0)