include ${SEPINC}/SEP.top
FFT=/net/kana/biondo/FFTW/lib/libsfftw.a /net/kana/biondo/FFTW/lib/libsrfftw.a
BBLIB=-L/net/kana/biondo/lib/gendown3d_v9/${MTYPE} -L/net/kana/biondo/lib/timers_v1/${MTYPE}   -lgendown3d  -lSEPtimers 
BBINC=-I/net/kana/biondo/include/gendown3d_v9/${MTYPE} -I/net/kana/biondo/include/timers_v1/${MTYPE} -I//net/kana/biondo/include/gendown3d_v9/${MTYPE}
UF90LIBS=-lsepauxf90 -lsepaux -lsupersetf90 -lsuperset  -lgeef90 -lsep2df90 ${BBLIB} ${FFT}
SRCDIR=../Src
BINDIR=../Bin
RESDIR=../Figs
UF90INCLUDES= -I. ${BBINC}
#F90OLEVEL=2
#UF90FLAGS=-Mbounds

ifeq (${SEP_ARCH}, LINUX)
	UF90LIBS:=${UF90LIBS} -mp
	UF90FLAGS:=${UF90FLAGS} -mp
endif

DATA=/net/kana/bob/data/synth.HH
TRANSF=/net/kana/bob/Transf

GREY_VEL=Grey >/dev/null min1=0 max1=5 min2=2 max2=18  title=" " \
 wantscalebar=y color=v label1="Depth(km)" label2="X Position(km)"  color=j


MIG=/net/kana/biondo/bin/${MTYPE}/Pre2D_salt_ssf.x
MIG2=../../Bin/Pre2D_salt_ssf.x

#MIG=${BINDIR}/Pre2D_salt_ssf.x

test:	${BINDIR}/Pre2D_salt_ssf.x

#################################
#####  PLOTTING         #########
#################################

PANELS=2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
PANELS=7 7.25 7.5 7.75 8 8.25 8.50 8.75 9 9.25 9.5 9.75 10 10.25 10.5 10.75 11 11.25 


ov.movie.v:	${addprefix overlay.,${addsuffix .v,${PANELS}}}
	vp_Movie ${addprefix overlay.,${addsuffix .v,${PANELS}}} >$@


overlay.%.v:	${BINDIR}/plot_it.x smooth_sem.vel0.H mig.vel0.H reflectors.vel0.H
	Window < mig.vel0.H min3=$* n3=1  >pn.H
	<pn.H Grey out=a.v >/dev/null min1=0 max1=4.5 min2=0 max2=.62 title="$*"
	Window <  smooth_sem.vel0.H min1=$* n1=1  >de.H
	${BINDIR}/plot_it.x  pan=pn.H reflectors=reflectors.vel0.H < de.H >cur.H par=coher.P
	< cur.H Graph out=b.v >/dev/null yreverse=y min2=0 max2=4.5 min1=0 max1=.62\
   wantaxis=n plotfat=12 title=" "
	vp_Overlay a.v b.v >$@


#################################
#####VELOCITY/TOMOGRAPHY#########
#################################


vel0.H:	vel_cor.z.HH
	Window <  vel_cor.z.HH n2=1 j1=2 >one.H
	Extend_it.x <  one.H end2=624 >$@


vel_cor.H:	vel_cor.z.H
	Window < vel_cor.z.H j1=2 >$@


vel1.%.H:	${BINDIR}/Tomo_2d.x	vel0.H  tomo.1.%.P smooth_sem.vel0.H
	<vel0.H Window j1=2 j2=8 |Extend_it.x beg1=10 beg2=10 end1=10 end2=10 >vel.H	
	${BINDIR}/Tomo_2d.x par=tomo.1.$*.P < vel.H >v.$*.H delta_t=times.vel0.$*.H\
  reflectors=reflectors.vel0.H zero_rays=zero.vel0.$*.H  px_rays=px.vel0.$*.H \
	delta_slow=delta.vel1.$*.H time_errors=err.vel1.$*.H \
  residual_times=res.vel1.$*.H semblance=smooth_sem.vel0.H
	Window < v.$*.H >$@ f1=10 f2=10 n1=79 n2=79

