yambo-code / yambo

This is the official GPL repository of the yambo code
http://www.yambo-code.eu/
GNU General Public License v2.0
91 stars 35 forks source link

p2y compilation FAIL #3

Closed lucamontana closed 6 years ago

lucamontana commented 6 years ago

Dear all,

I am tyring to compile yambo_4.2.0, however I get the following compilation error concerning p2y executable.

make[2]: Leaving directory /home/LUCA/yambo_4.2.0/yambo/interfaces/p2y' make[2]: Entering directory/home/LUCA/yambo_4.2.0/yambo/interfaces/p2y' numrec_kinds.F mod_pw_data.F qeh5_module.F pw_errore.F pw_struct_module.F qexml.f90(706): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "LATTICE_PARAMETER", alat, ATTR = attr ) -----------^ qexml.f90(708): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "CELL_DIMENSIONS", celldm(1:6) ) -----------^ qexml.f90(714): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "a1", a1(:) alat, COLUMNS=3 ) -----------^ qexml.f90(715): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "a2", a2(:) alat, COLUMNS=3 ) -----------^ qexml.f90(716): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "a3", a3(:) * alat, COLUMNS=3 ) -----------^ qexml.f90(723): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "b1", b1(:), COLUMNS=3 ) -----------^ qexml.f90(724): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "b2", b2(:), COLUMNS=3 ) -----------^ qexml.f90(725): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "b3", b3(:), COLUMNS=3 ) -----------^ qexml.f90(791): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "MASS", amass(i) ) --------------^ qexml.f90(810): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_ATTR] CALL iotk_write_attr( attr, "tau", tau(:,i) ) --------------^ qexml.f90(863): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "FRACTIONAL_TRANSLATION", tmp(1:3), COLUMNS=3 ) --------------^ qexml.f90(896): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "MAXIMUM_POSITION", emaxpos ) -----------^ qexml.f90(898): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "INVERSE_REGION", eopreg ) -----------^ qexml.f90(900): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "FIELD_AMPLITUDE", eamp ) -----------^ qexml.f90(926): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "WFC_CUTOFF", ecutwfc ) -----------^ qexml.f90(928): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "RHO_CUTOFF", ecutrho ) -----------^ qexml.f90(995): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( iunaux, "K-POINT_COORDS", xk, ATTR = attr ) -----------^ qexml.f90(1066): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "HUBBARD_U", Hubbard_U(1:nsp) ) --------------^ qexml.f90(1068): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "HUBBARD_ALPHA", Hubbard_alpha(1:nsp) ) --------------^ qexml.f90(1093): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] call iotk_write_dat(ounit, "yukawa", yukawa) -----------^ qexml.f90(1094): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] call iotk_write_dat(ounit, "ecutvcut", ecutvcut) -----------^ qexml.f90(1095): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] call iotk_write_dat(ounit, "exx_fraction", exx_fraction) -----------^ qexml.f90(1096): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] call iotk_write_dat(ounit, "screening_parameter", screening_parameter) -----------^ qexml.f90(1125): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "SMEARING_PARAMETER", degauss , ATTR = attr ) --------------^ qexml.f90(1154): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "INPUT_OCC_UP", input_occ(1:nstates_up,1) ) --------------^ qexml.f90(1157): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "INPUT_OCC_DOWN", input_occ(1:nstates_dw,2) ) -----------------^ qexml.f90(1196): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_ATTR] CALL iotk_write_attr( attr, "XYZ", xk(:,ik), FIRST = .TRUE. ) --------------^ qexml.f90(1198): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_ATTR] CALL iotk_write_attr( attr, "WEIGHT", wk(ik) ) --------------^ qexml.f90(1226): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat( ounit, "Q-POINT", xqq(:), COLUMNS=3 ) -----------^ qexml.f90(1256): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_WRITE_DAT] CALL iotk_write_dat ( ounit, "NUMBER_OF_ELECTRONS", nelec ) -----------^ qexml.f90(3424): catastrophic error: Too many errors, exiting compilation aborted for qexml.f90 (code 1) make[2]: [qexml.o] Error 1 make[2]: Waiting for unfinished jobs.... numrec_module.F numrec_locate.F qexsd_p2y.f90(602): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_ATTR] CALL iotk_scan_attr( attr, "alat", alat, IERR=ierr ) --------------^ qexsd_p2y.f90(613): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scan_dat(iunit, "a1", a1(:), IERR=ierr ) --------------^ qexsd_p2y.f90(618): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scan_dat(iunit, "a2", a2(:), IERR=ierr ) --------------^ qexsd_p2y.f90(623): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scan_dat(iunit, "a3", a3(:), IERR=ierr ) --------------^ qexsd_p2y.f90(679): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scandat(iunit,"mass",amass(is),IERR=ierr) --------------^ qexsd_p2y.f90(710): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scandat(iunit,"atom",tau(:,i),ATTR=attr, IERR=ierr) --------------^ qexsd_p2y.f90(833): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scandat( iunit, "rotation", s(1:3,1:3,i), IERR=ierr ) ------------------^ qexsd_p2y.f90(836): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] CALL iotk_scan_dat( iunit, "fractionaltranslation", trasl(1:3,i), IERR=ierr ) ------------------^ qexsd_p2y.f90(916): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "ecutwfc", ecutwfc, IERR=ierr ) --------------^ qexsd_p2y.f90(920): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "ecutrho", ecutrho, IERR=ierr ) --------------^ qexsd_p2y.f90(1245): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat(iunit, "ecutfock", ecutfock, IERR=ierr ) --------------^ qexsd_p2y.f90(1250): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat(iunit, "exx_fraction", exx_fraction, IERR=ierr ) --------------^ qexsd_p2y.f90(1255): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat(iunit, "screening_parameter", screening_parameter, IERR=ierr ) --------------^ qexsd_p2y.f90(1270): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat(iunit, "ecutvcut", ecutvcut, IERR=ierr ) --------------^ qexsd_p2y.f90(1320): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "degauss", degauss, IERR=ierr) -----------------^ qexsd_p2y.f90(1334): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "tot_charge", tot_charge, IERR=ierr) --------------^ qexsd_p2y.f90(1339): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "tot_magnetization", tot_mag, FOUND=lfound, IERR=ierr) --------------^ qexsd_p2y.f90(1427): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "nelec", nelec, IERR=ierr) --------------^ qexsd_p2y.f90(1437): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "fermi_energy", fermi_energy, FOUND=lfound, IERR=ierr) --------------^ qexsd_p2y.f90(1443): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "highestOccupiedLevel", homo_energy, FOUND=lfound, IERR=ierr) --------------^ qexsd_p2y.f90(1449): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "two_fermi_energies", fermi_energy_updw, FOUND=lfound, IERR=ierr) --------------^ qexsd_p2y.f90(1514): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_ATTR] call iotk_scan_attr( attr, "degauss", degauss, IERR=ierr) -----------------^ qexsd_p2y.f90(1533): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scan_dat( iunit, "k_point", rvec, ATTR=attr, IERR=ierr) --------------------^ qexsd_p2y.f90(1538): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_ATTR] call iotk_scan_attr( attr, "weight", wk(ik), IERR=ierr) --------------------^ qexsd_p2y.f90(1548): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scandat( iunit, "eigenvalues", eig, IERR=ierr) --------------------^ qexsd_p2y.f90(1559): error #6285: There is no matching specific subroutine for this generic subroutine call. [IOTK_SCAN_DAT] call iotk_scandat( iunit, "occupations", occ, IERR=ierr) --------------------^ compilation aborted for qexsd_p2y.f90 (code 1) make[2]: [qexsd_p2y.o] Error 1 numrec_ddpoly.F numrec_polint.F mod_numerical.F pw_basis_module.F make[2]: Leaving directory `/home/vziaei/yambo_revs/yambo_4.2.0/yambo/interfaces/p2y' make[1]: [p2y] Error 2 make[1]: Leaving directory `/home/vziaei/yambo_revs/yambo_4.2.0/yambo' p2y build failed


