
SRC = ../src
PSRC = ../panel
OSRC = ../orrs

PLTOBJ= ../plotlib/libPlt.a 

CKOBJ =
IOOBJ = io.o
SNOBJ = sensio.o
LIO   =
OSOBJ = frplot0.o
SOLV  = fsolve.o
CKOBJ =


##===========================
##  Default compiler flags

FLG    = -O
FLG1   = -O1 
FLGOPT = -O

#FLG    = -O1 -g -C
#FLG1   = -O1 -g -C
#FLGOPT = -O1 -g -C

##--------------------------
##  Uncomment for OSF/Alpha

#FLG1   = -O
#FLGOPT = -O
#FLGOPT = -O5 -fast -tune ev4 -unroll 3

##--------------------------
##  Uncomment for RS/6000

#FLG    = -O -qextname
#FLG1   = -O -qextname
#FLGOPT = -O -qextname

##--------------------------
##  Uncomment for HP-9000

#FLG    = -O +ppu
#FLG1   = -O +ppu
#FLGOPT = -O +ppu

##--------------------------



#==================================================================
#   Option-selection section.
#
#     Uncomment VARIABLE to enable the option described.
#
#------------------------------------------------------------------
#   Linearization checking in mses.f, using linchk* routines
#   (must also built libPlt.a with -r8 )
# CKOBJ  = linchk.o
# FLG    = -O1 -r8
# FLG1   = -O1 -r8
# FLGOPT = -O1 -r8
# PLTOBJ= ../plotlib/libPltDP.a 

#------------------------------------------------------------------
#   Device-independent i/o with iolib library
# IOOBJ = iol.o
# SNOBJ = sensiol.o
# LIO   = -lio

#------------------------------------------------------------------
#   Enable Orr-Sommerfeld solution plotting (gives large MPLOT executable)
# OSOBJ = frplot.o ntcalc.o oshai.o

#------------------------------------------------------------------
#   Enable matrix solution for choked flows (see Notes, csolve.f header)
# SOLV = csolve.o

#------------------------------------------------------------------
#   Double-precision for all programs
#   (libPltDP.a is built in ../plotlib directory using  % make -f Makefile.DP )
# FLG    = -O1 -r8
# FLG1   = -O1 -r8
# FLGOPT = -O2 -r8
# PLTOBJ= ../plotlib/libPltDP.a 
#==================================================================



ALL : mses mplot mset medp msis
ALL2: mpolar mpolarm mpolarc
ALL3: pplot splot mxplot uewall

all : ALL
all2: ALL2
all3: ALL3


MSESOBJ= mses.o init.o setup.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
$(SOLV) $(IOOBJ) $(SNOBJ) $(CKOBJ)

POLAROBJ= mpolar.o init.o setup.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
$(SOLV) $(IOOBJ) $(SNOBJ)

POLRMOBJ= mpolarm.o init.o setup.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
$(SOLV) $(IOOBJ) $(SNOBJ)

POLRCOBJ= mpolarc.o init.o setup.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
$(SOLV) $(IOOBJ) $(SNOBJ)

MSISOBJ= mses.o init.o setis.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
isolve.o $(IOOBJ) $(SNOBJ) $(CKOBJ)

POLISOBJ= mpolar.o init.o setis.o setbc.o ffbc.o phixy.o \
setbl.o blsys.o mrchbl.o grdseq.o gapset.o \
update.o globit.o picalc.o smove.o glosen.o gnset.o gmodes.o \
spline.o lefind.o ellip.o filter.o gauss.o second.o \
isolve.o $(IOOBJ) $(SNOBJ)

MPLTOBJ= mplot.o surfpl.o strmpl.o contpl.o dplot.o picalc.o \
profil.o uprof.o spline.o plutil.o utils.o offget.o userio.o oplset.o \
$(IOOBJ) $(OSOBJ)

