include ${SEPINC}/SEP.top

# Some Templates
UF90LIBS = ${GEELIB} #-lgeef90 -lsep2df90 
INVRAS   = n
FAT      = 3

BINDIR = ./Bin
SRCDIR = ./Src
RESDIR = ./Fig
DATDIR = ./Dat
PARDIR = ./Par
OBJDIR = ./Obj

R = ${RESDIR}
S = ${SRCDIR}
B = ${BINDIR}
D = ${DATDIR}
P = ${PARDIR}
O = ${OBJDIR}

GEEDAT = /net/server/homes/sep/prof/gee/Data
BEIDAT = /net/server/book/bei/Data

GR = Grey title=" " > /dev/null
GP = Graph title=" " transp=y yreverse=y plotfat=6 > /dev/null

# Define Which files should be preserved by Cleaning and Burning
.PRECIOUS: picked_reflectors*.txt

# Example to Pick Reflections
# 'Envelope < velscan0.H tc1=4 tc2=2 > velscan0_envelope.H'
# 'ICube velscan0_envelope.H'

# Reflection Pick Conversion Rule
picked_reflectors%.H: ${B}/picks2seplib.x picked_reflectors%.txt ${P}/pick%.P
	${B}/picks2seplib.x fname=picked_reflectors$*.txt > $@	
	Get < ${P}/pick$*.P o1 d1 >> $@
	echo 'esize=4' >> $@

# Processing Flows
cmp2d.H:
	< ${BEIDAT}/midpts.HH  Window n3=40 f3=0 j3=2 |\
	Add scale=0.0001 | Mute tmute=0.2 vmute=1.5 > $@

cmp0.H:
	Cp ${D}/cmp0.H $@ > /dev/null

velscan%.H: ${B}/Veltran.x ${P}/velscan%.P cmp%.H
	< cmp$*.H ${B}/Veltran.x adj=1 inv=1 lint=1 par=${P}/velscan$*.P  > $@

vrms%-auto.H weight%-auto.H: ${B}/Pick_rms.x velscan%.H ${P}/pick%.P
	< velscan$*.H  Envelope tc1=4 tc2=2 |\
	${B}/Pick_rms.x par=${P}/pick$*.P weight=weight$*-auto.H >vrms$*-auto.H

vrms%-interp.H weight%-interp.H refl%.H: picked_reflectors%.H ${B}/InterpRMS.x ${P}/pick%.P ${P}/mr.P
	< picked_reflectors$*.H ${B}/InterpRMS.x \
		par=${P}/pick$*.P weight=w.H nframe=10 par=${P}/mr.P refl=refl$*.H > vrms$*-interp.H
	< w.H  Clip par=${P}/mr.P chop=g | Add par=${P}/mr.P > weight$*-interp.H

vint-reg%-auto.H: ${B}/Vrms2int.x vrms%-auto.H weight%-auto.H ${P}/vrms2int%.P
	< vrms$*-auto.H ${B}/Vrms2int.x weight=weight$*-auto.H prec=0 par=${P}/vrms2int$*.P > $@

vint-prec2d-nosr.H: ${B}/Vrms2int.x vrms2d-auto.H weight2d-auto.H ${P}/vrms2int2d-nosr.P
	< vrms2d-auto.H ${B}/Vrms2int.x weight=weight2d-auto.H prec=1 par=${P}/vrms2int2d-nosr.P > $@

vint-reg%-interp.H: ${B}/Vrms2int.x vrms%-interp.H weight%-auto.H ${P}/vrms2int%.P
	< vrms$*-interp.H  Window n2=1 f2=0 > v.H
	< v.H ${B}/Vrms2int.x weight=weight$*-interp.H prec=0 par=${P}/vrms2int$*.P > $@

vint-reg%-interp-blocky.H: ${B}/Vrms2int.x vrms%-interp.H weight%-auto.H ${P}/vrms2int%.P refl%.H
	< vrms$*-interp.H  Window n2=1 f2=0 > v.H
	< v.H ${B}/Vrms2int.x weight=weight$*-interp.H prec=0 par=${P}/vrms2int$*.P refl=refl$*.H > $@

