MAKE_DEPEND=yes
include ${SEPINC}/SEP.top
include ../../Src/thesis.include
RESULTSER= cor ray.vel0  ray.vel1 diff operator0 operator1
UF90INCLUDES=${BOBINCS}
UF90LIBS=${BOBLIBS}

#FIGURE
${RESDIR}/cor.v:	vel1.tau.H
	Real < vel1.tau.H |Graph out=$@ yreverse=y transp=y title=" " \
  label1="Time(s)" label2="velocity (km/s)" >/dev/null   n2=1 

${RESDIR}/ray.vel0.v:	model_0_z.v model_0_tau.v
	vp_SideBySideAniso model_0_z.v model_0_tau.v >$@

${RESDIR}/ray.vel1.v:	model_1_z.v model_1_tau.v
	vp_SideBySideAniso model_1_z.v model_1_tau.v >$@

OP= >/dev/null label2="Amplitude" title=" " min2=-.1 max2=.1 yreverse=y \
transp=y

${RESDIR}/diff.v:	operator_z.vel0.H operator_z.vel1.H operator_tau.vel0.H\
  operator_tau.vel1.H
	Add scale=-1,1 operator_z.vel0.H operator_z.vel1.H |Window f3=2 |\
	 Graph out=a.v label1="Depth(km)"  ${OP} min2=-.05 max2=.05
	Add scale=-1,1 operator_tau.vel0.H operator_tau.vel1.H |Window f3=2 |\
	 Graph out=b.v label1="Time(s)" ${OP} min2=-.05 max2=.05
	vp_SideBySideAniso a.v b.v >$@

${RESDIR}/operator0.v:	operator0.z.v operator0.t.v
	vp_SideBySideAniso operator0.z.v operator0.t.v>$@

${RESDIR}/operator1.v:	operator1.z.v operator1.t.v
	vp_SideBySideAniso operator1.z.v operator1.t.v>$@

operator1.z.v:	operator_z.vel1.H
	Window < operator_z.vel1.H f3=2 |Graph out=$@  label1="Depth(km)"  ${OP}\
min2=0 max2=.1

operator0.z.v:	operator_z.vel0.H
	Window < operator_z.vel0.H f3=2 |Graph out=$@ ${OP} label1="depth(km)"  \
min2=0 max2=.1

operator0.t.v:	operator_tau.vel0.H
	Window < operator_tau.vel0.H f3=2 |Graph out=$@ ${OP} label1="Time(s)" \
min2=0 max2=.1

operator1.t.v:	operator_tau.vel1.H
	Window < operator_tau.vel1.H  f3=2 |Graph out=$@ ${OP} label1="Time(s)" \
min2=0 max2=.1

model_0_tau.v: vel0.tau.H match_tau.vel0.H
	Real < vel0.tau.H | Window j1=5 j2=5 |Grey  bias=1.7 allpos=y out=a.v title=" " \
   label1="Tau(s)" label2="X Position(km)"  >/dev/null min1=0 max1=2.5 \
   min2=1.5 max2=4.5 
		Graph < match_tau.vel0.H out=b.v noframe=1 yreverse=y  >/dev/null\
		min1=1.5 max1=4.5 min2=0 max2=2.5  title=" " wantaxis=n plotcol=0
		vp_Overlay a.v b.v >$@
	
model_0_z.v: vel0.z.H match_z.vel0.H
	< vel0.z.H  Window j1=5 j2=5 |Grey  bias=1.7 allpos=y out=a.v title=" " \
   label1="Depth(km)" label2="X Position(km)"  >/dev/null min1=0 max1=2.5 \
   min2=1.5 max2=4.5 
		Graph < match_z.vel0.H out=b.v noframe=1 yreverse=y  >/dev/null\
		min1=1.5 max1=4.5 min2=0 max2=2.5  title=" " wantaxis=n plotcol=0
		vp_Overlay a.v b.v >$@
	
model_1_tau.v: vel1.tau.H match_tau.vel1.H
	Real < vel1.tau.H | Window j1=5 j2=5 |Grey  bias=1.7 allpos=y out=a.v title=" " \
   label1="Tau(s)" label2="X Position(km)"  >/dev/null min1=0 max1=2.5 \
   min2=1.5 max2=4.5 
		Graph < match_tau.vel1.H out=b.v noframe=1 yreverse=y  >/dev/null\
		min1=1.5 max1=4.5 min2=0 max2=2.5  title=" " wantaxis=n plotcol=0
		vp_Overlay a.v b.v >$@
	
