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

📄 migs.c

📁 seismic software,very useful
💻 C
字号:
#include "subc.h"#include "ghdr.h"#include "gridhd.h"#include "grid.h"#include "su.h"#include "segy.h"#include "header.h"void migs(int nl, int ns, int nofo, float *mig, int ntau,	FILE *imgfp, int ktrace, int ntl, float dldt, float *trace, 	float *tras, float dtl, float tminl, int nt, 	float *ss, float *sl, float *gs, float *gl, 	int *imutel, float *fovt2, float *s, float *l,	float *tm, int *iofs, float apers, float aperl, float *fold,	float *w1, float *work1, float *work2, float *wsave, float *tracef,	int *ifcut, int *ltaper, float ksmax, float klmax,	float f0, float df, int nf, float ftaper, int nsave, int nfft,	float dtau, float tau0, float angmax, 	int *indxw,int nindxw, int incdxw,	float *resamp, int ires, int ntres,	float *s2, float *scs, float *scg, int ncpu, 	float *vr2, float *vi2, float *vq4, float *tau,	float *migp, float *foldp) {	int il, itr, i, ir0, it, ii, ip;	float tmp;	int nsl;	nsl = ns*nl;/*	#pragma parallel local(itr,ip,ir0,it,tmp,i,trace,ii,vi2,vq4,s2) 	#pragma local(work1,work2,indxw,resamp,scs,scg)	#pragma byvalue(ktrace,nt,ntl,dldt,iofs,ntau,tar,tminl,dtl)	#pragma byvalue(ss,sl,gs,gl,imutel,fovt2,nsl,s,l,tm,apers,aperl)	#pragma byvalue(f0,df,nf,ftaper,ifcut,ltaper,nsave,nfft)	#pragma byvalue(ksmax,klmax,dtau,tau0,angmax,nindxw,incdxw,ncpu)	#pragma byvalue(ires,ntres,s2)	#pragma shared(tras,wsave,foldp,migp,fold,mig)	{	#pragma pfor iterate (itr=0; ktrace; 1)	#pragma schedtype(dynamic) chunksize(1)*/	for(itr=0;itr<ktrace;itr++) {		/* linearly interpolate input trace */		ir0 = itr*nt;		ip = itr%ncpu;		bzero(migp+ip*ntau*nsl,ntau*nl*ns);		bzero(foldp+ip*nsl,nl*ns);		if(ntl!=nt) {               		for(it=0;it<ntl;it++) {                   		tmp = it*dldt;                       		i = (int)tmp;                       		tmp = tmp - i;                   		if(i>=0 && i<nt-1) {                       			trace[it] = 						(1.-tmp)*tras[i+ir0]+						tmp*tras[i+1+ir0];                       		}			}			} else {               		for(it=0;it<ntl;it++)                     		trace[it] = tras[it+ir0];		}			/* 3d prestack time migration */		ii = iofs[itr]-1;		vr22vi2_(vr2+itr*ntau,vi2,&ntau);		vi22vq4_(vi2,vq4,&ntau);		vt2s2_(vr2+itr*ntau,vq4,s2,tau,&ntau);		pstm3d_(trace,&ntl,&tminl,&dtl,&ss[itr],&sl[itr],			&gs[itr],&gl[itr],&imutel[itr],			fovt2+itr*ntau,migp+ip*ntau*nsl,&nsl,&ntau,s,l,			tm,&apers,&aperl,foldp+nsl*ip,w1,			&f0,&df,&nf,&ftaper,			ifcut,ltaper,tracef,			wsave+ip*nsave,&nsave,work1,work2,&nfft,			&ksmax,&klmax,&dtau,&tau0,&angmax,			indxw,&nindxw,&incdxw,&ncpu,			resamp,&ires,&ntres,s2,scs,scg);/*		#pragma critical		{*/			for(it=0;it<ntau*nsl;it++) 				mig[it+ntau*nsl*ii] += migp[it+ip*ntau*nsl];			for(it=0;it<nsl;it++) 				fold[it+nsl*ii] += foldp[it+ip*nsl];/*		}*/	}/*	}*/}

⌨️ 快捷键说明

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