[Pw_forum] Problem on compiling pwscf
marsamos at democritos.it
marsamos at democritos.it
Tue Oct 20 16:47:54 CEST 2009
Dear Jay, sometimes this time of error is related to the prepocessor.
Maybe try to uncomment the line related to prepocessor from make.sys
(and comment the older one).
# most fortran compilers can directly preprocess c-like directives: use
# $(MPIF90) $(F90FLAGS) -c $<
# if explicit preprocessing by the C preprocessor is needed, use:
# $(CPP) $(CPPFLAGS) $< -o $*.F90
# $(MPIF90) $(F90FLAGS) -c $*.F90 -o $*.o
# remember the tabulator in the first column !!!
bests
Layla
Quoting JAY <jameslipd at gmail.com>:
> Dear All
>
> I tried to compile pwscf-4.1.1 on my FC10. mpi-1.2.7, fc=pgf90, cc=pgcc,
> lapack-3.2.1(blas), fftw-3.2.2,
>
> When i type in make all, the problem is:
> if test -d iotk ; then \
> ( cd iotk ; if test "make" = "" ; then make TLDEPS= lib+util ; \
> else make TLDEPS= lib+util ; fi ) ; fi
> make[1]: Entering directory `/home/jy/espresso/espresso-4.1.1/iotk'
> cd src ; make lib+util
> make[2]: Entering directory `/home/jy/espresso/espresso-4.1.1/iotk/src'
> mpif90 -O2 -fast -r8 -Mfree -Mx,119,0x200000 -D__GFORTRAN -D__FFTW
> -I../include -I./ -I../Modules -I../iotk/src -I../PW -I../PH -I../EE
> -I../GIPAW -c iotk_base.f90
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 20)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 30)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 56)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 74)
> PGF90-S-0021-Label field of continuation line is not blank (iotk_base.spp:
> 72)
> PGF90-S-0087-Non-constant expression where constant expression required
> (iotk_base.spp: 73)
> PGF90-F-0008-Error limit exceeded (iotk_base.spp: 73)
> PGF90/x86-64 Linux 7.0-5: compilation aborted
> make[2]: *** [iotk_base.o] Error 2
> make[2]: Leaving directory `/home/jy/espresso/espresso-4.1.1/iotk/src'
> make[1]: *** [lib+util] Error 2
> make[1]: Leaving directory `/home/jy/espresso/espresso-4.1.1/iotk'
> make: *** [libiotk] Error 2
>
>
> and my make.sys is:
> # make.sys. Generated from make.sys.in by configure.
>
> # compilation rules
>
> .SUFFIXES :
> .SUFFIXES : .o .c .f .f90
>
> # most fortran compilers can directly preprocess c-like directives: use
> # $(MPIF90) $(F90FLAGS) -c $<
> # if explicit preprocessing by the C preprocessor is needed, use:
> # $(CPP) $(CPPFLAGS) $< -o $*.F90
> # $(MPIF90) $(F90FLAGS) -c $*.F90 -o $*.o
> # remember the tabulator in the first column !!!
>
> .f90.o:
> $(MPIF90) $(F90FLAGS) -c $<
>
> # .f.o and .c.o: do not modify
>
> .f.o:
> $(F77) $(FFLAGS) -c $<
>
> .c.o:
> $(CC) $(CFLAGS) -c $<
>
>
> # DFLAGS = precompilation options (possible arguments to -D and -U)
> # used by the C compiler and preprocessor
> # FDFLAGS = as DFLAGS, for the f90 compiler
> # See include/defs.h.README for a list of options and their meaning
> # With the exception of IBM xlf, FDFLAGS = $(DFLAGS)
> # For IBM xlf, FDFLAGS is the same as DFLAGS with separating commas
>
> DFLAGS = -D__GFORTRAN -D__FFTW
> FDFLAGS = $(DFLAGS)
>
> # IFLAGS = how to locate directories where files to be included are
> # In most cases, IFLAGS = -I../include
>
> IFLAGS = -I../include
>
> # MODFLAGS = flag used by f90 compiler to locate modules
> # You need to search for modules in ./, in ../iotk/src, in ../Modules
> # Some applications also need modules in ../PW and ../PH
>
> MODFLAGS = -I./ -I../Modules -I../iotk/src \
> -I../PW -I../PH -I../EE -I../GIPAW
>
> # Compilers: fortran-90, fortran-77, C
> # If a parallel compilation is desired, MPIF90 should be a fortran-90
> # compiler that produces executables for parallel execution using MPI
> # (such as for instance mpif90, mpf90, mpxlf90,...);
> # otherwise, an ordinary fortran-90 compiler (f90, g95, xlf90, ifort,...)
> # If you have a parallel machine but no suitable candidate for MPIF90,
> # try to specify the directory containing "mpif.h" in IFLAGS
> # and to specify the location of MPI libraries in MPI_LIBS
>
> MPIF90 = mpif90
> #F90 = gfortran
> CC = pgcc
> F77 = pgf77
>
> # C preprocessor and preprocessing flags - for explicit preprocessing,
> # if needed (see the compilation rules above)
> # preprocessing flags must include DFLAGS and IFLAGS
>
> CPP = cpp
> CPPFLAGS = -P -traditional $(DFLAGS) $(IFLAGS)
>
> # compiler flags: C, F90, F77
> # C flags must include DFLAGS and IFLAGS
> # F90 flags must include MODFLAGS, IFLAGS, and FDFLAGS with appropriate
> syntax
>
> CFLAGS = -O3 $(DFLAGS) $(IFLAGS)
> #F90FLAGS = $(FFLAGS) $(FDFLAGS) $(IFLAGS) $(MODFLAGS)
> F90FLAGS = $(FFLAGS) -Mfree -Mx,119,0x200000 $(FDFLAGS) $(IFLAGS)
> $(MODFLAGS)
> #F90FLAGS = $(FFLAGS) -x f95-cpp-input $(FDFLAGS) $(IFLAGS)
> $(MODFLAGS)
> #FFLAGS = -O3
> FFLAGS = -O2 -fast -r8
>
> # compiler flags without optimization for fortran-77
> # the latter is NEEDED to properly compile dlamch.f, used by lapack
>
> FFLAGS_NOOPT = -O0 -Mx,119,0x200000
> #FFLAGS_NOOPT = -O0
>
> # Linker, linker-specific flags (if any)
> # Typically LD coincides with F90 or MPIF90, LD_LIBS is empty
>
> LD = mpif90
> LDFLAGS =
> LD_LIBS =
>
> # External Libraries (if any) : blas, lapack, fft, MPI
>
> # If you have nothing better, use the local copy : ../flib/blas.a
>
> #BLAS_LIBS =/home/jy/espresso/lapack-3.2.1
> BLAS_LIBS = /home/jy/espresso/libs/libfftw3.a
>
> # The following lapack libraries will be available in flib/ :
> # ../flib/lapack.a : contains all needed routines
> # ../flib/lapack_atlas.a: only routines not present in the Atlas library
> # For IBM machines with essl (-D__ESSL): load essl BEFORE lapack !
> # remember that LAPACK_LIBS precedes BLAS_LIBS in loading order
>
> LAPACK_LIBS = /home/jy/espresso/lapack-3.2.1/lapack_LINUX.a
>
> # nothing needed here if the the internal copy of FFTW is compiled
> # (needs -D__FFTW in DFLAGS)
>
> #FFT_LIBS =/home/jy/espresso/fftw-3.2.2/lib
> FFT_LIBS = /home/jy/espresso/libs/libfftw3.a
>
> # For parallel execution, the correct path to MPI libraries must
> # be specified in MPI_LIBS (except for IBM if you use mpxlf)
>
> MPI_LIBS =/opt/mpich-1.2.5.2/lib -lmpich
> #MPI_LIBS = /opt/mpich1.2.5.2/lib/libpmpich.a -lmpich
>
> IBM-specific: MASS libraries, if available and if -D__MASS is defined in
> FDFLAGS
>
> MASS_LIBS =
>
> # pgplot libraries (used by some post-processing tools)
>
> PGPLOT_LIBS =
>
> # ar command and flags - for most architectures: AR = ar, ARFLAGS = ruv
> # ARFLAGS_DYNAMIC is used in iotk to produce a dynamical library,
> # for Mac OS-X with PowerPC and xlf compiler. In all other cases
> # ARFLAGS_DYNAMIC = $(ARFLAGS)
>
> AR = ar
> ARFLAGS = ruv
> ARFLAGS_DYNAMIC= ruv
>
> # ranlib command. If ranlib is not needed (it isn't in most cases) use
> # RANLIB = echo
>
> RANLIB = ranlib
>
> # all internal and external libraries - do not modify
>
> LIBOBJS = ../flib/ptools.a ../flib/flib.a ../clib/clib.a
> ../iotk/src/libiotk.a ../Multigrid/mglib.a
> LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FFT_LIBS) $(MPI_LIBS)
> $(MASS_LIBS) $(PGPLOT_LIBS) $(LD_LIBS)
>
>
> Could anybody help me? Thank you in advance.
>
> By the way, how to choose 'F90FLAGS'?
>
>
>
> --
> Sincerely
>
> Jiaye
>
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the Pw_forum
mailing list