Thanks a lot Jan,

That removed the problem with mpi but now I am getting the following errors:

cdiag.o: In function `cdiag_':
cdiag.F:(.text+0x392): undefined reference to `descinit_'
cdiag.F:(.text+0x956): undefined reference to `blacs_gridinfo_'
cdiag.F:(.text+0x973): undefined reference to `indxg2p_'
cdiag.F:(.text+0x9a4): undefined reference to `indxg2p_'
cdiag.F:(.text+0x9e1): undefined reference to `numroc_'
cdiag.F:(.text+0x9ff): undefined reference to `numroc_'
cdiag.F:(.text+0xa20): undefined reference to `numroc_'
cdiag.F:(.text+0xa46): undefined reference to `numroc_'
cdiag.F:(.text+0xac6): undefined reference to `pjlaenv_'
cdiag.F:(.text+0xafd): undefined reference to `numroc_'
cdiag.F:(.text+0xb8a): undefined reference to `iceil_'
cdiag.F:(.text+0xc87): undefined reference to `blacs_gridinfo_'
cdiag.F:(.text+0xf48): undefined reference to `pzhegvx_'
cdiag.F:(.text+0x10ea): undefined reference to `pzgemr2d_'
cdiag.F:(.text+0x1209): undefined reference to `pzpotrf_'
cdiag.F:(.text+0x1306): undefined reference to `pzhengst_'
cdiag.F:(.text+0x1484): undefined reference to `pzhemm_'
cdiag.F:(.text+0x1597): undefined reference to `pzgemm_'
cdiag.F:(.text+0x18b3): undefined reference to `pzgemm_'
cdiag.F:(.text+0x1c66): undefined reference to `pzgemr2d_'
cdiag.F:(.text+0x1cd4): undefined reference to `pzgemr2d_'
cdiag.F:(.text+0x20cd): undefined reference to `pzhegvx_'
cdiag.F:(.text+0x21de): undefined reference to `numroc_'
cdiag.F:(.text+0x2205): undefined reference to `numroc_'
cdiag.F:(.text+0x2256): undefined reference to `descinit_'
cdiag.F:(.text+0x23d7): undefined reference to `blacs_get_'
cdiag.F:(.text+0x23fc): undefined reference to `blacs_gridinit_'
cdiag.F:(.text+0x2451): undefined reference to `pzpotrf_'
cdiag.F:(.text+0x2508): undefined reference to `blacs_get_'
cdiag.F:(.text+0x2523): undefined reference to `blacs_gridinit_'
cdiag.F:(.text+0x2632): undefined reference to `pzheevd_'
cdiag.F:(.text+0x2797): undefined reference to `pztrsm_'
cdiag.F:(.text+0x282e): undefined reference to `pzgemr2d_'
cdiag.F:(.text+0x2923): undefined reference to `pzhengst_'
cdiag.F:(.text+0x2dbf): undefined reference to `pzheevx_'
cdiag.F:(.text+0x3082): undefined reference to `pztrsm_'
cdiag.F:(.text+0x3245): undefined reference to `pzheevx_'
cdiag.F:(.text+0x33ec): undefined reference to `pzheevd_'
cdiag.F:(.text+0x3516): undefined reference to `pzhemm_'
cdiag.F:(.text+0x35db): undefined reference to `pzgemm_'
cdiag.F:(.text+0x36af): undefined reference to `pzgemm_'
rdiag.o: In function `rdiag_':
rdiag.F:(.text+0x2fc): undefined reference to `descinit_'
rdiag.F:(.text+0x703): undefined reference to `blacs_gridinfo_'
rdiag.F:(.text+0x750): undefined reference to `numroc_'
rdiag.F:(.text+0x76b): undefined reference to `numroc_'
rdiag.F:(.text+0x7ba): undefined reference to `iceil_'
rdiag.F:(.text+0x825): undefined reference to `pjlaenv_'
rdiag.F:(.text+0x85b): undefined reference to `numroc_'
rdiag.F:(.text+0x941): undefined reference to `blacs_gridinfo_'
rdiag.F:(.text+0xbb4): undefined reference to `pdsygvx_'
rdiag.F:(.text+0xd2b): undefined reference to `pdgemr2d_'
rdiag.F:(.text+0xf18): undefined reference to `pdpotrf_'
rdiag.F:(.text+0x1034): undefined reference to `pdsyngst_'
rdiag.F:(.text+0x11b2): undefined reference to `pdsymm_'
rdiag.F:(.text+0x12c5): undefined reference to `pdgemm_'
rdiag.F:(.text+0x159c): undefined reference to `pdgemm_'
rdiag.F:(.text+0x18fc): undefined reference to `pdgemr2d_'
rdiag.F:(.text+0x196a): undefined reference to `pdgemr2d_'
rdiag.F:(.text+0x1b6b): undefined reference to `pdsygvx_'
rdiag.F:(.text+0x1dbf): undefined reference to `numroc_'
rdiag.F:(.text+0x1de8): undefined reference to `numroc_'
rdiag.F:(.text+0x1e3c): undefined reference to `descinit_'
rdiag.F:(.text+0x1fb4): undefined reference to `blacs_get_'
rdiag.F:(.text+0x1fd9): undefined reference to `blacs_gridinit_'
rdiag.F:(.text+0x205a): undefined reference to `pdpotrf_'
rdiag.F:(.text+0x2083): undefined reference to `blacs_get_'
rdiag.F:(.text+0x209e): undefined reference to `blacs_gridinit_'
rdiag.F:(.text+0x218a): undefined reference to `pdsyevd_'
rdiag.F:(.text+0x2224): undefined reference to `numroc_'
rdiag.F:(.text+0x223e): undefined reference to `numroc_'
rdiag.F:(.text+0x2287): undefined reference to `indxg2p_'
rdiag.F:(.text+0x22a7): undefined reference to `indxg2p_'
rdiag.F:(.text+0x22c9): undefined reference to `numroc_'
rdiag.F:(.text+0x22e6): undefined reference to `numroc_'
rdiag.F:(.text+0x2412): undefined reference to `pdtrsm_'
rdiag.F:(.text+0x24a9): undefined reference to `pdgemr2d_'
rdiag.F:(.text+0x25ce): undefined reference to `pdsyngst_'
rdiag.F:(.text+0x29f1): undefined reference to `pdsyevx_'
rdiag.F:(.text+0x2c9d): undefined reference to `pdtrsm_'
rdiag.F:(.text+0x2d60): undefined reference to `pdsyevd_'
rdiag.F:(.text+0x2ef6): undefined reference to `pdsyevx_'
rdiag.F:(.text+0x30ad): undefined reference to `pdsymm_'
rdiag.F:(.text+0x3172): undefined reference to `pdgemm_'
rdiag.F:(.text+0x3246): undefined reference to `pdgemm_'
collect2: ld returned 1 exit status
make: *** [siesta] Error 1


