module hypotenusei {                                # Inverse normal moveout
integer :: nt
integer, dimension (nt), allocatable :: iz
#%  _init( nt, t0, dt, xs)
integer it
real t0, dt, xs, t, zsquared
do it= 1, nt {  t = t0 + dt*(it-1)
       	zsquared =  t * t - xs * xs
	if ( zsquared >= 0.) 
		iz (it) = 1.5 + (sqrt( zsquared) - t0) /dt
	else
		iz (it) = 0
	}
#%  _lop(   zz, tt)
integer   it
do it= 1, nt {
	     if ( iz (it) > 0 ) {
	                    if( adj)   zz( iz(it))  +=  tt(    it )
			    else       tt(it)       +=  zz( iz(it))
                }
        }
}
