[CPMD-list] compilation

Zak b.zarychta at phys.keele.ac.uk
Sat Jan 18 17:21:24 CET 2003


Hi there,

i am fairly inexperienced in the configueation and compilation of large 
programs. However following the advice of recent e-mails i am endevouring to 
make the cpmd code for intel pentium III using ifc. Attached are the 
Configure, Makefile and errors that I have encountered. Any help would be 
greatly appreciated.

Zak

#!/bin/sh

#--------------------------------------------------------------------#
#Create Makefile for cpmd.x program.                                 #
#--------------------------------------------------------------------#
# Options for CPPFLAG                                                #
#  -DLAPACK  Use LAPACK routine, you must have this option and       #
#            the LAPACK library                                      #
#  -DFFT_DEFAULT Use default FFT routine in the code (from Goedecker)#
#  -DFFT_ESSL    Use FFT ESSL (need ESSL library)                    #
#  -DFFT_HP      Use FFT HP (Hewlet-Packard)                         #
#  -DFFT_YMP     Use CRAY YMP, C94, T90 FFT routines                 #
#  -DFFT_T3D     Use CRAY T3D or T3E FFT routines                    #
#  -DPARALLEL    For PARALLEL computers, you have to indicate        #
#                the parallel library with :                         #
#  -DMP_LIBRARY=__MPI   Message Passing Interface library            #
#            or __SHMEM SHMEM library (CRAY)                         #
#            or __MPL                                                #
#  -D__VECTOR    For vectorial computers                             #
#  -DPOINTER8    If the addresses are coded in INTEGER*8             #
#                (for LOC and MALLOC)                                #
#  -DMALLOC8     If the argument of MALLOC is INTEGER*8              #
#  -D__NOINT8    If the compiler does not use INTEGER*8 or           #
#                if the function BTEST and IBTEST do not like it     #
#  -DJOBLIMIT    For batch job, try to know the remaining time       #
#                (For CRAY only)                                     #
#--------------------------------------------------------------------#
#Create Makefile for cpmd.x program.

#Display all configurations
Message () {
cat << END >&2
Configure  [options] Name_of_Configuration
where the name of the configuration is:
   IBM-RISC                   IBM-SP2
   IBM-SP3                    IBM-SP3-SMP
   IBM-270                    CRAY-YMP
   CRAY-C94                   CRAY-T90
   CRAY-T3D                   CRAY-T3E
   CRAY-T3E-PACX              SGI-ORIGIN
   SGI-ORIGIN-MPI             DEC-ALPHA
   DEC-ALPHA-MPI              COMPAQ-SC80
   SUN                        NEC-SX4
   NEC-SX5                    NEC-SX5-MPI
   HP                         HP-MPI 
   HITACHI-SR2201             HITACHI-SR8000
   FUJITSU-VPP5000            FUJITSU-VPP
   FUJITSU-VPP-MPI            FUJITSU-VPP-JPN
   FUJITSU-VPP-MPJP           PC-ABSOFT
   PC-PGI                     PC-PGI-MPI
   PC-IFC                     ITANIUM-EFC
   LINUX-ALPHA                LINUX-ALPHA-MPI
Use Configure in the directory where the SOURCE FILES are.
Ex: Configure SUN > Makefile
See the description of options with Configure -help
END
}


#Help
Help () {
Message
cat << END >&2

Description of options:
   -debug    (-d) Give special options for debugging
   -help     (-h) Print this message
   -makefile (-m) Create the file Makefile in DEST directory
                  instead of using standard output
   -verbose  (-v) Display the name of files for the dependencies
   -qmmm          Generates a makefile for QMMM 
   -VAR=value     Use the value of VAR in the makefile
            Ex: -DEST=destdir specifies where the compilation will be
   You can use:
     FFLAGS   Fortran flags
     LFLAGS   Link editor flags
     CFLAGS   C compiler flags
     CPP      Preprocessor program
     CPPFLAGS CPP flags
     FC       Fortran compiler
     LD       Link editor
     AR       Archive library maintainer
     RANLIB   Converts archives to random libraries
     SRC      Source files directory (default=.)
     DEST     Object files directory (default=.)
              Use to write irat.inc in the right directory
     BIN      Use to put the cpmd.x executable (default=.)
Note: if you want to compile cpmd.x in a different directory
      than the source files, use:
         Configure -DEST=destdir SUN > destdir/Makefile
      or Configure -makefile -DEST=destdir SUN
      and then cd destdir; make
      In this case, SRC is equal to source_dir_pathname
      except if you specify SRC.
END
}

#No argument: Error
if [ $# -eq 0 ]; then
  Message
 exit 2
fi

#Is it help option or debug option
opt=0
i=1
while [ $i -le $# ];
do
  #Select the i-th argument
  eval option=\$$i
  case $option in
    -qmmm|-q)
      qmmm=1
      ;;
    -debug|-d)
      debug=1
      ;;
    -help|-h)
      Help
      exit 0
      ;;
    -makefile|-m)
      makefile=1
      ;;
    -verbose|-v)
      verbose=1
      ;;
    -DEST=*)
      opt=1
      DEST=`echo $option | cut -c2- | cut -d= -f 2`
      ;;
    -*=*)
      opt=1
      ;;
    -*)
      echo "Unknow option: $option" >&2
      Message
      exit 1
      ;;
    *)
      Configuration=$option
      ;;
  esac
  i=`expr $i + 1`
done

#No configuration given
if [ -z "$Configuration" ]; then
  echo "Configure: No configuration name" >&2
  Message
  exit 2
fi

#--------------------------------------------------------------------#
#Configurations                                                      #
#--------------------------------------------------------------------#

CC='cc'
CPPFLAGS_GROMOS='-DEWALD -DEWATCUT -DHAT_SHAPE -UNPACKED_GRID'
AWK='awk'

