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" <sbeck...@iastate.edu> 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/siesta-l@listserv.uam.es/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
> sbeck...@iastate.edu
> 
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
> 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>
> 
> +++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++
> 
> 

Reply via email to