There is some problem with how PathScale handles the modules in
Src/MPI/mpi.F
If I replace:
USE MPI__INCLUDE ,
#ifdef OLD_CRAY
& DAT_single => MPI_real, &
& DAT_2single => MPI_2real, &
& DAT_double => MPI_real, &
& DAT_2double => MPI_2real, &
& DAT_complex => MPI_complex, &
& DAT_dcomplex => MPI_complex &
#else
& DAT_single => MPI_real, &
& DAT_2single => MPI_2real, &
& DAT_double => MPI_double_precision, &
& DAT_2double => MPI_2double_precision, &
& DAT_complex => MPI_complex, &
& DAT_dcomplex => MPI_double_complex &
#endif
With:
USE MPI__INCLUDE, ONLY : DAT_single => MPI_real,
& DAT_2single => MPI_2real,
& DAT_double => MPI_double_precision,
& DAT_2double => MPI_2double_precision,
& DAT_complex => MPI_complex,
& DAT_dcomplex => MPI_double_complex
USE MPI__INCLUDE
The modules and objects all compile correctly. Of course then the linking
doesn¹t work correctly due to: ³Unexpected references of formal parameter²
I¹m not at all familiar with the PathScale compiler (this is my first use of
it) There must be some reason that the line-wrap used above does not work,
but my F77 style does... However, I¹m confused by this because lower in
mpi.F the & XXXX & does appear to work as a line-wrap.
Is there a flag that I¹m missing?
On 7/1/09 9:14 AM, "Scott Beckman" <[email protected]> wrote:
> Hello,
>
> I¹m trying to compile Siesta 2.0.1 for parallel processing using MPI. My
> system is an AMD Opteron cluster with InfiniPath interconnects. The compiler
> is the PathScale compiler and I¹m using the ACML 3.0.0 libraries. The BLACS
> and scalapack libraries are installed and tested.
>
> When I try to compile Siesta I¹m given errors about redeclared attributes.
> (See below) I have also attached my arch.make file.
>
> This problem is identical to that posted June2007 by Eb Na (
> http://www.mail-archive.com/[email protected]/msg00844.html).
> Unfortunately there was never a response or follow-up to post the solution.
>
> I¹ve tried making changes to the mpi.F and other source files in an attempt to
> understand the origin of this problem, but have been unsuccessful. Any help
> or suggestions would be very welcome.
>
> Thank you for your time with this problem.
> Sincerely,
>
>
> Scott Beckman
>
> Assistant Professor
> Department of Material Science and Engineering
> Iowa State University
> [email protected]
>
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
> OUTPUT FROM COMPILE
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
>
> hpc4~/Software/SIESTA/siesta-2.0.1/Src>
> hpc4~/Software/SIESTA/siesta-2.0.1/Src> make
>
> Compilation architecture to be used: pathf90-2.0-mpi
> If this is not what you want, create the right
> arch.make file using the models in Sys
>
> Hit ^C to abort...
>
> ==> Incorporating information about present compilation (compiler and flags)
> make[1]: Entering directory `/home/sbeckman/Software/SIESTA/siesta-2.0.1/Src'
> f90 -c -DMPI -I/usr/include -L/usr/lib compinfo.F90
> make[1]: Leaving directory `/home/sbeckman/Software/SIESTA/siesta-2.0.1/Src'
> #...@rm -f compinfo.F90
>
> make[1]: Entering directory
> `/home/sbeckman/Software/SIESTA/siesta-2.0.1/Src/MPI'
> f90 -c -I/usr/include -DMPI -I/usr/include -L/usr/lib mpi.F
>
> MODULE MPI_SIESTA
> ^
> pathf95-855 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 1, Column = 14
> The compiler has detected errors in module "MPI_SIESTA". No module
> information file will be created for this module.
>
> & DAT_single => MPI_real, &
> ^
> pathf95-197 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 36, Column = 7
> Unexpected syntax: "ONLY or use-name" was expected but found " ".
>
> integer, parameter :: MPI_real = DAT_single
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 71, Column = 31
> "MPI_REAL" has been use associated, therefore it must not be redeclared with
> the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 71, Column = 55
> "DAT_SINGLE" is used in a constant expression, therefore it must be a
> constant.
>
> integer, parameter :: MPI_2real = DAT_2single
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 72, Column = 31
> "MPI_2REAL" has been use associated, therefore it must not be redeclared
> with the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 72, Column = 55
> "DAT_2SINGLE" is used in a constant expression, therefore it must be a
> constant.
>
> integer, parameter :: MPI_double_precision = DAT_double
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 73, Column = 31
> "MPI_DOUBLE_PRECISION" has been use associated, therefore it must not be
> redeclared with the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 73, Column = 55
> "DAT_DOUBLE" is used in a constant expression, therefore it must be a
> constant.
>
> integer, parameter :: MPI_2double_precision = DAT_2double
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 74, Column = 31
> "MPI_2DOUBLE_PRECISION" has been use associated, therefore it must not be
> redeclared with the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 74, Column = 55
> "DAT_2DOUBLE" is used in a constant expression, therefore it must be a
> constant.
>
> integer, parameter :: MPI_complex = DAT_complex
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 75, Column = 31
> "MPI_COMPLEX" has been use associated, therefore it must not be redeclared
> with the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 75, Column = 55
> "DAT_COMPLEX" is used in a constant expression, therefore it must be a
> constant.
>
> integer, parameter :: MPI_double_complex = DAT_dcomplex
> ^
> pathf95-922 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 76, Column = 31
> "MPI_DOUBLE_COMPLEX" has been use associated, therefore it must not be
> redeclared with the INTEGER(KIND=4) attribute.
> ^
> pathf95-868 f90: ERROR MPI_SIESTA, File = mpi.F, Line = 76, Column = 55
> "DAT_DCOMPLEX" is used in a constant expression, therefore it must be a
> constant.
>
> pathf95: PathScale(TM) Fortran Version 2.4 (f14) Wed Jul 1, 2009 09:04:05
> pathf95: 815 source lines
> pathf95: 14 Error(s), 0 Warning(s), 0 Other message(s), 0 ANSI(s)
> pathf95: "explain pathf95-message number" gives more information about each
> message
> make[1]: *** [mpi.o] Error 2
> make[1]: Leaving directory
> `/home/sbeckman/Software/SIESTA/siesta-2.0.1/Src/MPI'
> make: *** [libmpi_f90.a] Error 2
> hpc4~/Software/SIESTA/siesta-2.0.1/Src>
>
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
> MY arch.make FILE
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
>
> hpc4~/Software/SIESTA/siesta-2.0.1/Src> more 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-2006.
> #
> # Use of this software constitutes agreement with the full conditions
> # given in the SIESTA license, as signed by all legitimate users.
> #
> SIESTA_ARCH=pathf90-2.0-mpi
> #
> # For an opteron cluster with Pathscale compiler at UniCan -- parallel
> #
> #FC=/usr/bin/mpif90
> FC=f90
> FC_ASIS=$(FC)
> #
> #FFLAGS= -m64 -ipa -Ofast -Wl,-R/opt/pathscale3.2/lib/3.2/
> FFLAGS=
> #FFLAGS_DEBUG= -g
> FFLAGS_DEBUG=
> #LDFLAGS= -m64 -ipa -Ofast -lmpich
> LDFLAGS= -lmpich
> RANLIB=ranlib
> COMP_LIBS=
> #
> NETCDF_LIBS= # /usr/local/netcdf-3.5/lib/pgi/libnetcdf.a
> NETCDF_INTERFACE= # libnetcdf_f90.a
> DEFS_CDF= # -DCDF
> #
> KINDS=4 8
> #KINDS=8
> #SP_KIND=4
> #DP_KIND=8
>
> MPI_INTERFACE=libmpi_f90.a
>
> #MPI_INCLUDE=/opt/mpich.gcc/include
> MPI_INCLUDE=/usr/include
> #MPI_INCLUDE=
> MPI_LIBS=/usr/lib
> #MPI_LIBS=
> DEFS_MPI=-DMPI -I/usr/include -L/usr/lib
> #
> LIBS=/work/TG3/LIBS/scalapack-1.8.0/libscalapack.a
> /work/TG3/LIBS/BLACS/LIB/blacsF77init_MPI-LINUX-0.a
> /work/TG3/LIBS/BLACS/LIB/blacs_MPI-LINUX-0.a /work/TG3/LIBS/
> BLACS/LIB/blacsCinit_MPI-LINUX-0.a /opt/acml3.0.0/pathscale64/lib/libacml.a
>
> SYS=nag
> DEFS= $(DEFS_CDF) $(DEFS_MPI) # -DGRID_DP
> #
> .F.o:
> $(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $<
> .f.o:
> $(FC) -c $(FFLAGS) $(INCFLAGS) $<
> .F90.o:
> $(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $<
> .f90.o:
> $(FC) -c $(FFLAGS) $(INCFLAGS) $<
> hpc4~/Software/SIESTA/siesta-2.0.1/Src>
>
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
>
>