#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_eu.o thermSt2snd_eu.o riemann_eu.o rpSnapshot_eu.o \
printWC_eu.o newton_eu.o states_eu.o rpOut_eu.o onWaveCurve_eu.o \
pre2veljumpExpan_eu.o pre2veljumpCompr_eu.o veljump2vel_eu.o st2inv_eu.o \
compPower_eu.o valueAndSlope_eu.o statesO_eu.o stPrimExt2stPrimExt_eu.o \
setVacMidState_eu.o setRegMidState_eu.o wave_eu.o primExtSt2W_eu.o \
waveCD_eu.o maxTime_eu.o stIndex_eu.o wvIndex_eu.o pre2densCompr_eu.o \
pre2densExpan_eu.o pre2absDpreDvelCompr_eu.o pre2absDpreDvelExpan_eu.o \
pre2relMassFluxCompr_eu.o pre2relMassFluxCompr_eu.o rmWrite_eu.o fanSnapshot_eu.o \
thermSt2invEntr_eu.o inv2st_eu.o 

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

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

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

testNewt_eu.o:testNewt_eu.f  ${HEADERS}

testPrintWC_eu.o:testPrintWC_eu.f  ${HEADERS}

readEOSConst_eu.o:readEOSConst_eu.f  ${HEADERS}

maxTime_eu.o:maxTime_eu.f  ${HEADERS}

newton_eu.o:newton_eu.f  ${HEADERS}

onWaveCurve_eu.o:onWaveCurve_eu.f  ${HEADERS}

printWC_eu.o:printWC_eu.f  ${HEADERS}

printInitWC_eu.o:printInitWC_eu.f  ${HEADERS}

riemann_eu.o:riemann_eu.f  ${HEADERS}

rpOut_eu.o:rpOut_eu.f  ${HEADERS}

rpSnapshot_eu.o:rpSnapshot_eu.f  ${HEADERS}

st2inv_eu.o:st2inv_eu.f  ${HEADERS}

stIndex_eu.o:stIndex_eu.f ${HEADERS}

states_eu.o:states_eu.f  ${HEADERS}

statesO_eu.o:statesO_eu.f  ${HEADERS}

valueAndSlope_eu.o:valueAndSlope_eu.f  ${HEADERS}

wave_eu.o:wave_eu.f  ${HEADERS}

wvIndex_eu.o:wvIndex_eu.f ${HEADERS}

compPower_eu.o: compPower_eu.f  ${HEADERS}

pre2veljumpExpan_eu.o: pre2veljumpExpan_eu.f ${HEADERS}

pre2veljumpCompr_eu.o: pre2veljumpCompr_eu.f ${HEADERS}

stPrimExt2stPrimExt_eu.o: stPrimExt2stPrimExt_eu.f ${HEADERS}

pre2densCompr_eu.o: pre2densCompr_eu.f ${HEADERS}

pre2densExpan_eu.o: pre2densExpan_eu.f ${HEADERS}

waveCD_eu.o: waveCD_eu.f ${HEADERS}

setVacMidState_eu.o: setVacMidState_eu.f ${HEADERS}

pre2absDpreDvelCompr_eu.o: pre2absDpreDvelCompr_eu.f ${HEADERS}

pre2absDpreDvelExpan_eu.o: pre2absDpreDvelExpan_eu.f ${HEADERS}

pre2relMassFluxCompr_eu.o: pre2relMassFluxCompr_eu.f ${HEADERS}

pre2relMassFluxCompr_eu.o: pre2relMassFluxCompr_eu.f ${HEADERS}

setRegMidState_eu.o: setRegMidState_eu.f ${HEADERS}

rmWrite_eu.o: rmWrite_eu.f ${HEADERS}

fanSnapshot_eu.o: fanSnapshot_eu.f ${HEADERS}

thermSt2invEntr_eu.o: thermSt2invEntr_eu.f ${HEADERS}

inv2st_eu.o: inv2st_eu.f ${HEADERS}

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