Adventures compiling YAMBO in an IBM powerpc (HUYGENS)
Posted: Wed Sep 12, 2012 8:52 am
Dear all,
I am struggling compiling YAMBO 3.2.5 using XLF compilers (V13 for fortran V11 for C) in a LINUX machine. (The HUYGENS supercomputer of Netherlands)
This is the configure line
./configure --with-blas="-lessl" --with-lapack="-lessl ../espresso/lapack-3.2/lapack.a" --with-iotk="../espresso/iotk" PFC="mpfort" FC="mpfort" FCFLAGS="-q64 -qthreaded -O4 -qsuffix=cpp=f90 -qdpc -qalias=nointptr -Q -qfree=f90" FFLAGS="-q64 -qthreaded -O4 -qsuffix=cpp=f90 -qdpc -qalias=nointptr -Q" --with-fftw-lib="-lessl" --with-netcdf-include="/sara/sw/netcdf-mp/4.1.2/include/" --with-netcdf-lib="/sara/sw/netcdf-mp/4.1.2/lib/" --enable-netcdf-LFS --enable-netcdf-hdf5
Notice that F77 and F90 behaviour seperately.
1st question: I tried many tricks to make YAMBO use essl as much as possible, but lapack is still being ignored
1st problem: "Do not optimize" (NoOpt) flags for free style fortran files do not contain -qfree=f90 and compilation of NoOpt modules fail with Syntax errors. Is there a way to control this on configure stage? I am really tired of editing Makefile
2nd problem: The xlf compilers also work in Linux. For example in yambo-3.2.5/src/modules/mod_logo.F one requires aix mentioned style otherwise xlf compilers fail with syntax error.
I will update this as I go
Any help is appreciated.
Cheers
update1:
adding -qsource in order to understand why exactly xlf is complaining actually solves the problem in mod_QP.F
very very strange
update2: No, it does not, mod_QP.f does not compile with xlf
You either have
181 | call degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,0.0001/HA2EV)
................................................................................a............
a - "mod_QP.f", line 181.80: 1513-061 (S) Actual argument attributes do not match those specified by an accessible explicit interface.
** qp_m === End of Compilation 1 ===
1501-511 Compilation failed for file mod_QP.f.
make: *** [mod_QP.o] Error 1
or
22 |module QP_m
"mod_QP.f", line 22.0: 1515-005 (S) Continuation line is not permitted at beginning of program or after INCLUDE, EJECT, @PROCESS statements or comment directive. Line is ignored.
update 3: (BUG)
modules makefile uses f77 flags while the source code is in f90
update 4: (BUG)
the -I directives for external mods (such as netcdf) are not passed to the compiler.
update 5: (BUG) (XLF_ONLY)
changed degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,0.0001/HA2EV) to
degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,3.6749326019E-06_SP)
(_SP) is not inherited
update 6: (BUG?)
replaced every number ending with . to ._SP
update 7: (BUG)
setting CC=xlcc makes configure fail complaining about precompiler,
settting CC=xlcc and CPP=cpp has the same result ??
looking at configure there are two "precompiler checks" one is for cpp, another one is "gcc -E -traditional"
if you set CPP=cpp second one fails, if you set CPP=gcc first one fails
I am giving up at this moment.
I am struggling compiling YAMBO 3.2.5 using XLF compilers (V13 for fortran V11 for C) in a LINUX machine. (The HUYGENS supercomputer of Netherlands)
This is the configure line
./configure --with-blas="-lessl" --with-lapack="-lessl ../espresso/lapack-3.2/lapack.a" --with-iotk="../espresso/iotk" PFC="mpfort" FC="mpfort" FCFLAGS="-q64 -qthreaded -O4 -qsuffix=cpp=f90 -qdpc -qalias=nointptr -Q -qfree=f90" FFLAGS="-q64 -qthreaded -O4 -qsuffix=cpp=f90 -qdpc -qalias=nointptr -Q" --with-fftw-lib="-lessl" --with-netcdf-include="/sara/sw/netcdf-mp/4.1.2/include/" --with-netcdf-lib="/sara/sw/netcdf-mp/4.1.2/lib/" --enable-netcdf-LFS --enable-netcdf-hdf5
Notice that F77 and F90 behaviour seperately.
1st question: I tried many tricks to make YAMBO use essl as much as possible, but lapack is still being ignored
1st problem: "Do not optimize" (NoOpt) flags for free style fortran files do not contain -qfree=f90 and compilation of NoOpt modules fail with Syntax errors. Is there a way to control this on configure stage? I am really tired of editing Makefile
2nd problem: The xlf compilers also work in Linux. For example in yambo-3.2.5/src/modules/mod_logo.F one requires aix mentioned style otherwise xlf compilers fail with syntax error.
I will update this as I go
Any help is appreciated.
Cheers
update1:
adding -qsource in order to understand why exactly xlf is complaining actually solves the problem in mod_QP.F
very very strange
update2: No, it does not, mod_QP.f does not compile with xlf
You either have
181 | call degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,0.0001/HA2EV)
................................................................................a............
a - "mod_QP.f", line 181.80: 1513-061 (S) Actual argument attributes do not match those specified by an accessible explicit interface.
** qp_m === End of Compilation 1 ===
1501-511 Compilation failed for file mod_QP.f.
make: *** [mod_QP.o] Error 1
or
22 |module QP_m
"mod_QP.f", line 22.0: 1515-005 (S) Continuation line is not permitted at beginning of program or after INCLUDE, EJECT, @PROCESS statements or comment directive. Line is ignored.
update 3: (BUG)
modules makefile uses f77 flags while the source code is in f90
update 4: (BUG)
the -I directives for external mods (such as netcdf) are not passed to the compiler.
update 5: (BUG) (XLF_ONLY)
changed degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,0.0001/HA2EV) to
degeneration_finder(Eo_sorted,QP_n_states,first_el,n_of_el,n_deg_grp,3.6749326019E-06_SP)
(_SP) is not inherited
update 6: (BUG?)
replaced every number ending with . to ._SP
update 7: (BUG)
setting CC=xlcc makes configure fail complaining about precompiler,
settting CC=xlcc and CPP=cpp has the same result ??
looking at configure there are two "precompiler checks" one is for cpp, another one is "gcc -E -traditional"
if you set CPP=cpp second one fails, if you set CPP=gcc first one fails
I am giving up at this moment.