From 1705c7284b0a931ce5d5a1a4c9c3894ba809c1d6 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 18 Dec 2017 16:38:56 +0100
Subject: [PATCH] Philippe 18/12/2017: IO: upgrade IO libraries * HDF5 1.8.9 ->
 1.8.20 * netCDF 4.1.3 -> 4.5.0 * netCDF-fortran 4.1.3 -> 4.4.4 * added libaec
 0.3.2 (equivalent to szlib but without licence problems)

---
 conf/profile_mesonh.ihm             |  4 +++-
 src/LIB/hdf5-1.8.20.tar.gz          |  3 +++
 src/LIB/hdf5-1.8.9.tar.gz           |  3 ---
 src/LIB/libaec-0.3.2.tar.gz         |  3 +++
 src/LIB/netcdf-4.1.3.tar.gz         |  3 ---
 src/LIB/netcdf-4.5.0.tar.gz         |  3 +++
 src/LIB/netcdf-fortran-4.4.4.tar.gz |  3 +++
 src/Makefile                        | 21 ++++++++++++++-------
 src/Makefile.MESONH.mk              | 11 +++++++----
 src/Rules.LXgfortran.mk             |  1 +
 src/Rules.LXpgi.mk                  |  1 +
 11 files changed, 38 insertions(+), 18 deletions(-)
 create mode 100644 src/LIB/hdf5-1.8.20.tar.gz
 delete mode 100644 src/LIB/hdf5-1.8.9.tar.gz
 create mode 100644 src/LIB/libaec-0.3.2.tar.gz
 delete mode 100644 src/LIB/netcdf-4.1.3.tar.gz
 create mode 100644 src/LIB/netcdf-4.5.0.tar.gz
 create mode 100644 src/LIB/netcdf-fortran-4.4.4.tar.gz

diff --git a/conf/profile_mesonh.ihm b/conf/profile_mesonh.ihm
index 9f046181b..b546a5330 100755
--- a/conf/profile_mesonh.ihm
+++ b/conf/profile_mesonh.ihm
@@ -66,8 +66,10 @@ export CONF_DOLLAR=${CONF_DOLLAR}
 # Version of NETCDF / HDF
 #
 export VER_CDF=${VER_CDF}
-export VERSION_CDF=${VERSION_CDF}
+export VERSION_CDFC=${VERSION_CDFC}
+export VERSION_CDFF=${VERSION_CDFF}
 export VERSION_HDF=${VERSION_HDF}
+export VERSION_LIBAEC=${VERSION_LIBAEC}
 #
 # NETCDF4  INPUT/OUTPUT
 #
diff --git a/src/LIB/hdf5-1.8.20.tar.gz b/src/LIB/hdf5-1.8.20.tar.gz
new file mode 100644
index 000000000..447023d0e
--- /dev/null
+++ b/src/LIB/hdf5-1.8.20.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ed660ccd2bc45aa808ea72e08f33cc64009e9dd4e3a372b53438b210312e8d9
+size 12475267
diff --git a/src/LIB/hdf5-1.8.9.tar.gz b/src/LIB/hdf5-1.8.9.tar.gz
deleted file mode 100644
index 9a262b915..000000000
--- a/src/LIB/hdf5-1.8.9.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:22ece2ee73f653db9d904e113a03b4d6b4a54d101ed4cd4b46b50731a842add8
-size 8258774
diff --git a/src/LIB/libaec-0.3.2.tar.gz b/src/LIB/libaec-0.3.2.tar.gz
new file mode 100644
index 000000000..3db97620e
--- /dev/null
+++ b/src/LIB/libaec-0.3.2.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acb7cbf4e8f3c63a9ea1af1e1a2d0c9658f4831deb7327f110bdd5c187dc3441
+size 353185
diff --git a/src/LIB/netcdf-4.1.3.tar.gz b/src/LIB/netcdf-4.1.3.tar.gz
deleted file mode 100644
index b93f29d62..000000000
--- a/src/LIB/netcdf-4.1.3.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:315bc385b0750dd85b9a122194382db52f432dea1390de9f7afa11cf91869213
-size 11097157
diff --git a/src/LIB/netcdf-4.5.0.tar.gz b/src/LIB/netcdf-4.5.0.tar.gz
new file mode 100644
index 000000000..0a4c4e97f
--- /dev/null
+++ b/src/LIB/netcdf-4.5.0.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cbe70049cf1643c4ad7453f86510811436c9580cb7a1684ada2f32b95b00ca79
+size 5494644
diff --git a/src/LIB/netcdf-fortran-4.4.4.tar.gz b/src/LIB/netcdf-fortran-4.4.4.tar.gz
new file mode 100644
index 000000000..9be947375
--- /dev/null
+++ b/src/LIB/netcdf-fortran-4.4.4.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2d395175f8d283e68c8be516e231a96b191ade67ad0caafaf7fa01b1e6b5d75
+size 1025980
diff --git a/src/Makefile b/src/Makefile
index 4c9ffe28a..317f4015c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -326,7 +326,7 @@ A64=A64
 endif
 gribapi : $(GRIBAPI_INC)
 $(GRIBAPI_INC) : 
