📄 fdraytrace.c
字号:
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <assert.h>#include <eve.h>#include <sismoutil.h>#include "tomo3d.h"#define ijk2l(i,j,k) (NZ*NY*(i) + NX*(j) + (k))#define TIME(i,j,k) T[ijk2l(i,j,k)]#define SLOW(i,j,k) HS[ijk2l(i,j,k)]#define NVNV(i,j,k) NV[ijk2l(i,j,k)]#define MAX(a,b) ((a>b)?(a):(b))#define MIN(a,b) ((a<b)?(a):(b))clock_t __lclock=0;#define PROGRESS(k,N) { if (clock()>__lclock+CLOCKS_PER_SEC) { fprintf(stderr,"%6d/%6d",k,N); __lclock=clock(); } }#define RE 6371.#define STEPALLOC 50#define INFINITY 1.e+19/* time-3d: */float HS_EPS_INIT=1.e-3; /* tolerated model heterogeneity */int MSG=1; /* verbosity level */float XS,YS,ZS; /* source */int NX,NY,NZ; /* Dimensions of the timefields */float *HS,*HS2; /* model */float *T; /* time filed */int *NV,MISSING; /* temporaire (init) */float Hlength=40.; /* time grid unit length */float maxdepth=-1;extern int time_3d(float *HS, float *T, int NX, int NY, int NZ, float XS, float YS, float ZS, float HS_EPS_INIT, int MSG);int init_grids(struct event_t *ev,struct data_t *dat){ float pm,azm; float A,B,C,Z0,VEL; int i,j,k; int zmax=0; int zmin=NZ; /* initialiastion de T */ printlog("Init T\n"); /* les rais sont suppos閟 arriver sous le mod鑜e sur un front * d'onde plan, avec comme param鑤re de rai la moyenne de tous * les rais. Ensuite, on propage les rais dans la grille de * temps calcul閑 via time_3d jusqu'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -