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

📄 rayt3d.c.6-19-2001

📁 seismic software,very useful
💻 6-19-2001
📖 第 1 页 / 共 3 页
字号:
   	fprintf(jpfp," vfile=%s \n",vfile);   	if(nev==0) fprintf(jpfp," tfile=%s \n",tfile);   	fprintf(jpfp," one-way time: dt=%g nt=%d \n",dt,nt);   	fprintf(jpfp," nz=%d nx=%d ny=%d \n",nz,ny,nx);   	fprintf(jpfp," fz=%g fx=%g fy=%g \n",fz,fy,fx);   	fprintf(jpfp," dz=%g dx=%g dy=%g \n",dz,dy,dx);   	fprintf(jpfp," nzo=%d nxo=%d nyo=%d \n",nzot,nyot,nxot);   	fprintf(jpfp," fzo=%g fxo=%g fyo=%g \n",fzot,fyot,fxot);   	fprintf(jpfp," dzo=%g dxo=%g dyo=%g \n",dzot,dyot,dxot);   	fprintf(jpfp," nzoe=%d nxoe=%d nyoe=%d \n",nzo,nyo,nxo);   	fprintf(jpfp," fzoe=%g fxoe=%g fyoe=%g \n",fzo,fyo,fxo);   	fprintf(jpfp," dzoe=%g dxoe=%g dyoe=%g \n",dzo,dyo,dxo);	if(nev){   	fprintf(jpfp," \n");   	fprintf(jpfp," ntline=%d v0=%g dvz=%g \n",nev,v0,dvz);	for(iev=0; iev<nev; ++iev) {   	fprintf(jpfp," \n");   	fprintf(jpfp," itline=%d tofile=%s \n",iev+1,tofile[iev]);   	fprintf(jpfp," xbeg=%g xend=%g ybeg=%g yend=%g \n",		ybeg[iev],yend[iev],xbeg[iev],xend[iev]);   	fprintf(jpfp," nout=%d dxout=%g dyout=%g \n",		nout[iev],dyout[iev],dxout[iev]);	}	}   	fprintf(jpfp," \n");	fprintf(jpfp," nxs=%d nys=%d fxs=%g fys=%g dxs=%g dys=%g \n",		nys,nxs,fys,fxs,dys,dxs);			  	fprintf(jpfp," aperx=%g apery=%g \n",apery,aperx);	fprintf(jpfp," fa=%g da=%g na=%d \n",fa*180./PI,da*180./PI,na);	fprintf(jpfp," amin=%g amax=%g azhmin=%g azhmax=%g \n",		amin*180./PI,amax*180./PI,azhmin*180./PI,azhmax*180./PI);	fprintf(jpfp," ek=%d ms=%d ncpu=%d jpfile=%s restart=%s isres=%d\n",		ek,ms,ncpu,jpfile,restart,isres);	   	fprintf(jpfp," \n");   	fprintf(jpfp," finish velocity input ... \n");   	fprintf(jpfp," begin traveltime calculation ... \n");	fflush(jpfp);	is0 = ixs0*nys + iys0;	nzyx = nz * ny * nx;	nzyxo = nzo * nyo * nxo;/*	fprintf(stderr,"is0=%d ixs0=%d nys=%d iys0=%d \n",is0,ixs0,nys,iys0);*/	/* loop over sources */	for (is=is0;is<nxs*nys;is=is+ncpu) {        np = ncpu;	    if(is+np>nxs*nys) np = nxs*nys - is;	    for(ip=0;ip<np;ip++) {			ixs = (is+ip)/nys;			iys = (is+ip) - ixs*nys; 			ysp[ip] = fys + iys*dys;		 			xsp[ip] = fxs + ixs*dxs;		 		/*		fprintf(stderr,"ysp=%f xsp=%f ip=%d fxs=%f ixs=%d dxs=%f iys=%d dys=%f\n",			ysp[ip],xsp[ip],ip,fxs,ixs,dxs,iys,dys);		*/	    }		/*	fprintf(stderr,"nzyx=%d nzyxo=%d nz=%d ny=%d nx=%d \n",		nzyx,nzyxo,nz,ny,nx);	fprintf(stderr,"nzo=%d nyo=%d nxo=%d ek=%d nt=%d dt=%g tmax=%g\n",		nzo,nyo,nxo,ek,nt,dt,tmax);fprintf(stderr,"na=%d fa=%g da=%g amin=%g amax=%g azhmin=%g azhmax=%g \n",		na,fa,da,amin,amax,azhmin,azhmax);fprintf(stderr,"fxo=%g fyo=%g fzo=%g dxo=%g dyo=%g dzo=%g fac=%g \n",		fxo,fyo,fzo,dxo,dyo,dzo,fac);fprintf(stderr,"fx=%g fy=%g fz=%g dx=%g dy=%g dz=%g aperx=%g apery=%g \n",		fx,fy,fz,dx,dy,dz,aperx,apery);		for(ip=0;ip<np;ip++) 			fprintf(stderr,"ysp=%g xsp=%g \n",xsp[ip],ysp[ip]);*//*	fprintf(stderr,"before raytracing \n");*/	    /* parallel computation */    rt3dp_(&np,&nzyx,&nzyxo,&nz,&ny,&nx,&nzo,&nyo,&nxo,&ek,&nt,       &na,&fa,&da,&amin,&amax,&azhmin,&azhmax,&dt,&tmax,&fxo,&fyo,&fzo,       &dxo,&dyo,&dzo,&fac,&fx,&fy,&fz,&dx,&dy,&dz,&aperx,&apery,v,vxx,vxy,vxz,	   vyy,vyz,vzz,ov2,vt,vxxt,vxyt,vxzt,vyyt,vyzt,vzzt,tt1,tt2,t,s,       xsp,ysp,azhnp,azhxp,fxtp,fytp,nxtp,nytp,&nzyxt,	   xp,yp,zp,pxp,pyp,pzp,e1xp,e1yp,e1zp,e2xp,e2yp,e2zp,	   q111p,q112p,q121p,q122p,p211p,p212p,p221p,p222p,	   q211p,q212p,q221p,q222p,vp,dvdxp,dvdyp,dvdzp,nrsp,	   a0p,azh0p,&n1,&n2,p2p,q2p,hp,gradvp,d2tp,&i2,&i3,&i6,	   map,vs,dvdxs,dvdys,dvdzs,uxx,uxy,uxz,uyy,uyz,uzz,tzt,	   xx,yy,zz,pxs,pys,pzs,e1xs,e1ys,e1zs,e2xs,e2ys,e2zs,	   p111s,p112s,p121s,p122s,q111s,q112s,q121s,q122s,   	   p211s,p212s,p221s,p222s,q211s,q212s,q221s,q222s,	   dxx,dyy,dzz,dpxs,dpys,dpzs,de1x,de1y,de1z,de2x,	   de2y,de2z,dp111,dp112,dp121,dp122,dq111,dq112,dq121,dq122,	   dp211,dp212,dp221,dp222,dq211,dq212,dq221,dq222,	   xt,yt,zt,pxt,pyt,pzt,e1xt,e1yt,e1zt,e2xt,e2yt,e2zt,	   p111t,p112t,p121t,p122t,q111t,q112t,q121t,q122t,p211t,	   p212t,p221t,p222t,q211t,q212t,q221t,q222t,dxt,dyt,	   dzt,dpxt,dpyt,dpzt,de1xt,de1yt,de1zt,de2xt,de2yt,de2zt,	   dp111t,dp112t,dp121t,dp122t,dq111t,dq112t,dq121t,dq122t,	   dp211t,dp212t,dp221t,dp222t,dq211t,dq212t,dq221t,dq222t,	   vv,&idisk,filevxx,filevxy,filevxz,filevyy,filevyz,filevzz,	   &lenvxx,&lenvxy,&lenvxz,&lenvyy,&lenvyz,&lenvzz);				   	   /* check the travel time calculation */	   for(ip=0;ip<np;ip++) {		isnow = is + ip;		itmp = nxo * nyo * nzo;	   	fminmax(t+ip*itmp,itmp, &gmin, &gmax);	   	/* print warning message if needed */		if(gmin > 9999.) { 		fprintf(jpfp,		" NULL travel time table at source is=%d xs=%g ys=%g\n",		isnow+1,ysp[ip],xsp[ip]);   	      	fflush(jpfp); 		warn(		" NULL travel time table at source is=%d xs=%g ys=%g\n",		isnow+1,ysp[ip],xsp[ip]);		}	    }	    /* output travel time table */	    if(!nev){ 	    	/* write traveltime  	*/	        for(ip=0;ip<np;ip++) {		for(ixt=0;ixt<nxot;ixt++) {			ixo = ixt*ixot;			if(nxot<3) ixo +=1;			for(iyt=0;iyt<nyot;iyt++) {				iyo = iyt*iyot;				if(nyot<3) iyo +=1;				itemp = (ixo*nyo+iyo)*nzo;  	    		fwrite(t+itemp+ip*nzyxo,sizeof(float),nzo,tfp);			}		}		}   	      	fflush(tfp); 	    } else { 	        for(ip=0;ip<np;ip++) {		xs = xsp[ip];		ys = ysp[ip];  		resit_(t+ip*nzyxo,&nyo,&nxo,&nzo,&nr,&dyo,&dxo,&dr,&fyo,&fxo,			&ys,&xs,tb); 	    	for(iev=0; iev<nev; ++iev){		    for(iout=0; iout<nout[iev]; ++iout){			xout[iout] = xbeg[iev]+iout*dxout[iev];			yout[iout] = ybeg[iev]+iout*dyout[iev];		    } 		    interp_(&nyo,&nxo,&nzo,&nout[iev],&fyo,&fxo,&dyo,&dxo,		    	yout,xout,t+ip*nzyxo,tout);  		    recot_(tout,&nout[iev],&nzo,&nr,&dr,yout,xout,&ys,&xs,tb);    	    	    fwrite(tout,sizeof(float),nout[iev]*nzo,tofp[iev]);   	      	    fflush(tofp[iev]);/*		itmp = nout[iev]*nzo;		fminmax(tout,itmp, &gmin, &gmax);		fprintf(stderr," ixs=%d gmin=%g gmax=%g ip=%d \n",			ixs,gmin,gmax,ip);*/	        }	        }	    }	    for(ip=0;ip<np;ip++) {		isnow = is + ip;	    if((isnow+1)%ms==0 && (isnow+1)>=ms ) {fprintf(jpfp," travel time computed at source is=%d xs=%g ys=%g\n",		isnow+1,ysp[ip],xsp[ip]);   	      fflush(jpfp);	    }	    }	}	fprintf(jpfp," RAYT3D job done\n");	ugh.scale = 1.;	ugh.dtype = 4; 	ugh.n1 = nzot;	ugh.n2 = nyot; 	ugh.n3 = nxot; 	ugh.n4 = nys;	ugh.n5 = nxs; 	ugh.d1 = dzot;	ugh.d2 = dyot; 	ugh.d3 = dxot; 	ugh.d4 = dys;	ugh.d5 = dxs;	ugh.o1 = fzot; 	ugh.o2 = fyot; 	ugh.o3 = fxot; 	ugh.o4 = fys;	ugh.o5 = fxs;	ugh.ocdp2 = 0.;	ugh.oline3 = 0.;	ugh.dcdp2 = 0.;	ugh.dline3 = 0.;	ugh.gmin = 0.;	ugh.gmax = tmax;	ugh.orient = 1;	ugh.gtype = 0;	isize = nzot*nyot*nxot;	isize = isize*nys*nxs*sizeof(float);	for(iev=0; iev<nev; ++iev){	    ugh.o2 = ybeg[iev];	    ugh.o3 = xbeg[iev];	    if(dxout[iev]==0){		ugh.n3 = 1;		ugh.n2 = nout[iev];		ugh.d2 = dyout[iev];		ugh.d3 = dxo;	    } else if(dyout[iev]==0){		ugh.n2 = 1;		ugh.n3 = nout[iev];		ugh.d3 = dxout[iev];		ugh.d2 = dyo; 	    } else {		ugh.n2 = nout[iev];		ugh.n3 = 1;		ugh.d2 = sqrt(dxout[iev]*dxout[iev]+dyout[iev]*dyout[iev]);		ugh.d3 = 999999.; 	    }	    if(isres>nys*nxs) {	    	fclose(tofp[iev]);	    	isize = ugh.n1*ugh.n2*ugh.n3;	    	isize = isize*ugh.n4*ugh.n5*sizeof(float);	    	truncate64(tofile[iev],(off64_t)isize);	    	tofp[iev] = fopen(tofile[iev],"r+");		    	fseek2g(tofp[iev],0,SEEK_END);	    } 	    fputusghdr(tofp[iev],&ugh);  	} 		  	if(!nev) {	    	if(isres>nys*nxs) {			fclose(tfp);	    		if( getparstring("tfile",&tfile) ) {	    			truncate64(tfile,(off64_t)isize);	    			tfp = fopen(tfile,"r+");	    				fseek2g(tfp,0,SEEK_END);			}	     	}		fputusghdr(tfp,&ugh);  		fclose(tfp);	} else {		for(iev=0; iev<nev; ++iev) fclose(tofp[iev]);	}  	/* free space */ 	free1float(v);	if(idisk==0) {  		free1float(vxx); 		free1float(vxy); 		free1float(vxz); 		free1float(vyy); 		free1float(vyz); 		free1float(vzz);	} else { 		free1float(vv);	} 	free1float(vt);   	free1float(vxxt); 	free1float(vxyt); 	free1float(vxzt); 	free1float(vyyt); 	free1float(vyzt); 	free1float(vzzt);  	free1float(t);	free1float(s);	free1float(xsp);	free1float(ysp);	free1float(azhnp);	free1float(azhxp);	free1float(fxtp);	free1float(fytp);	free1int(nxtp);	free1int(nytp);	if(nev){		free1int(nout);		free1float(dxout);		free1float(dyout);		free1float(xbeg);		free1float(ybeg);		free1float(xend);		free1float(xend);		free1float(tout);	}	free1float(xp);	free1float(yp);	free1float(zp);	free1float(pxp);	free1float(pyp);	free1float(pzp);	free1float(e1xp);	free1float(e1yp);	free1float(e1zp);	free1float(e2xp);	free1float(e2yp);	free1float(e2zp);	free1float(q111p);	free1float(q112p);	free1float(q121p);	free1float(q122p);	free1float(p211p);	free1float(p212p);	free1float(p221p);	free1float(p222p);	free1float(q211p);	free1float(q212p);	free1float(q221p);	free1float(q222p);	free1float(vp);	free1float(dvdxp);	free1float(dvdyp);	free1float(dvdzp);	free1int(nrsp);	free1float(a0p);	free1float(azh0p);	free1float(p2p);	free1float(q2p);	free1float(hp);	free1float(gradvp);	free1float(d2tp);	free1int(map);	free1float(vs);	free1float(dvdxs);	free1float(dvdys);	free1float(dvdzs);	free1float(uxx);	free1float(uxy);	free1float(uxz);	free1float(uyy);	free1float(uyz);	free1float(uzz);	free1float(tzt);	free1float(xx);	free1float(yy);	free1float(zz);	free1float(pxs);	free1float(pys);	free1float(pzs);	free1float(e1xs);	free1float(e1ys);	free1float(e1zs);	free1float(e2xs);	free1float(e2ys);	free1float(e2zs);	free1float(p111s);	free1float(p112s);	free1float(p121s);	free1float(p122s);	free1float(q111s);	free1float(q112s);	free1float(q121s);	free1float(q122s);	free1float(p211s);	free1float(p212s);	free1float(p221s);	free1float(p222s);	free1float(q211s);	free1float(q212s);	free1float(q221s);	free1float(q222s);	free1float(dxx);	free1float(dyy);	free1float(dzz);	free1float(dpxs);	free1float(dpys);	free1float(dpzs);	free1float(de1x);	free1float(de1y);	free1float(de1z);	free1float(de2x);	free1float(de2y);	free1float(de2z);	free1float(dp111);	free1float(dp112);	free1float(dp121);	free1float(dp122);	free1float(dq111);	free1float(dq112);	free1float(dq121);	free1float(dq122);	free1float(dp211);	free1float(dp212);	free1float(dp221);	free1float(dp222);	free1float(dq211);	free1float(dq212);	free1float(dq221);	free1float(dq222);	free1float(xt);	free1float(yt);	free1float(zt);	free1float(pxt);	free1float(pyt);	free1float(pzt);	free1float(e1xt);	free1float(e1yt);	free1float(e1zt);	free1float(e2xt);	free1float(e2yt);	free1float(e2zt);	free1float(p111t);	free1float(p112t);	free1float(p121t);	free1float(p122t);	free1float(q111t);	free1float(q112t);	free1float(q121t);	free1float(q122t);	free1float(p211t);	free1float(p212t);	free1float(p221t);	free1float(p222t);	free1float(q211t);	free1float(q212t);	free1float(q221t);	free1float(q222t);	free1float(dxt);	free1float(dyt);	free1float(dzt);	free1float(dpxt);	free1float(dpyt);	free1float(dpzt);	free1float(de1xt);	free1float(de1yt);	free1float(de1zt);	free1float(de2xt);	free1float(de2yt);	free1float(de2zt);	free1float(dp111t);	free1float(dp112t);	free1float(dp121t);	free1float(dp122t);	free1float(dq111t);	free1float(dq112t);	free1float(dq121t);	free1float(dq122t);	free1float(dp211t);	free1float(dp212t);	free1float(dp221t);	free1float(dp222t);	free1float(dq211t);	free1float(dq212t);	free1float(dq221t);	free1float(dq222t);	return 0;}

⌨️ 快捷键说明

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