case ${Configuration}
  in
  "IBM-RISC")
     IRAT=2
     FFLAGS='-qmaxmem=8192'
     FFLAGS_GROMOS='-O3 -c -qarch=auto -qdpc'
     LFLAGS='-llapack -lessl -bbinder:/usr/lib/bind -bmaxdata:1024000000'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__IBM -DLAPACK -DFFT_ESSL'
     AR='/usr/bin/ar -c'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       #-C Performs run-time checking of array bounds and character
       #   substring expressions
       CFLAGS='-g'
       FC='xlf -c -g -C -qflttrap'
       LD='xlf -g -C -qflttrap'
     else
       CFLAGS='-O'
       FC='xlf -c -O'
       LD='xlf -O'
     fi
     ;;

  "IBM-270")
     IRAT=2
     FFLAGS='-O3 -qstrict -qxlf77=leadzero -qmaxmem=32768 -qarch=pwr3'
     FFLAGS_GROMOS='-c -O3 -qarch=pwr3 -qdpc'
     LFLAGS='-L/usr/local/lapack -llapack_pwr3 -lesslsmp -llapack_pwr3 \
             -bbinder:/usr/lib/bind -bmaxdata:2048000000 -qarch=pwr3'
     CFLAGS='-O3 -qstrict -qarch=pwr3 '
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__IBM -DLAPACK   -DFFT_ESSL'
     AR='/usr/bin/ar'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       CFLAGS='-g'
       FC='xlf_r -c -g'
       LD='xlf_r -g'
     else
       CFLAGS='-O3 -qstrict -qarch=pwr3'
       FC='xlf_r -c -O3 -qstrict'
       LD='xlf_r  -O3 -qstrict'
     fi
     ;;

  "IBM-SP2")
     IRAT=2
     FFLAGS='-qmaxmem=8192 -qarch=pwr2' 
     FFLAGS_GROMOS='-c -O3 -qarch=pwr2 -qdpc'
     LFLAGS='-llapack -lessl -bbinder:/usr/lib/bind -bmaxdata:1024000000'
     CFLAGS=''
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__IBM -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI -DFFT_ESSL'
     AR='/usr/bin/ar'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       CFLAGS='-g'
       FC='mpxlf -c -g'
       LD='mpxlf -g'
     else
       CFLAGS='-O'
       FC='mpxlf -c -O'
       LD='mpxlf -O'
     fi
     ;;

  "IBM-SP3")
     IRAT=2
     FFLAGS='-O3 -qstrict -qxlf77=leadzero -qmaxmem=32768 -qarch=pwr3'
     FFLAGS_GROMOS='-c -O3 -qarch=pwr3 -qdpc'
     LFLAGS='-L/usr/local/lapack -llapack_pwr3 -lessl -llapack_pwr3 \
             -bbinder:/usr/lib/bind -bmaxdata:2048000000 -qarch=pwr3'
     CFLAGS='-O3 -qstrict -qarch=pwr3 '
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__IBM -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI -DFFT_ESSL'
     AR='/usr/bin/ar'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       CFLAGS='-g'
       FC='mpxlf -c -g'
       LD='mpxlf -g'
     else
       CFLAGS='-O3 -qstrict -qarch=pwr3'
       FC='mpxlf -c -O3 -qstrict'
       LD='mpxlf -O3 -qstrict'
     fi
     ;;

  "IBM-SP3-SMP")
     IRAT=2
     FFLAGS='-O3 -qstrict -qxlf77=leadzero -qmaxmem=32768 -qarch=pwr3'
     FFLAGS_GROMOS='-c -O3 -qarch=pwr3 -qdpc'
     LFLAGS='-L/usr/local/lapack -llapack_pwr3 -lesslsmp -llapack_pwr3 \
             -bbinder:/usr/lib/bind -bmaxdata:2048000000 -qarch=pwr3'
     CFLAGS='-O3 -qstrict -qarch=pwr3 '
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__IBM -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI -DFFT_ESSL'
     AR='/usr/bin/ar'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       CFLAGS='-g'
       FC='mpxlf_r -c -g'
       LD='mpxlf_r -g'
     else
       CFLAGS='-O3 -qstrict -qarch=pwr3'
       FC='mpxlf_r -c -O3 -qstrict'
       LD='mpxlf_r -O3 -qstrict'
     fi
     ;;

  "CRAY-YMP" | "CRAY-T90")
     IRAT=1
     FFLAGS='-dp'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS=''
     CFLAGS=''
     CPP='/lib/cpp -PC'
     CPPFLAGS='-DCRAY -DYMP -D__VECTOR -DLAPACK -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'  
     AR='/bin/ar -r'
     RANLIB='/opt/ctl/bin/ranlib'
     if [ $debug ]; then
       CFLAGS='-g'
       FC='cf77 -Zp -c -g'
       LD='cf77 -g'
     else
       CFLAGS='-O'
       FC='cf77 -Zp -c -O 2'
       LD='cf77 -O 2'
     fi
     ;;

  "CRAY-C94")
     IRAT=1
     FFLAGS='-c -dp'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS=''
     CPP='cpp -PC'
     CPPFLAGS='-DCRAY -D__YMP -D__VECTOR -DLAPACK -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     AR='/bin/ar -r'
     RANLIB='/opt/ctl/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -R abcn'
       LD='f90 -g -R abcn'
       CC='cc -g'
     else
       FC='f90 -O 3'
       LD='f90 -O 3'
       CC='cc -O 3'
     fi
     ;;

  "CRAY-T3D")
     IRAT=1
     #In Edinburg Cray T3D
     CRAYLIBS_T3D='/opt/ctl/craylibs_m/2.0.0.0'
     FFLAGS='-X 4 -G1 \
      -c -dp -I $(CRAYLIBS_T3D)/include/mpp/mpp -I /usr/include/mpp'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-Wl"-Xm" -lmpi'
     CFLAGS=' $(CPPFLAGS)'
     CPP='/opt/ctl/bin/cpp -PC'
     CPPFLAGS='-DCRAY -DT3D -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI \
      -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     AR='/bin/ar -r'
     RANLIB='/opt/ctl/bin/ranlib'
     if [ $debug ]; then
       FC='/opt/ctl/bin/f90 -G1 -g'
       LD='/opt/ctl/bin/f90 -g'
       CC='/opt/ctl/bin/cc -g' 
     else
       FC='/opt/ctl/bin/f90 -G1 -O 3'
       LD='/opt/ctl/bin/f90 -O 3'
       CC='/opt/ctl/bin/cc -O 3' 
     fi
     ;;

  "CRAY-T3E")
     IRAT=1
     FFLAGS='-c -dp'
     FFLAGS_GROMOS='-c -dp -O3 '
     LFLAGS='-Wl"-Xm -L/usr/local/lib -lmpi"'
     CPP='cpp -P -C'
     if [ $qmmm ]; then
     CPPFLAGS='-DCRAY -DT3E -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI \
      -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     else
     CPPFLAGS='-DCRAY -DT3E -DLAPACK -DPARALLEL -DMP_LIBRARY=__SHMEM \
      -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     fi
     CFLAGS=' $(CPPFLAGS)'
     CPPFLAGS_GROMOS='-DEWALD -DEWATCUT -DHAT_SHAPE -UNPACKED_GRID -DCRAY_FFT' 
     AR='/bin/ar -r'
     RANLIB='/opt/ctl/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -R abcn'
       LD='f90 -g -R abcn'
       CC='cc -g'
     else
       FC='f90 -O 3'
       LD='f90 -O 3'
       CC='cc -O 3'
     fi
     ;;

  "CRAY-T3E-PACX")
     IRAT=1
     PACX_PATH=/usr/local/pacx
     FFLAGS='-c -dp -I${PACX_PATH}/include'
     LFLAGS='-Wl"-Xm -L ${PACX_PATH}/lib -lpacxf -lpacx"'
     CPP='cpp -P -C'
     CPPFLAGS='-DCRAY -DT3E -DLAPACK -DPARALLEL -DMP_LIBRARY=__MPI \
      -DFFT_DEFAULT \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     CFLAGS=' $(CPPFLAGS)'
     AR='/bin/ar -r'
     RANLIB='/opt/ctl/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -R abcn'
       LD='f90 -g -R abcn'
       CC='cc -g'
     else
       FC='f90 -O 3'
       LD='f90 -O 3'
       CC='cc -O 3'
     fi
     ;;

  "SGI-ORIGIN")
     IRAT=2
     FFLAGS='-O3 -nocpp -r8'
     FFLAGS_GROMOS='-Dgood_luck'
     CFLAGS='-D__SGI -mips4 -64'
     LFLAGS='-lcomplib.sgimath -lblas'
     CPP='/usr/lib/acpp -E -P'
     CPPFLAGS='-D__SGI -DPOINTER8 -D__DERF -DFFT_DEFAULT -DLAPACK'
     if [ $debug ]; then
       FC='f90 -mips4 -64 -c -g'
       LD='f90 -mips4 -64 -g'
     else
       CC='cc -O3 -c'
       FC='f90 -mips4 -64 -c'
       LD='f90 -mips4 -64'
     fi
     ;;

  "SGI-ORIGIN-MPI")
     IRAT=2
     FFLAGS='-O3 -nocpp -r8'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-lcomplib.sgimath -lblas -lmpi'
     CFLAGS='-D__SGI -mips4 -64'
     CPP='/usr/lib/acpp -E -P'
     CPPFLAGS='-D__SGI -DFFT_DEFAULT -DLAPACK -DPOINTER8 -DPARALLEL \
      -DMP_LIBRARY=__MPI'
     AR='ar'
     RANLIB='echo'
     if [ $debug ]; then
       FC='f90 -mips4 -64 -c -g'
       LD='f90 -mips4 -64 -g'
     else
       FC='f90 -mips4 -64 -c'
       LD='f90 -mips4 -64'
     fi
     ;;


  "DEC-ALPHA")
     IRAT=2
     CFLAGS='-D__alpha'
     CPP='cpp -P'
     CPPFLAGS='-C -D__alpha -DPOINTER8 -D__DERF -DLAPACK -DFFT_DEFAULT'
     FFLAGS='-align dcommons -convert big_endian'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-ldxml'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c -V -ladebug -check bounds -check overflow -check power'
       CC='cc -c -g'
       LD='f90 -g -ladebug'
     else
       FC='f90 -O -c'
       CC='cc -c -O'
       LD='f90 -O'
     fi
     ;;

  "LINUX-ALPHA")
     IRAT=2
     CFLAGS='-D__alpha'
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__alpha -DPOINTER8 -D__DERF -DLAPACK -DFFT_DEFAULT 
-DALPHALINUX \
        -DMYRINET'
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-lcxml'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='fort -g -c '
       CC='cc -c -g'
       LD='fort -g '
     else
       FC='fort -fast -arch host -c '
       CC='cc -c -O'
       LD='fort -fast -arch host '
     fi
     ;;

  "LINUX-ALPHA-MPI")
     IRAT=2
     CFLAGS='-D__alpha'
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__alpha -DPOINTER8 -D__DERF -DLAPACK -DFFT_DEFAULT 
-DALPHALINUX \
        -DPARALLEL -DMP_LIBRARY=__MPI -DMYRINET'
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-lcxml'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='mpif77 -g -c '
       CC='mpicc -c -g'
       LD='mpif77 -g '
     else
       FC='mpif77 -fast -arch host -c '
       CC='mpicc -c -O'
       LD='mpif77 -fast -arch host '
     fi
     ;;

  "DEC-ALPHA-MPI")
     IRAT=2
     CFLAGS='-D__alpha -I/usr/opt/MPI130/include'
     CPP='cpp -P'
     CPPFLAGS='-C -D__alpha -DPOINTER8 -D__DERF -DLAPACK -DFFT_DEFAULT \
      -DPARALLEL -DMP_LIBRARY=__MPI'
     FFLAGS='-align dcommons -convert big_endian -I/usr/opt/MPI130/include'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-ldxml -lfmpi -lmpi -lrt -pthread'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c -V -ladebug -check bounds -check overflow -check power'
       CC='cc -c -g'
       LD='f90 -g -ladebug'
     else
       FC='f90 -O -c'
       CC='cc -c -O'
       LD='f90 -O'
     fi
     ;;

  "COMPAQ-SC80")
     IRAT=2
     CFLAGS='-D__alpha'
     CPP='cpp -P'
     CPPFLAGS='-C -D__alpha -DPOINTER8 -D__DERF -DLAPACK -DFFT_DEFAULT \
      -DPARALLEL -DMP_LIBRARY=__MPI'
     FFLAGS='-align dcommons -convert big_endian'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-ldxml -lmpi -lelan -lelan3'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c -V -ladebug -check bounds -check overflow -check power'
       CC='cc -c -g'
       LD='f90 -g -ladebug'
     else
       FC='f90 -O -arch ev6 -tune ev6 -c'
       CC='cc -c -O'
       LD='f90 -O'
     fi
     ;;

  "HP")
     IRAT=2
     CFLAGS='-D__HP'
     CPP='/usr/ccs/lbin/cpp'
     CPPFLAGS=-D__HP -DFFT_HP -DLAPACK -D_PSTAT64
     FFLAGS='+O3 +Odataprefetch +Onolimit +DA2.0 +DS2.0 +U77 \
             +externals=equiv_file'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L /opt/mlib/lib/pa2.0 -lveclib -llapack +O3 +Oparallel -lm +U77'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c'
       CC='cc -c -g'
       LD='f90 -g'
     else
       FC='f90 -c'
       CC='cc -c -O'
       LD='f90'
     fi
     ;;

  "HP-MPI")
     IRAT=2
     CFLAGS='-D__HP'
     CPP='/usr/ccs/lbin/cpp'
     CPPFLAGS='-E -P -D__HP -DFFT_DEFAULT -DLAPACK -DPARALLEL \
               -DMP_LIBRARY=__MPI'
     CPPFLAGS='-D__HP -DFFT_HP -DLAPACK -DPARALLEL \
               -DMP_LIBRARY=__MPI -D_PSTAT64'
     FFLAGS='+O3 +Odataprefetch +Onolimit +DA2.0 +DS2.0 +U77 \
             +externals=equiv_file -I /opt/mpi/include'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L /opt/mlib/lib/pa2.0 -lveclib -llapack +O3 +Oparallel \
             -lm +U77 -L /opt/mpi/lib/pa1.1 -lmpi'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c'
       CC='cc -c -g'
       LD='f90 -g'
     else
       FC='f90 -c'
       CC='cc -c -O'
       LD='f90'
     fi
     ;;

  "HITACHI-SR2201")
     IRAT=2
     CFLAGS='-D__SR2201'
     CPP='cpp -PC'
     CPPFLAGS='-D__SR2201 -D__NOINT8 -DPARALLEL -D__VECTOR \
               -DFFT_DEFAULT -DLAPACK -DMP_LIBRARY=__MPI'
     FFLAGS='-c -W0,"LANGLVL(INTPTR(1),CONTI199(1)),OPT(O(S)),PVEC" \
             -I/usr/local/mpi/include'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L/usr/local/lib -L/usr/local/BLAS -L/usr/local/mpi/lib \
             -llapack -lblas -lfmpi -lmpi -lf77c'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c'
       CC='cc -c -g'
       LD='f90 -g'
     else
       FC='f90 -c'
       CC='cc -c -O'
       LD='f90'
     fi
     ;;


  "HITACHI-SR8000")
     IRAT=2
     CFLAGS='-64 -D__SR8000'
     CPP='cpp -PC'
     CPPFLAGS='-D__SR8000 -DPOINTER8 -D__NOINT8 -DPARALLEL -D__VECTOR \
               -DFFT_DEFAULT -DLAPACK -DMP_LIBRARY=__MPI -DMALLOC8'
     FFLAGS='\
        -W0,"opt(o(ss),scope(0)),mp(procnum(8)),opt(split(0),rapidcall(0))" \
        -W0,"pvec(pvfunc(0)),list(e(4)),langlvl(intptr(1),conti199(1))" \
        -nolimit -64 -I/usr/mpi/include'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-parallel -64 +BTLB -L/usr/lib/LAPACK/lib64 -L/usr/lib/BLAS/lib64 