MSETOBJ= mset.o msetpl.o sgsubs.o smove.o panel.o \
sgutil.o spline.o lefind.o setexp.o utils.o gapset.o \
offget.o readbl.o userio.o ellip.o filter.o \
$(IOOBJ)

MEDPOBJ= medp.o picalc.o spline.o lefind.o readbl.o plutil.o \
offget.o userio.o \
$(IOOBJ)

GFIXOBJ= gfix.o smove.o spline.o lefind.o ellip.o filter.o \
$(IOOBJ)

DBLOBJ = dble.o grdseq.o ellip.o filter.o spline.o \
$(IOOBJ)

HLFOBJ = half.o grdseq.o ellip.o filter.o spline.o \
$(IOOBJ)


mses:    $(MSESOBJ)
	f77 -o mses $(MSESOBJ) $(LIO)
msis:    $(MSISOBJ)
	f77 -o msis $(MSISOBJ) $(LIO)
mpolar:  $(POLAROBJ)
	f77 -o mpolar $(POLAROBJ) $(LIO)
mpolarm: $(POLRMOBJ)
	f77 -o mpolarm $(POLRMOBJ) $(LIO)
mpolarc: $(POLRCOBJ)
	f77 -o mpolarc $(POLRCOBJ) $(LIO)
mpolis:  $(POLISOBJ)
	f77 -o mpolis $(POLISOBJ) $(LIO)
mplot:   $(MPLTOBJ)
	f77 -o mplot $(MPLTOBJ) $(PLTOBJ) $(LIO) -lX11
mset:    $(MSETOBJ)
	f77 -o mset $(MSETOBJ) $(PLTOBJ) $(LIO) -lX11
medp:    $(MEDPOBJ)
	f77 -o medp $(MEDPOBJ) $(PLTOBJ) $(LIO) -lX11
uewall: uewall.o picalc.o $(IOOBJ)
	f77 -o uewall uewall.o picalc.o $(IOOBJ) $(LIO)
gfix:   $(GFIXOBJ)
	f77 -o gfix  $(GFIXOBJ) $(LIO)
dble:  $(DBLOBJ)
	f77 -o dble $(DBLOBJ) $(LIO)
half:  $(HLFOBJ)
	f77 -o half $(HLFOBJ) $(LIO)

pplot: pplot.o plutil.o userio.o
	f77 -o pplot pplot.o plutil.o userio.o $(PLTOBJ) -lX11
splot: splot.o plutil.o userio.o spline.o $(SRC)/SPLOT.INC
	f77 -o splot splot.o plutil.o userio.o spline.o $(PLTOBJ) -lX11
mxplot: mxplot.o plutil.o userio.o $(SRC)/MXPLOT.INC
	f77 -o mxplot mxplot.o plutil.o userio.o \
$(PLTOBJ) -lX11


mses.o: $(SRC)/mses.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/EPS.INC
	f77 -c $(FLG)  $(SRC)/mses.f
mpolar.o: $(SRC)/mpolar.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/EPS.INC
	f77 -c $(FLG)  $(SRC)/mpolar.f
mpolarm.o: $(SRC)/mpolarm.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/EPS.INC
	f77 -c $(FLG)  $(SRC)/mpolarm.f
mpolarc.o: $(SRC)/mpolarc.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/EPS.INC
	f77 -c $(FLG)  $(SRC)/mpolarc.f
init.o: $(SRC)/init.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/init.f
setup.o: $(SRC)/setup.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/setup.f
setis.o: $(SRC)/setis.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/setis.f
setbc.o: $(SRC)/setbc.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/setbc.f
ffbc.o: $(SRC)/ffbc.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG1)  $(SRC)/ffbc.f
setbl.o: $(SRC)/setbl.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/MBL.INC
	f77 -c $(FLG)  $(SRC)/setbl.f
blsys.o: $(SRC)/blsys.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/MBL.INC
	f77 -c $(FLG)  $(SRC)/blsys.f