-	cd ${DIR_GRIBAPI} && ./configure --disable-shared --disable-jpeg --prefix=${GRIBAPI_PATH} FC="$(FC)" ${GRIBAPI_CONF} && $(MAKE) -j 1 clean && $(MAKE) -j 1 && $(MAKE) -j 1 install && $(MAKE) -j 1 clean
+	cd ${DIR_GRIBAPI} && ./configure --disable-shared --disable-jpeg --prefix=${GRIBAPI_PATH} CC="$(CC)" FC="$(FC)" ${GRIBAPI_CONF} && $(MAKE) -j 1 clean && $(MAKE) -j 1 && $(MAKE) -j 1 install && $(MAKE) -j 1 clean
 
 gribapi_clean :
 	- [  -d ${GRIBAPI_PATH} ] && rm -fr ${GRIBAPI_PATH} 
@@ -340,12 +340,19 @@ ifeq "$(VER_CDF)" "CDFAUTO"
 HDF_OPT    = ${OPT_BASE_I4:-$OPT_BASE}
 NETCDF_OPT = ${OPT_BASE_I4:-$OPT_BASE}
 #
-cdf : $(CDF_INC)
-$(CDF_INC) : 
-	cd ${DIR_HDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 \
-	FC="$(FC)" FCFLAGS="$(HDF_OPT)" CPPFLAGS="-DpgiFortran" ${HDF_CONF} && make && make install && $(MAKE) -j 1 clean
-	cd ${DIR_CDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --disable-cxx --enable-f90 --disable-dap \
-	FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" CPPFLAGS="-DpgiFortran ${INC_NETCDF}" ${CDF_CONF} LDFLAGS=" -L${CDF_PATH}/lib64" && make && make install && $(MAKE) -j 1 clean
+cdf : $(CDF_MOD)
+$(CDF_MOD) :
+	cd ${DIR_LIBAEC} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 CC="$(CC)" CFLAGS="$(HDF_OPT)" && \
+	$(MAKE) && $(MAKE) install && $(MAKE) clean
+	cd ${DIR_HDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --with-szlib=${CDF_PATH}/include,${CDF_PATH}/lib64 \
+	CC="$(CC)" CFLAGS="$(HDF_OPT)" LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lsz -laec -lz" && \
+	$(MAKE) && $(MAKE) install && $(MAKE) clean
+	cd ${DIR_CDFC} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --disable-dap \
+	CC="$(CC)" CFLAGS="$(NETCDF_OPT)" CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lhdf5_hl -lhdf5 -lsz -laec -lz" && \
+	$(MAKE) && $(MAKE) install && $(MAKE) clean
+	cd ${DIR_CDFF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 \
+	FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lsz -laec -lz" && \
+	$(MAKE) && $(MAKE) install && $(MAKE) clean
 
 cleanmaster : cleancdf
 cleancdf :
diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk
index 9671c06ff..08f0a5f11 100644
--- a/src/Makefile.MESONH.mk
+++ b/src/Makefile.MESONH.mk
@@ -434,16 +434,19 @@ endif
 #  
 #
 ifeq "$(VER_CDF)" "CDFAUTO"
-DIR_CDF?=${SRC_MESONH}/src/LIB/netcdf-${VERSION_CDF}
-CDF_PATH?=${DIR_CDF}-${ARCH}I${MNH_INT}
-CDF_INC?=${CDF_PATH}/include/netcdf.inc
+DIR_CDFC?=${SRC_MESONH}/src/LIB/netcdf-${VERSION_CDFC}
+DIR_CDFF?=${SRC_MESONH}/src/LIB/netcdf-fortran-${VERSION_CDFF}
+CDF_PATH?=${SRC_MESONH}/src/LIB/netcdf-${ARCH}I${MNH_INT}
+CDF_MOD?=${CDF_PATH}/include/netcdf.mod
 #
 INC_NETCDF     ?= -I${CDF_PATH}/include
-LIB_NETCDF     ?= -L${CDF_PATH}/lib -L${CDF_PATH}/lib64 -lnetcdff -lnetcdf  -lhdf5_hl -lhdf5 -lz
+LIB_NETCDF     ?= -L${CDF_PATH}/lib -L${CDF_PATH}/lib64 -lnetcdff -lnetcdf  -lhdf5_hl -lhdf5 -lsz -laec -lz -ldl
 INC            += $(INC_NETCDF)
 LIBS           += $(LIB_NETCDF)
 #
 DIR_HDF?=${SRC_MESONH}/src/LIB/hdf5-${VERSION_HDF}
+#
+DIR_LIBAEC?=${SRC_MESONH}/src/LIB/libaec-${VERSION_LIBAEC}
 endif
 #
 # NetCDF : CDF LaReunion Local
diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk
index dec164ce1..b5b3fb6b7 100644
--- a/src/Rules.LXgfortran.mk
+++ b/src/Rules.LXgfortran.mk
@@ -57,6 +57,7 @@ CFLAGS    += -g -O0
 endif
 #
 #  
+CC = gcc
 FC = gfortran 
 ifeq "$(VER_MPI)" "MPIAUTO"
 F90 = mpif90
diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk
index 76a7bb078..48099b490 100644
--- a/src/Rules.LXpgi.mk
+++ b/src/Rules.LXpgi.mk
@@ -78,6 +78,7 @@ endif
 
 #-Mcuda -ta=nvidia,host,time -Minfo=accel,intensity
 #
+CC = pgcc
 FC = pgf90
 ifeq "$(VER_MPI)" "MPIAUTO"
 F90 = mpif90
-- 
GitLab