# Figure Targets
${R}/vrms0.v: ${B}/Plot_fairway.x vrms0-auto.H ${P}/pick0.P velscan0.H weight0-auto.H cmp0.H ${P}/minmax0.P
	< vrms0-auto.H    Window n2=1 f2=0 > va.H
	< weight0-auto.H  Window n3=1 f3=0 > wa.H
	< cmp0.H          Window n3=1 f3=0 > ca.H
	< velscan0.H     Window n3=1 f3=0 > sa.H
	${B}/Plot_fairway.x par=${P}/pick0.P | Real > fairway.H
	Cat axis=2 fairway.H va.H | ${GP} label1="Time(sec)" par=${P}/minmax0.P out=${R}/lines.v
	< sa.H  Envelope tc1=4 tc2=2 | ${GR} par=${P}/minmax0.P allpos=y out=${R}/vsc.v
	vp_Overlay ${R}/vsc.v ${R}/lines.v > ${R}/left.v
	< wa.H  ${GP} title="Stack Power" out=${R}/right.v
	vp_SideBySideAniso ${R}/left.v ${R}/right.v > ${R}/top.v
	< ca.H  ${GR} title="CMP data" out=${R}/cmp.v
	Math exp="1.0/file1" file1=va.H > vv.H	
	< ca.H  NMO velfile=vv.H | ${GR} title="CMP data + NMO" out=${R}/nmo.v
	vp_SideBySideAniso ${R}/cmp.v ${R}/nmo.v > ${R}/bot.v
	vp_OverUnderAniso  ${R}/top.v ${R}/bot.v > $@

${R}/vrms2d.v: ${B}/Plot_fairway.x vrms2d-auto.H ${P}/pick2d.P weight2d-auto.H cmp2d.H ${P}/minmax2d.P
	< vrms2d-auto.H    Window n2=1 f2=0 > va.H
	< velscan2d.H      Window n3=1 f2=0 | Envelope tc1=4 tc2=2 > sa.H
	< weight2d-auto.H  Window n3=1 f3=0 > wa.H
	< cmp2d.H          Window n3=1 f3=0 > ca.H
	${B}/Plot_fairway.x par=${P}/pick2d.P | Real > fairway.H
	< sa.H   ${GR} par=${P}/minmax2d.P allpos=y out=${R}/sem.v
	< vrms2d-auto.H  ${GR} bias=0.5 wantscalebar=y out=${R}/vel.v
	Cat axis=2 fairway.H va.H | ${GP} label1="Time(sec)" par=${P}/minmax2d.P out=${R}/lines.v
	vp_Overlay ${R}/sem.v ${R}/lines.v > ${R}/vsc.v
	< ca.H  ${GR} title="CMP data" out=${R}/cmp.v
	Math exp="1.0/file1" file1=vrms2d-auto.H > vv.H
	< cmp2d.H  NMO velfile=vv.H | Stack | ${GR} title="Stack" out=${R}/stack.v
	vp_SideBySideAniso ${R}/vsc.v ${R}/vel.v > ${R}/top.v
	vp_SideBySideAniso ${R}/cmp.v ${R}/stack.v > ${R}/bot.v
	vp_OverUnderAniso  ${R}/top.v ${R}/bot.v > $@

${R}/vrms-interp%.v: vrms%-auto.H vrms%-interp.H velscan%.H cmp%.H weight%-auto.H weight%-interp.H
	< vrms$*-interp.H  Window n2=1 f2=0 > vi.H
	Cat vrms$*-auto.H vi.H | Window | ${GP} ${L} n2=2 label1="Time(sec)" curvelabel=Autopick:Handpick \
	                               legend=1 par=${P}/minmax$*.P dash=1,0 out=${R}/lines.v 
	< velscan$*.H  Envelope tc1=4 tc2=2 | ${GR} ${L} par=${P}/minmax$*.P allpos=y out=${R}/vsc.v
	vp_Overlay ${R}/vsc.v ${R}/lines.v > ${R}/1.v
	< weight$*-auto.H    ${GP} ${L} label1="Time(sec)" title="Autopick - Residual Weight" out=${R}/wta.v
	< weight$*-interp.H  ${GP} ${L} label1="Time(sec)" title="Handpick - Residual Weight" out=${R}/wti.v
	< cmp$*.H       ${GR} ${L} title="CMP data" out=${R}/cmp.v
	Math exp="1.0/file1" file1=vrms$*-auto.H > vva.H	
	< cmp$*.H  NMO velfile=vva.H | ${GR} ${L} title="NMO - Autopick" out=${R}/nmoa.v
	Math exp="1.0/file1" file1=vrms$*-interp.H > vvh.H	
	< cmp$*.H  NMO velfile=vvh.H | ${GR} ${L} title="NMO - Handpick" out=${R}/nmoh.v
	vp_SideBySideAniso ${R}/1.v   ${R}/wta.v  ${R}/wti.v > ${R}/top.v
	vp_SideBySideAniso ${R}/cmp.v ${R}/nmoa.v ${R}/nmoh.v > ${R}/bot.v
	vp_OverUnderAniso  ${R}/top.v ${R}/bot.v > $@