mrchbl.o: $(SRC)/mrchbl.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/MBL.INC
	f77 -c $(FLG)  $(SRC)/mrchbl.f
fsolve.o: $(SRC)/fsolve.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/fsolve.f
isolve.o: $(SRC)/isolve.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/isolve.f
ssolve.o: $(SRC)/ssolve.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/ssolve.f
csolve.o: $(SRC)/csolve.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLGOPT)  $(SRC)/csolve.f
update.o: $(SRC)/update.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/update.f
globit.o: $(SRC)/globit.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/globit.f
smove.o: $(SRC)/smove.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/smove.f
picalc.o: $(SRC)/picalc.f $(SRC)/STATE.INC
	f77 -c $(FLG)  $(SRC)/picalc.f
io.o: $(SRC)/io.f $(SRC)/STATE.INC
	f77 -c $(FLG)  $(SRC)/io.f
iol.o: $(SRC)/iol.f $(SRC)/STATE.INC
	f77 -c $(FLG)  $(SRC)/iol.f
glosen.o: $(SRC)/glosen.f $(SRC)/STATE.INC $(SRC)/MSES.INC $(SRC)/SENS.INC
	f77 -c $(FLG)  $(SRC)/glosen.f
sensio.o: $(SRC)/sensio.f $(SRC)/STATE.INC $(SRC)/SENS.INC
	f77 -c $(FLG)  $(SRC)/sensio.f
sensiol.o: $(SRC)/sensiol.f $(SRC)/STATE.INC $(SRC)/SENS.INC
	f77 -c $(FLG)  $(SRC)/sensiol.f
linchk.o: $(SRC)/linchk.f $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/linchk.f
gnset.o: $(SRC)/gnset.f   $(SRC)/STATE.INC $(SRC)/MSES.INC
	f77 -c $(FLG)  $(SRC)/gnset.f
grdseq.o: $(SRC)/grdseq.f $(SRC)/STATE.INC
	f77 -c $(FLG)  $(SRC)/grdseq.f
gmodes.o: $(SRC)/gmodes.f
	f77 -c $(FLG)  $(SRC)/gmodes.f
spline.o: $(SRC)/spline.f
	f77 -c $(FLG)  $(SRC)/spline.f
gauss.o: $(SRC)/gauss.f
	f77 -c $(FLGOPT)  $(SRC)/gauss.f
profbl.o: $(SRC)/profbl.f
	f77 -c $(FLG)  $(SRC)/profbl.f
utils.o: $(SRC)/utils.f
	f77 -c $(FLG) $(SRC)/utils.f
lefind.o: $(SRC)/lefind.f
	f77 -c $(FLG) $(SRC)/lefind.f
phixy.o: $(SRC)/phixy.f
	f77 -c $(FLG)  $(SRC)/phixy.f
ellip.o: $(SRC)/ellip.f
	f77 -c $(FLG)  $(SRC)/ellip.f
filter.o: $(SRC)/filter.f
	f77 -c $(FLG)  $(SRC)/filter.f
second.o: $(SRC)/second.f
	f77 -c $(FLG)  $(SRC)/second.f

gapset.o: $(SRC)/gapset.f $(SRC)/STATE.INC
	f77 -c $(FLG)  $(SRC)/gapset.f

userio.o: $(SRC)/userio.f
	f77 -c $(FLG)  $(SRC)/userio.f
offget.o: $(SRC)/offget.f
	f77 -c $(FLG)  $(SRC)/offget.f
oplset.o: $(SRC)/oplset.f
	f77 -c $(FLG)  $(SRC)/oplset.f


pplot.o: $(SRC)/pplot.f $(SRC)/PPLOT.INC $(SRC)/PINDEX.INC
	f77 -c $(FLG)  $(SRC)/pplot.f
