subroutine toldi(nt,slowint,semblance,dt,data,nx,dx) #ONSTRUCT D(SEMBLANCE)/D(SLOWINT) IN GRAD(NT) integer nt real slowint(nt) real semblance real dt integer nx real data(nt,nx) real dxreal dataval,value integer it real rms
real sum,w,tau,x,numerator,denominator real grad
semblance = 0.
do it=1,nt { sum = 0. do j=1,it { sum = sum + dt/(slowint(j)*slowint(j)) } tau = it*dt # slowness at pseudodepth it w = sqrt ( tau / sum )
# calc semblance for that pseudo depth, nearst neighbour numerator = 0. denominator = 0. do ix=1,nx { value = dataval(ix,it,w,data,nt,nx,dt,dx) numerator = numerator + value denominator = denominator + value*value } numerator = numerator*numerator
# here we should smooth numerator and denominator
if (denominator.gt.0.001) { semblance = semblance + numerator/(denominator*nx) call srite('semb.h',numerator/(denominator*nx),4) }else{ call srite('semb.h',0.,4) }
}
# return the global semblance value
return end