Hello,
I´ve been trying to compile siesta 3.2 with intel mkl libraries (I have Intel
Cluster Studio 2012 installed on my system) to no avail.
As template for the arch.make file, I have used one of the examples that comes
with Siesta package. It seems like the compiler is not using the intel
libraries since exactly the same list of errors is produced when the
corresponding lines in the arch.make file, are commented (that is, compiling
without any Blas and lapack libraries).
Here is my arch.make file:
#
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996- .
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
SIESTA_ARCH=intel9-mkl8
#
# Intel fortran compiler 9 for linux with mkl 8 optimized blas and lapack
#
# Be sure to experiment with different optimization options.
# You have quite a number of combinations to try...
#
# Note: The -mp1 option is necessary to recover IEEE floating point precision.
#
FC=ifort -m64 -mkl
#
FFLAGS= -w -xP -O3 -mp1
EXTRA_LIBS=-lpthread -lsvml
FFLAGS_DEBUG= -g
LDFLAGS= -static
COMP_LIBS=
RANLIB=ranlib
#
NETCDF_LIBS=
NETCDF_INTERFACE=
FPPFLAGS_CDF=
#
MPI_INTERFACE=
MPI_INCLUDE=
FPPFLAGS_MPI=
#
GUIDE=/opt/intel/mkl/lib/intel64/libguide.a
LAPACK=/opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a
BLAS=/opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a
LIBS=$(LAPACK) $(BLAS) $(GUIDE) $(EXTRA_LIBS)
SYS=nag
FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)
#
.F.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $<
.F90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $<
#
And the list of errors is as follows:
chkgmx.o: In function `chkgmx_':
/home/siesta-3.2/Src/chkgmx.f:(.text+0x235): undefined reference to `ddot_'
/home/siesta-3.2/Src/chkgmx.f:(.text+0x25b): undefined reference to `ddot_'
denmat.o: In function `m_denmat_mp_denmat_':
/home/siesta-3.2/Src/denmat.F:(.text+0x23ba): undefined reference to `dscal_'
/home/siesta-3.2/Src/denmat.F:(.text+0x23db): undefined reference to `dscal_'
dhscf.o: In function `dhscf_':
/home/siesta-3.2/Src/dhscf.F:(.text+0xa710): undefined reference to `ddot_'
/home/siesta-3.2/Src/dhscf.F:(.text+0xa737): undefined reference to `ddot_'
/home/siesta-3.2/Src/dhscf.F:(.text+0xa79b): undefined reference to `ddot_'
/home/siesta-3.2/Src/dhscf.F:(.text+0xa7c2): undefined reference to `ddot_'
/home/siesta-3.2/Src/dhscf.F:(.text+0x13700): undefined reference to `ddot_'
diagg.o: In function `diagg_':
/home/siesta-3.2/Src/diagg.F:(.text+0xd3d): undefined reference to `dcopy_'
m_efield.o: In function `m_efield_mp_orthogonalize_efield_':
/home/siesta-3.2/Src/m_efield.F:(.text+0xa08): undefined reference to `ddot_'
/home/siesta-3.2/Src/m_efield.F:(.text+0xa2c): undefined reference to `ddot_'
/home/siesta-3.2/Src/m_efield.F:(.text+0xa51): undefined reference to `ddot_'
/home/siesta-3.2/Src/m_efield.F:(.text+0xa75): undefined reference to `ddot_'
/home/siesta-3.2/Src/m_efield.F:(.text+0xaf2): undefined reference to `ddot_'
m_efield.o:/home/siesta-3.2/Src/m_efield.F:(.text+0xb19): more undefined
references to `ddot_' follow
inver.o: In function `inver_':
/home/siesta-3.2/Src/inver.f:(.text+0x131): undefined reference to `dgetrf_'
/home/siesta-3.2/Src/inver.f:(.text+0x16b): undefined reference to `dgetri_'
ksv.o: In function `m_ksv_mp_ksv_pol_':
/home/siesta-3.2/Src/ksv.f:(.text+0xcf6): undefined reference to `ddot_'
/home/siesta-3.2/Src/ksv.f:(.text+0xf6d): undefined reference to `ddot_'
/home/siesta-3.2/Src/ksv.f:(.text+0xfb6): undefined reference to `ddot_'
/home/siesta-3.2/Src/ksv.f:(.text+0x22cf): undefined reference to `ddot_'
linpack.o: In function `zgedi_':
/home/siesta-3.2/Src/linpack.F:(.text+0x16b): undefined reference to `zscal_'
/home/siesta-3.2/Src/linpack.F:(.text+0x1fe): undefined reference to `zaxpy_'
/home/siesta-3.2/Src/linpack.F:(.text+0x5e3): undefined reference to `zaxpy_'
/home/siesta-3.2/Src/linpack.F:(.text+0x650): undefined reference to `zswap_'
linpack.o: In function `zgefa_':
/home/siesta-3.2/Src/linpack.F:(.text+0x9e3): undefined reference to `zscal_'
/home/siesta-3.2/Src/linpack.F:(.text+0xb09): undefined reference to `zaxpy_'
minvec.o: In function `m_minvec_mp_minvec_':
/home/siesta-3.2/Src/minvec.f:(.text+0xd4): undefined reference to `ddot_'
/home/siesta-3.2/Src/minvec.f:(.text+0x146): undefined reference to `ddot_'
/home/siesta-3.2/Src/minvec.f:(.text+0x1b8): undefined reference to `ddot_'
/home/siesta-3.2/Src/minvec.f:(.text+0x3f4): undefined reference to `ddot_'
/home/siesta-3.2/Src/minvec.f:(.text+0x61c): undefined reference to `ddot_'
m_pulay.o: In function `m_pulaypulayx_mp_inverse_':
/home/siesta-3.2/Src/m_pulay.F90:(.text+0x4036): undefined reference to
`dgetrf_'
/home/siesta-3.2/Src/m_pulay.F90:(.text+0x40f2): undefined reference to
`dgetri_'
cdiag.o: In function `cdiag_':
/home/siesta-3.2/Src/cdiag.F:(.text+0x3a7): undefined reference to `ilaenv_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x3e8): undefined reference to `ilaenv_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x66e): undefined reference to `zhegvx_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x78b): undefined reference to `zpotrf_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x809): undefined reference to `zhegst_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x92c): undefined reference to `zheevx_'
/home/siesta-3.2/Src/cdiag.F:(.text+0xabe): undefined reference to `zcopy_'
/home/siesta-3.2/Src/cdiag.F:(.text+0xb4e): undefined reference to `ztrsm_'
/home/siesta-3.2/Src/cdiag.F:(.text+0xfe3): undefined reference to `zhegv_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x13b1): undefined reference to `zcopy_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x148f): undefined reference to `zhemm_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x1560): undefined reference to `zgemm_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x3a80): undefined reference to `zgemm_'
/home/siesta-3.2/Src/cdiag.F:(.text+0x3abf): undefined reference to `zcopy_'
rdiag.o: In function `rdiag_':
/home/siesta-3.2/Src/rdiag.F:(.text+0x363): undefined reference to `ilaenv_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x50c): undefined reference to `dsygvx_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x61f): undefined reference to `dpotrf_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x69d): undefined reference to `dsygst_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x1310): undefined reference to `dsyevx_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x192a): undefined reference to `dcopy_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x19b6): undefined reference to `dtrsm_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x1c32): undefined reference to `dsygv_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x1dfc): undefined reference to `dcopy_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x2261): undefined reference to `dsymm_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x28cd): undefined reference to `dgemm_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x3588): undefined reference to `dgemm_'
/home/siesta-3.2/Src/rdiag.F:(.text+0x377e): undefined reference to `dcopy_'
dsyevds.o: In function `dsyevds_':
/home/siesta-3.2/Src/dsyevds.f:(.text+0x38): undefined reference to `lsame_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x51): undefined reference to `lsame_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0xd6): undefined reference to `lsame_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x109): undefined reference to `xerbla_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x12f): undefined reference to `lsame_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x275): undefined reference to `dlamch_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x28c): undefined reference to `dlamch_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x2e9): undefined reference to `dlansy_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x381): undefined reference to `dlascl_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x414): undefined reference to `dsytrd_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x457): undefined reference to `dsterf_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x4b1): undefined reference to `dstedc_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x50a): undefined reference to `dormtr_'
/home/siesta-3.2/Src/dsyevds.f:(.text+0x550): undefined reference to `dscal_'
zheevds.o: In function `zheevds_':
/home/siesta-3.2/Src/zheevds.F90:(.text+0x38): undefined reference to `lsame_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x51): undefined reference to `lsame_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x10a): undefined reference to
`lsame_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x13d): undefined reference to
`xerbla_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x163): undefined reference to
`lsame_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x2f7): undefined reference to
`dlamch_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x30d): undefined reference to
`dlamch_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x36a): undefined reference to
`zlanhe_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x406): undefined reference to
`zlascl_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x4a0): undefined reference to
`zhetrd_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x4e8): undefined reference to
`dsterf_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x561): undefined reference to
`zstedc_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x5bd): undefined reference to
`zunmtr_'
/home/siesta-3.2/Src/zheevds.F90:(.text+0x67f): undefined reference to
`dscal_'
m_broyddj.o: In function `m_broyddj_mp_broyden_step_':
/home/siesta-3.2/Src/m_broyddj.f90:(.text+0x4798): undefined reference to
`dgetrf_'
/home/siesta-3.2/Src/m_broyddj.f90:(.text+0x486a): undefined reference to
`dgetri_'
m_broyddj.o: In function `m_broyddj_mp_dlinds_':
/home/siesta-3.2/Src/m_broyddj.f90:(.text+0xb006): undefined reference to
`dgetrf_'
/home/siesta-3.2/Src/m_broyddj.f90:(.text+0xb0a5): undefined reference to
`dgetri_'
mneighb.o: In function `neighbour_mp_mranger_..0':
/home/siesta-3.2/Src/mneighb.f:(.text+0x1f7d): undefined reference to `ddot_'
/home/siesta-3.2/Src/mneighb.f:(.text+0x24ae): undefined reference to `ddot_'
/home/siesta-3.2/Src/mneighb.f:(.text+0x36cf): undefined reference to `ddot_'
/home/siesta-3.2/Src/mneighb.f:(.text+0x4d17): undefined reference to `ddot_'
mneighb.o: In function `neighbour_mp_mranger_':
/home/siesta-3.2/Src/mneighb.f:(.text+0x72fd): undefined reference to `ddot_'
mneighb.o:/home/siesta-3.2/Src/mneighb.f:(.text+0x782e): more undefined
references to `ddot_' follow
m_broyddj_nocomm.o: In function `m_broyddj_nocomm_mp_broyden_step_':
/home/siesta-3.2/Src/m_broyddj_nocomm.f90:(.text+0x4ec4): undefined reference
to `dgetrf_'
/home/siesta-3.2/Src/m_broyddj_nocomm.f90:(.text+0x4f96): undefined reference
to `dgetri_'
m_broyddj_nocomm.o: In function `m_broyddj_nocomm_mp_dlinds_':
/home/siesta-3.2/Src/m_broyddj_nocomm.f90:(.text+0xb8d6): undefined reference
to `dgetrf_'
/home/siesta-3.2/Src/m_broyddj_nocomm.f90:(.text+0xb975): undefined reference
to `dgetri_'
make: *** [siesta] Error 1
The config.log file exits with 0 value although it repeatedly reports that
compilation is aborted for conftest.f (code 1).
I guess all those undefined references comes from failing to link the intel
libraries. Mind you, a smooth compilation is attained when I use the blas and
lapack libraries that comes with siesta package.
I will appreciate any help here.
Many thanks in advance.
Federico Iribarne