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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tomo3d.c

?? 射線追蹤程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * This file is part of tomo3d * * Copyright (C) 2002, 2003, Sebastien Judenherc <sebastien.judenherc@na.infn.it> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 * USA * */#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <time.h>#include <sismoutil.h>#include <eve.h>#include <math.h>#define OK printf("FILE %s, LINE %d\n",__FILE__,__LINE__);#define RE 6371.0#include "tomo3d.h"clock_t CC[10];int Ncc=0;int inter_cache=0;int guess_blocknum_shift=0;struct model_t *refmod=NULL;#define EPS 1.0e-8double PvelIASP_corr(double Z){        return(PvelIASP(Z)*interp(refmod,RE-Z));}double SvelIASP_corr(double Z){        float c;        c=interp(refmod,RE-Z);        return(SvelIASP(Z)*(1.0+2.0*(c-1.0)));}void init_mod(char *fn,float normv){        if (fn) {                refmod=readmodel(fn,normv);        }        if (!refmod) {                Pvelocity=PvelIASP;                Svelocity=SvelIASP;                fprintf(stderr,"Using IASP only\n");        } else {                Pvelocity=PvelIASP_corr;                Svelocity=SvelIASP_corr;                fprintf(stderr,"Using IASP locally corrected\n");        }}struct model_t * readmodel(char *fn,float normv){        FILE *f;        float r,v;        struct model_t *tmp=NULL;        f=fopen(fn,"rt");        if (!f) { perror(fn); return(NULL); }        tmp=(struct model_t*)calloc(1,sizeof(struct model_t));        while (fscanf(f,"%f %f",&r,&v)==2) {                tmp->r=(float*)realloc(tmp->r,(tmp->N+1)*sizeof(float));                tmp->v=(float*)realloc(tmp->v,(tmp->N+1)*sizeof(float));                tmp->r[tmp->N]=r;                tmp->v[tmp->N]=v*normv;                fprintf(stderr,"%d: %f %f\n",tmp->N,tmp->r[tmp->N],tmp->v[tmp->N]);                tmp->N++;        }        fclose(f);        fprintf(stderr,"%s: %d\n",fn,tmp->N);        return(tmp);}float interp(struct model_t* mod,float r){ int i;  float v,v1,v2,r1,r2;  if (!mod) return(1.0);  for (i=inter_cache; i<mod->N-1; i++) {      if (i<0) i=0;      r1=mod->r[i];      r2=mod->r[i+1];      if (((r1-0.005<=r)&&(r2+0.005>=r))||((r1+0.005>=r)&&(r2-0.005<=r))) {         v1=mod->v[i];         v2=mod->v[i+1];         if (fabs(r2-r1)<0.01) return(0.5*(v1+v2));         v=v1+(r-r1)*(v2-v1)/(r2-r1);         /*fprintf(stderr,"OK %d %d\n",inter_cache,i);*/         inter_cache=i;         return(1.0+v);      }  }  /*fprintf(stderr,"R1 %d %d\n",inter_cache,i);*/  for (i=0; i<mod->N-1; i++) {      r1=mod->r[i];      r2=mod->r[i+1];      if (((r1<=r)&&(r2>=r))||((r1>=r)&&(r2<=r))) {         v1=mod->v[i];         v2=mod->v[i+1];         v=v1+(r-r1)*(v2-v1)/(r2-r1);         inter_cache=i;         /*fprintf(stderr,"%d %d\n",inter_cache,i);*/         return(1.0+v);      }  }  if (r<6300.0) fprintf(stderr,"interp error, r=%f\n",r);  return(1.0);}int blkcmp(const void *p1, const void *p2){ struct block_t * b1=(struct block_t *)p1;  struct block_t * b2=(struct block_t *)p2;  int r=0;  if (b1->z-EPS<b2->z) r-=8; else if (b1->z+EPS>b2->z) r+=8;  if (b1->x-EPS<b2->x) r-=4; else if (b1->x+EPS>b2->x) r+=4;  if (b1->y-EPS<b2->y) r-=2; else if (b1->y+EPS>b2->y) r+=2;  return(r);}void ptime(int ncc, int comm){ switch (comm) {         case -1: for (ncc=0; ncc<10; ncc++) CC[ncc]=0;                  break;         case  1: CC[ncc]=clock();                  break;         case  2: fprintf(stderr,"[%.2f sec]          ",                          (float)(clock()-CC[ncc])/(float)CLOCKS_PER_SEC);                  break;  }} void printlayers(FILE *f, struct layer_t *lay, int nbl){ int i;  for (i=0; i<nbl; i++)      fprintf(f,"%5.1f %5.1f  %4d %5.1f %4d %5.1f  %5.1f  %5.2f  %.2e\n",                lay[i].x, lay[i].y, lay[i].Nx, lay[i].dx,                lay[i].Ny, lay[i].dy, lay[i].dz, lay[i].V,lay[i].damp);}struct block_t *readblock(char *file, int *nbb){ FILE *f=fopen(file,"rt");  struct block_t *tmp=NULL;  struct block_t bid;  int nl=0;  float lz=0.;  guess_blocknum_shift=0; /* nb moyen de block par couche */  if (!f) {     perror(file);     return(NULL);  }  *nbb=0;  fprintf(stderr,"Reading %s...",file);  fflush(stderr);  fscanf(f,"%lf %lf %lf %f %f %f %f %f %f",         &bid.x, &bid.y,&bid.z,&bid.dx,&bid.dy,&bid.dz,         &bid.V,&bid.dV,&bid.damp);  lz=bid.z;  while (!feof(f)) {        tmp=(struct block_t*)realloc(tmp,(1+*nbb)*sizeof(struct block_t));        memcpy(&(tmp[*nbb]),&bid,sizeof(struct block_t));        (*nbb)++;        fscanf(f,"%lf %lf %lf %f %f %f %f %f %f",               &bid.x, &bid.y,&bid.z,&bid.dx,&bid.dy,&bid.dz,               &bid.V,&bid.dV,&bid.damp);        if (bid.z>lz+0.1) {                nl++;                lz=bid.z;        }  }  nl++;  guess_blocknum_shift=(*nbb)/nl;  fclose(f);  fprintf(stderr,"%d (Nlay=%d, avg=%d)\n",*nbb,nl,guess_blocknum_shift);  return(tmp);}struct block_t *readlayers(char *file, int *nbb,                           struct layer_t **layer, int *nbl){ FILE *f;  double X, Y, Z=0.;  float dx,dy,dz,damp,lat,lon;  int Nx,Ny,i,j,k=0;  float V;  struct block_t *tmp=NULL;  struct layer_t *lay=NULL;  struct lambert proj;  if ((f=fopen(file,"rt"))==NULL) {     perror(file);     return(NULL);  }  *nbl=0;  if (fscanf(f,"%f %f",&lat,&lon)!=2) return(NULL);  initproj(13,lon,lat,0.0,&proj);  geo2lam(lat,lon,&X,&Y,&proj);  X/=1000.;  Y/=1000.;  fprintf(stderr,"PROJ: %d lon=%.3f X=%.0f Y=%.0f\n",13,lon,X,Y);  fscanf(f,"%d %f %d %f %f %f %f",         &Nx,&dx,&Ny,&dy,&dz,&V,&damp);  while (!feof(f)) {        double minx, miny;        minx=X-dx*0.5*(double)Nx;        miny=Y-dy*0.5*(double)Ny;        lay=(struct layer_t *)realloc(lay,((*nbl)+1)*sizeof(struct layer_t));        lay[*nbl].x=X;   lay[*nbl].y=Y;   lay[*nbl].z=Z;        lay[*nbl].dx=dx; lay[*nbl].dy=dy; lay[*nbl].dz=dz;        lay[*nbl].Nx=Nx; lay[*nbl].Ny=Ny; lay[*nbl].V=V;        lay[*nbl].damp=damp;        tmp=(struct block_t *)realloc(tmp,(k+Nx*Ny)*sizeof(struct block_t));        for (i=0; i<Nx; i++)            for (j=0; j<Ny; j++) {                tmp[k].x=minx+dx*(double)i;                tmp[k].y=miny+dy*(double)j;                tmp[k].z=Z;                tmp[k].dx=dx;                tmp[k].dy=dy;                tmp[k].dz=dz;                tmp[k].V=V;                tmp[k].damp=damp;                tmp[k].dV=0.0;                k++;            }        Z+=tmp[k-1].dz;        (*nbl)++;        fscanf(f,"%d %f %d %f %f %f %f",                  &Nx,&dx,&Ny,&dy,&dz,&V,&damp);  }  *nbb=k;  *layer=lay;  fclose(f);  return(tmp);}void printblocks(FILE *f, struct block_t *blk, int nbl){ int i;  for (i=0; i<nbl; i++)      fprintf(f,"%15.5f %15.5f %15.5f   %15.8e %15.8e %15.8e    %5.2f  %8.4f %5e\n",              blk[i].x,blk[i].y,blk[i].z,blk[i].dx,blk[i].dy,blk[i].dz,              blk[i].V,blk[i].dV,blk[i].damp);}struct path_t * readpath(char *fn,int *N,float *DS){ FILE *f=fopen(fn,"rb");  struct path_t *path=NULL;  int i;  if (!f) {     perror(fn);     return(NULL);  }  fread(N, sizeof(int), 1, f);  fread(DS, sizeof(float), 1, f);  path=(struct path_t *)malloc(sizeof(struct path_t)*(*N));  for (i=0; i<*N; i++) {      fread(&(path[i]),sizeof(struct path_t),1,f);      path[i].x=malloc(sizeof(float)*path[i].nseg);      path[i].y=malloc(sizeof(float)*path[i].nseg);      path[i].z=malloc(sizeof(float)*path[i].nseg);      fread(path[i].x,sizeof(float),path[i].nseg,f);      fread(path[i].y,sizeof(float),path[i].nseg,f);      fread(path[i].z,sizeof(float),path[i].nseg,f);  }  fclose(f);  return(path);}int writepath(char *fn,struct path_t *path, int N,float DS){ FILE *f=fopen(fn,"wb");  char *buf=NULL;  int i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产曰批免费观看久久久| 久久九九国产精品| 亚洲一级二级三级在线免费观看| 97久久精品人人做人人爽50路 | 麻豆精品新av中文字幕| 日韩精品专区在线影院重磅| 激情图区综合网| 国产精品天美传媒沈樵| 91麻豆高清视频| 日本午夜精品视频在线观看| 精品国产在天天线2019| 成人免费福利片| 亚洲综合另类小说| 精品国产一区二区三区av性色| 国产成人免费网站| 亚洲精品久久久蜜桃| 日韩午夜av电影| 成人免费视频app| 午夜私人影院久久久久| 久久蜜臀精品av| 91女人视频在线观看| 日韩二区三区四区| 国产精品狼人久久影院观看方式| 欧美在线不卡视频| 久久精品国产亚洲aⅴ| 国产精品久久久久久久久久久免费看| 欧美制服丝袜第一页| 国内精品免费**视频| 亚洲综合成人在线| 国产午夜精品久久久久久久| 欧美日韩中文另类| 国产精品18久久久久久久久 | 日韩欧美一区电影| 丰满岳乱妇一区二区三区| 亚洲va天堂va国产va久| 国产日产精品1区| 欧美日韩一区小说| 成人性生交大片| 日本成人在线视频网站| 亚洲色图欧美在线| 久久夜色精品国产噜噜av| 色婷婷一区二区三区四区| 美腿丝袜亚洲综合| 夜夜嗨av一区二区三区四季av| 精品91自产拍在线观看一区| 欧美无人高清视频在线观看| 国产成人免费9x9x人网站视频| 一区二区三区精品| 欧美国产成人在线| 欧美videofree性高清杂交| 91搞黄在线观看| 国产成a人无v码亚洲福利| 美女视频一区二区| 丝袜美腿成人在线| 专区另类欧美日韩| 中文字幕av资源一区| 欧美成人女星排行榜| 欧美日本一区二区三区| 91精彩视频在线观看| fc2成人免费人成在线观看播放| 精品午夜一区二区三区在线观看| 偷窥少妇高潮呻吟av久久免费| 樱花草国产18久久久久| 自拍偷拍国产亚洲| 亚洲素人一区二区| 《视频一区视频二区| 国产精品每日更新在线播放网址| www激情久久| 精品精品国产高清一毛片一天堂| 4438x亚洲最大成人网| 在线观看区一区二| 欧美亚洲综合网| 91黄色免费版| 欧美日韩电影在线| 欧美日韩成人一区二区| 91麻豆精品国产综合久久久久久| 欧美视频一区二| 在线成人免费观看| 3d成人h动漫网站入口| 51午夜精品国产| 欧美va亚洲va国产综合| 久久综合中文字幕| 亚洲精品一线二线三线| 久久久久综合网| 国产精品污网站| √…a在线天堂一区| 亚洲男人的天堂在线aⅴ视频| 亚洲精品videosex极品| 婷婷综合五月天| 青青草国产成人99久久| 狠狠色狠狠色综合日日91app| 国产乱码一区二区三区| 成人高清视频在线| 一本久道中文字幕精品亚洲嫩| 91福利视频久久久久| 欧美日韩黄色影视| 日韩美女一区二区三区| 欧美国产视频在线| 悠悠色在线精品| 蜜臀91精品一区二区三区| 国产成人亚洲综合a∨婷婷图片| 成人av网站在线观看免费| 欧美伊人久久大香线蕉综合69 | 国产精品影视在线观看| 不卡一区中文字幕| 欧美精三区欧美精三区| 亚洲精品在线电影| 亚洲精品免费播放| 久久97超碰色| 99亚偷拍自图区亚洲| 欧美男男青年gay1069videost| 日韩欧美另类在线| 亚洲图片欧美激情| 日本va欧美va欧美va精品| 国产成人av一区二区三区在线| 91黄色免费网站| 久久久久久久久久电影| 亚洲国产三级在线| 国产麻豆视频一区| 欧美三区在线观看| 国产精品美女久久久久久久久 | 欧美性受xxxx| www久久久久| 亚洲欧美日本在线| 国产最新精品精品你懂的| 色综合久久六月婷婷中文字幕| 91精品黄色片免费大全| 中文字幕在线观看一区二区| 日本aⅴ免费视频一区二区三区 | 午夜视频在线观看一区二区| 国产成人精品www牛牛影视| 欧美久久久久久蜜桃| 国产精品第四页| 精品亚洲porn| 欧美情侣在线播放| 亚洲精品久久嫩草网站秘色| 国产ts人妖一区二区| 欧美一区二区三区在| 一区二区理论电影在线观看| 大白屁股一区二区视频| 精品嫩草影院久久| 视频在线观看国产精品| 91麻豆视频网站| 国产精品久久久久7777按摩| 国产一区二区三区在线观看精品| 欧美日韩中文字幕一区| 亚洲精品你懂的| 99r国产精品| 国产精品麻豆视频| 国产精品一区二区久久精品爱涩| 91精品国产91久久久久久最新毛片| 亚洲女性喷水在线观看一区| 国产91丝袜在线播放九色| 欧美va在线播放| 毛片av一区二区| 3atv一区二区三区| 日韩精品一区第一页| 欧美性猛交xxxx乱大交退制版 | 精品视频一区二区不卡| 一区二区欧美视频| 在线观看免费成人| 亚洲资源中文字幕| 精品视频一区 二区 三区| 一区二区成人在线视频| 91精品1区2区| 亚洲国产视频一区二区| 欧美日韩国产影片| 天堂资源在线中文精品| 欧美精品第1页| 视频一区二区三区入口| 欧美另类z0zxhd电影| 日韩黄色小视频| 日韩欧美中文字幕精品| 另类人妖一区二区av| 精品国产乱码久久久久久牛牛| 精品一区二区三区在线观看国产| 日韩精品一区二区三区中文不卡 | 欧美日韩成人在线一区| 日韩精品成人一区二区在线| 欧美一二三四区在线| 久久99精品一区二区三区| 精品国产乱码久久| 国产1区2区3区精品美女| 国产精品欧美精品| 欧美亚洲禁片免费| 免费成人av在线播放| 国产亚洲成年网址在线观看| 99热精品一区二区| 午夜久久久影院| 久久夜色精品国产噜噜av| 成人激情黄色小说| 亚洲成人免费在线| xnxx国产精品| 91色porny| 婷婷开心激情综合| 国产日韩欧美不卡| 色哟哟国产精品免费观看| 青青草97国产精品免费观看无弹窗版| 日韩一级成人av| 成人成人成人在线视频|