\
             -L/usr/mpi/lib/lib64 -llapack -lblas -lfmpi -lmpi -lf90c'
     AR='/usr/bin/ar -r'
     RANLIB='/usr/bin/ranlib'
     if [ $debug ]; then
       FC='f90 -g -c'
       CC='cc -c -g'
       LD='f90 -g'
     else
       FC='mpif90 -c -i,P'
       CC='mpicc -c -O'
       LD='mpif90'
     fi
     ;;


  "SUN")
     IRAT=2
     CFLAGS=''
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS=`printf "-D__SUN -DLAPACK -DFFT_DEFAULT \134\\\n\t\
      -D__DATE__=\"'\\\`date '+%%b %%e %%Y'\\\`'\" \134\\\n\t\
      -D__TIME__=\"'\\\`date '+%%b %%e %%Y'\\\`'\" "`
     #-sb is to use Workshop package
     FFLAGS='-dalign -fnonstd'
     FFLAGS_GROMOS='-Dgood_luck'
     AR='/usr/ccs/bin/ar'
     RANLIB='/usr/ccs/bin/ranlib'
     if [ $debug ]; then
       FC='f77 -c -g -sb'
       LFLAGS='-xlic_lib=sunperf'
       CC='cc -g -sb -C -errtags'
       LD='f77 -dalign -fnonstd -g -sb'
     else
       FC='f77 -c -O4 -cg92 -native -w'
       LFLAGS='-xlibmopt -xlic_lib=sunperf'
       CC='cc -O'
       LD='f77 -dalign -fnonstd -O4'
     fi
     ;;

 "NEC-SX4_obsolete")
     IRAT=1
     FFLAGS='-float2 -pvctl loopcnt=9999999'
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-l-llapack2 -l-lblas2'
     CPP='/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR \
      -DDGEMM=SGEMM   -DDAXPY=SAXPY   -DDASUM=SASUM   -DDSCAL=SSCAL   \
      -DDDOT=SDOT     -DDCOPY=SCOPY   -DDGEMV=SGEMV   -DIDAMAX=ISAMAX \
      -DDERF=ERF      -DDERFC=ERFC    -DDROT=SROT     -DDGER=SGER     \
      -DIDMIN=ISMIN   -DDGELSS=SGELSS -DDGESV=SGESV   -DDGETRF=SGETRF \
      -DDGETRI=SGETRI -DDSPEV=SSPEV   -DDSYGV=SSYGV   -DIDAMIN=ISAMIN \
      -DDSWAP=SSWAP   -DDSYRK=SSYRK   -DDNRM2=SNRM2   -DZSCAL=CSCAL   \
      -DZAXPY=CAXPY   -DZDOTC=CDOTC   -DZGEMV=CGEMV   -DZGEMM=CGEMM   \
      -DZHEGV=CHEGV   -DZHEEV=CHEEV   -DDZNRM2=SCNRM2 -DDPOTRF=SPOTRF \
      -DDTRTRI=STRTRI -DDTRMM=STRMM   -DZHERK=CHERK   -DZPOTRF=CPOTRF \
      -DZTRTRI=CTRTRI -DZTRMM=CTRMM   -DIMAG=AIMAG    -DZCOPY=CCOPY   \
      -DDSYEV=SSYEV   -DZGETRF=CGETRF -DDSYEVX=SSYEVX -DDSBEVX=SSBEVX \
      -DZHEEVX=CHEEVX -DZHBEVX=CHBEVX -DZGETRI=CGETRI -DDSTEV=SSTEV   \
      -DZGEEV=CGEEV   -DDSYMM=SSYMM   -DDPOSV=SPOSV   -DDSYR=SSYR     \
      -DZHPEV=CHPEV   -DDGEEV=SGEEV   -DSYSV=SSYSV'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       FC='f77sx -c'
       LD='f77sx'
     fi
     ;;

 "NEC-SX4")
      IRAT=1
     FFLAGS_GROMOS='-Dgood_luck'
     FFLAGS='-sx4 -ew -float0 -f0 -Pstatic \
              -V -R5 -Cvopt -pi expin=util.f \
              -I /sx5/usr/include \
              -Wf"-pvctl noassume loopcnt=99999999 fullmsg vr256 \
              vwork=static vworksz=4M novlchk noverrchk"'
     LFLAGS='$(FFLAGS) -Wl"-h lib_cyclic -h muldefs" -L/apps/mathkeisan/lib 
