.SUFFIXES: .inc .f .F #----------------------------------------------------------------------- # Makefile for HPCX, version of VASP 4.4.3, # makefile used by Dario Alfe` (d.alfe@ucl.ac.uk). This makefile will not # necessarily work with your version of VASP and should only be considered # as an example. #----------------------------------------------------------------------- # all CPP processed fortran files have the extension .f SUFFIX=.f # fortran compiler us $(FC) allready set FC=mpxlf90 -qfree=f90 # C-preprocessor define any of the flags given below # single_precission single precission BLAS/LAPACK calls # vector # essl use ESSL call sequence for DSYGV # NGXhalf charge density reduced in X direction # NGZhalf charge density reduced in Z direction # wNGXhalf gamma point only reduced in X direction # wNGZhalf gamma point only reduced in Z direction # if you do not have scaLAPACK remove -DscaLAPACK CPP = /usr/ccs/lib/cpp -P -DMPI -Dkind8 -DNGZhalf -DwNGZhalf \ -DscaLAPACK -DCACHE_SIZE=32768 $*.F >$*.f # general fortran flags FFLAGS = # optimization (if you are running on POWER2 only set -qarch=pwr2) OFLAG = -O3 -qarch=auto OFLAG_HIGH = $(OFLAG) OBJ_HIGH = none OBJ_NOOPT = none DEBUG = -g #INCS = -I../../archives/mpich/include/ INLINE = -O3 -qarch=auto # options for linking LINK = -Wl,-bD:1100000000 MPI = -L/usr/lpp/ppe.poe/lib/ -lmpi SCALAPACK = -L/usr/local/lib -lblacs -lscalapack /usr/local/lib/blacsCinit.a LIB = -L../vasp.4.lib -ldmy ../vasp.4.lib/lapack_double.o -lesslp2 \ $(SCALAPACK) $(MPI) 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 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 \ pot.o force.o dos.o elf.o \ tet.o hamil.o steep.o hamil_rot.o \ sphpro.o chain.o dyna.o paw.o us.o \ rot.o ebs.o wavpre.o wavpre_noio.o broyden.o \ dynbr.o rmm-diis.o reader.o tutor.o \ brent.o stufak.o fileio.o opergrid.o stepver.o \ dipol.o xclib.o chgloc.o subrot.o optreal.o \ edtest.o electron.o shm.o pardens.o paircorrection.o INC= vasp: $(SOURCE) $(FFT3D) $(INC) main.o rm -f vasp $(FC) main.o $(SOURCE) $(LINK) $(FFT3D) $(LIB) -o vasp makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC) $(FC) makeparam.o $(SOURCE) $(LINK) $(FFT3D) $(LIB) -o makeparam dgemmtest: dgemmtest.o base.o random.o $(INC) $(FC) dgemmtest.o random.o base.o $(LINK) $(LIB) -o dgemmtest ffttest: base.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC) $(FC) ffttest.o mpi.o mgrid.o random.o base.o $(LINK) $(FFT3D) $(LIB) -o ffttest 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) wave.o: wave$(SUFFIX) $(FC) $(FFLAGS) $(INCS) -c wave$(SUFFIX) nonl.o: nonl$(SUFFIX) $(FC) $(FFLAGS) -O3 -qarch=auto $(INCS) -c nonl$(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) .F.o: $(CPP) $(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX) .F$(SUFFIX): $(CPP) $(SUFFIX).o: $(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)