model_1_z.v: vel1.z.H match_z.vel1.H
	< vel1.z.H Window j1=5 j2=5 | Grey bias=1.7 allpos=y out=a.v title=" " \
   label1="Depth(km)" label2="X Position(km)"  >/dev/null min1=0 max1=2.5 \
   min2=1.5 max2=4.5 
		Graph < match_z.vel1.H out=b.v noframe=1 yreverse=y  >/dev/null\
		min1=1.5 max1=4.5 min2=0 max2=2.5  title=" " wantaxis=n plotcol=0
		vp_Overlay a.v b.v >$@
	

#VELOCITY MODELS

vel_init.z.H:  init.vel.z.P
	Vel par=init.vel.z.P   >$@

RMV=${BINDIR}/vel_convert2.x

vel0.tau.H: vel_init.z.H ${BINDIR}/vel_convert2.x tau_conv.P
	${BINDIR}/vel_convert2.x < vel_init.z.H > $@ par=tau_conv.P


%.z.H:	${filter-out ${RMV},%.tau.H  ${BINDIR}/vel_convert2.x tau_conv.P}
	${BINDIR}/vel_convert2.x < $*.tau.H > $@ par=tau_conv.P


vel1.tau.H:	${filter-out ${RMV},${BINDIR}/modify_vel.x mod.tau.P layers.tau.P vel0.tau.H}
	${BINDIR}/modify_vel.x par=mod.tau.P < vel0.tau.H tau=1  >$@

#REFLECTION LOCATION
init.H: init.HH
	Dd esize=8 <init.HH >$@

%.z_location.H:	${filter-out ${RMV},init.H %.tau.H ${BINDIR}/convert_it.x}
	${BINDIR}/convert_it.x < init.H >$@ vel=$*.tau.H

#SPLINE FILES
%.tau_spline.H: ${filter-out ${RMV},	%.tau.H ${BINDIR}/Splintau.x}
	< $*.tau.H Real |  Smooth rect1=20 >r.H 
	< $*.tau.H Imag  >i.H
	Cmplx r.H i.H |  ${BINDIR}/Splintau.x >$@

%.z_spline.H: ${filter-out ${RMV},	%.z.H ${BINDIR}/Splintab2.x}
	< $*.z.H Smooth rect1=30 |  ${BINDIR}/Splintab2.x >$@

#
#RAY TRACING
#
rays_tau.%.H : ${filter-out ${RMV}, %.tau_spline.H rays.P ${BINDIR}/Raytau.x}
	$(BINDIR)/Raytau.x <$*.tau_spline.H >$@ par=rays.P Raypar=ray_p_tau.$*.H \
	Raymod=ray_m_tau.$*.H

RMV=${BINDIR}/find_ray.x ${BINDIR}/Raypath.x

rays_z.%.H : ${filter-out ${RMV}, %.z_spline.H rays.P ${BINDIR}/Raypath.x}
	$(BINDIR)/Raypath.x <$*.z_spline.H >$@ par=rays.P Raypar=ray_p_z.$*.H \
	Raymod=ray_m_z.$*.H


convert_tau.%.H: ${filter-out ${RMV}, rays_z.%.H ${BINDIR}/convert_it.x %.z.H}
	${BINDIR}/convert_it.x < rays_z.$*.H > $@ vel=$*.z.H


#
# FIND THE RAY
#
match_z.%.H: ${filter-out ${RMV},	rays_z.%.H locz.P  ${BINDIR}/find_ray.x layers.z.P  %.z_location.H}
	${BINDIR}/find_ray.x par=locz.P < rays_z.$*.H >$@ angles=angle_z.$*.H \
   loc=$*.z_location.H

match_tau.%.H: ${filter-out ${RMV},	rays_tau.%.H loctau.P  ${BINDIR}/find_ray.x layers.tau.P init.H}
	${BINDIR}/find_ray.x par=loctau.P < rays_tau.$*.H >$@ angles=angle_t.$*.H \
		loc=init.H