I am supposed to be using the libraries from SIESTA (my configure:
../Src/configure FC=mpif90 FCFLAGS=-O2 --enable-mpi --with-siesta-blas
--with-siesta-lapack). Any idea????

My arch.make:
---------------------------
#
# 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.
#
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=x86_64-unknown-linux-gnu--unknown

FPP=
FPP_OUTPUT=
FC=mpif90
RANLIB=ranlib

SYS=nag

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

FFLAGS=-O2
FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
LDFLAGS=

ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

BLAS_LIBS=
LAPACK_LIBS=
BLACS_LIBS=
SCALAPACK_LIBS=

COMP_LIBS=dc_lapack.a liblapack.a libblas.a

NETCDF_LIBS=
NETCDF_INTERFACE=

LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS)
$(NETCDF_LIBS)

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=.

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
.F90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<

----------------------------------------------------

Thanks a lot,
Enrique


On Thu, Jan 13, 2011 at 4:54 PM, Jan Sommer <jan.som...@s2008.tu-chemnitz.de
> wrote:

> Hi,
>
> I'm quite new to siesta too, but when I compiled it in parallel version, I
> used the --enable-mpi option with configure.
> It than ran some tests, if all libraries and compilers were working and
> stated errors or things I had to add manually in the arch.make-file.
> Dont know, if this helps.
>
> Regards,
>
>  Jan
>
>
>
> Am 14.01.2011, 00:49 Uhr, schrieb enrique martinez <enriquem...@gmail.com
> >:
>
>
>  Hi there,
>>
>> I am trying to compile version siesta-3.0-rc2 in parallel unsuccessfully.
>> In the Obj/ folder I am doing ../Src/obj_setup.sh and then I am running
>> ../Src/configure FC=mpif90 FCFLAGS=-O2 FPPFLAGS=-DMPI.
>> In the arch.make I get the MPI_INTERFACE is blank. If I do make as it is I
>> get the following error:
>>
>> ---------------------------------------
>> mpif90 -c -O2   `FoX/FoX-config --fcflags` -DMPI -DFC_HAVE_FLUSH
>> -DFC_HAVE_ABORT   /home/enrique/Codes/Siesta/siesta-3.0-rc2/Src/sys.F
>>  In file /home/enrique/Codes/Siesta/siesta-3.0-rc2/Src/sys.F:23
>>
>>      use mpi_siesta
>>                                                                       1
>> Fatal Error: Can't open module file 'mpi_siesta.mod' for reading at (1):
>> No
>> such file or directory
>> make: *** [sys.o] Error 1
>> --------------------------------------
>>
>> If I do MPI_INTERFACE=libmpi_f90.a the error is the following:
>>
>> -------------------------------------
>> make[1]: Entering directory
>> `/home/enrique/Codes/Siesta/siesta-3.0-rc2/Obj/MPI'
>> mpif90 -c -O2 -I
>> /home/enrique/Codes/Siesta/siesta-3.0-rc2/Src/MPI/mpi__include.f90
>> gfortran: no input files
>> make[1]: *** [mpi__include.o] Error 1
>> make[1]: Leaving directory
>> `/home/enrique/Codes/Siesta/siesta-3.0-rc2/Obj/MPI'
>> make: *** [libmpi_f90.a] Error 2
>> -------------------------------------
>>
>> If I add MPI_INCLUDE=/usr/lib/openmpi/1.4-gcc/include the error is:
>>
>> -------------------------------------
>> mpif90 -c -O2 -I/usr/lib/openmpi/1.4-gcc/include -DMPI -DFC_HAVE_FLUSH
>> -DFC_HAVE_ABORT   /home/enrique/Codes/Siesta/siesta-3.0-rc2/Src/MPI/mpi.F
>> Error: Can't open included file 'V_S.uses'
>> Error: Can't open included file 'VS.uses'
>> make[1]: *** [mpi.o] Error 1
>> make[1]: Leaving directory
>> `/home/enrique/Codes/Siesta/siesta-3.0-rc2/Obj/MPI'
>> make: *** [libmpi_f90.a] Error 2
>> ------------------------------------
>>
>> If I cp the arch.make into the ../Src folder and I go to the ../Src/MPI
>> folder and I type make, it compiles generating the libmpi_f90.a and then
>> if
>> I go to ../../Obj again and type make it compiles but it does not link,
>> being folder Obj/MPI empty but with the Makefile. The error is then:
>>
>> ----------------------------------
>>               dc_lapack.a liblapack.a libblas.a  `FoX/FoX-config --libs
>> --wcml`   dc_lapack.a liblapack.a libblas.a
>> gfortran: libmpi_f90.a: No such file or directory
>> make: *** [siesta] Error 1
>> ---------------------------------
>>
>> The arch.make file is the following:
>>
>> ------------------------------------
>> #
>> # 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.
>> #
>> .SUFFIXES:
>> .SUFFIXES: .f .F .o .a .f90 .F90
>>
>> SIESTA_ARCH=x86_64-unknown-linux-gnu--unknown
>>
>> FPP=
>> FPP_OUTPUT=
>> FC=mpif90
>> RANLIB=ranlib
>>
>> SYS=nag
>>
>> SP_KIND=4
>> DP_KIND=8
>> KINDS=$(SP_KIND) $(DP_KIND)
>>
>> FFLAGS=-O2
>> FPPFLAGS=-DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
>> LDFLAGS=
>>
>> ARFLAGS_EXTRA=
>>
>> FCFLAGS_fixed_f=
>> FCFLAGS_free_f90=
>> FPPFLAGS_fixed_F=
>> FPPFLAGS_free_F90=
>>
>> BLAS_LIBS=libblas.a
>> LAPACK_LIBS=dc_lapack.a liblapack.a
>> BLACS_LIBS=
>> SCALAPACK_LIBS=
>>
>> COMP_LIBS=dc_lapack.a liblapack.a libblas.a
>>
>> NETCDF_LIBS=
>> NETCDF_INTERFACE=
>>
>> LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS)
>> $(NETCDF_LIBS)
>>
>> #SIESTA needs an F90 interface to MPI
>> #This will give you SIESTA's own implementation
>> #If your compiler vendor offers an alternative, you may change
>> #to it here.
>> #MPI_INTERFACE=
>> #MPI_INCLUDE=
>> MPI_INTERFACE=libmpi_f90.a
>> MPI_INCLUDE=/usr/lib/openmpi/1.4-gcc/include
>>
>> #Dependency rules are created by autoconf according to whether
>> #discrete preprocessing is necessary or not.
>> .F.o:
>>    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
>> .F90.o:
>>    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
>> .f.o:
>>    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
>> .f90.o:
>>    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<
>>
>> -----------------------------------
>>
>> Any help is very welcome.
>> Thanks a lot,
>>
>> Enrique
>>
>

Responder a