INSTALL_DIR = /users/software/mpich2-1.4.1p1_intel
#INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh
#BIN=../bin
#FC = ifort
FC= ${INSTALL_DIR}/bin/mpif90
OPT = -O3 -ip -w
DEB = -g -CA -CB -check pointer #-check uninit
#OPT =  -O3 #-ip
FFLAGS = -fpp -c ${DEB} #${OPT} #-I. -I./include_unres -I$(INSTALL_DIR)/include
FFLAGSE = -fpp -c ${DEB} #${OPT} #-I. -I./include_unres -I$(INSTALL_DIR)/include
FFLAGS2 = -fpp -c -g -CA -CB #-O0
#OPT = -CB -g 
#FFLAGS =  ${OPT} -c -I. -Iinclude_unres -I$(INSTALL_DIR)/include
#CPPFLAGS = -DLINUX -DPGI -DSPLITELE -DPROCOR -DMP -DMPI
#LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -g -d2 -CA -CB

#.c.o:
#	cc -c -DLINUX -DPGI $*.c

#.f.o:
#	${FC} ${FFLAGS} $*.f

#.F.o:
#	${FC} ${FFLAGS} ${CPPFLAGS} ${FFLAGS} $*.F
#UNRES_FILE= ../../UNRESS/unres_f90/source/unres_MD-M
UNRES_FILE= ../unres
UNRES_DATA_FILE= ../unres/data
WHAM_FILE= ../wham

data = clust_data.o 
#w_compar_data.o w_comm_local.o

data_unres = names.o io_units.o control_data.o calc_data.o \
	compare_data.o control_data.o minim_data.o MD_data.o\
	energy_data.o geometry_data.o MPI_data.o MCM_data.o comm_local.o

objects_unres = xdrf/*.o math.o geometry.o \
	io_base.o energy.o regularize.o control.o io_config.o


#compare_data.o control_data.o minim_data.o CSA_data.o
objects_wham = wham_data.o conform_compar.o io_wham.o work_partition.o

objects = track.o hc.o io_clust.o probabl.o cluster.o

all: no_option
	@echo "Specify force field: GAB or E0LL2Y"

no_option:

GAB: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI \
	-DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DCLUSTER
GAB: EXE_FILE = ../../bin/cluster_GAB_F90_EL.exe
GAB: ${data} ${data_unres} ${objects_unres} ${objects_wham} ${objects}
	$(FC) ${OPT} ${data} ${data_unres} ${objects_unres} ${objects_wham} ${objects} -o ${EXE_FILE}
#	$(FC) ${OPT} ${objects} ${LIBS} -o ${BIN}/unres_clustMD-mult_MPICH-GAB.exe

E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI \
	-DSPLITELE -DLANG0 -DCLUSTER
E0LL2Y: EXE_FILE = ../../bin/cluster_E0LL2Y_F90_EL.exe
E0LL2Y: ${data} ${data_unres} ${objects_unres} ${objects_wham} ${objects}
	$(FC) ${OPT} ${data} ${data_unres} ${objects_unres} ${objects_wham} ${objects} -o ${EXE_FILE}
#	$(FC) ${OPT} ${objects} ${LIBS} -o ${BIN}/unres_clustMD-mult_MPICH-E0LL2Y.exe

xdrf/*.o:
	cd xdrf && make

clean:
	rm -f *.o && rm -f *.mod && rm -f compinfo && cd xdrf && make clean
#	rm -f *.o && rm -f *.mod && rm ${EXE_FILE} && rm -f compinfo && cd xdrf && make clean


clust_data.o: clust_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} clust_data.f90

wham_data.o: ${WHAM_FILE}/wham_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${WHAM_FILE}/wham_data.f90


names.o: ${UNRES_DATA_FILE}/names.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/names.f90

io_units.o: ${UNRES_DATA_FILE}/io_units.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/io_units.f90

calc_data.o: ${UNRES_DATA_FILE}/calc_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/calc_data.f90

compare_data.o: ${UNRES_DATA_FILE}/compare_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/compare_data.f90

control_data.o: ${UNRES_DATA_FILE}/control_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/control_data.f90

energy_data.o: ${UNRES_DATA_FILE}/energy_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/energy_data.f90

geometry_data.o: ${UNRES_DATA_FILE}/geometry_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/geometry_data.f90

map_data.o: ${UNRES_DATA_FILE}/map_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/map_data.f90

MCM_data.o: ${UNRES_DATA_FILE}/MCM_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/MCM_data.f90

MD_data.o: ${UNRES_DATA_FILE}/MD_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/MD_data.f90

minim_data.o: ${UNRES_DATA_FILE}/minim_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/minim_data.f90

MPI_data.o: ${UNRES_DATA_FILE}/MPI_data.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/MPI_data.f90

comm_local.o: ${UNRES_DATA_FILE}/comm_local.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_DATA_FILE}/comm_local.f90

math.o: ${UNRES_FILE}/math.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_FILE}/math.f90

geometry.o: ${UNRES_FILE}/geometry.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_FILE}/geometry.f90

io_base.o: ${UNRES_FILE}/io_base.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_FILE}/io_base.f90

energy.o: ${UNRES_FILE}/energy.f90
	${FC} ${FFLAGSE} ${CPPFLAGS} ${UNRES_FILE}/energy.f90

control.o: ${UNRES_FILE}/control.F90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_FILE}/control.F90

io_config.o: ${UNRES_FILE}/io_config.f90
	${FC} ${FFLAGS2} ${CPPFLAGS} ${UNRES_FILE}/io_config.f90

regularize.o: ${UNRES_FILE}/regularize.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${UNRES_FILE}/regularize.f90


proc_proc.o: proc_proc.c
	${CC} ${CPPFLAGS} -O -c proc_proc.c

io_wham.o: ${WHAM_FILE}/io_wham.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${WHAM_FILE}/io_wham.f90

conform_compar.o: ${WHAM_FILE}/conform_compar.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${WHAM_FILE}/conform_compar.f90

work_partition.o: ${WHAM_FILE}/work_partition.f90
	${FC} ${FFLAGS} ${CPPFLAGS} ${WHAM_FILE}/work_partition.f90

probabl.o: probabl.f90
	${FC} ${FFLAGS} ${CPPFLAGS} probabl.f90

track.o: track.f90
	${FC} ${FFLAGS} ${CPPFLAGS} track.f90

hc.o: hc.f90
	${FC} ${FFLAGS} ${CPPFLAGS} hc.f90

io_clust.o: io_clust.f90
	${FC} ${FFLAGS} ${CPPFLAGS} io_clust.f90

cluster.o: cluster.f90
	${FC} ${FFLAGS} ${CPPFLAGS} cluster.f90
