⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sstack.f

📁 seismic software,very useful
💻 F
字号:
ccccc dip scan routine        subroutine sstack(data,pxo,pyo,stack,work,     1                    iyy,ixx,jy,nycore,nx,     2                    d1,o1,n1,     3                    dt,t0,nt,     4                    dto,to0,nto,     4                    ipow,hy,hx,ht,ty,tx,tt)        real data(nt,nx,nycore),pxo(n1),pyo(n1)	real stack(nto),work(nt)	real d1,o1,dt,t0,dto,to0        integer iyy,ixx,jy,nycore,nx,nt,nto,n1,ipow,hy,hx,ht	real ty(-hy:hy),tx(-hx:hx),tt(-ht:ht)cccc dip stack 	ky0 = iyy - jy - hy + 1	kyn = iyy - jy + hy + 1 	if(ky0.lt.1) ky0 = 1	if(ky0.gt.nycore) ky0 = nycore	if(kyn.lt.1) kyn = 1	if(kyn.gt.nycore) kyn = nycore	nyy = kyn - ky0 + 1	kx0 = ixx - hy	kxn = ixx + hy	if(kx0.lt.1) kx0 = 1	if(kx0.gt.nx) kx0 = nx	if(kxn.lt.1) kxn = 1	if(kxn.gt.nx) kxn = nx	nxx = kxn - kx0 + 1	scale = 1.        if(nyy.gt.1.) scale = scale/nyy        if(nxx.gt.1.) scale = scale/nxx		od1 = 1./d1	odt = 1./dt	odto = 1./dto	do it=1,nt		work(it) = 0.	end do	iy0 = iyy-jy+1	ix0 = ixx 	call dump2xplot(data,nt,nx,1,"data")	call dump2xplot(pxo,n1,1,1,"pxo")	do it=1,nt		t = t0+(it-1)*dt 		tmp = (t-o1)*od1 + 1.5		itmp = tmp		if(itmp.lt.1) then			i1 = 1			i2 = 1			w1 = 0.5			w2 = 0.5		else if(itmp.ge.n1) then			i1 = n1			i2 = n1			w1 = 0.5			w2 = 0.5		else 			i1 = itmp			i2 = i1 + 1			w2 = tmp - itmp			w1 = 1. - w2		end if		py = pyo(i1)*w1 + pyo(i2)*w2		px = pxo(i1)*w1 + pxo(i2)*w2		call msgscf("px=",px)		call msgscf("py=",py)		do iy=ky0,kyn			y = iy - iy0			sy = ty(iy-iy0)			do ix=kx0,kxn				x = ix - ix0				sxy = tx(ix-ix0)*sy				tp = t + py*y + px*x				tmp = (tp - t0)	* odt + 1.5				itmp = tmp				if(itmp.lt.1) then					i1 = 1					i2 = 1					w1 = 0.5					w2 = 0.5				else if(itmp.ge.nt) then					i1 = n1					i2 = n1					w1 = 0.5					w2 = 0.5				else 					i1 = itmp					i2 = i1 + 1					w2 = tmp - itmp					w1 = 1. - w2				end if								work(it) = work(it)+(w1*data(i1,ix,iy)	     1                                     + w2*data(i2,ix,iy))*sxy			end do		end do	end do	call dump2xplot(work,nt,1,0,"work")ccc compute power	if (ipow.eq.1) then		do it=1,nt                       work(it) = abs(work(it))                end do        else if(ipow.eq.2) then                do it=1,nt			work(it) = work(it)*work(it)                end do        else                tmp = ipow                do it=1,nt                      	work(it) = work(it)**tmp                end do        end ifccccc sum over time window	scale = scale/(2.*ht+1.)        do it=1,nto              t = to0 + (it-1)*dto	      t = (t - t0)*odt              itt = t		              it1 = itt - ht              itn = itt + ht              if(it1.lt.1) it1 = 1              if(itn.gt.nt) itn = nt              n1 = itn - it1 + 1	      if(n1.lt.1) n1 = 1		call msgsci("it1=",it1)		call msgsci("itn=",itn)              tmp = 0.              do i1=it1,itn			tmp = tmp + work(i1)*tt(i1-itt)	      end do		              stack(it) = tmp*scale	end do	return	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -