#=======================================================================
#
#
#  MAKEFILE FOR ZEUS-PP
#
#
#-------------------  macro definitions  -------------------------------
#
ZMP_CPP    = ${ZMP_FC} -DLB=128 -DUNROLL_I=4 -DUNROLL_J=4 -DUNROLL_K=4
ZMP_EXE    = ../exe/
ZMP_FC     = ifort -static
ZMP_OPTS   = -c -O3 -I/usr/include -I/n/thales2/vernaleo/lam/include
ZMP_CC     = icc
ZMP_LDR    = ${ZMP_FC} -O3 -I/n/thales2/vernaleo/lam/include
ZMP_LIB    = -L/n/thales2/vernaleo/hdf/lib -L/n/thales2/vernaleo/lam/lib -ldl -lnsl -lutil -lmfhdf -ldf -ljpeg -lz -llamf77mpi -lmpi -llam -lpthread
ZMP_CPP    = ${ZMP_FC} -DLB=128 -DUNROLL_I=4 -DUNROLL_J=4 -DUNROLL_K=4
#--------------------  implicit rules  ---------------------------------
#
.SUFFIXES: .F .f .c .o

.f.o:
	${ZMP_CPP} -E -I../src/ $*.F | tr -s "" "\012" > $<
	${ZMP_FC} ${ZMP_OPTS} $<

.F.o:
	${ZMP_CPP} -E -I../src/ $< | tr -s "" "\012" > $*.f
	${ZMP_FC} ${ZMP_OPTS} $*.f

.c.o:
	${ZMP_CC} -I../src/ $<
#
#-------------------  Fortran object files  ----------------------------
#
#FOBJ = zmp_pp.o diff.o hsplice.o splice.o hsp2.o
FOBJ = zmp_pp.o diff.o splice.o hsp2.o
#
#-------------------  C object files  ----------------------------------
#
COBJ = 
#
#---------------------  targets  ---------------------------------------
#
help:
	@echo Type "'make help'             to see this menu"
	@echo Type "'make compile           to create executable
	@echo Type "'make clean'            to remove '*.f' and '*.o' files"
#
#-----------------------------------------------------------------------
#
clean:
	echo "\rm -f *.o *.f"
	\rm -f *.o *.f
#
#-----------------------------------------------------------------------
#
compile: ${ZMP_EXE}zmp_pp.x

${ZMP_EXE}zmp_pp.x: ${FOBJ} ${COBJ}
	${ZMP_LDR} -o ${ZMP_EXE}zmp_pp.x ${FOBJ} ${COBJ} ${ZMP_LIB}

#
#----------------------  dependencies  ---------------------------------
#
zmp_pp.o: zmp_pp.F ../src/param.h ../src/zeusmp.def 

diff.o: diff.F ../src/param.h ../src/zeusmp.def 

hsplice.o: hsplice.F ../src/grid.h ../src/mpicom.h ../src/param.h ../src/root.h ../src/zeusmp.def 

splice.o: splice.F ../src/grid.h ../src/mpicom.h ../src/param.h ../src/root.h ../src/zeusmp.def 

hsp2.o: hsp2.F ../src/grid.h ../src/mpicom.h ../src/param.h ../src/root.h ../src/zeusmp.def