Best wishes, LUCA

sangallidavide commented 6 years ago

Dear luca, can you attach the file config/report and the command ypu used for the configure.

Best, D.

lucamontana commented 6 years ago

Dear Davide,

Attached are the conf files and the configure command in the bash file. conf.zip

I was compiling yambo_4.2.0 on my cluster and failed. However even on my laptop I get the p2y compiling error.

Best wishes, LUCA

sangallidavide commented 6 years ago

I tried but I was not able to reproduce the problem. Are you using a clean repository ?

Please remember that this is still a beta release, although we should extract soon branch 4.2 from the present master.

One tip: with 4.2.0 there is a new configure option --with-extlibs-path. You can specify a path external to the source, where yambo will put all the libs it needs the first time you compile it. The subsequent compilations will be much faster if you keep the same option

Finally you used:

export CC=icc
export CXX=icpc
export FC=ifort
export F77=ifort
export F90=ifort
export PFC=mpiifort
export CFLAGS=-O3
export FCFLAGS=" -O2 -assume buffered_io,byterecl"
export FFLAGS=" -O2 -assume buffered_io,byterecl"
export FFLAGS_NOOPT=" -O0 -assume buffered_io,byterecl"
export UFFLAGS='-assume bscc -O0'

make clean_all
./configure --with-lapack=" -mkl=sequential" --with-blas=" -mkl=sequential" --with-fftw="${MKL_HOME}/interfaces/fftw3xf/" --with-fftw-lib="${MKL_HOME}/interfaces/fftw3x

