# at PPPL, first do "module add lapack-blas"
# PPPL cluster with Lahey-Fujitsu compiler:
FORTRAN   = lf95
FOPTS = --dbl --ml cdecl --trace --trap -g
#FOPTS = -c --chk[aesu] --chkglobal -g --trace  --trap
#FOPTS = -c -g --trace --trap
LOPTS = $(FOPTS)
# LOPTS = -dalign
# BLAS   = -L$LAPACKHOME -llapack -L$(BLASHOME) -lblas
OTHER =

# LAPTOP DELL - GNU
#FORTRAN   = f77
#FOPTS =  -u -C
#LOPTS =
#BLAS   = -L/export/home/giraud/Lib/Blas -lcblas -lf77blas -latlas -lf2c
#LAPACK = /usr/lib/liblapack.a
#OPTS    = -O
#
# SUN
# FORTRAN   = f90
# FOPTS =  -u
# LOPTS = -dalign
# BLAS   = -lsunperf
# #BLAS   = /usr/local/lib/libblas.a
#  OTHER =
#

# IBM
#FORTRAN   = xlf
#FOPTS =  -u
#LOPTS = 
#BLAS   = /usr/local/lib/libblas.a
#OTHER =
#
# DEC
#FORTRAN   = f77
#FOPTS =  -u
#LOPTS = 
#BLAS   = /usr/lib/libblas.a
#OTHER = -lfor -lm -lots -lm_4sqrt
#
# CRAY - T3D
#FORTRAN = TARGET=cray-t3d f90
#FOPTS = -O2 -I/usr/include/mpp
#LOPTS = -O2 -I/usr/include/mpp
#BLAS   = /opt/ctl/craylibs_m/craylibs_m/libsci.a
#
# SGI
#FORTRAN = f77
#FOPTS =  -u
#LOPTS = 
#BLAS   = 
#OTHER  = -lcomplib.sgimath
#
# user's object files
#
sGMRES = sPackgmres.o
dGMRES = dPackgmres.o
cGMRES = cPackgmres.o
zGMRES = zPackgmres.o blas_rot.o
#
.SUFFIXES: .f .o
.SUFFIXES: .F .f
#
all: dr_gmres_test dr_gmres_testz

dr_gmres_test: dr_gmres_test.o dr_gmres.o ilu0.o
	$(FORTRAN) $(LOPTS) -o $@ $@.o dr_gmres.o ilu0.o $(BLAS) $(OTHER)
dr_gmres_testz: dr_gmres_testz.o dr_gmresz.o 
	$(FORTRAN) $(LOPTS) -o $@ $@.o dr_gmresz.o $(BLAS) $(OTHER)
#
# preprocessor to make real and complex versions of the gmres codes:
#
dr_gmres.f dr_gmresz.f: dr_gmres.F complex_real.h
	cpp -traditional                 dr_gmres.F dr_gmres.f
	cpp -traditional -D COMPLEX_MODE dr_gmres.F dr_gmresz.f

dr_gmres_test.f dr_gmres_testz.f: dr_gmres_test.F complex_real.h
	cpp -traditional                 dr_gmres_test.F dr_gmres_test.f
	cpp -traditional -D COMPLEX_MODE dr_gmres_test.F dr_gmres_testz.f

dr_gmres.o dr_gmresz.o: dr_gmres.f dr_gmresz.f
	$(FORTRAN) $(FOPTS) -c dr_gmres.f
	$(FORTRAN) $(FOPTS) -c dr_gmresz.f

dr_gmres_test.o dr_gmres_testz.o: dr_gmres_test.f dr_gmres_testz.f
	$(FORTRAN) $(FOPTS) -c dr_gmres_test.f
	$(FORTRAN) $(FOPTS) -c dr_gmres_testz.f

.f.o :
	$(FORTRAN) $(FOPTS) -c $*.f
clean :
	/bin/rm -f *.o \
     dr_gmres_test dr_gmres_testz dr_gmres_test*.f dr_gmres*.f
