previous up next print clean
Next: About this document ... Up: Ji: Conjugate RTM Previous: Conclusions

References

APPENDIX A

#     1D time extrapolation modeling ( conj=0 )
#     and reverse time migration ( conj=1 )
#
subroutine rt1d( conj, dt,dz, nt,nz, modl,       data,     v)
integer	         conj, 	      nt,nz,		      		it, iz
real	   		      	     modl(nz), data(nt), v(nz)
real	   	       dt,dz, dtz, a, a1,a2,a3
temporary real	   	            tmodl(nz,3)

call conjnull( conj, 0, modl,nz, data,nt ) call zero( 3*nz, tmodl)

if (conj==0) { do iz = 1, nz { tmodl(iz,1) = 0. tmodl(iz,2) = modl(iz) } data(1) = modl(1) do it = 2, nt { do iz = 2, nz-1 { a = (v(iz)*dt/dz)**2. tmodl(iz,3) = a*(tmodl(iz+1,2) - 2.*tmodl(iz,2)+tmodl(iz-1,2))_ - tmodl(iz ,1) + 2.*tmodl(iz,2) } a = (v(1)*dt/dz)**2. tmodl(1,3) = a*(tmodl(2,2) - 2.*tmodl(1,2))_ - tmodl(1,1) + 2.*tmodl(1,2) a = (v(nz)*dt/dz)**2. tmodl(nz,3) = a*(tmodl(nz-1,2) - 2.*tmodl(nz,2))_ - tmodl(nz ,1) + 2.*tmodl(nz,2) data(it) = tmodl(1,3) do iz = 1, nz { tmodl(iz,1) = tmodl(iz,2) tmodl(iz,2) = tmodl(iz,3) } } } else { dtz= (dt/dz)**2. tmodl(1,1) = data(nt); tmodl(1,2) = data(nt-1) tmodl(1,3) = data(nt-2) do it = nt-1, 1, -1 { do iz = 1, nz tmodl(iz,3) = tmodl(iz,3) - tmodl(iz,1) do iz = 2, nz-1{ a1 = v(iz-1)*v(iz-1)*dtz; a2 = v(iz)*v(iz)*dtz a3 = v(iz+1)*v(iz+1)*dtz tmodl(iz,2) = a1*tmodl(iz-1,1) - 2.*a2*tmodl(iz,1) + a3*tmodl(iz+1,1)_ + 2.*tmodl(iz ,1) + tmodl(iz,2) } a2 = v(1)*v(1)*dtz; a3 = v(2)*v(2)*dtz tmodl( 1,2) = a3*tmodl(2,1) - 2.*a2*tmodl(1,1)_ + 2.*tmodl(1,1) + tmodl(1,2) a1 = v(nz-1)*v(nz-1)*dtz; a2 = v(nz)*v(nz)*dtz tmodl(nz,2) = a1*tmodl(nz-1,1) - 2.*a2*tmodl(nz,1)_ + 2.*tmodl(nz ,1) + tmodl(nz,2)

do iz = 1, nz { tmodl(iz,1) = tmodl(iz,2) tmodl(iz,2) = tmodl(iz,3) }

if( it > 2 ) { do iz = 1, nz tmodl(iz,3) = 0. tmodl( 1,3) = data(it-2) } } do iz = 1, nz { modl(iz) = tmodl(iz,1) } }

return; end

 


previous up next print clean
Next: About this document ... Up: Ji: Conjugate RTM Previous: Conclusions
Stanford Exploration Project
11/17/1997