# -------------------Compiler & Flags------------------------------------------
F90COMPILER = mpif90
F90LINKER   = mpif90
F90COMPILEOPTS=-C -O2 -fPIC -convert big_endian -traceback
NETCDF = /cluster/intel-13.1/netcdf-4.4.1-nc4
PNETCDF = /cluster/intel-13.1/pnetcdf-1.3.1-openmpi
MKL = /cluster/intel/composer_xe_2013.5.192/mkl/lib/intel64
F90COMPILEPATHS=-I${PNETCDF}/include -I${NETCDF}/include
#F90COMPILECPPFLAGS=-DDEBUG=1 -DNETCDF=1 -DPNETCDF=1
F90COMPILECPPFLAGS=
F90LINKOPTS= -m64 -Wl,--no-as-needed
F90LINKPATHS=-L${PNETCDF}/lib -L${NETCDF}/lib -L${MKL}
F90LINKLIBS=-lpnetcdf -lhdf5 -lhdf5_hl -ldl -lm -lz -lcurl -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lnetcdf -lnetcdff

# -----------------------------------------------------------------------------
SRCDIR =  src
OBJDIR =  obj 
LOGDIR =  log 


VPATH= $(SRCDIR)

.SUFFIXES: .F .f .f90 .F90 

%.o : %.f90
	$(F90COMPILER) -c $(F90COMPILEOPTS) $(F90COMPILEPATHS) $<

%.o : %.F90
	$(F90COMPILER) -c $(F90COMPILEOPTS) $(F90COMPILEPATHS) $(F90COMPILECPPFLAGS) $<
 
%.o : %.f
	$(F90COMPILER) -c $(F90COMPILEOPTS) $(F90COMPILEPATHS) $<
 
%.o : %.F
	$(F90COMPILER) -c $(F90COMPILEOPTS) $(F90COMPILEPATHS) $(F90COMPILECPPFLAGS) $<
       
      
# -----------------------------------------------------------------------------
#all: pre.exe prep.exe move log1
all: pre.exe move log1

pre.exe: const.o var.o comm.o met.o interp.o presolver.o main.o 
	$(F90LINKER) $(F90LINKOPTS) $(F90LINKPATHS) -o $@ $^ $(F90LINKLIBS)
#prep.exe: prep.o
#	$(F90LINKER) $(F90LINKOPTS) $(F90LINKPATHS) -o $@ $^ $(F90LINKLIBS)
move:	
	mv *.o *.mod ./$(OBJDIR)
log1:
#	mv *.log ./$(LOGDIR)

# -----------------------------------------------------------------------------
.PHONY: clean 
clean:
	rm -rf *.exe obj/* log/* data/* 
submit:
	make
	qsub submit_enigma.sh 
cess:
	make
	qsub run.job
run:
	mpiexec -n 24 ./pre.exe
#	bsub -a intelmpi -n 64 mpirun.lsf ./pre.exe 2>&1 | tee log.txt
#	bsub -a intelmpi -n 64 –R "span[hosts=6]" -o output.%J -e errors.%J  mpirun.lsf ./pre.exe 
#	bsub -a intelmpi -n 64 -o output.%J -e errors.%J  mpirun.lsf ./pre.exe

