Page 1 of 1

error compilation Yambo-4.3.2:Making modules

Posted: Wed Mar 27, 2019 2:24 am
by hongshen
Dear developers and users:
I'm trying to compile yambo-4.3.2 with intel parallel studio, version 19.0.3.199 on a x86_64 machine, but something goes wrong. I manually downloaded every external lib to /yambo/lib/archive and run "./configure" followed by "make yambo". Everything goes fine until ">>>[Making modules]<<<" part. Here is my error message:

make[1]: enter directory“/home/hshen/q-e-qe-6.4/yambo-4.3.2/src/modules”
mod_pars.f90(26): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [NETCDF]
use netcdf
-----^
mod_pars.f90(87): error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry function that evaluates to a compile-time constant. [NF90_REAL]
integer, parameter :: nf90_SP = nf90_real
----------------------------------^
mod_pars.f90(87): error #6404: This name does not have a type, and must have an explicit type. [NF90_REAL]
integer, parameter :: nf90_SP = nf90_real
----------------------------------^
compilation aborted for mod_pars.f90 (code 1)
make[1]: *** [mod_pars.o] error 1
make[1]: leave directory“/home/hshen/q-e-qe-6.4/yambo-4.3.2/src/modules”
make: *** [yambo] error 2

Any suggestions would be appreciated!
Thank you in advance

Shen Hong
Department of optical science engineering,
Fudan University,
China

Re: error compilation Yambo-4.3.2:Making modules

Posted: Wed Mar 27, 2019 9:39 am
by Daniele Varsano
Dear Shen Hong,
it seems there is something wrong in the netcdf path.
Note there is no need to download manually the required libraries as they are automatically downloaded and compiled during the make procedure.
In case you want to use precompiled libraries, check that the paths to the libraries are correctly set during the configuring e.g. a script like:

Code: Select all

NETCDFF_LIB="-L$LIB_PATH/netcdff/4.4.4/intel--pe-xe-2017--binary/lib -lnetcdff"
NETCDF_LIB="-L$LIB_PATH/netcdf/4.4.1/intel--pe-xe-2017--binary/lib -lnetcdf"
NETCDF_INC="$LIB_PATH/netcdf/4.4.1/intel--pe-xe-2017--binary/include"
NETCDFF_INC="$LIB_PATH/netcdff/4.4.4/intel--pe-xe-2017--binary/include"
./configure --with-netcdf-libs="$NETCDF_LIB" --with-netcdf-includedir="$NETCDF_INC" \
--with-netcdff-libs="$NETCDFF_LIB" --with-netcdff-includedir="$NETCDFF_INC" 
I do not exclude that you can have then similar problem with other external libraries if the path are not correctly passed to the configure.

If you instead leave yambo to download the external libraries, the correct paths are automatically set.

Best,
Daniele

Re: error compilation Yambo-4.3.2:Making modules

Posted: Sun Mar 31, 2019 4:35 am
by hongshen
Dear Daniele,
thank you for your reply. I manually download the libraries because the network doesn't work.
I tried again by specifying the libraries through configure:
./configure --with-iotk-libs="-L/home/hshen/q-e-qe-6.4/iotk/src/libiotk.a" \
--with-iotk-path="/home/hshen/q-e-qe-6.4/iotk" \
--with-libxc-path="/home/hshen/libxc/" \
--with-fft-path=/home/software/mathlib/fftw/intelmpi/3.3.8 \
--with-netcdf-libs="-L/home/hshen/mathlib/netcdfc/lib -lnetcdf" \
--with-netcdf-includedir="-I/home/hshen/mathlib/netcdfc/include" \
--with-netcdff-includedir="-I/home/hshen/mathlib/netcdfc/include" \
--with-netcdff-libs="-L/home/hshen/mathlib/netcdfc/lib -lnetcdff" \
--with-libxc-libs='-L/home/hshen/libxc/lib/ -lxc -lxcf90' \
--with-blas-libs="-L/home/software/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \
--with-lapack-libs="-L/home/software/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \
--with-scalapack-libs="-L/home/software/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64 -lmkl_scalapack_lp64" \
--with-blacs-libs="-L/home/software/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64 -lmkl_blacs_intelmpi_lp64" \

it seems that yambo find netcdf libraries but not headfiles, shown on the screen during configure process:
"checking for NetCDF Library using -L/home/hshen/mathlib/netcdfc/lib -lnetcdf... yes
no
checking for internal NetCDF library... to be compiled"

the config.log file that is attached says include directory not set properly, but I'm pretty sure the directories in configure is correct.
I don't know what's going wrong, could it be some incompatibility issues?

thank you

Shen Hong
Department of optical science engineering,
Fudan University,
China

Re: error compilation Yambo-4.3.2:Making modules

Posted: Sun Mar 31, 2019 9:32 pm
by Daniele Varsano
Dear Shen,
when indicating the includedir option e.g.:
--with-netcdf-includedir="$NETCDF_INC" \
just set the path e.g.:
NETCDF_INC="$PATH/netcdf/4.4.1/intel--pe-xe-2017--binary/include"
without indicating the "-I/" prefix
the same for --with-netcdff-includedir

Best,
Daniele