#################################
#####REFLECTOR PICKING  #########
#################################

%.zero.H: %.pck ${BINDIR}/create_reflectors.x ${BINDIR}/to_seplib.x
	${BINDIR}/to_seplib.x < $*.pck junk.HH 3
	Dd esize=4 < junk.HH  >c.H
	<c.H Window j1=2 | ${BINDIR}/create_reflectors.x  n1=300  >a.H
	Imag < a.H >r.H
	Real <a.H |Smooth rect1=15 >i.H
	Cmplx r.H i.H >$@

reflectors.%.H:	layer1.%.zero.H layer2.%.zero.H layer3.%.zero.H layer4.%.zero.H layer5.%.zero.H layer6.%.zero.H
	Cat axis=2 layer1.$*.zero.H layer2.$*.zero.H layer3.$*.zero.H layer4.$*.zero.H layer5.$*.zero.H layer6.$*.zero.H >$@




#################################
#####     COHERENCY     #########
#################################


dd.%.H:	mig.%.H	${BINDIR}/rmute.x coher.P
	<  mig.$*.H ${BINDIR}/rmute.x >$@ par=coher.P

coher.%.H:	mig.%.H coher.P ${BINDIR}/semblance.x ${BINDIR}/rmute.x
	<mig.$*.H ${BINDIR}/rmute.x >smute.H par=coher.P
	< smute.H ${BINDIR}/semblance.x  >$@ par=coher.P
	

sem_ref.%.H:	${BINDIR}/grab_semb.x grab.P coher.%.H reflectors.%.H
	${BINDIR}/grab_semb.x par=grab.P < coher.$*.H >$@ refs=reflectors.$*.H


smooth_sem.%.H:	${BINDIR}/pick.x pick.P sem_ref.%.H
	${BINDIR}/pick.x  <sem_ref.$*.H >$@ par=pick.P

#################################
######   MIGRATION    ###########
#################################

%.mig.H:	%.H
	Transp < $*.H plane=12 |Transp plane=23 >$@
	echo o2=0 d2=1 >>$@


mig.%.H:  synth.freq.H mig.P %.mig.H
	Window <  synth.freq.H >in.H squeeze=n  n1=500 n3=159
	${MIG} par=mig.P>log.mig2 Data=in.H Image=image.$*.H Slow=$*.mig.H
	<image.$*.H Window | Transp plane=23 |Transp plane=12 |Transp plane=23 >$@

mig2.%.H:  synth.freq.H mig2.P %.mig.H
	Window <  synth.freq.H >pn.H squeeze=n  n1=500 n3=80
	${MIG2} par=mig2.P>log.mig2 Data=pn.H Image=image2.$*.H Slow=$*.mig.H
	<image2.$*.H Window | Transp plane=23 |Transp plane=12 |Transp plane=23 >$@



#################################
######   FREQUENCY    ###########
#################################



synth.freq.H: ${DATA} freq.P
	Window < ${DATA} f3=1 |Reverse which=4 >aa.H
	Cat  aa.H ${DATA}  axis=3 |Window f1=3 >bb.H
	echo o1=0. >> bb.H
	Transf < bb.H >synth.freq.H par=freq.P
	echo o2=0 d2=1 n2=1  o3=-2.528 d3=.032 n3=159 n4=128 d4=.262605  o4=0 >>$@
	echo z_data_0=0.  >> $@

synth2.freq.H: ${DATA} freq.P
	Window < ${DATA} f3=1 |Reverse which=4 >aa.H
	Cat aa.H ${DATA}  axis=3 |Window f1=3 >bb.H
	echo o1=0.  >> bb.H
	Transf < bb.H >$@  par=freq.P
	echo o2=0 d2=1 n2=1 o3=-2.528 d3=.032 n3=159 n4=128 d4=.262605  o4=0 >>$@
	echo z_data_0=0.  >> $@




