[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