splot.o: $(SRC)/splot.f $(SRC)/SPLOT.INC
	f77 -c $(FLG)  $(SRC)/splot.f
mxplot.o: $(SRC)/mxplot.f $(SRC)/MXPLOT.INC
	f77 -c $(FLG)  $(SRC)/mxplot.f


mplot.o: $(SRC)/mplot.f $(SRC)/STATE.INC $(SRC)/MPLOT.INC
	f77 -c $(FLG)  $(SRC)/mplot.f
surfpl.o: $(SRC)/surfpl.f $(SRC)/STATE.INC $(SRC)/MPLOT.INC
	f77 -c $(FLG1) $(SRC)/surfpl.f
strmpl.o: $(SRC)/strmpl.f $(SRC)/STATE.INC $(SRC)/MPLOT.INC
	f77 -c $(FLG)  $(SRC)/strmpl.f
contpl.o: $(SRC)/contpl.f $(SRC)/STATE.INC $(SRC)/MPLOT.INC
	f77 -c $(FLG1)  $(SRC)/contpl.f
dplot.o: $(SRC)/dplot.f $(SRC)/STATE.INC $(SRC)/MPLOT.INC
	f77 -c $(FLG)  $(SRC)/dplot.f
uprof.o: $(SRC)/uprof.f
	f77 -c $(FLG)  $(SRC)/uprof.f
profil.o: $(SRC)/profil.f
	f77 -c $(FLG)  $(SRC)/profil.f
plutil.o: $(SRC)/plutil.f
	f77 -c $(FLG)  $(SRC)/plutil.f

frplot0.o: $(OSRC)/frplot0.f
	f77 -c $(FLG)  $(OSRC)/frplot0.f
frplot.o: $(OSRC)/frplot.f
	f77 -c $(FLG)  $(OSRC)/frplot.f
ntcalc.o: $(OSRC)/ntcalc.f
	f77 -c $(FLG)  $(OSRC)/ntcalc.f
oshai.o: $(OSRC)/oshai.f
	f77 -c $(FLG)  $(OSRC)/oshai.f


mset.o: $(SRC)/mset.f $(SRC)/STATE.INC $(SRC)/MSET.INC
	f77 -c $(FLG)  $(SRC)/mset.f
msetpl.o: $(SRC)/msetpl.f $(SRC)/STATE.INC $(SRC)/MSET.INC
	f77 -c $(FLG)  $(SRC)/msetpl.f
sgsubs.o: $(SRC)/sgsubs.f $(SRC)/STATE.INC $(SRC)/MSET.INC
	f77 -c $(FLG)  $(SRC)/sgsubs.f
panel.o: $(PSRC)/panel.f $(PSRC)/PANEL.INC
	f77 -c $(FLG)  $(PSRC)/panel.f
sgutil.o: $(SRC)/sgutil.f
	f77 -c $(FLG) $(SRC)/sgutil.f
readbl.o: $(SRC)/readbl.f
	f77 -c $(FLG) $(SRC)/readbl.f
setexp.o: $(SRC)/setexp.f
	f77 -c $(FLG) $(SRC)/setexp.f

medp.o: $(SRC)/medp.f $(SRC)/STATE.INC $(SRC)/MEDP.INC
	f77 -c $(FLG)  $(SRC)/medp.f

uewall.o: $(SRC)/uewall.f $(SRC)/STATE.INC
	f77 -c $(FLG) $(SRC)/uewall.f

conmod.o: $(SRC)/conmod.f
	f77 -c $(FLG)  $(SRC)/conmod.f


gfix.o: $(SRC)/gfix.f $(SRC)/STATE.INC
	f77 -c -static -O1  $(SRC)/gfix.f

dble.o: $(SRC)/dble.f $(SRC)/STATE.INC
	f77 -c -O1  $(SRC)/dble.f
half.o: $(SRC)/half.f $(SRC)/STATE.INC
	f77 -c -O1  $(SRC)/half.f



