Skip to content

Commit

Permalink
Merge branch 'develop' into bugfix/chgres_warn
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgeGayno-NOAA committed Dec 16, 2022
2 parents 4a67a13 + 6ab86d3 commit 026b7d1
Show file tree
Hide file tree
Showing 6 changed files with 614 additions and 27 deletions.
202 changes: 202 additions & 0 deletions .github/workflows/Intel1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# UFS_UTILS test workflow.
#
# This workflow tests UFS_UTILS with the Intel compiler.
#
# Ed Hartnett 12/14/22
name: Intel1
on:
push:
branches:
- develop
paths-ignore:
- README.md
pull_request:
branches:
- develop
paths-ignore:
- README.md

# Use custom shell with -l so .bash_profile is sourced which loads intel/oneapi/setvars.sh
# without having to do it in manually every step.
defaults:
run:
shell: bash -leo pipefail {0}

jobs:
Intel:
runs-on: ubuntu-latest
env:
CC: icc
FC: ifort

steps:

# See https://software.intel.com/content/www/us/en/develop/articles/oneapi-repo-instructions.html
- name: install-intel
run: |
cd /tmp
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
rm 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
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile
- name: cache-netcdf
id: cache-netcdf
uses: actions/cache@v2
with:
path: ~/netcdf
key: Intel-netcdf-c-$4.7.4-{{ runner.os }}-intel3

- name: build-hdf5
if: steps.cache-netcdf.outputs.cache-hit != 'true'
run: |
export CC=mpiicc
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz &> /dev/null
tar -xzf hdf5-1.10.7.tar.gz
pushd hdf5-1.10.7
./configure --prefix=${HOME}/netcdf --enable-parallel --disable-tools --disable-fortran --disable-cxx --enable-parallel-tests --disable-shared --disable-shared --enable-static
make -j2
make install
- name: build-netcdf-c
if: steps.cache-netcdf.outputs.cache-hit != 'true'
run: |
export CC=mpiicc
export CPPFLAGS=-I${HOME}/netcdf/include
export LDFLAGS=-L${HOME}/netcdf/lib
wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.7.4.tar.gz &> /dev/null
tar -xzf v4.7.4.tar.gz
pushd netcdf-c-4.7.4
./configure --prefix=${HOME}/netcdf --disable-dap --disable-utilities --disable-shared
make -j2
make install
- name: build-netcdf-fortran
if: steps.cache-netcdf.outputs.cache-hit != 'true'
run: |
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${HOME}/netcdf/lib"
export PATH="${HOME}/netcdf/bin:$PATH"
export CC=mpiicc
export FC=mpiifort
export CPPFLAGS=-I${HOME}/netcdf/include
export LDFLAGS=-L${HOME}/netcdf/lib
export LIBS=`nc-config --libs`
wget https://github.com/Unidata/netcdf-fortran/archive/v4.5.3.tar.gz &> /dev/null
tar -xzf v4.5.3.tar.gz
pushd netcdf-fortran-4.5.3
./configure --prefix=${HOME}/netcdf --disable-shared
make -j2
make install
- name: cache-esmf
id: cache-esmf
uses: actions/cache@v2
with:
path: ~/esmf
key: Intel-esmf-8.2.0-${{ runner.os }}-intel3

- name: build-esmf
if: steps.cache-esmf.outputs.cache-hit != 'true'
run: |
pushd ~
export ESMF_DIR=~/esmf-ESMF_8_2_0
wget https://github.com/esmf-org/esmf/archive/ESMF_8_2_0.tar.gz &> /dev/null
tar zxf ESMF_8_2_0.tar.gz
cd esmf-ESMF_8_2_0
export ESMF_COMM=intelmpi
export ESMF_INSTALL_BINDIR=bin
export ESMF_INSTALL_LIBDIR=lib
export ESMF_INSTALL_MODDIR=mod
export ESMF_COMPILER=intel
export ESMF_INSTALL_PREFIX=~/esmf
export ESMF_NETCDF=split
export ESMF_NETCDF_INCLUDE=${HOME}/netcdf/include
export ESMF_NETCDF_LIBPATH=${HOME}/netcdf/lib
export ESMF_NETCDF_LIBS="-lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz"
make -j2
make install
- name: cache-jasper
id: cache-jasper
uses: actions/cache@v2
with:
path: ~/jasper
key: Intel-jasper-2.0.25-${{ runner.os }}-intel3

- name: build-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
run: |
wget https://github.com/jasper-software/jasper/archive/version-2.0.25.tar.gz &> /dev/null
tar zxf version-2.0.25.tar.gz
cd jasper-version-2.0.25
mkdir build-jasper && cd build-jasper
cmake .. -DCMAKE_INSTALL_PREFIX=~/jasper -DJAS_ENABLE_SHARED=OFF
make -j2
make install
- name: checkout-nceplibs
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS
path: nceplibs

- name: cache-nceplibs
id: cache-nceplibs
uses: actions/cache@v2
with:
path: ~/nceplibs
key: Intel-nceplibs-1.4.0-${{ runner.os }}-intel3

