[Pw_forum] Problem on compiling pwscf

JAY jameslipd at gmail.com
Wed Oct 21 13:45:30 CEST 2009


Dear Layla
Thank you for the reply. I tried to understand the makefile of pwscf, but
due to the lack of my knowledge, I am not able to find what should do. I
typed ./configure in the source directory, it reports that the Fortran 77
compiler cannot create executables. I will check what's wrong with the
Fortran compiler.

On Tue, Oct 20, 2009 at 10:47 PM, <marsamos at democritos.it> wrote:

> 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.
>
>


-- 
Sincerely

Jiaye
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20091021/169fa34a/attachment.html>


More information about the users mailing list