F90C    = ifort
CC      = icc
VERSION =22
VPATH = ../poten    
# executables that can be built from this makefile

DUMSEXE   = ../exe/polyrate$(VERSION).dum.serial.exe

CH5SEXE   = ../exe/polyrate$(VERSION).ch5.serial.exe  
CLHBRSEXE = ../exe/polyrate$(VERSION).clhbr.serial.exe
CH4OSEXE  = ../exe/polyrate$(VERSION).ch4o.serial.exe 
CMCSEXE   = ../exe/polyrate$(VERSION).cmc.serial.exe  
CWMCSEXE  = ../exe/polyrate$(VERSION).cwmc.serial.exe 
NH3SEXE   = ../exe/polyrate$(VERSION).nh3.serial.exe  
H2NISEXE  = ../exe/polyrate$(VERSION).h2ni.serial.exe 
H3SEXE    = ../exe/polyrate$(VERSION).h3.serial.exe   
HNISEXE   = ../exe/polyrate$(VERSION).hni.serial.exe  
OH3SEXE   = ../exe/polyrate$(VERSION).oh3.serial.exe 
OHCLSEXE  = ../exe/polyrate$(VERSION).ohcl.serial.exe
HO2SEXE   = ../exe/polyrate$(VERSION).ho2.serial.exe
#User may add new executables here

%.o: %.F
	$(F90C) -c $<
%.o: %.f90
	$(F90C) -c $<
%.o: %.c
	$(CC) -c $<


OBJ = aamod.o tumme_mod.o acespoly.o alloc.o dattim.o givtst.o intbsv3.o poly40.o \
polyrr.o headr.o interface.o polysz.o ef.o hooks.o ivtstm.o polyag.o rtpjac.o \
energetics.o intbsv1.o main.o polyhl.o fromblas.o intbsv2.o poly31.o \
polymq.o util.o torsion.o fromlapack.o

poly_mpi.o: poly_mpi.F
	$(MPIF90C) -c poly_mpi.F
ch3.o: ../poten/ch3.f90
	$(MPIF90C) -c ../poten/ch3.f90
ch4o.o: ../poten/ch4o_module.f90 ../poten/ch4o.f90
	$(F90C) -c ../poten/ch4o_module.f90 ../poten/ch4o.f90
ch5.o: ../poten/ch5_module.f90 ../poten/ch5.f90
	$(F90C) -c ../poten/ch5_module.f90 ../poten/ch5.f90
chain3.o: ../poten/chain3.f90
	$(F90C) -c ../poten/chain3.f90
chain4.o: ../poten/chain4.f90
	$(F90C) -c ../poten/chain4.f90
clhbr.o: ../poten/clhbr.f90
	$(F90C) -c ../poten/clhbr.f90
cmc.o: ../poten/cmc.f90
	$(F90C) -c ../poten/cmc.f90
coord3.o: ../poten/coord3.f90
	$(F90C) -c ../poten/coord3.f90
coord4.o: ../poten/coord4.f90
	$(F90C) -c ../poten/coord4.f90
cwmc.o: ../poten/cwmc_module.f90 ../poten/cwmc.f90
	$(F90C) -c ../poten/cwmc_module.f90 ../poten/cwmc.f90
dumpot.o: ../poten/dumpot.f90
	$(F90C) -c ../poten/dumpot.f90
h2ni.o: ../poten/h2ni_module.f90 ../poten/h2ni.f90
	$(F90C) -c ../poten/h2ni_module.f90 ../poten/h2ni.f90
h3.o: ../poten/h3.f90
	$(F90C) -c ../poten/h3.f90
hni.o: ../poten/hni.f90
	$(F90C) -c ../poten/hni.f90
ho2.o: ../poten/ho2.f90
	$(F90C) -c ../poten/ho2.f90
nh3.o: ../poten/nh3_module.f90 ../poten/nh3.f90
	$(F90C) -c ../poten/nh3_module.f90 ../poten/nh3.f90
oh3.o: ../poten/oh3.f90
	$(F90C) -c ../poten/oh3.f90
ohcl.o: ../poten/ohcl.f90
	$(F90C) -c ../poten/ohcl.f90
setup3.o: ../poten/setup3.f90
	$(F90C) -c ../poten/setup3.f90
setup4.o: ../poten/setup4.f90
	$(F90C) -c ../poten/setup4.f90