#FIND OPERATOR
operator_z.%.H: ${filter-out ${RMV},	op.P ${BINDIR}/operator_calc.x %.z.H match_z.%.H}
	${BINDIR}/operator_calc.x <  match_z.$*.H par=op.P >$@ vel=$*.z.H tau=0

operator_tau.%.H: ${filter-out ${RMV},	op.P ${BINDIR}/operator_calc.x %.tau.H match_tau.%.H}
	${BINDIR}/operator_calc.x <  match_tau.$*.H par=op.P >$@ vel=$*.tau.H tau=1


#
# COMBINE
%.angles_z.v: ${filter-out ${RMV}, match_z.%.H}
	Graph <  angle_z.$*.H  min2=30 max2=70 out=$@ >/dev/null title=" " label1="reflector" label2="Angle(degrees)" title="Z $*"

%.angles_t.v: ${filter-out ${RMV}, match_tau.%.H}
	Graph <  angle_t.$*.H  min2=30 max2=70 out=$@ >/dev/null title=" " label1="reflector" label2="Angle(degrees)" title="Tau $*"

%.rays_z.v: ${filter-out ${RMV}, match_z.%.H}
	Graph < match_z.$*.H out=$@ title=" " label1="X position" label2="Z Postion" title=" " min1=1 max1=5 min2=0 max2=2.5 yreverse=y >/dev/null title="Z $*"


%.rays_t.v: ${filter-out ${RMV}, match_tau.%.H}
	Graph < match_tau.$*.H out=$@ title=" " label1="X position" label2="Tau Postion" title=" " min1=1 max1=5 min2=0 max2=2.5 yreverse=y >/dev/null title="Tau $*"

%.z.v: ${filter-out ${RMV},	%.z.H}
	Graph < $*.z.H >/dev/null out=$@  n2=1 title="Z-$*"
	
%.tau.v: ${filter-out ${RMV},	%.tau.H}
	Real < $*.tau.H |Graph >/dev/null out=$@  n2=1 title="Tau-$*"
	
GRAPH=Graph >/dev/null  min2=-.03 max2=.03 transp=1 

${RESDIR}/difference.v: ${filter-out ${RMV},	operator_tau.vel0.H operator_tau.vel1.H operator_z.vel0.H operator_z.vel1.H}
	Add scale=1,-1 operator_tau.vel0.H operator_tau.vel1.H >a.H
	Add scale=1,-1 operator_z.vel0.H operator_z.vel1.H >b.H
	Cat axis=2 a.H b.H >c.H
	${GRAPH} <c.H out=$@ wantlegend=1  curvelabel="Tau:Depth" 


 
${RESDIR}/diff_t.v: ${filter-out ${RMV},	 operator_tau.vel0.H   operator_tau.vel1.H}
	Add scale=1,-1 operator_tau.vel0.H operator_tau.vel1.H |\
  Window f3=2 | Graph out=$@ >/dev/null min2=-.03 max2=.03 \
   transp=1 label1="Time(s)" label2="Amplitude" title=" "

${RESDIR}/diff_z.v: ${filter-out ${RMV},	 operator_z.vel0.H   operator_z.vel1.H}
	Add scale=1,-1 operator_z.vel0.H operator_z.vel1.H |\
  Window f3=2 | Graph out=$@ >/dev/null title=" "\
  min2=-.03 max2=.03 transp=1 label1="Time(s)" label2="Amplitude"




all:	vel0.angles_z.v vel0.angles_t.v vel1.angles_z.v vel1.angles_t.v \
	vel0.rays_t.v vel0.rays_z.v vel1.rays_t.v vel1.rays_z.v vel0.z.v \
  vel1.z.v vel0.tau.v vel1.tau.v diff_t.v diff_z.v


$(BINDIR)/Raytau.x: ${addprefix ${OBJDIR}/,Raytau.o findvel.o parax2d.o \
	velocitn.o sigmatn.o rksuite.o bcucof.o}

$(BINDIR)/Raypath.x: ${addprefix ${OBJDIR}/,Raypath.o findvelz.o parax2dz.o velocitnz.o rksuitez.o bcucofz.o}




clean:	jclean
	${TOUCH} map map2 log cross  junk.v
	${RM} map map2 log cross  *.v


include ${SEPINC}/SEP.bottom