It should have probably been

export CC=icc
export CXX=icpc
export FC=ifort
export F77=ifort
export MPIFC=mpiifort
export MPICC=mpiicc
export CFLAGS=-O3
export FCFLAGS=" -O2 -assume buffered_io,byterecl"
export FFLAGS=" -O2 -assume buffered_io,byterecl"
export UFLAGS='-assume bscc -O0'

make clean_all
./configure --with-lapack-libs="-mkl=sequential" --with-blas-libs="-mkl=sequential" --with-fft-libdir="${MKL_HOME}/interfaces/fftw3xf/" --with-fft-includedir="${MKL_HOME}/include/fftw
lucamontana commented 6 years ago

I still get the same error even with the new conf options. It seems I have a problem with IOTK linking. I remember in Yambo 3.4.1 I linked it against IOTK in QE. I'll try this route.

Any way many thanks. Best, LUCA

sangallidavide commented 6 years ago

Yeah, you can still link against iotk in QE. Meanwhile I've finally been able to reproduce your problem.

I'll let you know when it will be fixed.

Best, D.

On 24 September 2017 at 21:31, lucamontana notifications@github.com wrote:

I still get the same error even with the new conf options. It seems I have a problem with IOTK linking. I remember in Yambo 3.4.1 I linked it against IOTK in QE. I'll try this route.

Any way many thanks. Best, LUCA

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yambo-code/yambo/issues/3#issuecomment-331733483, or mute the thread https://github.com/notifications/unsubscribe-auth/AVqxd1c1OZS3RJtiX5KUHZ42_VKfTd4cks5slq4QgaJpZM4PhPSq .

sangallidavide commented 6 years ago

A file was missing from the git repository.

Fixed with commit b4e336d8c3a26a32be45be9a13121e32b77b70fa

If you compiled the buggy version, after doing "git pull" check that the iotk library is re-compiled (a) rm -rf lib/iotk/iotk lib/iotk/stamp (b) rm $PATH//*/lib/libiotk.a PATH is either lib/external or what you specified in "--with-extlibs-path=$PATH"

lucamontana commented 6 years ago

Dear Davide, Thanks a lot. I successfully compiled all executables. Best wishes, LUCA