-llapack_64 -lblas_64'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR'
     AR='sxar'
     RANLIB='touch'
     AWK='/usr/xpg4/bin/awk'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       CC='sxcc -clear'
       FC='sxf90 -clear -c'
       LD='sxf90 -clear'
     fi
     ;;

 "NEC-SX5_obsolete")
     IRAT=1
     FFLAGS_GROMOS='-Dgood_luck'
     FFLAGS='-sx5 -ew -float0 -f0 -Pstack \
              -V -R5 -Cvopt \
              -I /sx5/usr/include \
              -Wf"-pvctl noassume loopcnt=99999999 fullmsg vr256 \
              vwork=stack vworksz=100M novlchk noverrchk"'
     LFLAGS='$(FFLAGS) -L/sx5/usr/local/mpack/lib -llapack_64 -lblas_64'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR'
     AR='ar'
     RANLIB='ranlib'
     AWK='/usr/xpg4/bin/awk'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       CC='sxcc'
       FC='sxf90 -c'
       LD='sxf90'
     fi
     ;;

 "NEC-SX5-MPI_obsolete")
     IRAT=1
     FFLAGS_GROMOS='-Dgood_luck'
     FFLAGS='-sx5 -ew -float0 -f0 -Pstack \
              -V -R5 -Cvopt \
              -I /sx5/usr/include \
              -Wf"-pvctl noassume loopcnt=99999999 fullmsg vr256 \
              vwork=stack vworksz=100M novlchk noverrchk"'
     LFLAGS='$(FFLAGS) -L/sx5/usr/local/mpack/lib -llapack_64 -lblas_64 
-lmpiw' 
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR -DPARALLEL 
-DMP_LIBRARY=__MPI'
     AR='sxar'
     RANLIB='ranlib'
     AWK='/usr/xpg4/bin/awk'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       CC='sxcc'
       FC='sxf90 -c'
       LD='sxf90'
     fi
     ;;

 "NEC-SX5")
     IRAT=1
     FFLAGS_GROMOS='-Dgood_luck'
     FFLAGS='-sx5 -ew -float0 -f0 -Pstatic \
              -V -R5 -Cvopt -pi expin=util.f \
              -I /sx5/usr/include \
              -Wf"-pvctl noassume loopcnt=99999999 fullmsg vr256 \
              vwork=static vworksz=4M novlchk noverrchk"'
     LFLAGS='$(FFLAGS) -Wl"-h lib_cyclic -h muldefs" \
              -L/apps/mathkeisan/lib -llapack_64 -lblas_64'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR'
     AR='sxar'
     RANLIB='touch'
     AWK='/usr/xpg4/bin/awk'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       CC='sxcc -clear'
       FC='sxf90 -clear -c'
       LD='sxf90 -clear'
     fi
     ;;

 "NEC-SX5-MPI")
     IRAT=1
     FFLAGS_GROMOS='-Dgood_luck'
     FFLAGS='-sx5 -ew -float0 -f0 -Pstatic \
              -V -R5 -Cvopt -pi expin=util.f \
              -I /sx5/usr/include \
              -Wf"-pvctl noassume loopcnt=99999999 fullmsg vr256 \
              vwork=static vworksz=4M novlchk noverrchk"'
     LFLAGS='$(FFLAGS) -Wl"-h lib_cyclic -h muldefs" -L/apps/mathkeisan/lib 
