亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? modeling.c

?? su 的源代碼庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       *//* MODELING: $Revision: 1.4 $ ; $Date: 1996/09/06 18:06:51 $	*//*********************** self documentation **********************//*************************************************************************MODELING - Seismic Modeling Subroutines for SUSYNLV and clonesdecodeReflectors	parse reflectors parameter stringdecodeReflector		decode a particular reflectorbreakReflectors		break up reflectors duplicating interior (x,z) pointsmakeref			make piecewise cubic reflectors		raylv2		 	Trace ray between two points,				for linear velocity v = v00+dvdx*x+dvdz*zaddsinc		Add sinc wavelet to trace at specified time and			with specified amplitudemakericker	make a Ricker wavelet**************************************************************************Function Prototypes:void decodeReflectors (int *nrPtr,	float **aPtr, int **nxzPtr, float ***xPtr, float ***zPtr);int decodeReflector (char *string,	float *aPtr, int *nxzPtr, float **xPtr, float **zPtr);void breakReflectors (int *nr, float **ar, 	int **nu, float ***xu, float ***zu);void makeref (float dsmax, int nr, float *ar, 	int *nu, float **xu, float **zu, Reflector **r);void raylv2 (float v00, float dvdx, float dvdz,	float x0, float z0, float x, float z,	float *c, float *s, float *t, float *q);void addsinc (float time, float amp,	int nt, float dt, float ft, float *trace);void makericker (float fpeak, float dt, Wavelet **w);	**************************************************************************Notes:Typedefs used by Hale's modelingtypedef struct ReflectorSegmentStruct {	float x;	* x coordinate of segment midpoint *	float z;	* z coordinate of segment midpoint *	float s;	* x component of unit-normal-vector *	float c;	* z component of unit-normal-vector *} ReflectorSegment;typedef struct ReflectorStruct {	int ns;			* number of reflector segments *	float ds;		* segment length *	float a;		* amplitude of reflector *	ReflectorSegment *rs;	* array[ns] of reflector segments *} Reflector;typedef struct WaveletStruct {	int lw;			* length of wavelet *	int iw;			* index of first wavelet sample *	float *wv;		* wavelet sample values *} Wavelet;These are items used in SUSYNLV, SUSYNVXZ, SUSYNLVCW.**************************************************************************Author: Dave Hale, Colorado School of Mines, 09/17/91**************************************************************************//**************** end self doc ********************************/#include "par.h"/* * Credits: CWP Dave Hale, 09/17/91,  Colorado School of Mines */void decodeReflectors (int *nrPtr,	float **aPtr, int **nxzPtr, float ***xPtr, float ***zPtr)/*************************************************************************decodeReflectors - parse reflectors parameter string**************************************************************************Output:nrPtr		pointer to nr an int specifying number of reflectorsaPtr		pointer to a specifying reflector amplitudesnxzPtr		pointer to nxz specifying number of (x,z) pairs defining the		reflectorsxPtr		pointer to array[x][nr] of x values for the entire modelzPtr		array[z][nr] of z values for the entire model***************************************************************************Author: Dave Hale, Colorado School of Mines, 09/17/91**************************************************************************/{	int nr,*nxz,ir;	float *a,**x,**z;	char t[1024],*s;	/* count reflectors */	nr = countparname("ref");	if (nr==0) nr = 1;		/* allocate space */	a = ealloc1(nr,sizeof(float));	nxz = ealloc1(nr,sizeof(int));	x = ealloc1(nr,sizeof(float*));	z = ealloc1(nr,sizeof(float*));	/* get reflectors */	for (ir=0; ir<nr; ++ir) {		if (!getnparstring(ir+1,"ref",&s)) s = "1:1,2;4,2";		strcpy(t,s);		if (!decodeReflector(t,&a[ir],&nxz[ir],&x[ir],&z[ir]))			err("Reflector number %d specified "				"incorrectly!\n",ir+1);	}	/* set output parameters before returning */	*nrPtr = nr;	*aPtr = a;	*nxzPtr = nxz;	*xPtr = x;	*zPtr = z;}/* parse one reflector specification; return 1 if valid, 0 otherwise */int decodeReflector (char *string,	float *aPtr, int *nxzPtr, float **xPtr, float **zPtr)/**************************************************************************decodeReflector - parse one reflector specification***************************************************************************Input:string		string representing reflectorOutput:aPtr		pointer to amplitude valuenxzPtr		pointer to number of x,z pairsxPtr		array of x values for one reflectorzPtr		array of z values for one reflector***************************************************************************Author: Dave Hale, Colorado School of Mines, 09/17/91**************************************************************************/{	int nxz,ixz;	float a,*x,*z;	char *s,*t;	/* if specified, get reflector amplitude; else, use default */	s = string;	if (strchr(s,':')==NULL) {		a = 1.0;		s = strtok(s,",;\0");	} else {		/* if (strcspn(s,":")>=strcspn(s,",;\0")) return 0;*/		if (((unsigned int) strcspn(s,":")) >=		    ((unsigned int) strcspn(s,",;\0"))) return 0;		a = atof(s=strtok(s,":"));		s = strtok(NULL,",;\0");	}	/* count x and z values, while splitting string into tokens */	for (t=s,nxz=0; t!=NULL; ++nxz)		t = strtok(NULL,",;\0");		/* total number of values must be even */	if (nxz%2) return 0;	/* number of (x,z) pairs */	nxz /= 2;	/* 2 or more (x,z) pairs are required */	if (nxz<2) return 0;	/* allocate space */	x = ealloc1(nxz,sizeof(float));	z = ealloc1(nxz,sizeof(float));	/* convert (x,z) values */	for (ixz=0; ixz<nxz; ++ixz) {		x[ixz] = atof(s);		s += strlen(s)+1;		z[ixz] = atof(s);		s += strlen(s)+1;	}	/* set output parameters before returning */	*aPtr = a;	*nxzPtr = nxz;	*xPtr = x;	*zPtr = z;	return 1;}/* Break up reflectors by duplicating interior (x,z) points */void breakReflectors (int *nr, float **ar, 	int **nu, float ***xu, float ***zu){	int nri,nro,*nui,*nuo,ir,jr,iu;	float *ari,*aro,**xui,**zui,**xuo,**zuo;	/* input reflectors */	nri = *nr;	ari = *ar;	nui = *nu;	xui = *xu;	zui = *zu;	/* number of output reflectors */	for (ir=0,nro=0; ir<nri; ++ir)		nro += nui[ir]-1;	/* make output reflectors and free space for input reflectors */	aro = ealloc1float(nro);	nuo = ealloc1int(nro);	xuo = ealloc1(nro,sizeof(float*));	zuo = ealloc1(nro,sizeof(float*));	for (ir=0,jr=0; ir<nri; ++ir) {		for (iu=0; iu<nui[ir]-1; ++iu,++jr) {			aro[jr] = ari[ir];			nuo[jr] = 2;			xuo[jr] = ealloc1float(2);			zuo[jr] = ealloc1float(2);			xuo[jr][0] = xui[ir][iu];			zuo[jr][0] = zui[ir][iu];			xuo[jr][1] = xui[ir][iu+1];			zuo[jr][1] = zui[ir][iu+1];		}		free1float(xui[ir]);		free1float(zui[ir]);	}	free1float(ari);	free1int(nui);	free1(xui);	free1(zui);	/* output reflectors */	*nr = nro;	*ar = aro;	*nu = nuo;	*xu = xuo;	*zu = zuo;}void makeref (float dsmax, int nr, float *ar, 	int *nu, float **xu, float **zu, Reflector **r)/*****************************************************************************Make piecewise cubic reflectors******************************************************************************Input:dsmax		maximum length of reflector segmentnr		number of reflectorsar		array[nr] of reflector amplitudesnu		array[nr] of numbers of (x,z) pairs; u = 0, 1, ..., nu[ir]xu		array[nr][nu[ir]] of reflector x coordinates x(u)zu		array[nr][nu[ir]] of reflector z coordinates z(u)Output:r		array[nr] of reflectors******************************************************************************Notes:Space for the ar, nu, xu, and zu arrays is freed by this function, sincethey are only used to construct the reflectors.This function is meant to be called only once, so it need not be veryefficient.  Once made, the reflectors are likely to be used many times, so the cost of making them is insignificant.*****************************************************************************/{	int ir,iu,nuu,iuu,ns,is;	float x,z,xlast,zlast,dx,dz,duu,uu,ds,fs,rsx,rsz,rsxd,rszd,		*u,*s,(*xud)[4],(*zud)[4],*us;	ReflectorSegment *rs;	Reflector *rr;		/* allocate space for reflectors */	*r = rr = ealloc1(nr,sizeof(Reflector));	/* loop over reflectors */	for (ir=0; ir<nr; ++ir) {		/* compute cubic spline coefficients for uniformly sampled u */		u = ealloc1float(nu[ir]);		for (iu=0; iu<nu[ir]; ++iu)			u[iu] = iu;		xud = (float(*)[4])ealloc1float(4*nu[ir]);		csplin(nu[ir],u,xu[ir],xud);		zud = (float(*)[4])ealloc1float(4*nu[ir]);		csplin(nu[ir],u,zu[ir],zud);		/* finely sample x(u) and z(u) and compute length s(u) */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美老肥妇做.爰bbww| 婷婷一区二区三区| 欧美日产国产精品| 成人一区在线观看| 激情文学综合插| 视频一区在线播放| 欧美电影精品一区二区| 欧美日韩一区在线观看| 99精品久久免费看蜜臀剧情介绍| 国产一区二区免费在线| 青青国产91久久久久久| 亚洲1区2区3区视频| 亚洲另类春色国产| 中文字幕中文字幕在线一区 | 捆绑紧缚一区二区三区视频| 国产欧美一区二区精品久导航 | 亚洲成av人片www| 一区二区三区四区激情| 一区在线观看视频| 国产精品国产自产拍高清av王其| 久久色在线观看| 精品国产91洋老外米糕| 欧美大尺度电影在线| 欧美喷水一区二区| 欧美精品色一区二区三区| 欧美日韩高清不卡| 欧美优质美女网站| 欧美乱熟臀69xxxxxx| 欧美疯狂性受xxxxx喷水图片| 欧美性感一类影片在线播放| 在线观看视频一区| 8x福利精品第一导航| 日韩午夜精品视频| 久久久久久免费| 国产精品欧美一区喷水| 日本一区二区三区在线不卡| 国产精品久久一级| 亚洲激情图片一区| 日韩精彩视频在线观看| 精品在线一区二区三区| 从欧美一区二区三区| 91免费视频观看| 91精品国产入口在线| 欧美精品一二三| 久久久久青草大香线综合精品| 国产精品色哟哟| 久久免费视频一区| 亚洲精品视频在线| 免费在线视频一区| 成人黄色小视频| 欧美日韩一级二级三级| 久久综合色婷婷| 亚洲日本中文字幕区| 免费成人在线网站| 99精品在线观看视频| 欧美精品在线一区二区三区| 久久久九九九九| 一区二区三区 在线观看视频| 视频精品一区二区| 成人污视频在线观看| 欧美日本视频在线| 中文字幕亚洲区| 日精品一区二区三区| 成人午夜激情片| 欧美一区二区二区| 亚洲自拍偷拍九九九| 激情综合色综合久久| 91丨porny丨最新| 欧美精品一区二区久久久| 亚洲一区二区三区四区五区黄 | 精品国偷自产国产一区| 日本一区二区三区久久久久久久久不| 亚洲一区二区中文在线| 国产成人精品一区二区三区网站观看| 在线观看av不卡| 欧美国产激情一区二区三区蜜月| 亚洲午夜久久久久久久久电影网| 成人免费毛片aaaaa**| 精品国产乱码久久久久久闺蜜| 中文字幕电影一区| 国产一区在线不卡| 日韩一级视频免费观看在线| 一个色在线综合| 99免费精品在线观看| 精品动漫一区二区三区在线观看| 亚洲国产精品久久久久秋霞影院 | 欧美经典一区二区三区| 日本不卡不码高清免费观看| 97se亚洲国产综合自在线| 国产精品国产自产拍高清av| 91色在线porny| 亚洲第一狼人社区| 精品剧情在线观看| 风间由美一区二区av101| 国产精品灌醉下药二区| 在线免费观看日本欧美| 偷拍一区二区三区四区| 久久综合资源网| 99re这里只有精品视频首页| 午夜欧美电影在线观看| 337p日本欧洲亚洲大胆色噜噜| 国产一区在线不卡| 一个色在线综合| 欧美一区二区三区色| 国产精品18久久久久| 亚洲欧美综合另类在线卡通| 欧美美女直播网站| 国产91精品免费| 亚洲成人中文在线| 久久老女人爱爱| 欧美日韩一区高清| 国产精品69毛片高清亚洲| 亚洲精品乱码久久久久久日本蜜臀| 日本黄色一区二区| 国内精品伊人久久久久影院对白| 亚洲欧美影音先锋| 欧美本精品男人aⅴ天堂| av电影在线观看完整版一区二区| 亚洲国产cao| 国产视频一区二区在线| 欧美日韩一二三| 成人性生交大片免费看中文网站| 亚洲福利视频一区| 中文字幕不卡三区| 日韩一级免费观看| 日本韩国一区二区| 国产精品1024| 日本欧美一区二区| 一区二区三区av电影 | 99久久99久久精品免费观看| 老色鬼精品视频在线观看播放| 亚洲免费色视频| 国产日韩精品一区二区浪潮av| 欧美美女一区二区| 在线看一区二区| heyzo一本久久综合| 国模无码大尺度一区二区三区| 亚洲国产日韩在线一区模特| 国产欧美一区二区精品秋霞影院| 91精品国产综合久久久久久漫画| 99久久精品免费观看| 国产精品白丝av| 激情综合亚洲精品| 美脚の诱脚舐め脚责91| 亚洲在线一区二区三区| 亚洲精品国产精品乱码不99| 国产精品亲子伦对白| 国产欧美一区二区三区在线看蜜臀| 日韩欧美国产三级电影视频| 欧美日韩激情一区二区三区| 在线精品视频免费播放| 色综合天天综合网天天看片| 成人动漫在线一区| 97久久精品人人爽人人爽蜜臀| 福利电影一区二区| 高清成人免费视频| 成人av在线一区二区| 懂色一区二区三区免费观看| 福利一区在线观看| 99精品一区二区| 91国在线观看| 欧美色综合影院| 4438x亚洲最大成人网| 日韩一级成人av| 久久久久久久久岛国免费| 国产欧美一区二区精品性色超碰| 久久看人人爽人人| 国产精品污污网站在线观看| 自拍偷在线精品自拍偷无码专区| 亚洲欧美日韩系列| 亚洲一区在线观看视频| 日本特黄久久久高潮| 蜜桃传媒麻豆第一区在线观看| 日本不卡在线视频| 国内外成人在线视频| 9久草视频在线视频精品| 91女神在线视频| 欧美一级专区免费大片| 国产色产综合产在线视频| 亚洲视频狠狠干| 日av在线不卡| 国产91精品露脸国语对白| 色偷偷88欧美精品久久久| 欧美日韩一区国产| 精品处破学生在线二十三| 亚洲欧美综合在线精品| 午夜精品福利视频网站| 国产盗摄精品一区二区三区在线| 色综合色狠狠天天综合色| 欧美一级黄色录像| 亚洲人成在线观看一区二区| 蜜桃精品视频在线| 99在线精品观看| 欧美α欧美αv大片| 一区二区三区在线观看视频| 美女视频黄频大全不卡视频在线播放| 国产v综合v亚洲欧| 8x8x8国产精品| 一区二区三区在线免费| 国产精品自产自拍|