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

📄 fhicut.f

📁 seismic software,very useful
💻 F
字号:
	subroutine fhigint(f0,df,nf,ftaper,dt,ifcut,ltaper,     2			wsave,nsave,nfft)	real wsave(nsave)	integer ifcut(nf),ltaper(nf),nf	real ftaper,f0,df,dt	real sfft	integer nsave	if(2*nfft+15.gt.nsave) then		call msgsc(" rffti error; check nfft ")		stop 	end if	call rffti(nfft,wsave)	sfft = 1./nfft	delf = 1./(nfft*dt)	tmp = ftaper/delf + 1.	itaper = tmp	if(itaper.gt.nfft/2) itaper=nfft/2	do iw=1,nf	f = f0 + (iw-1)*df		tmp = f/delf + 1.			ii = tmp		if(ii.gt.nfft/2) ii=nfft/2		ifcut(iw) = ii		ltaper(iw) = itaper	end do	return	end	subroutine fhigcut(trace,nt,f0,df,nf,ftaper,dt,     1		ifcut,ltaper,tras,     2		wsave,nsave,work1,work2,nfft)	real trace(nt),tras(nt,nf),wsave(nsave),work1(nfft)	real work2(nfft)	integer ifcut(nf),ltaper(nf),nf,nt	real ftaper,f0,df,dt	real sfft	sfft = 1./nfft	do it=1,nfft		work1(it) = 0.	end do	do it=1,nt		work1(it) = trace(it)	end do	call rfftf(nfft,work1,wsave)	do iw=1,nf		l = 2*ifcut(iw)		m = (nfft+1)/2		n = ltaper(iw)		do k=1,l-1			work2(k) = work1(k)*sfft		end do		do k=l,nfft			work2(k) = 0.		end do			if(n.gt.1) st = sfft/n		ifc = ifcut(iw)		do k=1,n-1			ir = 2*(ifc+k) - 2			ii = ir + 1			taper = (n-k) * st			work2(ir) = work1(ir)*taper			work2(ii) = work1(ii)*taper		end do		call rfftb(nfft,work2,wsave)		do it=1,nt			tras(it,iw) = work2(it)		end do	end do	return	end	

⌨️ 快捷键说明

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