Configure options for Yambo v4: Difference between revisions
m (Fixed indentation) |
|||
Line 5: | Line 5: | ||
One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using | One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using | ||
./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY> | ./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY> | ||
==== NetCDF as underlying storage layer of HDF5 ==== | ==== NetCDF as underlying storage layer of HDF5 ==== | ||
Line 14: | Line 14: | ||
The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with | The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with | ||
./configure --with-fftw=<FFTW LIB DIRECTORY> | ./configure --with-fftw=<FFTW LIB DIRECTORY> | ||
If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with: | If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with: | ||
./configure --with-fftw=/cineca/prod/lib | ./configure --with-fftw=/cineca/prod/lib | ||
Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used. | Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used. | ||
==== IOTK support ==== | ==== IOTK support ==== | ||
Line 22: | Line 22: | ||
To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.: | To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.: | ||
./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0 | ./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0 | ||
On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available. | On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available. | ||
==== ETSF-IO support ==== | ==== ETSF-IO support ==== | ||
Line 30: | Line 30: | ||
However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that: | However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that: | ||
mkdir compile_tmp | mkdir compile_tmp | ||
cd compile_tmp | cd compile_tmp | ||
../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/" | ../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/" | ||
--with-netcdf-libs="-L/usr/lib/ -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lz" | |||
MPI_RUNNER="mpirun" CC="mpicc" FC="mpif90" --prefix="$ABINIT_INSTALL_PATH" --exec-prefix="$ABINIT_INSTALL_PATH" | |||
and then compile yambo with the ETSF-IO support | and then compile yambo with the ETSF-IO support | ||
./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib" | ./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib" | ||
--with-etsf-io-include="$ABINIT_SOURCE_LIB/compile_tmp/fallbacks/exports/include" | |||
This is a minimal documentation about how to use the configure flags of Yambo version 4. (Thanks to Andrea Ferretti | This is a minimal documentation about how to use the configure flags of Yambo version 4. (Thanks to Andrea Ferretti) | ||
Line 48: | Line 47: | ||
MKL path available | MKL path available | ||
./configure --with-blas-libs="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ | ./configure --with-blas-libs="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ | ||
--with-lapack-libs="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" | |||
MKL path explicitly given | MKL path explicitly given | ||
./configure --with-blas-libs="-L/opt/intel/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ | ./configure --with-blas-libs="-L/opt/intel/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ | ||
--with-lapack-libs="-L/opt/intel/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" | |||
== Scalapack & Blacs == | == Scalapack & Blacs == | ||
Line 58: | Line 57: | ||
System compiled | System compiled | ||
./configure --with-scalapack-libs="-L/opt/scalapack/2.0.1-openmpi-intel/lib -lscalapack" \ | ./configure --with-scalapack-libs="-L/opt/scalapack/2.0.1-openmpi-intel/lib -lscalapack" \ | ||
--with-blacs-libs="-L/opt/blacs/1.1-openmpi-intel/lib -lblacs" | |||
-L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded) | -L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded) | ||
./configure --with-scalapack-libs="-lscalapack" --with-blacs-libs="-lblacs" | ./configure --with-scalapack-libs="-lscalapack" --with-blacs-libs="-lblacs" | ||
== iotk == | == iotk == | ||
Line 67: | Line 66: | ||
Default is: | Default is: | ||
./configure --enable-iotk | ./configure --enable-iotk | ||
-L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded) | -L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded) | ||
./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk" | ./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk" | ||
path to an installed version of the library | path to an installed version of the library | ||
./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk" | ./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk" | ||
for fine tuning (eg if the structure of the iotk install directory is non standard). This is usually not required. | for fine tuning (eg if the structure of the iotk install directory is non standard). This is usually not required. | ||
./configure --with-iotk-libdir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | ./configure --with-iotk-libdir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | ||
--with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | --with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | ||
or | |||
./configure --with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | ./configure --with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" | ||
== etsf-io == | == etsf-io == | ||
Internal version | Internal version | ||
./configure --enable-etsf-io | ./configure --enable-etsf-io | ||
path to an installed version of the library | path to an installed version of the library | ||
./configure --with-etsf-io-path="/opt/etsf-io/1.0.4-intel" | ./configure --with-etsf-io-path="/opt/etsf-io/1.0.4-intel" | ||
or | |||
./configure --with-etsf-io-libdir="/opt/etsf-io/1.0.4-intel/lib" --with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include" | ./configure --with-etsf-io-libdir="/opt/etsf-io/1.0.4-intel/lib" --with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include" | ||
direct list of flags to be used to link (being iotk a f90 library, the include dir has also to be provided) | direct list of flags to be used to link (being iotk a f90 library, the include dir has also to be provided) | ||
./configure --with-etsf-io-libs="-L/opt/etsf-io/1.0.4-intel/lib -letsf_io" | ./configure --with-etsf-io-libs="-L/opt/etsf-io/1.0.4-intel/lib -letsf_io" | ||
--with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include" | --with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include" | ||
== FFT == | == FFT == | ||
Internal FFT Goedeger | Internal FFT Goedeger | ||
./configure --enable-internal-fftsg | ./configure --enable-internal-fftsg | ||
Internal FFTW [v 2.0] | Internal FFTW [v 2.0] | ||
External libraries. Their type (FFTW, MKL-FFTW, ESSL) will be automatically detected. | External libraries. Their type (FFTW, MKL-FFTW, ESSL) will be automatically detected. | ||
./configure --with-fft-path="/opt/fftw/3.3.0-intel/" | ./configure --with-fft-path="/opt/fftw/3.3.0-intel/" | ||
[ --with-fft-libdir="/opt/fftw/3.3.0-intel/lib" | |||
--with-fft-includedir="/opt/fftw/3.3.0-intel/include" ] | |||
[the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] | [the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] | ||
direct list of flags to be used to link: | direct list of flags to be used to link: | ||
./configure --with-fft-libdir="/opt/fftw/3.3.0-intel/lib" | ./configure --with-fft-libdir="/opt/fftw/3.3.0-intel/lib" | ||
--with-fft-includedir="/opt/fftw/3.3.0-intel/include" | |||
This is simplified it the path is given. As an example if the MKL FFTW3 path is given | This is simplified it the path is given. As an example if the MKL FFTW3 path is given | ||
./configure --with-fft-libs="-mkl" | ./configure --with-fft-libs="-mkl" | ||
== NetCDF == | == NetCDF == | ||
Line 112: | Line 109: | ||
The internal netCDF 4 (compiled without HDF5, i.e. compatible with v3) | The internal netCDF 4 (compiled without HDF5, i.e. compatible with v3) | ||
./configure --enable-netcdf | ./configure --enable-netcdf | ||
This is the default. Note that is NOT compatible with any external hdf5 library. | This is the default. Note that is NOT compatible with any external hdf5 library. | ||
Path to an installed version of the libraries. | Path to an installed version of the libraries. | ||
./configure --with-netcdf-path="/opt/netcdf/3.6.3-intel" | ./configure --with-netcdf-path="/opt/netcdf/3.6.3-intel" | ||
[ --with-netcdf-libdir="/opt/netcdf/3.6.3-intel/lib" | |||
--with-netcdf-includedir="/opt/netcdf/3.6.3-intel/include" ] | |||
[the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] | [the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] | ||
direct list of flags to be used to link to the include and library directories can be specified | direct list of flags to be used to link to the include and library directories can be specified | ||
./configure --with-netcdf-libdir="/opt/netcdf/3.6.3-intel/lib"\ | ./configure --with-netcdf-libdir="/opt/netcdf/3.6.3-intel/lib"\ | ||
--with-netcdf-includedir="/opt/netcdf/3.6.3-intel/include" | |||
if the library path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env var) a simplified version of the instruction can be: | if the library path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env var) a simplified version of the instruction can be: | ||
./configure --with-netcdf-libs="-lnetcdff -lnetcdf" | ./configure --with-netcdf-libs="-lnetcdff -lnetcdf" | ||
== HDF5 == | == HDF5 == | ||
Line 130: | Line 127: | ||
If HDF5 is is needed (e.g. because the external netcdf library requires it) the same options can be used. NO INTERNAL HDF5 exist, so the library must be linked externally. | If HDF5 is is needed (e.g. because the external netcdf library requires it) the same options can be used. NO INTERNAL HDF5 exist, so the library must be linked externally. | ||
Path to an installed version of the libraries. As above, the include and library directories can be specified if they are not in the specified path. Usually this is not needed. | Path to an installed version of the libraries. As above, the include and library directories can be specified if they are not in the specified path. Usually this is not needed. | ||
./configure --with-hdf5-path="/opt/hdf5/1.8.13-intel" | ./configure --with-hdf5-path="/opt/hdf5/1.8.13-intel" | ||
[ --with-netcdf-libdir="/opt/hdf5/1.8.13-intel/lib" | |||
--with-netcdf-includedir="/opt/hdf5/1.8.13-intel/include" ] | |||
since HDF5 requires the z library and sometimes the curl library, the paths of these libraries must be available through the LD_LIBRARY_PATH | since HDF5 requires the z library and sometimes the curl library, the paths of these libraries must be available through the LD_LIBRARY_PATH | ||
Alternatively the direct link to the clude and library directories can be specified | Alternatively the direct link to the clude and library directories can be specified | ||
./configure --with-hdf5-libs="-L/opt/hdf5/1.8.13-intel/lib/ -lhdf5 -lhdf5_fortran -L/opt/zlib/1.2.8-intel/lib -lz" | ./configure --with-hdf5-libs="-L/opt/hdf5/1.8.13-intel/lib/ -lhdf5 -lhdf5_fortran -L/opt/zlib/1.2.8-intel/lib -lz" | ||
--with-hdf5-includedir="/opt/hdf5/1.8.13-intel/include" | |||
If the LIB path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env variable) a simplified version of the instruction can be: | If the LIB path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env variable) a simplified version of the instruction can be: | ||
./configure --with-hdf5-libs="-lhdf5 -lhdf5_fortran -lz" | ./configure --with-hdf5-libs="-lhdf5 -lhdf5_fortran -lz" | ||
Large File Support can be switched on using the following | Large File Support can be switched on using the following | ||
./configure --enable-netcdf-LFS | ./configure --enable-netcdf-LFS | ||
combined netcdf/hdf5 support (useful for large files) can be used by setting | combined netcdf/hdf5 support (useful for large files) can be used by setting | ||
./configure --enable-netcdf-hdf5 | ./configure --enable-netcdf-hdf5 | ||
== libXC == | == libXC == | ||
Line 148: | Line 145: | ||
The internal libXC (2.0.3. hacked for Yambo): | The internal libXC (2.0.3. hacked for Yambo): | ||
./configure --enable-libxc | ./configure --enable-libxc | ||
this is the default. | this is the default. | ||
Path to an installed version of the libraries (only version 2.0.3 or above). As above, the include and library directories can be specified if they are not in the specified path. Normally this is not needed. | Path to an installed version of the libraries (only version 2.0.3 or above). As above, the include and library directories can be specified if they are not in the specified path. Normally this is not needed. | ||
./configure --with-libxc-path="/opt/etsf/" | ./configure --with-libxc-path="/opt/etsf/" | ||
[ --with-libxc-libdir="/opt/etsf/lib" | |||
--with-libxc-includedir="/opt/etsf/include"] | |||
== Yambo version 3 == | == Yambo version 3 == |
Revision as of 17:19, 4 November 2024
Linking to external libraries
NetCDF support
One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using
./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY>
NetCDF as underlying storage layer of HDF5
It is possible to configure NetCDF 4.x.x as underlying storage layer of the HDF5 library. Compile Yambo with NetCDF as described in the previous section and add the flag --enable-netcdf-hdf5. Notice that when NetCDF library is compiled with the HDF5 support it requires additional libraries in the linking process, see here for more details. Yambo automatically detects these libraries but if it doesn't work you can use the flag --with-netcdf-link=... to pass you own libraries list. FFTW support
The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with
./configure --with-fftw=<FFTW LIB DIRECTORY>
If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with:
./configure --with-fftw=/cineca/prod/lib
Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used.
IOTK support
To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.:
./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0
On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available.
ETSF-IO support
To import output from Abinit, you can compile abinit with the option --with-trio-flavor="none" and then compile the yambo interfaces with no additional options.
However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that:
mkdir compile_tmp cd compile_tmp ../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/" --with-netcdf-libs="-L/usr/lib/ -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lz" MPI_RUNNER="mpirun" CC="mpicc" FC="mpif90" --prefix="$ABINIT_INSTALL_PATH" --exec-prefix="$ABINIT_INSTALL_PATH"
and then compile yambo with the ETSF-IO support
./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib" --with-etsf-io-include="$ABINIT_SOURCE_LIB/compile_tmp/fallbacks/exports/include"
This is a minimal documentation about how to use the configure flags of Yambo version 4. (Thanks to Andrea Ferretti)
Blas & Lapack
MKL path available
./configure --with-blas-libs="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ --with-lapack-libs="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
MKL path explicitly given
./configure --with-blas-libs="-L/opt/intel/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \ --with-lapack-libs="-L/opt/intel/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
Scalapack & Blacs
System compiled
./configure --with-scalapack-libs="-L/opt/scalapack/2.0.1-openmpi-intel/lib -lscalapack" \ --with-blacs-libs="-L/opt/blacs/1.1-openmpi-intel/lib -lblacs"
-L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded)
./configure --with-scalapack-libs="-lscalapack" --with-blacs-libs="-lblacs"
iotk
Default is:
./configure --enable-iotk
-L option can be avoided if already in the ld_library_path var (eg if the related modules are loaded)
./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk"
path to an installed version of the library
./configure --with-iotk-path="/home/ferretti/espresso-5.0.2/S3DE/iotk"
for fine tuning (eg if the structure of the iotk install directory is non standard). This is usually not required.
./configure --with-iotk-libdir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src" --with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src"
or
./configure --with-iotk-includedir="/home/ferretti/espresso-5.0.2/S3DE/iotk/src"
etsf-io
Internal version
./configure --enable-etsf-io
path to an installed version of the library
./configure --with-etsf-io-path="/opt/etsf-io/1.0.4-intel"
or
./configure --with-etsf-io-libdir="/opt/etsf-io/1.0.4-intel/lib" --with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include"
direct list of flags to be used to link (being iotk a f90 library, the include dir has also to be provided)
./configure --with-etsf-io-libs="-L/opt/etsf-io/1.0.4-intel/lib -letsf_io" --with-etsf-io-includedir="/opt/etsf-io/1.0.4-intel/include"
FFT
Internal FFT Goedeger
./configure --enable-internal-fftsg
Internal FFTW [v 2.0] External libraries. Their type (FFTW, MKL-FFTW, ESSL) will be automatically detected.
./configure --with-fft-path="/opt/fftw/3.3.0-intel/" [ --with-fft-libdir="/opt/fftw/3.3.0-intel/lib" --with-fft-includedir="/opt/fftw/3.3.0-intel/include" ]
[the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] direct list of flags to be used to link:
./configure --with-fft-libdir="/opt/fftw/3.3.0-intel/lib" --with-fft-includedir="/opt/fftw/3.3.0-intel/include"
This is simplified it the path is given. As an example if the MKL FFTW3 path is given
./configure --with-fft-libs="-mkl"
NetCDF
The internal netCDF 4 (compiled without HDF5, i.e. compatible with v3)
./configure --enable-netcdf
This is the default. Note that is NOT compatible with any external hdf5 library. Path to an installed version of the libraries.
./configure --with-netcdf-path="/opt/netcdf/3.6.3-intel" [ --with-netcdf-libdir="/opt/netcdf/3.6.3-intel/lib" --with-netcdf-includedir="/opt/netcdf/3.6.3-intel/include" ]
[the libdir and includedir can be used to overwrite the defaults set on the basis of --with-fft-path] direct list of flags to be used to link to the include and library directories can be specified
./configure --with-netcdf-libdir="/opt/netcdf/3.6.3-intel/lib"\ --with-netcdf-includedir="/opt/netcdf/3.6.3-intel/include"
if the library path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env var) a simplified version of the instruction can be:
./configure --with-netcdf-libs="-lnetcdff -lnetcdf"
HDF5
If HDF5 is is needed (e.g. because the external netcdf library requires it) the same options can be used. NO INTERNAL HDF5 exist, so the library must be linked externally. Path to an installed version of the libraries. As above, the include and library directories can be specified if they are not in the specified path. Usually this is not needed.
./configure --with-hdf5-path="/opt/hdf5/1.8.13-intel" [ --with-netcdf-libdir="/opt/hdf5/1.8.13-intel/lib" --with-netcdf-includedir="/opt/hdf5/1.8.13-intel/include" ]
since HDF5 requires the z library and sometimes the curl library, the paths of these libraries must be available through the LD_LIBRARY_PATH Alternatively the direct link to the clude and library directories can be specified
./configure --with-hdf5-libs="-L/opt/hdf5/1.8.13-intel/lib/ -lhdf5 -lhdf5_fortran -L/opt/zlib/1.2.8-intel/lib -lz" --with-hdf5-includedir="/opt/hdf5/1.8.13-intel/include"
If the LIB path is present in LD_LIBRARY_PATH and the same is true for the includedir (present in the INCLUDE env variable) a simplified version of the instruction can be:
./configure --with-hdf5-libs="-lhdf5 -lhdf5_fortran -lz"
Large File Support can be switched on using the following
./configure --enable-netcdf-LFS
combined netcdf/hdf5 support (useful for large files) can be used by setting
./configure --enable-netcdf-hdf5
libXC
The internal libXC (2.0.3. hacked for Yambo):
./configure --enable-libxc
this is the default. Path to an installed version of the libraries (only version 2.0.3 or above). As above, the include and library directories can be specified if they are not in the specified path. Normally this is not needed.
./configure --with-libxc-path="/opt/etsf/" [ --with-libxc-libdir="/opt/etsf/lib" --with-libxc-includedir="/opt/etsf/include"]
Yambo version 3
Useful configuration options
Here are some of the most commonly used configuration flags, for users and/or developers: Enable quick compiling of core code and projects
./configure --enable-debug
Turn off parallel environment
./configure --without-mpi
Turn off linking to NetCDF libraries
./configure --with-netcdf=no
Turn off linking to BLACS
./configure --with-blacs=no
Preinstalled Yambo