subroutine guess(acf,tau,npts,zero,amin,te,tr) c c find zero crossing (zero), depth of minimum (amin), height of maximum c real acf(npts),tau(npts) c write(*,*) 'acf: ',acf c write(*,*) 'tau: ',tau c read(*,*) xx zero=0.0 amin=1.0 tmin=0.0 jmin=0 do i=npts,2,-1 if(acf(i)*acf(i-1).lt.0.0) then zero=(tau(i-1)*acf(i)-tau(i)*acf(i-1))/(acf(i)-acf(i-1)) end if if(acf(i).lt.amin) then amin=acf(i) jmin=i end if end do if(jmin.gt.0) then call parab1(tau(jmin-1),acf(jmin-1),a,b,c) tmin=-b/(2.0*a) amin=c+tmin*(b+tmin*a) end if tr=cdtr1(-amin) te=czte1(zero*1000.0,tr) c write(*,*) 'zero: ',zero c write(*,*) 'amin: ',amin c write(*,*) 'te: ',te c write(*,*) 'tr: ',tr c read(*,*) xx return end subroutine parab1(x,y,a,b,c) C----- dimension x(3),y(3) delta=x(1)-x(2) a=(y(1)-2.*y(2)+y(3))/(2.*delta*delta) b=(y(1)-y(2))/delta - a*(x(1)+x(2)) c=y(1)-a*x(1)*x(1)-b*x(1) return end real function cdtr1(depth) C-----convert depth to te/ti ratio dimension tr(4) C according to the curve published in farley et al 1967 c modified for 2004 conditions on axis c data tr/7.31081,3.53286,5.92271,.174/ data tr/9.5,4.0,8.5,.3/ data nt/4/ cdtr1=tr(1) do i=2,nt cdtr1=cdtr1*depth + tr(i) end do return end real function czte1(zlag,tr) C-----convert zero crossing point to te C according to the curve published in farley et al 1967 c modified for 2004 conditions on axis dimension dt(4) c data dt/0.00945025,-0.0774338,.203626,.812397/,nd/4/ data dt/0.00945025,-0.0774338,.2,0.9/,nd/4/ data t0/1000./ tr1=min(abs(tr),5.) if(zlag .eq. 0)then czte1=1000000. else dt0=dt(1) do i=2,nd dt0=dt0*tr1 + dt(i) end do czte1=t0*(dt0/zlag)**2 end if return end