surf3.o: ../poten/surf3.f90
	$(F90C) -c ../poten/surf3.f90
surf4.o: ../poten/surf4.f90
	$(F90C) -c ../poten/surf4.f90
#User may add line here to compile potential file.  Start second line with a tab


#User may add lines here to make the executable.  Example:
#SURFACE:
#	make $(SURFACEEXE)
#$(SURFACEEXE):$(OBJ) dummy_mpi.o surface.o
#	$(F90C) -o $(SURFACEEXE) $(OBJ) dummy_mpi.o surface.o

DUMS:
	make -s $(DUMSEXE)
$(DUMSEXE):$(OBJ) dummy_mpi.o dumpot.o
	$(F90C) -o $(DUMSEXE) $(OBJ) dummy_mpi.o dumpot.o

CH4OS:
	make -s $(CH4OSEXE)
$(CH4OSEXE):$(OBJ) dummy_mpi.o ch4o.o
	$(F90C) -o $(CH4OSEXE) $(OBJ) dummy_mpi.o ch4o.o ch4o_module.o

CH5S:
	make -s $(CH5SEXE)
$(CH5SEXE):$(OBJ) dummy_mpi.o ch5.o
	$(F90C) -o $(CH5SEXE) $(OBJ) dummy_mpi.o ch5.o ch5_module.o

CLHBRS:
	make -s $(CLHBRSEXE)
$(CLHBRSEXE):$(OBJ) dummy_mpi.o clhbr.o setup3.o surf3.o coord3.o chain3.o
	$(F90C) -o $(CLHBRSEXE) $(OBJ) dummy_mpi.o clhbr.o setup3.o surf3.o coord3.o chain3.o

CMCS:
	make -s $(CMCSEXE)
$(CMCSEXE):$(OBJ) dummy_mpi.o cmc.o
	$(F90C) -o $(CMCSEXE) $(OBJ) dummy_mpi.o cmc.o

CWMCS:
	make -s $(CWMCSEXE)
$(CWMCSEXE):$(OBJ) dummy_mpi.o cwmc_module.o cwmc.o
	$(F90C) -o $(CWMCSEXE) $(OBJ) dummy_mpi.o cwmc_module.o cwmc.o

H2NIS:
	make -s $(H2NISEXE)
$(H2NISEXE):$(OBJ) dummy_mpi.o h2ni_module.o h2ni.o
	$(F90C) -o $(H2NISEXE) $(OBJ) dummy_mpi.o h2ni_module.o h2ni.o

H3S:
	make -s $(H3SEXE)
$(H3SEXE):$(OBJ) dummy_mpi.o h3.o setup3.o surf3.o coord3.o chain3.o
	$(F90C) -o $(H3SEXE) $(OBJ) dummy_mpi.o h3.o setup3.o surf3.o coord3.o chain3.o

HNIS:
	make -s $(HNISEXE)
$(HNISEXE):$(OBJ) dummy_mpi.o hni.o
	$(F90C) -o $(HNISEXE) $(OBJ) dummy_mpi.o hni.o

HO2S:
	make -s $(HO2SEXE)
$(HO2SEXE):$(OBJ) dummy_mpi.o ho2.o setup3.o surf3.o coord3.o chain3.o
	$(F90C) -o $(HO2SEXE) $(OBJ) dummy_mpi.o ho2.o setup3.o surf3.o coord3.o chain3.o

NH3S:
	make -s $(NH3SEXE)
$(NH3SEXE):$(OBJ) dummy_mpi.o nh3_module.o nh3.o
	$(F90C) -o $(NH3SEXE) $(OBJ) dummy_mpi.o nh3_module.o nh3.o

OH3S:
	make -s $(OH3SEXE)
$(OH3SEXE):$(OBJ) dummy_mpi.o oh3.o setup4.o surf4.o coord4.o chain4.o
	$(F90C) -o $(OH3SEXE) $(OBJ) dummy_mpi.o oh3.o setup4.o surf4.o coord4.o chain4.o

OHCLS:
	make -s $(OHCLSEXE)
$(OHCLSEXE):$(OBJ) dummy_mpi.o ohcl.o setup3.o surf3.o coord3.o chain3.o
	$(F90C) -o $(OHCLSEXE) $(OBJ) dummy_mpi.o ohcl.o setup3.o surf3.o coord3.o chain3.o


clean:
	rm -f *.o *.mod
