Problem in installing VASP4.6 on Hpux

Questions regarding the compilation of VASP on various platforms: hardware, compilers and libraries, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
hehui
Newbie
Newbie
Posts: 15
Joined: Wed Jun 15, 2005 3:49 am
License Nr.: xiamen university yingzhang license vasp+paw 6
Contact:

Problem in installing VASP4.6 on Hpux

#1 Post by hehui » Wed Nov 29, 2006 12:49 am

Hi!
I want to complie the parallel vasp on HPC,but I had problem, I used the makefile:

.SUFFIXES: .inc .f .F .f90
#-----------------------------------------------------------------------
# Makefile for HPUX Itanium platorm
# written by F. Mittendorfer and G. Kresse
#
# Makefile was tested for f90 V2.7.4 only
#-----------------------------------------------------------------------

# all CPP processed fortran files have the extension .f90
SUFFIX=.f90

#-----------------------------------------------------------------------
# fortran compiler and linker
#-----------------------------------------------------------------------
#FC=f90
#FCL=$(FC)

#-----------------------------------------------------------------------
# possible options for CPP:
# NGXhalf charge density reduced in X direction
# wNGXhalf gamma point only reduced in X direction
# avoidalloc avoid ALLOCATE if possible
# IFC work around some IFC bugs
# CACHE_SIZE required for fft3dlinb of Juergen Furthmueller
# RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO
# RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (faster on P4)
#-----------------------------------------------------------------------

CPP = ./preprocess <$*.F >$*$(SUFFIX)
CPPFLG= +cpp=yes -DHOST=\"HPUX_Itanium2\" \
-Dkind8 -DNGXhalf -DCACHE_SIZE=16000

#-----------------------------------------------------------------------
# general fortran flags (there must a trailing blank on this line)
#-----------------------------------------------------------------------
ARCH = +DD64 +DSnative
# cpp is done by f90
FFLAGS = $(CPPFLG) $(ARCH)

#-----------------------------------------------------------------------
# optimization
# lots of options are possible, but +O3 seems to be a reasonable
# compromise
# profiling: +Oprofile=use +Oprofile=collect
# other options:
# +DD64 +DSitanium2 +O3 +Ofltacc=relaxed +Oinitcheck +FPD -Wl,+pd1M
#-----------------------------------------------------------------------
OFLAG = +O3

OFLAG_HIGH = $(OFLAG)
OBJ_HIGH = hamil.o rmm-diis.o nonlr.o dfast.o $(FFT3D)

OBJ_NOOPT = steep.o
DEBUG = -g
#INCS = -I/opt/mpi/include/64/ -I/fs/home2/mitten/src/HP/fft/include
#INCS = -I/opt/mpi/include/64/ -I/usr/local/include/
INCS = -I/opt/mpi/include/32/ -I/snfs8/home/yzhang/fftwxc/fftw/include/

INLINE = $(OFLAG)

#-----------------------------------------------------------------------
# options for linking
#-----------------------------------------------------------------------
LINK = +FPD $(ARCH) +Ofaster

# use the veclib BLAS and the HP optimised LAPACK
LIB = -L/snfs8/home/yzhang/vasp/vasp.4.lib -ldmy snfs8/home/yzhang/vasp/vasp.4.lib/linpack_double.o \
-L/opt/mlib/lib/hpux64/ -lveclib -lm
# presently the fft3dfurth is fastest
#FFT3D = fftw3d.o fft3dlib.o /fs/home2/mitten/src/HP/fft/lib/libfftw3.a
#FFT3D = fft3dfurth.o fft3dlib.o

#=======================================================================
# MPI version:
# we recommend to use HPUX supplied mpif90 frontend
# --------------------------------------------------
#=======================================================================
FC=/opt/mpi/bin/mpif90
FCL=$(FC)
#
#CPPFLG= +cpp=yes -DHOST=\"HPUX Itanium2\" \
# -Dkind8 -DMPI -DNGZhalf -DCACHE_SIZE=16000
#
#FFLAGS= $(CPPFLG) $(ARCH)
FFT3D = fftmpi.o fftmpi_map.o fft3dlib.o
#-----------------------------------------------------------------------
# general rules and compile lines
#-----------------------------------------------------------------------
BASIC= symmetry.o symlib.o lattlib.o random.o