-llapack_64 -lblas_64 -lmpiw' 
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-D__NEC -USX -DFFT_DEFAULT -DLAPACK -D__VECTOR -DPARALLEL 
-DMP_LIBRARY=__MPI'
     AR='sxar'
     RANLIB='touch'
     AWK='/usr/xpg4/bin/awk'
     if [ $debug ]; then
       echo "No debug version for ${Configuration}" >&2
       exit 1
     else
       CC='sxcc -clear'
       FC='sxf90 -clear -c'
       LD='sxf90 -clear'
     fi
     ;;

 "FUJITSU-VPP5000")
     #Fujitsu VPP5000 - Sequential Version - Grenoble
     IRAT=2
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L/usr/lan/lib64 -llapackvp -lblasvp'
     CPP='/lib/cpp -P'
     CPPFLAGS='-DPOINTER8 -DMALLOC8 -DLAPACK -DFFT_DEFAULT -D_vpp_ -D__VECTOR'
     CFLAGS=' $(CPPFLAGS)'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       FC='frt -c -g -Da -Ds -On'
       LD='frt -g -Da -Ds -On'
     else
       #for vpsi.F use -Ob instead of -Of because of Segmentation fault
       FC='frt -Aw -Sw -c -Of -Kfast -X7'
       LD='frt -Of -Kfast -X7'
     fi
     ;;

 "FUJITSU-VPP")
     #Fujitsu VPP700 - Sequential Version - Grenoble
     IRAT=2
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L/usr/local/lib -llapack -lblas'
     CPP='/lib/cpp -P'
     CPPFLAGS='-DLAPACK -DFFT_DEFAULT -D_vpp_ -D__VECTOR'
     CFLAGS=' $(CPPFLAGS)'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       FC='frt -c -g -Da -Ds -On'
       LD='frt -g -Da -Ds -On'
     else
       #for vpsi.F use -Ob instead of -Of because of Segmentation fault
       FC='frt -Aw -Sw -c -Of -Kfast -X7 -Neg'
       LD='frt -Of -Kfast -X7 -Ne'
     fi
     ;;

 "FUJITSU-VPP-JPN")
     #Fujitsu VPP700 - Sequential Version - Japan
     #Warning: on japanese VPP comment out OBJ_CC and
     #         shmemory & sysdepend
     IRAT=2
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-L/opt/lib -llapackvp -lblasvp'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-DLAPACK -DFFT_DEFAULT -D_vpp_ -D_vpp_old -D__VECTOR \
              -DFDATE_=FDATE -DGETUID=GETPID'
     CFLAGS=' $(CPPFLAGS)'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       FC='frtpx -c -g -Da -Ds -On'
       LD='vppld -g -Da -Ds -On'
     else
       #for vpsi.F use -Ob instead of -Of because of Segmentation fault
       FC='frtpx -c -Ob -Sw -Kfast -X7 -Ne -Aabw2y'
       LD='vppld -Ob -Kfast -X7 -Ne -Aabw2y'
     fi
     ;;

 "FUJITSU-VPP-MPI")
     #Fujitsu VPP700 - Parallel Version - Grenoble
     IRAT=2
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-Wl,-P,-J -dn \
        -L/usr/lang/mpi2/lib -lmpi -lmp -lcvp \
        -L/usr/local/lib -llapack -lblas'
     CPP='/lib/cpp -P'
     CPPFLAGS='-DLAPACK -DFFT_DEFAULT -D_vpp_ -D__VECTOR \
      -DPARALLEL -DMP_LIBRARY=__MPI'
     CFLAGS=' $(CPPFLAGS)'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       FC='frt -c -g  -Da -Ds -On -I/usr/lang/mpi2/include'
       LD='frt -g -Da -Ds -On'
     else
       #for vpsi.F use -Ob instead of -Of because of Segmentation fault
       #/usr/lang/mpi/include
       FC='frt -Aw -Sw -c -Ob -Kfast -X7 -Ne -I/usr/lang/mpi2/include'
       LD='frt -Of -Kfast -X7 -Ne'
     fi
     ;;

 "FUJITSU-VPP-MPJP")
     #Fujitsu VPP700 - Parallel Version - Japan
     #Warning: on japanese VPP comment out OBJ_CC and
     #         shmemory & sysdepend
     IRAT=2
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
     LFLAGS='-Wl,-P,-J,-dy -L/usr/lang/lib -llapackvp -lblasvp \
        -L/usr/lang/mpi2/lib -lmpi -lmp -lspfs -lpx -lelf \
        -lgen -lm -lc -lrpcsvc -lsocket -lnsl -lcvp'
     CPP='/usr/ccs/lib/cpp -P'
     CPPFLAGS='-DLAPACK -DFFT_DEFAULT -D_vpp_ -D_vpp_old -D__VECTOR \
               -DFDATE_=FDATE -DGETUID=GETPID \
               -DPARALLEL -DMP_LIBRARY=__MPI'
     CFLAGS=' $(CPPFLAGS)'
     AR='ar'
     RANLIB='ranlib'
     if [ $debug ]; then
       FC='frtpx -c -g  -Da -Ds -On -I/opt/local/include/vppmpi2'
       LD='vppld -g -Da -Ds -On'
     else
       #for vpsi.F use -Ob instead of -Of because of Segmentation fault
       #/usr/lang/mpi/include
       FC='frtpx -c -Ob -Sw -Kfast -X7 -Ne -Aabw2y 
-I/opt/local/include/vppmpi2'
       LD='vppld -Ob -Kfast -X7 -Ne -Aabw2y'
     fi
     ;;


  "PC-PGI")
     IRAT=2
     CFLAGS=''
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DLAPACK -DFFT_DEFAULT'
#install 1
#    FFLAGS=''
#    LFLAGS='-llapack -lblas'
#install 2
#    FFLAGS=''
#    LFLAGS='-llapack -lf77blas -latlas -lf2c \
#install 3
     FFLAGS='-Mr8 -pc64 -Msignextend -Msecond_underscore'
     LFLAGS='-llapack -lf77blas -latlas'
     FFLAGS_GROMOS='-Dgood_luck'
     if [ $debug ]; then
       FC='pgf77 -c -g'
       CC='gcc -g -Wall'
       LD='pgf77 -g'
     else
       FC='pgf77 -c -fast'
       CC='gcc -O2 -Wall'
       LD='pgf77 -fast'
     fi
     ;;

  "PC-PGI-MPI")
     IRAT=2
     CFLAGS=''
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DLAPACK -DFFT_DEFAULT \
               -DPARALLEL -DMP_LIBRARY=__MPI -DMYRINET'
#install 1
#    FFLAGS='-I/usr/local/mpich/include/'
#    LFLAGS='-llapack -lblas -lpgc -lpgftnrtl'
#install 2
#    FFLAGS='-I/usr/local/mpich/include/'
#    LFLAGS='-L/usr/pgi/linux86/lib \
#            -L/usr/local/mpich/build/LINUX/ch_p4/lib/ -lmpich \
#            -llapack  -lintelblas -lpgc -lpgftnrtl'
#install 3
#    FFLAGS='-Mr8 -pc64 -Msignextend -Msecond_underscore'
#    LFLAGS='-llapack -lblas'
#install 4
     FFLAGS='-Mr8 -pc64 -byteswapio -Msignextend -Msecond_underscore'
     LFLAGS='-llapack -lf77blas -latlas -byteswapio'
     FFLAGS_GROMOS=' -r8' 
     if [ $debug ]; then
#      FC='pgf90 -c -g -w '
#      CC='cc -g -sb -C -errtags'
#      LD='pgf90 -g'
       FC='mpif77 -c -g'
       CC='mpicc -g'
       LD='mpif77 -g'
     else
#      FC='pgf90 -c -O4 -w -fast '
#      CC='cc -O'
#      LD='pgf90 -O4'
       FC='mpif77 -c -fast'
       CC='mpicc -O2 -Wall'
       LD='mpif77 -fast'
     fi
     ;;


  "PC-ABSOFT")
     IRAT=2
     CFLAGS=''
     #CPP='pgf90 -F'
     CPP='/lib/cpp -P -C'
     CPPFLAGS='-D__NOINT8 -D__Linux -D__ABSOFT -DLAPACK -DFFT_DEFAULT'
     #-sb is to use Workshop package
     FFLAGS=''
     FFLAGS_GROMOS='-Dgood_luck'
#     LFLAGS='-L/usr/lib/lapack -L/usr/absoft/lib -lm -llapack -lblas \
#             -lU77 -lf2c'
     LFLAGS='-L/usr/absoft/lib -llapack -lblas -lU77'
     if [ $debug ]; then
       FC='f90 -c -B108 -YEXT_NAMES=LCS -g'
       CC='cc -g -sb -C -errtags'
       LD='f90 -g -X-Bstatic'
     else
#      -B108: append underscore; -B100: PentiumII or higher;
#      -YEXT_NAMES=LCS: fold to lowercase
       FC='f90 -c -B108 -B100 -YEXT_NAMES=LCS -O'
       CC='cc -g -sb -C -errtags'
       LD='f90 -O -X-Bstatic'
       CC='cc -O'
     fi
     ;;

  "PC-ABSOFT-MPI")
     IRAT=2
     CFLAGS=''
     #CPP='pgf90 -F'
     CPP='/lib/cpp -P -C'
     CPPFLAGS='-D__NOINT8 -D__Linux -D__ABSOFT -DLAPACK -DFFT_DEFAULT \
               -DPARALLEL -DMP_LIBRARY=__MPI'
     #-sb is to use Workshop package
     #-sb is to use Workshop package
     FFLAGS='-I/usr/local/mpich/include/'
     FFLAGS_GROMOS='-Dgood_luck'
#     LFLAGS='-L/usr/lib/lapack -L/usr/absoft/lib -lm -llapack -lblas \
#             -lU77 -lf2c -L/usr/local/mpich/build/LINUX/ch_p4/lib/ -lmpich'
     LFLAGS='-L/usr/absoft/lib -llapack -lblas -lU77\
             -L/usr/local/mpich/build/LINUX/ch_p4/lib/ -lmpich'
     if [ $debug ]; then
       FC='f90 -c -B108 -YEXT_NAMES=LCS -g'
       CC='cc -g -sb -C -errtags'
       LD='f90 -g -X-Bstatic'
     else
#      -B108: append underscore; -B100: PentiumII or higher;
#      -YEXT_NAMES=LCS: fold to lowercase
       FC='f90 -c -B108 -B100 -YEXT_NAMES=LCS -O'
       CC='cc -g -sb -C -errtags'
       LD='f90 -O -X-Bstatic'
       CC='cc -O'
     fi
     ;;

  "PC-IFC")
     MKL_LIB=/opt/intel/mkl/lib/64/
     echo 'We use the Intel Library Kernel.' >&2
     if [ "${MKL_LIB}" = "" ]; then
       echo "The variable MKL_LIB gives the location of this library." >&2
       echo "The variable MKL_LIB does not exist or is empty." >&2
       exit 2
     fi
     IRAT=2
     CFLAGS=''
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DLAPACK -DFFT_DEFAULT -DLINUX_IFC'
#install 1
#    FFLAGS=''
#    LFLAGS='-llapack -lblas'
#install 2
#    FFLAGS=''
#    LFLAGS='-llapack -lf77blas -latlas -lf2c \
#install 3
#    FFLAGS=' -pc64 -unroll -w90 -w95'
     FFLAGS=' -pc64 -w90 -w95'
#    LFLAGS='-llapack -lf77blas -latlas -Vaxlib'
     LFLAGS='-L${MKL_LIB} -lmkl_lapack -lmkl_itp -lpthread -Vaxlib'
     FFLAGS_GROMOS='-Dgood_luck'
     if [ $debug ]; then
       FC='ifc -c -g'
       CC='gcc -g -Wall'
       LD='ifc -g'
     else
       FC='ifc -c -O3 -tpp6 -axiM'
       CC='gcc -O2 -Wall'
       LD='ifc -O3 -tpp6 -axiM'
     fi
     ;;

  "ITANIUM-EFC")
     echo 'We use the Intel Library Kernel.' >&2
     if [ "${MKL_LIB}" = "" ]; then
       echo "The variable MKL_LIB gives the location of this library." >&2
       echo "The variable MKL_LIB does not exist or is empty." >&2
       exit 2
     fi
     IRAT=2
     CFLAGS=''
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DLAPACK -DFFT_DEFAULT -DLINUX_IFC 
-DPOINTER8'
     FFLAGS=' -pc64 -w90 -w95'
     LFLAGS='-L${MKL_LIB} -lmkl_lapack -lmkl_itp -lpthread -Vaxlib'
     FFLAGS_GROMOS='-Dgood_luck'
     if [ $debug ]; then
       FC='efc -c -g'
       CC='gcc -g -Wall'
       LD='efc -g'
     else
       FC='efc -c -O3'
       CC='gcc -O2 -Wall'
       LD='efc -O3'
     fi
     ;;

  *)
     echo "Configure: Unknown configuration '${Configuration}'" >&2
     Message
     exit 2
     ;;
esac
#--------------------------------------------------------------------#
#End of Configurations                                               #
#--------------------------------------------------------------------#

# File descriptor usage:
# 0 standard input
# 1 file creation (standard output or makefile)
# 2 errors and warnings
# 3 Makefile if $makefile or &1

echo "Default configuration for $Configuration." >&2
if [ $debug ]; then
   echo "Debug option is used." >&2
fi

#Default DEST is .
DEST=${DEST:-'.'}

#Check if DEST directory exists.
if [ ! -d ${DEST} ]; then
   echo "The directory ${DEST} does not exist" >&2
  exit 1
fi
if [ ! -w ${DEST} ]; then
  echo "The directory ${DEST} has no write permission" >&2
  exit 1
fi

#Create Makefile if output
if [ $makefile ]; then
  echo "Creation of Makefile: ${DEST}/Makefile" >&2
  exec 3>${DEST}/Makefile
else
  echo "Use standard output for the Makefile." >&2
  exec 3>&1
fi

cat << END >&3
#----------------------------------------------------------------------------
# Makefile for cpmd.x (plane wave electronic calculation)
# Configuration: ${Configuration}
# Creation of Makefile: `date '+%b %e %Y'`
# on `uname -a`
# Author: `who am i | cut -d' ' -f 1`
#----------------------------------------------------------------------------
#
SHELL = /bin/sh
#
#--------------- Default Configuration for $Configuration ---------------
SRC  = .
DEST = .
BIN  = .
END

if [ $qmmm ]; then
  if [ -f QMMM_OBJECTS ]; then
    QMMM_FLAGS='-D__GROMOS'
  else
    printf "\nThe file QMMM_OBJECTS does not exist.\n" >&2
    echo "The file QMMM_OBJECTS does not exist" >&2
    exit 1
  fi
else
  QMMM_FLAGS=' '
  CPPFLAGS_GROMOS=' '
  FFLAGS_GROMOS=' '
fi

cat << END >&3
#QMMM_FLAGS = -D__QMECHCOUPL
#QMMM_LIBS  = -L. -lmm
FFLAGS = ${FFLAGS} 
LFLAGS = ${LFLAGS} \$(QMMM_LIBS)
CFLAGS = ${CFLAGS}
CPP = ${CPP}
CPPFLAGS = ${CPPFLAGS} ${QMMM_FLAGS}
END

if [ $qmmm ]; then
  cat << END >&3
CPPFLAGS_GROMOS = ${CPPFLAGS_GROMOS}
FFLAGS_GROMOS = ${FFLAGS_GROMOS}
END
fi

cat << END >&3
CC = ${CC}
FC = ${FC}
LD = ${LD}
AR = ${AR}
#----------------------------------------------------------------------------
END

#There is Personal Configuration.
if [ $opt -eq 1 ]; then
  printf "Personal configurations..." >&2
  
  #Check the options and personal variables 
  cat << END >&3
  
#----------------------------------------------------------------------------
# Personal Configuration
#----------------------------------------------------------------------------
END

  i=1
  while [ $i -le $# ];
  do
    eval option=\$$i
    case $option in
      -DEST=*)
	       #Special case for DEST (only used for makefile)
	       ;;
      -*=*)
	    var=`echo $option | cut -c2- | cut -d= -f 1`
	    val=`echo $option | cut -c2- | cut -d= -f 2`
	    echo "$var = $val" >&3
	    eval $var='$val'
	    ;;
      *)
	 ;;
    esac
    i=`expr $i + 1`
  done
  
  #Default personal option
  if [ $DEST != "." ]; then
    if [ -z "$SRC" ]; then
      SRC=`pwd`
      echo "SRC = $SRC" >&3
    fi
  fi
  
  if [ -n "$SRC" ]; then
    echo "FC = $FC -I\$(SRC)" >&3
  fi
  cat << END >&3
#----------------------------------------------------------------------------
# End of Personal Configuration
#----------------------------------------------------------------------------
END
  echo "done." >&2
  if [ -n "$BIN" ]; then
    echo "cpmd.x executable will be in: $BIN" >&2
  fi
  
fi #End of Personal Configuration.

#Default SRC is .
SRC=${SRC:-'.'}

echo "The source directory is: $SRC" >&2
echo "The object directory is: $DEST" >&2
  

#Now we change irat if necessary
if [ -f ${DEST}/irat.inc ]; then
  iratfile="${DEST}/irat.inc"
else
  iratfile="irat.inc"
fi
irat=`awk -F= '/PARAMETER/ { print substr($2,1,1) }' $iratfile`
if [ ${irat} != ${IRAT} -o ! -f ${DEST}/irat.inc ]; then
  echo "We change the file $iratfile " \
   "[old irat=${irat}, new irat=${IRAT}]" >&2
  if [ -w /dev/null ]; then
    exec 4> /dev/null
  else
    exec 4>&2
  fi
  irw=1; if [ ! -w $iratfile ]; then chmod u+w $iratfile; irw=0; fi
  ed -s $iratfile << END >&4
/PARAMETER
d
i
      PARAMETER(IRAT=${IRAT})
.
w ${DEST}/irat.inc
q
END
  iratchk=`awk -F= '/PARAMETER/ { print substr($2,1,1) }' $iratfile`
    if [ $iratchk -eq $IRAT ]; then
      echo "The file ${DEST}/irat.inc has been correctly changed." >&2
    else
      echo "ERROR: could not change file \"irat.inc\"" >&2
      exit 1
    fi
    if [ $irw -eq 0 ]; then chmod u-w $iratfile; fi
else
  echo "The file ${DEST}/irat.inc is correct." >&2
fi

#We change gromos.h if necessary
if [ -f ${DEST}/gromos.h ]; then
  gromosfile="${DEST}/gromos.h"
else
  gromosfile="gromos.h"
fi
comm=`awk 'BEGIN{comm=0} 
     {if (index(toupper($0),"INCLUDE") != 0) {if (toupper($1)=="c" || $1=="!") 
comm=1}} 
     END{ print comm}' ${gromosfile}`   
if [ $qmmm ]; then
  if [ $comm -eq 1 -o ! -f ${DEST}/gromos.h ]; then
    #if gromos not writable give the good right.
    if [ -f ${DEST}/gromos.h -a ! -w ${DEST}/gromos.h ]; then
      echo "+ chmod u+w ${DEST}/gromos.h" >&2
      chmod u+w ${DEST}/gromos.h
    fi
    cat << END > ${DEST}/gromos.h
      include 'Gromos/toposz.h'
      include 'Gromos/topoar.h'
      include 'Gromos/coordsz.h'
      include 'Gromos/box.h'     
END
    echo "The file ${DEST}/gromos.h is changed." >&2
  else
    echo "The file ${DEST}/gromos.h is consistent with qmmm." >&2
  fi
else
  if [ $comm -eq 0 -o ! -f ${DEST}/gromos.h ]; then
    #if gromos not writable give the good right.
    if [ -f ${DEST}/gromos.h -a ! -w ${DEST}/gromos.h ]; then
      echo "+ chmod u+w ${DEST}/gromos.h" >&2
      chmod u+w ${DEST}/gromos.h
    fi
    cat << END > ${DEST}/gromos.h
!     include 'Gromos/toposz.h'
!     include 'Gromos/topoar.h'
!     include  'Gromos/coordsz.h'
!     include  'Gromos/box.h'     
END
    echo "The file ${DEST}/gromos.h is changed." >&2
  else
    echo "The file ${DEST}/gromos.h is consistent with normal qm." >&2
  fi
fi

#Now DEST is always ./
DEST='.'

#Default SRC
SRC=${SRC:-'.'}

#Print OBJECTS
if [ -f OBJECTS ]; then
  printf "Add OBJECTS (object files)..." >&2
  cat OBJECTS >&3
  echo "done."  >&2
else
  printf "\nThe file OBJECTS does not exist.\n" >&2
  echo "The file OBJECTS does not exist" >&2
  exit 1
fi

#QMMM OBJECTS
if [ $qmmm ]; then
  printf "Add QMMM_OBJECTS (object files)..." >&2
  cat QMMM_OBJECTS >&3
  echo "done."  >&2
fi

#Include files
printf "Add INCFILES (include files)..." >&2
IncludeFile=`ls *.inc`
printf "INCFILES = " >&3
i=0
for name in ${IncludeFile}
do
  if [ $i -eq 6 ]; then
    printf "\\\\\n           " >&3
    i=0
  fi
  i=`expr $i + 1`
  printf "%s " ${name} >&3
done
printf "\n\n" >&3
echo "done." >&2

#QMMM Include files
if [ $qmmm ]; then
  printf "Add  Gromos INCFILES (include files)..." >&2
  IncludeFile=`ls Gromos/*.h`
  printf "QMMM_INCFILES = " >&3
  i=0
  for name in ${IncludeFile}
  do
    if [ $i -eq 6 ]; then
      printf "\\\\\n           " >&3
      i=0
    fi
    i=`expr $i + 1`
    printf "%s " ${name} >&3
  done
  printf "\n\n" >&3
  echo "done." >&2  
  printf "INCFILES = \$(INCFILES) \$(QMMM_INCFILES) \n" >&3 
fi
printf "Add explicit rules..." >&2
if [ $qmmm ]; then
  OBJ_GRM='$(OBJECTS_GROMOS)'
else
  OBJ_GRM=' '
fi
cat << END >&3
#----------------------------------------------------------------------------
# Compile cpmd.x
#----------------------------------------------------------------------------
cpmd.x : \$(OBJECTS) ${OBJ_GRM} \$(OBJ_CC)
	 rm -f timetag.f
	 \$(CPP) \$(CPPFLAGS) \$(SRC)/timetag.F \$(DEST)/timetag.f
	 \$(FC) \$(FFLAGS) \$(DEST)/timetag.f
	 rm -f cpmd.x
	 if [ "\$(BIN)" != "." ]; then ln -s \$(BIN)/cpmd.x cpmd.x; fi
	 \$(LD) -o \$(BIN)/cpmd.x timetag.o \$(OBJECTS) \$(OBJ_CC) \$(LFLAGS) 
${OBJ_GRM}

#----------------------------------------------------------------------------
# Generate library libcpmd.a
#----------------------------------------------------------------------------
lib : \$(OBJ_LIB)
	 rm -f timetag.f
	 \$(CPP) \$(CPPFLAGS) \$(SRC)/timetag.F \$(DEST)/timetag.f
	 \$(FC) \$(FFLAGS) \$(DEST)/timetag.f
	 \$(AR) libcpmd.a timetag.o \$(OBJ_LIB)
	 \$(RANLIB) libcpmd.a

#----------------------------------------------------------------------------
# Generate the manual
#----------------------------------------------------------------------------
doc : manual.ps

docpdf: manual.pdf

manual.ps: manual.dvi
	dvips manual.dvi

manual.dvi: \$(SRC)/manual.tex
	latex \$(SRC)/manual.tex
	makeindex manual
	latex \$(SRC)/manual.tex

manual.pdf: \$(SRC)/manual.tex
	pdflatex \$(SRC)/manual.tex
	makeindex manual
	pdflatex \$(SRC)/manual.tex

#----------------------------------------------------------------------------
# Remove all *.o and *.f
#----------------------------------------------------------------------------
clean : 
	 rm -f \$(OBJECTS) \$(OBJ_CC) \$(DEST)/\$(OBJECTS:.o=.f)
	 rm -f *~ .*~ *.o *.f
	 rm -f *.aux *.brf *.dvi *.idx *.ilg *.ind *.log
	 rm -f *.out *.ps *.pdf *.toc 

#----------------------------------------------------------------------------
# Explicit rules
#----------------------------------------------------------------------------
.SUFFIXES:
.SUFFIXES: .o .f .F

\$(OBJECTS:.o=.f) : 
	rm -f \$@
	\$(CPP) \$(CPPFLAGS) \$(SRC)/\$(@:.f=.F) \$(DEST)/\$@
\$(OBJECTS) :
	\$(FC) \$(FFLAGS) \$(DEST)/\$< -o  \$(DEST)/\$@

\$(OBJ_CC) :
	\$(CC) \$(CPPFLAGS) \$(CFLAGS) -c \$(SRC)/\$(@:.o=.c)
END

if [ $qmmm ]; then
cat << END >&3
\$(OBJECTS_GROMOS:.o=.f) : 
	rm -f \$@
	\$(CPP) \$(CPPFLAGS_GROMOS) \$(SRC)/\$(@:.f=.F) \$(DEST)/\$@
\$(OBJECTS_GROMOS) :
	\$(FC) \$(FFLAGS_GROMOS) \$(DEST)/\$< -o \$(DEST)/\$@
END
fi

#----------------------------------------------------------------------------

cat << END >&3
#----------------------------------------------------------------------------
# Dependencies
#----------------------------------------------------------------------------
END
echo "done." >&2

printf "Create dependencies..." >&2
FortranFiles=`ls *.F  *.c `

for name in ${FortranFiles}
do
  if [ $verbose ]; then
    printf "[%s]" $name
  fi
  ${AWK} -v qmmm=${qmmm} 'NR==1 { Ninclude = 2;
               OldInclude["pimd.inc"] = 0;
               OldInclude["mpif.h"] = 0;
               MaxLength=60;
               ll = length(FILENAME);
               prefix = substr(FILENAME,1,ll-2);
               suffix = substr(FILENAME,ll-1,2);
               src    = "$(SRC)";
               dest = "$(DEST)";
               #To have the quote.
               quote = sprintf("%c",39);
               if (suffix == ".F") {
                 line = sprintf("%s.f:", prefix);
                 printf "%-16s%s/%s%s\n", line,src,prefix,suffix;
                 suffix = ".f";
               }
               line = sprintf("%s.o:", prefix);
               if (suffix == ".c") {
                 line = sprintf("%-16s%s/%s%s",line,src,prefix,suffix);
               } else {
                 line = sprintf("%-16s%s%s",line,prefix,suffix);
               }
             }
       /^[ ]*INCLUDE/ || /^[ ]*include/ {
               split($0,a,quote);
               Name = a[2];
               no = 0;
               if (Ninclude != 0) {
                 for ( Include in OldInclude ) {
                   if (Include == Name ) {
                     no = 1;
                     break;
                   }
                 }
               }
               if((Name == "gromos.h") && (qmmm == 1)) 
                 Name=sprintf("Gromos/toposz.h $(SRC)/Gromos/topoar.h 
$(SRC)/Gromos/coordsz.h $(SRC)/Gromos/box.h")
               if (no != 1) {
                 Ninclude=Ninclude+1;
                 OldInclude[Name] = 0;
                 lline = length(line);
                 if (lline+2 >= MaxLength) {
                   printf "%s \\\n", line;
                   line = sprintf("%-15s"," ");
                 }
                 if (Name == "irat.inc") {
                   line=sprintf("%s %s/%s",line,dest,Name)
                 } else {
                   line=sprintf("%s %s/%s",line,src,Name)
                 }
               }
       }
       END   { printf "%s\n", line }' ${name} >&3
done                               



echo "done dep main."  >&2

if [ $qmmm ]; then
  printf "create gromos dependencies \n" >&2 
  FortranFiles=`ls Gromos/*.F `

  for name in ${FortranFiles}
  do
    if [ $verbose ]; then
      printf "[%s]" $name
    fi
    awk 'NR==1 { Ninclude = 2;
               OldInclude["pimd.inc"] = 0;
               OldInclude["mpif.h"] = 0;
               MaxLength=60;
               ll = length(FILENAME);
               prefix = substr(FILENAME,1,ll-2);
               suffix = substr(FILENAME,ll-1,2);
               src    = "$(SRC)/Gromos";
               dest = "$(DEST)";
               #To have the quote.
               quote = sprintf("%c",39);
               if (suffix == ".F") {
                 src    = "$(SRC)";
                 line = sprintf("%s.f:", prefix);
                 printf "%-16s%s/%s%s\n", line,src,prefix,suffix;
                 suffix = ".f";
                 src    = "$(SRC)/Gromos";
               }
               line = sprintf("%s.o:", prefix);
               if (suffix == ".c") {
                 line = sprintf("%-16s%s/%s%s",line,src,prefix,suffix);
               } else {
                 line = sprintf("%-16s%s%s",line,prefix,suffix);
               }
             }
       /^[ ]*INCLUDE/ || /^[ ]*include/ {
               split($0,a,quote);
               Name = a[2];
               no = 0;
               if(Name=="") no=1;
               if(Name==" ") no=1;
               if (Ninclude != 0) {
                 for ( Include in OldInclude ) {
                   if (Include == Name ) { 
                     no = 1;
                     break;
                   }
                 }
               }
               if (no != 1) {
                 Ninclude=Ninclude+1;
                 OldInclude[Name] = 0;
                 lline = length(line);
                 if (lline+2 >= MaxLength) {
                   printf "%s \\\n", line;
                   line = sprintf("%-15s"," ");
                 }
                 if (Name == "irat.inc") {
                   line=sprintf("%s %s/%s",line,dest,Name)
                 } else {
                   line=sprintf("%s %s/%s",line,src,Name)
                 }
               }
       }
       END   { printf "%s\n", line }' ${name} >&3
  done


  FortranFiles=`ls MM_Interface/*.F`
  printf "create mm_interface dependencies \n" >&2 

  for name in ${FortranFiles}
  do
    if [ $verbose ]; then
      printf "[%s]" $name
    fi
    awk 'NR==1 { Ninclude = 2;
               OldInclude["pimd.inc"] = 0;
               OldInclude["mpif.h"] = 0;
               MaxLength=60;
               ll = length(FILENAME);
               prefix = substr(FILENAME,1,ll-2);
               suffix = substr(FILENAME,ll-1,2);
               src    = "$(SRC)/MM_Interface";
               dest = "$(DEST)";
               #To have the quote.
               quote = sprintf("%c",39);
               if (suffix == ".F") {
                 src    = "$(SRC)";
                 line = sprintf("%s.f:", prefix);
                 printf "%-16s%s/%s%s\n", line,src,prefix,suffix;
                 suffix = ".f";
                 src    = "$(SRC)/MM_Interface";
               }
               line = sprintf("%s.o:", prefix);
               if (suffix == ".c") {
                 line = sprintf("%-16s%s/%s%s",line,src,prefix,suffix);
               } else {
                 line = sprintf("%-16s%s%s",line,prefix,suffix);
               }
             }
       /^[ ]*INCLUDE/ || /^[ ]*include/ {
               split($0,a,quote);
               Name = a[2];
               no = 0;
               if (Ninclude != 0) {
                 for ( Include in OldInclude ) {
                   if (Include == Name ) { 
                     no = 1;
                     break;
                   }
                 }
               }
               if (no != 1) {
                 Ninclude=Ninclude+1;
                 OldInclude[Name] = 0;
                 lline = length(line);
                 if (lline+2 >= MaxLength) {
                   printf "%s \\\n", line;
                   line = sprintf("%-15s"," ");
                 }
                 if (Name == "irat.inc") {
                   line=sprintf("%s %s/%s",line,dest,Name)
                 } else {
                   line=sprintf("%s %s/%s",line,src,Name)
                 }
               }
       }
       END   { printf "%s\n", line }' ${name} >&3
  done
cat << END >&3

tar   :
	tar -cvf code.tar Configure *OBJ* */mm_diff */QMMMHELP.html *F *inc *c *h 
*/*F */*h  
	echo 'code.tar created'  
END
fi

echo "done."  >&2
echo "O.K." >&2
exit 0





More information about the CPMD-list mailing list