###############################################################################
###############################################################################
#####################UNUSED: CREATING VELOCITY, DATA, REFLECTORS###############
###############################################################################
###############################################################################


#################################
######INITIAL VELOCITY###########
#################################
dome_vel.H:  ${BINDIR}/dome_model.x dome.P
	${BINDIR}/dome_model.x velocity=$@ par=dome.P >/dev/null refs=all_reflectors.H
	echo o2=0. d2=.016 >> $@

vel_cor.z.H:  dome_vel.H ${BINDIR}/Smooth.x
	<dome_vel.H   ${BINDIR}/Smooth.x  nwind1=19 nwind2=19 | \
	Window j1=2 j2=2 > $@
	echo o2=0 d2=.032 >> $@

wind.H:  dome_vel.H ${BINDIR}/Smooth.x
	<dome_vel.H  Window j1=8 j2=8 >a.H
	<a.H   ${BINDIR}/Smooth.x  nwind1=19 nwind2=19 >$@


#################################
######  CREATING DATA ###########
#################################

moduli.H: vel_cor.z.H ${BINDIR}/mk_mod.x  ref.vel_cor.H ${BINDIR}/Extend_it.x
	< vel_cor.z.H  Window   j1=2 |${BINDIR}/Extend_it.x beg2=10 end2=20 end1=10 >v.H
	${BINDIR}/mk_mod.x  < v.H >$@ ratio=.02 refs=ref.vel_cor.H

wavelet.H:
	Wavelet n1=40 d1=0.002 domain=time wavelet=ricker1 tdelay=0.025 fund=35. fhigh=40.  > $@

synth.H:	moduli.H	iso.P wind.P math.P sort.P
	Iso2d < wavelet.H >tot.H par=iso.P src_1=1 nsrc=620
	echo o2=0. d3=.032  >> tot.H
	Window < tot.H >wind.H j1=4
	Create3d keyname1=offset_x keyname2=s_x < wind.H >tot.h.H
	Headermath < tot.h.H >tot.m.H par=math.P
	Sort3d < tot.m.H > hold2.H par=sort.P
	Stack3d axes=1 < hold2.H > big.H
	Window < big.H  par=wind.P |Window min2=2 max2=18 >wind2.H
	Transp plane=23 < wind2.H  |Bandpass flo=10 |Mute tmute=.2 vmute=1.9 |Transp plane=23>$@


	
#################################
######DEPTH REFLECTORS###########
#################################

LAYERS=0 1 2 3 4 5

reflector.0.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=2.7 |Window f1=15 n2=1 j1=2 n1=590 >$@

reflector.1.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=2.592 ntime=2|Window f1=15 n2=1 j1=2 n1=590>$@

reflector.2.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=3.0 |Window f1=15 n2=1 j1=2  n1=590>$@

reflector.3.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=3.4 |Window f1=15 n2=1 j1=2  n1=590>$@

reflector.4.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=3.6 |Window f1=15 n2=1 j1=2  n1=590>$@

reflector.5.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${BINDIR}/make_layer.x < dome_vel.H  vel=3.99 |Window f1=15 n2=1 j1=2  n1=590>$@


reflectors.z.vel_cor.H:  dome_vel.H ${BINDIR}/make_layer.x vel_cor.z.H
	${MAKE} $(addsuffix .H, $(addprefix reflector.,${LAYERS} ))
	Cat axis=2 $(addsuffix .H, $(addprefix reflector.,${LAYERS}))  >$@
	${RM} $(addsuffix .H, $(addprefix reflector.,${LAYERS} ))


${BINDIR}/Smooth.x: Smooth.o gausw.o boxw.o zero.o compsub.o smax.o



.PRECIOUS:  reflectors.%.H #

include ${SEPINC}/SEP.bottom
