Skip to content

Commit d858d79

Browse files
authored
Merge pull request #1953 from jedwards4b/netcdf_integration_v5
netcdf integration update
2 parents 744bf5c + 4ac2b0e commit d858d79

File tree

184 files changed

+5298
-1729
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+5298
-1729
lines changed

.github/actions/buildhdf5/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ inputs:
2020
default: False
2121
required: False
2222
type: boolean
23-
23+
2424
install_prefix:
2525
description: 'Install path of hdf5'
2626
default: ${GITHUB_WORKSPACE}/hdf5

.github/actions/buildmpich/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
run: |
2525
pushd mpich-src
2626
./autogen.sh
27-
./configure --prefix=${{ inputs.install_prefix }}
27+
./configure --prefix=${{ inputs.install_prefix }}
2828
make -j4
2929
make install
3030
popd

.github/actions/buildnetcdf/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ inputs:
3535
default: False
3636
required: False
3737
type: boolean
38-
38+
3939
install_prefix:
4040
description: 'Install path of netcdf'
4141
default: $HOME/netcdf-c

.github/actions/buildopenmpi/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
run: |
2525
pushd openmpi-src
2626
perl ./autogen.pl
27-
./configure --prefix=${{ inputs.install_prefix }}
27+
./configure --prefix=${{ inputs.install_prefix }}
2828
make -j4
2929
make install
3030
popd

.github/actions/buildpnetcdf/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ runs:
4141
then
4242
config_opts="${config_opts} --enable-shared=yes"
4343
fi
44-
44+
4545
config_opts="${config_opts}"
4646
echo "config_opts=$config_opts"
4747
autoreconf -i

.github/actions/parallelio_autotools/action.yml

+31-17
Original file line numberDiff line numberDiff line change
@@ -42,43 +42,43 @@ inputs:
4242
type: boolean
4343
with_mpi-serial:
4444
description: 'Build with mpi-serial library'
45-
default:
45+
default:
4646
required: False
4747
type: string
4848
with_pnetcdf:
4949
description: 'Build with pnetcdf library'
50-
default:
50+
default:
5151
required: False
52-
type: string
52+
type: string
5353
with_netcdf:
5454
description: 'Build with netcdf library'
5555
default: /usr
5656
required: False
57-
type: string
57+
type: string
5858
with_netcdff:
5959
description: 'Build with netcdff library'
60-
default:
60+
default:
6161
required: False
62-
type: string
62+
type: string
6363
with_valgrind:
6464
description: 'Build the parallelio valgrind leak check '
6565
default: False
6666
required: False
67-
type: boolean
67+
type: boolean
6868
enable_fortran:
6969
description: 'Build the parallelio Fortran Library '
7070
default: False
7171
required: False
72-
type: boolean
72+
type: boolean
7373
extra_cflags:
7474
description: 'Additional cflags to use'
75-
default:
75+
default:
7676
required: False
7777
type: string
78-
78+
7979
extra_fflags:
8080
description: 'Additional fflags to use'
81-
default:
81+
default:
8282
required: False
8383
type: string
8484
with_mpiexec:
@@ -91,27 +91,41 @@ inputs:
9191
default: ${GITHUB_WORKSPACE}/parallelio
9292
required: False
9393
type: string
94-
94+
src_path:
95+
description: 'Path to parallelio source'
96+
default: ${GITHUB_WORKSPACE}/parallelio-src
97+
required: False
98+
type: string
99+
95100
runs:
96101
using: composite
97102
steps:
98-
- uses: actions/checkout@v3
103+
- name: Check if already present
104+
uses: andstor/file-existence-action@v2
105+
with:
106+
files: ${{ inputs.src_path }}
107+
- name: get parallelio
108+
if: ${{ steps.check_files.outputs.files_exists != 'true' }}
109+
uses: actions/checkout@v3
99110
with:
100111
repository: NCAR/ParallelIO
101-
path: parallelio-src
112+
path: ${{ inputs.src_path }}
102113
ref: ${{ inputs.parallelio_version }}
103114
- id: parallelio-build
104115
shell: bash
105116
run: |
106-
cd $GITHUB_WORKSPACE/parallelio-src
117+
cd ${{ inputs.src_path }}
107118
autoreconf -i
108-
config_opts='--prefix=${{ inputs.install_prefix }} --enable-fortran=${{ inputs.enable_fortran }} '
119+
config_opts='--prefix=${{ inputs.install_prefix }} '
109120
if [[ -z "${{ inputs.with_pnetcdf }}" ]];
110121
then
111122
config_opts="${config_opts} --disable-pnetcdf "
112123
fi
124+
if [ "${{ inputs.enable_fortran }}" = "true" ];
125+
then
126+
config_opts="${config_opts} --enable-fortran=yes "
127+
fi
113128
echo "config_opts = ${config_opts} --with-mpiexec=${{ inputs.with_mpiexec }}"
114129
./configure ${config_opts} --with-mpiexec="${{ inputs.with_mpiexec }}"
115130
make -j 4 VERBOSE=1
116131
make install
117-