${R}/vcomp2d.v ${R}/vcomp2d.v3: vrms2d-auto.H vint-prec2d-nosr.H
	< vrms2d-auto.H       ${GR} bias=0.5 wantscalebar=y title="RMS Velocity" out=${R}/rms.v
	< vint-prec2d-nosr.H  ${GR} pclip=95 bias=.5 wantscalebar=y title="1-D V_int inversion" out=${R}/vcomp2d.v
	vp_Movie ${R}/rms.v ${R}/vcomp2d.v > ${R}/vcomp2d.v3

${R}/velscan%.v: velscan%.H cmp%.H
	< velscan$*.H  Envelope tc1=4 tc2=2 > vscan2.H
	< cmp$*.H       ${GR} title="CMP data" out=${R}/cmp.v
	< velscan$*.H   ${GR} title="Raw VelScan" out=${R}/vsc.v
	< vscan2.H      ${GR} title="Processed VelScan" allpos=y out=${R}/env.v
	vp_SideBySideAniso ${R}/cmp.v ${R}/vsc.v ${R}/env.v > $@

L = labelsz=20 titlesz=20 legendsz=12 dash=0,2,1 plotfat=5 legendloc=tl crowd=0.65
${R}/vint%.v: vrms%-auto.H vrms%-interp.H vint-reg%-auto.H vint-reg%-interp.H vint-reg%-interp-blocky.H \
                   ${P}/pick%.P weight%-interp.H weight%-auto.H
	< vrms$*-interp.H  Window n2=1 f2=0 > vi.H
	Cat vrms$*-auto.H   vint-reg$*-auto.H > vela.H
	Cat vi.H            vint-reg$*-interp.H vint-reg$*-interp-blocky.H > veli.H;
	< vela.H        ${GP} title="Autopick" dash=1,0   par=${P}/pick$*.P n2=2 n3=1 legend=1 legendloc=tl curvelabel=Vrms:Vint out=${R}/vela.v
	< veli.H        ${GP} title="Handpick" dash=1,2,0 par=${P}/pick$*.P n2=3 n3=1 legendloc=tl legend=1 curvelabel=Vrms:Vint:Blocky out=${R}/veli.v
	< weight$*-interp.H  ${GP} title="Handpick Weight" out=${R}/wti.v
	< weight$*-auto.H    ${GP} title="Autopick Weight" out=${R}/wta.v
	vp_SideBySideAniso ${R}/vela.v ${R}/veli.v > ${R}/top.v
	vp_SideBySideAniso ${R}/wta.v ${R}/wti.v > ${R}/bot.v
	vp_OverUnderAniso  ${R}/top.v ${R}/bot.v > $@

${R}/multreal%.v ${R}/multreal%.v3: vrms%-interp.H ${P}/minmax%.P refl%.H
	< vrms$*-interp.H  Window n2=1  f2=0  > vi0.H
	< vrms$*-interp.H  Window n2=10 f2=1 > vi.H
	< refl$*.H  Add scale=100 | Add add=-98 | ${GP} par=${P}/minmax$*.P plotfat=1 out=${R}/pick.v
	Cat axis=2 vi0.H vi0.H vi0.H vi0.H vi0.H vi0.H vi0.H vi0.H vi0.H vi0.H > v0.H
	Cat v0.H vi.H axis=1 > vall.H
	< vall.H  ${GP} par=${P}/minmax$*.P legend=1 n2=2 n3=10 dash=1,0 `Get < vi.H n1` \
	                curvelabel=Known:Realization legendloc=tl out=${R}/multreal$*.v3
	< vall.H  Window n2=3 | ${GP} par=${P}/minmax$*.P n2=4 n3=1 dash=0,1 `Get < vi.H n1` \
	                              out=${R}/a.v
	vp_Overlay ${R}/pick.v ${R}/a.v > ${R}/multreal$*.v

# Miscellaneous Targets
clean: jclean
	rm -f vrms

burn: clean
	rm -f ${B}/*
	rm -f ${O}/*
	rm -f ${R}/*.pdf
	rm -f ${R}/*.ps
	rm -f ${R}/*.v*

default: ${R}/velscan0.pdf ${R}/vrms0.pdf ${R}/vint0.pdf ${R}/vrms-interp0.pdf ${R}/multreal0.pdf ${R}/vrms2d.pdf ${R}/vcomp2d.pdf

include ${SEPINC}/SEP.bottom
