The following explains how to compile QE with HDF5 linked.
HDF5 compilation
To compile:
source /mnt/home/software/qe/7.3-ioapi/source.sh # load mpi and other modules
https://github.com/HDFGroup/hdf5.git # clone the repo
cd hdf5 # go in
git checkout hdf5_1.14.5 # checkout to a given version
./configure FC=mpiifort --enable-fortran --enable-fortran2003 --enable-parallel --prefix /mnt/home/bonacc_m/codes/hdf5/hdf5 --enable-shared # configure to have also a given folder with lib, include, bin
make install -j4
What is important, is that the compiler of HDF5 and QE is the same.
Check that the folders lib, bin and include folders are indeed in what you put as the --prefix (in the above case:/mnt/home/bonacc_m/codes/hdf5/hdf5).
To have the hdf5 compilations accessible globally:
export HDF5_HOME=/mnt/home/bonacc_m/codes/hdf5/hdf5
export PATH=$HDF5_HOME/bin:$PATH
export LD_LIBRARY_PATH=$HDF5_HOME/lib:$LD_LIBRARY_PATH
export CPATH=$HDF5_HOME/include:$CPATH
QE compilation
git clone https://gitlab.com/QEF/q-e.git
cd q-e
source /mnt/home/software/qe/7.3-ioapi/source.sh
git checkout qe-7.4.1
./install/makedeps.sh
./install/configure MPIF90=mpiifort --with-hdf5=yes
please check that the HDF5 libs are detected:
[bonacc_m@lms-login q-e-hdf5]$ grep HDF5_LIBS config.log
hdf5_line='HDF5_LIBS=-L/mnt/home/bonacc_m/codes/hdf5/hdf5/lib /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5hl_fortran.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5_hl.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5_fortran.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5.a -lz -ldl -lm'
which contains part of the info you can print by running h5pfc -show.
Then you can proceed with the compilation:
make pw # or whatever you want to compile
The following explains how to compile QE with HDF5 linked.
HDF5 compilation
To compile:
What is important, is that the compiler of HDF5 and QE is the same.
Check that the folders
lib,binandincludefolders are indeed in what you put as the --prefix (in the above case:/mnt/home/bonacc_m/codes/hdf5/hdf5).To have the hdf5 compilations accessible globally:
QE compilation
please check that the HDF5 libs are detected:
[bonacc_m@lms-login q-e-hdf5]$ grep HDF5_LIBS config.log hdf5_line='HDF5_LIBS=-L/mnt/home/bonacc_m/codes/hdf5/hdf5/lib /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5hl_fortran.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5_hl.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5_fortran.a /mnt/home/bonacc_m/codes/hdf5/hdf5/lib/libhdf5.a -lz -ldl -lm'which contains part of the info you can print by running
h5pfc -show.Then you can proceed with the compilation:
make pw # or whatever you want to compile