Page 1 of 1

compilation error in yambo 5.0.1

Posted: Sat Apr 17, 2021 3:57 pm
by shan dong
Dear all,
I have compiled the yambo5.0.1 and i need the Electron Phonon Coupling part.I installed yambo by typing ./configure FC=mpiifort F77=mpiifort CC=mpiicc --with-iotk-path=/home/ycli/home2/ds/soft/qe-6.2/iotk --with-p2y-version=qexsd. but when i run make core

>>>[Making modules]<<<
Warning #2216: '=' assumed following macro name "_libmodules" in command-line definition

make[2]: 进入目录“/home2/ycli/ds/yambo-5.0.1/yambo-5.0.1/src/modules”
cd /home/ycli/home2/ds/yambo-5.0.1/yambo-5.0.1/src/modules; /home/ycli/home2/ds/yambo-5.0.1/yambo-5.0.1/sbin/moduledep.sh mod_pars.o mod_units.o mod_lexical_sort.o mod_stderr.o mod_memory.o mod_openmp.o mod_parallel.o mod_parallel_interface.o mod_matrix.o mod_SLK.o mod_linear_algebra.o mod_wrapper.o mod_wrapper_omp.o mod_drivers.o mod_FFT.o mod_LIVE_t.o mod_logo.o mod_cutoff_ws.o mod_descriptors.o mod_com.o mod_com_interfcs.o mod_timing.o mod_R_lattice.o mod_electrons.o mod_wave_func.o mod_xc_functionals.o mod_global_XC.o mod_matrix_operate.o mod_D_lattice.o mod_frequency.o mod_vec_operate.o mod_X.o mod_DIPOLES.o mod_functions.o mod_zeros.o mod_atom_proj.o mod_pseudo.o mod_QP.o mod_collision_el.o mod_BS.o mod_BS_solvers.o mod_QP_CTL.o mod_TDDFT.o mod_ACFDT.o mod_MAGNONS.o mod_DICHROISM.o mod_PHOTOLUM.o mod_IO.o mod_ELPH.o mod_PHEL.o mod_X_output.o mod_OUTPUT_simple.o mod_POL_FIT.o mod_RT_lifetimes.o mod_RT_occupations.o mod_real_time.o mod_hamiltonian.o mod_debug.o mod_interfaces.o mod_interpolate_tools.o mod_interpolate.o SET_logicals.o SET_defaults.o mod_cusolverdn_y.o mod_cuda.o > /home/ycli/home2/ds/yambo-5.0.1/yambo-5.0.1/src/modules/make.dep
make[2]: 离开目录“/home2/ycli/ds/yambo-5.0.1/yambo-5.0.1/src/modules”
make[2]: 进入目录“/home2/ycli/ds/yambo-5.0.1/yambo-5.0.1/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_FLOAT]
integer, parameter :: nf90_SP = nf90_float
----------------------------------^
mod_pars.f90(87): error #6404: This name does not have a type, and must have an explicit type. [NF90_FLOAT]
integer, parameter :: nf90_SP = nf90_float
----------------------------------^
compilation aborted for mod_pars.f90 (code 1)
make[2]: *** [mod_pars.o] 错误 1
make[2]: 离开目录“/home2/ycli/ds/yambo-5.0.1/yambo-5.0.1/src/modules”
make[1]: *** [yambo] 错误 2
make[1]: 离开目录“/home2/ycli/ds/yambo-5.0.1/yambo-5.0.1”
yambo build failed

Can you help me deal with it ?

Re: compilation error in yambo 5.0.1

Posted: Sat Apr 17, 2021 6:34 pm
by andrea.ferretti
Dear Shan Dong,

the error is triggered by the netcdf library, which is not properly compiled and makes the overall compilation to fail.
I see that you are compiling on a x86 architecture using the intel compiler.

The following works with me (yambo 5.0.1, intel compiler 20, no external libs)

Code: Select all

MKLROOT=/opt/intel/compilers_and_libraries_2020.0.166/linux/mkl

./configure \
  FC=ifort \
  CC=icc \
  --enable-open-mp \
  --enable-time-profile \
  --enable-memory-profile \
  --enable-msgs-comps
now:
* you can safely exploit MKL for fft and blas/lapack, blacs/scalapack, eg

Code: Select all

  --with-fft-libs="-mkl" \
  --with-blas-libs="-L$MKLROOT -lmkl_intel_lp64  -lmkl_sequential -lmkl_core " \
  --with-lapack-libs="-L$MKLROOT -lmkl_intel_lp64  -lmkl_sequential -lmkl_core " \
  --with-scalapack-libs="-L$MKLROOT -lmkl_scalapack_lp64 " \
  --with-blacs-libs="-L$MKLROOT -lmkl_blacs_intelmpi_lp64 " \
* good also to link to external iotk (as you are doing) to save some time
* in case you still have issues with netcdf, you can try to compile the IO software stack externally, I mean, you can compile hdf5, netcdf-c, netcdff externally and then link them with yambo