.github/actions/parallelio_cmake/action.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -42,39 +42,39 @@ inputs:
4242
type: boolean
4343
with_mpi-serial:
4444
description: 'Build with mpi-serial library'
45-
default:
45+
default:
4646
required: False
4747
type: string
4848
with_valgrind:
4949
description: 'Build the parallelio valgrind leak check '
5050
default: False
5151
required: False
52-
type: boolean
52+
type: boolean
5353
enable_fortran:
5454
description: 'Build the parallelio Fortran Library '
5555
default: False
5656
required: False
57-
type: boolean
57+
type: boolean
5858
extra_cflags:
5959
description: 'Additional cflags to use'
60-
default:
60+
default:
6161
required: False
6262
type: string
63-
63+
6464
extra_ldflags:
6565
description: 'Additional ldflags to use'
66-
default:
66+
default:
6767
required: False
6868
type: string
69-
69+
7070
extra_fflags:
7171
description: 'Additional fflags to use'
72-
default:
72+
default:
7373
required: False
7474
type: string
7575
mpiexec_flags:
7676
description: 'extra mpiexec flags'
77-
default:
77+
default:
7878
required: False
7979
type: string
8080
netcdf_c_include_dir:

.github/workflows/autotools.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ jobs:
1717
CFLAGS: "-std=c99 -Wall -Werror"
1818
CPPFLAGS: "-I/usr/include -I/usr/lib/x86_64-linux-gnu/netcdf/mpi/include/ "
1919
LDFLAGS: "-L/usr/lib/x86_64-linux-gnu -lnetcdf_mpi -lpnetcdf"
20-
FCFLAGS: "-Wall -Werror -fallow-argument-mismatch"
20+
FCFLAGS: "-Wall -Werror -fallow-argument-mismatch -Wno-conversion"
2121
steps:
2222
- uses: actions/checkout@v3
2323
- name: Installs
2424
run: |
2525
set -x
26-
sudo apt-get update
27-
sudo apt-get install netcdf-bin
26+
sudo apt-get update
27+
sudo apt-get install netcdf-bin
2828
sudo apt-get install libnetcdf-mpi-19
2929
sudo apt-get install libnetcdf-mpi-dev
3030
sudo apt-get install pnetcdf-bin
@@ -46,10 +46,11 @@ jobs:
4646
with_pnetcdf: /usr
4747
with_mpiexec: 'mpiexec --oversubscribe'
4848
parallelio_version: ${{ env.GITHUB_SHA }}
49+
src_path: ${GITHUB_WORKSPACE}
4950
- name: make check
5051
run: |
51-
cd $GITHUB_WORKSPACE/parallelio-src
52-
make check
52+
cd $GITHUB_WORKSPACE
53+
make check
5354
5455
# - name: Setup tmate session
5556
# if: ${{ failure() }}

.github/workflows/cmake.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
sudo apt-get update
2727
sudo apt-get install netcdf-bin libnetcdf-dev doxygen graphviz wget gfortran \
2828
libjpeg-dev libz-dev openmpi-bin libopenmpi-dev cmake pnetcdf-bin libpnetcdf-dev libnetcdff-dev
29-
29+
3030
- name: cmake build
3131
uses: ./.github/actions/parallelio_cmake
3232
with:

.github/workflows/intel.yml

+5-6
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ jobs:
1616
FC: mpiifort
1717
# Versions should match the github tag names
1818
PNETCDF_VERSION: checkpoint.1.12.3
19-
NETCDF_C_VERSION: v4.9.0
19+
NETCDF_C_VERSION: v4.9.1
2020
NETCDF_FORTRAN_VERSION: v4.6.0
2121
HDF5_VERSION: hdf5_1_12_2
2222
steps:
2323
- uses: actions/checkout@v3
2424
- name: Installs
2525
run: |
2626
set -x
27-
sudo apt-get update
28-
sudo apt-get install wget
29-
sudo apt-get install libjpeg-dev
27+
sudo apt-get update
28+
sudo apt-get install libcurl4-gnutls-dev
3029
sudo apt-get install libz-dev
3130
- name: cache intel compiler
3231
id: cache-intel
@@ -73,9 +72,9 @@ jobs:
7372
- name: prep netcdf-c
7473
run: |
7574
export PATH=$GITHUB_WORKSPACE/hdf5/bin:$GITHUB_WORKSPACE/netcdf/bin:$PATH
76-
export LDFLAGS="$LDFLAGS -L$GITHUB_WORKSPACE/hdf5/lib "
75+
export LDFLAGS="$LDFLAGS -L$GITHUB_WORKSPACE/hdf5/lib -L/usr/lib/x86_64-linux-gnu/ -lcurl"
7776
export CPPFLAGS="$CPPFLAGS -I$GITHUB_WORKSPACE/hdf5/include -I$GITHUB_WORKSPACE/netcdf/include"
78-
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/hdf5/lib"
77+
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/hdf5/lib:/usr/lib/x86_64-linux-gnu/"
7978
printenv >> $GITHUB_ENV
8079
- name: build-netcdf-c
8180
if: steps.cache-netcdf-c.outputs.cache-hit != 'true'

.github/workflows/netcdf_hdf5_no_pnetcdf_ncint_mpich.yml

+16-17
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ jobs:
1212
CPPFLAGS: "-I${GITHUB_WORKSPACE}/mpich/include"
1313
LDFLAGS: "-L${GITHUB_WORKSPACE}/mpich/lib "
1414
# Note issue https://github.com/NCAR/ParallelIO/issues/1889 netcdf integration currently only works with netcdf 4.7.4
15-
NETCDF_C_VERSION: v4.7.4
16-
NETCDF_FORTRAN_VERSION: v4.5.4
17-
MPICH_VERSION: v4.0.3
15+
NETCDF_C_VERSION: v4.9.2
16+
NETCDF_FORTRAN_VERSION: v4.6.0
17+
MPICH_VERSION: v4.1
1818
HDF5_VERSION: hdf5_1_12_2
1919
FFLAGS: "-fallow-argument-mismatch"
2020
FCFLAGS: "-fallow-argument-mismatch"
2121
steps:
2222
- uses: actions/checkout@v3
2323
- name: Installs
2424
run: |
25-
sudo apt-get install doxygen graphviz wget gfortran libjpeg-dev libz-dev
25+
sudo apt-get install doxygen graphviz wget gfortran libjpeg-dev libz-dev libcurl4-gnutls-dev
2626
- name: cache-mpich
2727
id: cache-mpich
2828
uses: actions/cache@v3
@@ -65,24 +65,24 @@ jobs:
6565
export FC=mpifort
6666
export PATH="${GITHUB_WORKSPACE}/hdf5/bin:${GITHUB_WORKSPACE}/mpich/bin:${GITHUB_WORKSPACE}/netcdf/bin:$PATH"
6767
export CPPFLAGS="$CPPFLAGS -I${GITHUB_WORKSPACE}/hdf5/include -I${GITHUB_WORKSPACE}/netcdf/include"
68-
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${GITHUB_WORKSPACE}/hdf5/lib"
69-
export LDFLAGS="$LDFLAGS -L${GITHUB_WORKSPACE}/hdf5/lib -L${GITHUB_WORKSPACE}/netcdf/lib "
68+
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${GITHUB_WORKSPACE}/hdf5/lib:/usr/lib/x86_64-linux-gnu/"
69+
export LDFLAGS="$LDFLAGS -L${GITHUB_WORKSPACE}/hdf5/lib -L${GITHUB_WORKSPACE}/netcdf/lib -L/usr/lib/x86_64-linux-gnu/ -lcurl"
7070
printenv >> $GITHUB_ENV
71-
72-
71+
72+
7373
- name: Build NetCDF C
7474
if: steps.cache-netcdf.outputs.cache-hit != 'true'
7575
uses: ./.github/actions/buildnetcdf
7676
with:
7777
netcdf_version: ${{ env.NETCDF_C_VERSION }}
7878
install_prefix: ${GITHUB_WORKSPACE}/netcdf
7979

