#FC     = g77
FC     = ifort
FFLAGS = -g -O -I. -I.. -I../..

ifeq (${FC},g77)
  FFLAGS += -Wimplicit -Wall -fcase-preserve 
  #LDLIBS += -lg2c    
endif

#----------------------------------------------------------------------
# 	Default action is to build all needed components.
#----------------------------------------------------------------------

all: ne.out twc.out

HEADERS=../mat_constants.h ../parameters.h ../wave_constants.h ../../input_output.h

#----------------------------------------------------------------------
# 	Newton code.
#----------------------------------------------------------------------

NEWTON = readEOSConst.o riemann.o rpSnapshot.o \
printWC.o newton.o states.o rpOut.o onWaveCurve.o \
st2inv.o maxTime.o \
valueAndSlope.o statesO.o \
wave.o st2st.o st2W.o st2char.o \
stIndex.o wvIndex.o \
rmWrite.o fanSnapshot.o \
inv2st.o wave_data.o rho2DmomDrhoCompr.o  rho2DmomDrhoExpan.o  rho2momCompr.o  rho2momExpan.o

ne.out:testNewt.o ${NEWTON}
	${FC} ${FFLAGS} $^ -o $@ ${LDLIBS}

twc.out:testPrintWC.o ${NEWTON}
	${FC} ${FFLAGS} $^ -o $@ ${LDLIBS}

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

testNewt.o:testNewt.f  ${HEADERS}

testPrintWC.o:testPrintWC.f  ${HEADERS}

readEOSConst.o:readEOSConst.f  ${HEADERS}

newton.o:newton.f  ${HEADERS}

onWaveCurve.o:onWaveCurve.f  ${HEADERS}

printWC.o:printWC.f  ${HEADERS}

printInitWC.o:printInitWC.f  ${HEADERS}

riemann.o:riemann.f  ${HEADERS}

rpOut.o:rpOut.f  ${HEADERS}

rpSnapshot.o:rpSnapshot.f  ${HEADERS}

st2inv.o:st2inv.f  ${HEADERS}

stIndex.o:stIndex.f ${HEADERS}

states.o:states.f  ${HEADERS}

maxTime.o:maxTime.f  ${HEADERS}

statesO.o:statesO.f  ${HEADERS}

valueAndSlope.o:valueAndSlope.f  ${HEADERS}

wave.o:wave.f  ${HEADERS}

st2st.o: st2st.f  ${HEADERS}

st2W.o: st2W.f  ${HEADERS}

st2char.o: st2char.f  ${HEADERS}

wvIndex.o:wvIndex.f ${HEADERS}

rmWrite.o: rmWrite.f ${HEADERS}

fanSnapshot.o: fanSnapshot.f ${HEADERS}

inv2st.o: inv2st.f ${HEADERS}

wave_data.o: wave_data.f ${HEADERS}

rho2DmomDrhoCompr.o: rho2DmomDrhoCompr.f  ${HEADERS}

rho2DmomDrhoExpan.o: rho2DmomDrhoExpan.f ${HEADERS}

rho2momCompr.o: rho2momCompr.f ${HEADERS}

rho2momExpan.o: rho2momExpan.f ${HEADERS}

.PHONY: clean all
clean: 
	rm -f *.o *.out *.dat core