- name: build-nceplibs
if: steps.cache-nceplibs.outputs.cache-hit != 'true'
run: |
export ESMFMKFILE=~/esmf/lib/esmf.mk
wget https://github.com/NOAA-EMC/NCEPLIBS/archive/v1.4.0.tar.gz &> /dev/null
tar zxf v1.4.0.tar.gz
cd NCEPLIBS-1.4.0
mkdir build && cd build
cmake .. -DCMAKE_PREFIX_PATH='~;~/jasper;~/netcdf' -DCMAKE_INSTALL_PREFIX='~/nceplibs' -DFLAT=ON
make -j2
- name: checkout-ufs-utils
uses: actions/checkout@v2
with:
path: ufs_utils
submodules: recursive

- name: cache-data
id: cache-data
uses: actions/cache@v2
with:
path: ~/data
key: data-1

- name: build
run: |
export ESMFMKFILE=~/esmf/lib/esmf.mk
cd ufs_utils
mkdir build && cd build
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:~/jasper/lib;~/jasper/lib64"
cmake -DTEST_FILE_DIR=/home/runner/data -DCMAKE_PREFIX_PATH='~;~/jasper;~/nceplibs;~/netcdf' ..
make -j2
- name: test
run: |
cd ufs_utils/build
ctest --rerun-failed --output-on-failure
- name: cache-data
if: steps.cache-data.outputs.cache-hit != 'true'
run: |
mkdir ~/data
cp ufs_utils/build/tests/chgres_cube/data/* ~/data
cp ufs_utils/build/tests/sfc_climo_gen/data/* ~/data
cp ufs_utils/build/tests/cpld_gridgen/data/* ~/data
cp ufs_utils/tests/filter_topo/data/* ~/data
cp ufs_utils/tests/emcsfc_snow2mdl/data/* ~/data
cp ufs_utils/tests/chgres_cube/data/* ~/data
ls -l ~/data
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: intel
name: Intel_nceplibs
on:
push:
branches:
Expand All @@ -18,15 +18,11 @@ defaults:
shell: bash -leo pipefail {0}

jobs:
intel-build-and-test:
runs-on: ${{ matrix.os }}
Intel_nceplibs:
runs-on: ubuntu-latest
env:
CC: icc
FC: ifort
CXX: icpc
strategy:
matrix:
os: [ubuntu-latest]

steps:

Expand Down
32 changes: 20 additions & 12 deletions .github/workflows/Linux_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ jobs:
strategy:
fail-fast: true
matrix:
esmf_version: [8_2_0, 8.3.0, 8.4.0]
bacio_version: [2.4.1]
g2_version: [3.4.3]
sp_version: [2.3.3]
Expand All @@ -46,22 +47,31 @@ jobs:
sudo apt-get update
sudo apt-get install libpng-dev zlib1g-dev libjpeg-dev libmpich-dev
sudo apt-get install libnetcdf-dev libnetcdff-dev netcdf-bin pkg-config
- name: cache-esmf
sudo apt-get install autoconf automake libtool
- name: checkout-esmf
id: cache-esmf
uses: actions/cache@v2
with:
path: ~/esmf
key: Linux_versions-esmf-8.2.0-${{ runner.os }}3
key: Linux_versions-esmf-${{ matrix.esmf_version }}-${{ runner.os }}

- name: build-esmf
if: steps.cache-esmf.outputs.cache-hit != 'true'
run: |
pushd ~
export ESMF_DIR=~/esmf-ESMF_8_2_0
wget https://github.com/esmf-org/esmf/archive/ESMF_8_2_0.tar.gz &> /dev/null
tar zxf ESMF_8_2_0.tar.gz
cd esmf-ESMF_8_2_0
if [[ ${{ matrix.esmf_version }} == "8_2_0" ]]; then
wget https://github.com/esmf-org/esmf/archive/ESMF_${{ matrix.esmf_version }}.tar.gz &> /dev/null
tar zxf ESMF_${{ matrix.esmf_version }}.tar.gz
cd esmf-ESMF_${{ matrix.esmf_version }}
export ESMF_DIR=~/esmf-ESMF_${{ matrix.esmf_version }}
else
wget https://github.com/esmf-org/esmf/archive/refs/tags/v${{ matrix.esmf_version }}.tar.gz &> /dev/null
ls -l
tar zxf v${{ matrix.esmf_version }}.tar.gz
cd esmf-${{ matrix.esmf_version }}
export ESMF_DIR=~/esmf-${{ matrix.esmf_version }}
fi
export ESMF_COMM=mpich3
export ESMF_INSTALL_BINDIR=bin
export ESMF_INSTALL_LIBDIR=lib
Expand All @@ -71,6 +81,9 @@ jobs:
export ESMF_NETCDF=split
export ESMF_NETCDF_INCLUDE=/usr/include
export ESMF_NETCDF_LIBPATH=/usr/x86_64-linux-gnu
export ESMF_PIO=OFF
export ESMF_MOAB=OFF
export ESMF_ARRAY_LITE=TRUE
make -j2
make install
Expand Down Expand Up @@ -368,8 +381,3 @@ jobs:
cp ufs_utils/tests/emcsfc_snow2mdl/data/* ~/data
cp ufs_utils/tests/chgres_cube/data/* ~/data
ls -l ~/data
Loading

0 comments on commit 026b7d1

Please sign in to comment.