80-
# - name: cache-netcdf-fortran
81-
# id: cache-netcdf-fortran
82-
# uses: actions/cache@v3
83-
# with:
84-
# path: ~/netcdf-fortran
85-
# key: netcdf-fortran-${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-mpich-${{ env.MPICH_VERSION }}-hdf5-${{ env.HDF5_VERSION }}
80+
- name: cache-netcdf-fortran
81+
id: cache-netcdf-fortran
82+
uses: actions/cache@v3
83+
with:
84+
path: ~/netcdf-fortran
85+
key: netcdf-fortran-${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-mpich-${{ env.MPICH_VERSION }}-hdf5-${{ env.HDF5_VERSION }}
8686

8787
- name: Build NetCDF Fortran
8888
if: steps.cache-netcdf.outputs.cache-hit != 'true'
@@ -97,13 +97,12 @@ jobs:
9797
with:
9898
enable_fortran: True
9999
enable_netcdf_integration: True
100+
src_path: ${GITHUB_WORKSPACE}
100101
parallelio_version: ${{ env.GITHUB_SHA }}
101102
- name: make check
102103
run: |
103-
cd $GITHUB_WORKSPACE/parallelio-src
104+
cd $GITHUB_WORKSPACE
104105
make -j check
105106
# - name: Setup tmate session
106107
# if: ${{ failure() }}
107108
# uses: mxschmitt/action-tmate@v3
108-
109-

.github/workflows/netcdf_hdf5_pnetcdf_ncint_mpich_asan.yml

+2-14
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
with:
3838
install_prefix: $HOME/mpich
3939
mpich_version: ${{ env.MPICH_VERSION }}
40-
40+
4141
- name: cache-hdf5
4242
id: cache-hdf5
4343
uses: actions/cache@v3
@@ -120,23 +120,11 @@ jobs:
120120
run: |
121121
cd $GITHUB_WORKSPACE/parallelio-src
122122
make -j check
123-
123+
124124
- name: autotools build
125125
run: |
126126
set -x
127127
gcc --version
128-
# echo 'export PATH=/home/runner/mpich/bin:$PATH' > .bashrc
129-
# source .bashrc
130-
# export CPPFLAGS: "-I/home/runner/mpich/include -I/home/runner/hdf5/include -I/home/runner/netcdf-c/include -I/home/runner/netcdf-fortran/include -I/home/runner/pnetcdf/include"
131-
# export LDFLAGS: "-L/home/runner/mpich/lib -L/home/runner/hdf5/lib -L/home/runner/netcdf-c/lib -L/home/runner/netcdf-fortran/lib -L/home/runner/pnetcdf/lib"
132-
# export CC=/home/runner/mpich/bin/mpicc
133-
# export FC=/home/runner/mpich/bin/mpifort
134-
# export CFLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer -static-libasan"
135-
# export FCFLAGS="$FCFLAGS -g -O0 -fsanitize=address -fno-omit-frame-pointer -static-libasan"
136-
# export LDFLAGS="$LDFLAGS -static-libasan"
137-
# export ASAN_OPTIONS="detect_odr_violation=0"
138128
autoreconf -i
139129
./configure --enable-fortran --enable-netcdf-integration
140130
make -j check
141-
142-

.github/workflows/netcdf_pnetcdf_openmpi.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ jobs:
7171
netcdf_version: ${{ env.NETCDF_C_VERSION }}
7272
install_prefix: ${GITHUB_WORKSPACE}/netcdf
7373

74-
- name: Setup tmate session
75-
if: ${{ failure() }}
76-
uses: mxschmitt/action-tmate@v3
74+
# - name: Setup tmate session
75+
# if: ${{ failure() }}
76+
# uses: mxschmitt/action-tmate@v3
7777

7878
- name: Build NetCDF Fortran
7979
if: steps.cache-netcdf.outputs.cache-hit != 'true'
@@ -105,7 +105,7 @@ jobs:
105105
# parallelio_version: ${{ env.GITHUB_SHA }}
106106
# - name: make check
107107
# run: |
108-
# cd ${GITHUB_WORKSPACE}/parallelio-src
108+
# cd ${GITHUB_WORKSPACE}/parallelio-src
109109
# make -j check
110110
# make distclean
111111
# - name: cmake build

0 commit comments

Comments
 (0)