SOURCE= base.o mpi.o smart_allocate.o xml.o \
constant.o jacobi.o main_mpi.o scala.o \
asa.o lattice.o poscar.o ini.o setex.o radial.o \
pseudo.o mgrid.o mkpoints.o wave.o wave_mpi.o $(BASIC) \
nonl.o nonlr.o dfast.o choleski2.o \
mix.o charge.o xcgrad.o xcspin.o potex1.o potex2.o \
metagga.o constrmag.o pot.o cl_shift.o force.o dos.o elf.o \
tet.o hamil.o steep.o \
chain.o dyna.o relativistic.o LDApU.o sphpro.o paw.o us.o \
ebs.o wavpre.o wavpre_noio.o broyden.o \
dynbr.o rmm-diis.o reader.o writer.o tutor.o xml_writer.o \
brent.o stufak.o fileio.o opergrid.o stepver.o \
dipol.o xclib.o chgloc.o subrot.o optreal.o davidson.o \
edtest.o electron.o shm.o pardens.o paircorrection.o \
optics.o constr_cell_relax.o stm.o finite_diff.o \
elpol.o setlocalpp.o

INC=

vasp: $(SOURCE) $(FFT3D) $(INC) main.o
rm -f vasp
$(FCL) -o vasp $(LINK) main.o $(SOURCE) $(FFT3D) $(LIB)
makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC)
$(FCL) -o makeparam $(LINK) makeparam.o $(SOURCE) $(FFT3D) $(LIB)
zgemmtest: zgemmtest.o base.o random.o $(INC)
$(FCL) -o zgemmtest $(LINK) zgemmtest.o random.o base.o $(LIB)
dgemmtest: dgemmtest.o base.o random.o $(INC)
$(FCL) -o dgemmtest $(LINK) dgemmtest.o random.o base.o $(LIB)
ffttest: base.o smart_allocate.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC)
$(FCL) -o ffttest $(LINK) ffttest.o mpi.o mgrid.o random.o smart_allocate.o base.o $(FFT3D) $(LIB)
kpoints: $(SOURCE) $(FFT3D) makekpoints.o main.F $(INC)
$(FCL) -o kpoints $(LINK) makekpoints.o $(SOURCE) $(FFT3D) $(LIB)

clean:
-rm -f *.g *.f *.o *.L *.mod ; touch *.F

main.o: main$(SUFFIX)
$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c main$(SUFFIX)
xcgrad.o: xcgrad$(SUFFIX)
$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcgrad$(SUFFIX)
xcspin.o: xcspin$(SUFFIX)
$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcspin$(SUFFIX)

makeparam.o: makeparam$(SUFFIX)
$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c makeparam$(SUFFIX)

makeparam$(SUFFIX): makeparam.F main.F
#
# MIND: I do not have a full dependency list for the include
# and MODULES: here are only the minimal basic dependencies
# if one strucuture is changed then touch_dep must be called
# with the corresponding name of the structure
#
base.o: base.inc base.F
mgrid.o: mgrid.inc mgrid.F
constant.o: constant.inc constant.F
lattice.o: lattice.inc lattice.F
setex.o: setexm.inc setex.F
pseudo.o: pseudo.inc pseudo.F
poscar.o: poscar.inc poscar.F
mkpoints.o: mkpoints.inc mkpoints.F
wave.o: wave.inc wave.F
nonl.o: nonl.inc nonl.F
nonlr.o: nonlr.inc nonlr.F

$(OBJ_HIGH):
$(CPP)
$(FC) $(FFLAGS) $(OFLAG_HIGH) $(INCS) -c $*$(SUFFIX)
$(OBJ_NOOPT):
$(CPP)
$(FC) $(FFLAGS) $(INCS) -c $*$(SUFFIX)

fft3dlib_f77.o: fft3dlib_f77.F
$(CPP)
$(F77) $(FFLAGS_F77) -c $*$(SUFFIX)

.F.o:
$(CPP)
$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)
.F$(SUFFIX):
$(CPP)
$(SUFFIX).o:
$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)


and then I have the problem:

./preprocess <fftmpi_map.F >fftmpi_map.f90
/opt/mpi/bin/mpif90 +cpp=yes -DHOST=\"HPUX_Itanium2\" -Dkind8 -DNGXhal
/var/tmp//fciBAAa17531.f90
Error 738 : END statement is missing

1 Error
f90: error 213: Errors detected.
*** Error exit code 1
stop

I donot know the reason. please help me!
Thank you !
Last edited by hehui on Wed Nov 29, 2006 12:49 am, edited 1 time in total.
hhe

admin
Administrator
Administrator
Posts: 2921
Joined: Tue Aug 03, 2004 8:18 am
License Nr.: 458

Problem in installing VASP4.6 on Hpux

#2 Post by admin » Wed Nov 29, 2006 12:00 pm

you have to set the correct precompiler options to generate parallel code:
unomment the
#CPPFLG= +cpp=yes -DHOST=\"HPUX Itanium2\" \
# -Dkind8 -DMPI -DNGZhalf -DCACHE_SIZE=16000
line in your makefile, and re-compile from sratch. Please make sure that you have deleted all remnants of previous serial compilations
Last edited by admin on Wed Nov 29, 2006 12:00 pm, edited 1 time in total.

Post Reply