📄 ascii2hvel.c
字号:
/* velocity card format conversion */#include "velo.h"#include "usu.h"char *sdoc = "ASCII2HVEL - convert ascii velocity cards to HVEL cards \n""\n""ascii2hvel [parameters] <ascii-cards >hvel-cards \n" "\n""Required parameters: \n""none \n""\n""Optional parameters: \n""mintrace=-99999 minimum trace number of velocity cards to output \n""maxtrace=99999 maximum trace number of velocity cards to output \n""minline=-99999 minimum line number of velocity cards to output \n""maxline=99999 maximum line number of velocity cards to output \n""linepos=1 column position of line number \n""tracepos=2 column position of trace number \n""timepos=5 column position of time (ms) \n""velopos=6 column position of velocity \n""\n""Notes: \n""1. This program converts ASCII velocity (6 column per row) cards \n"" to disco HANDVEL (cdplbl) format \n""\n""AUTHOR: Zhiming Li, , 7/28/1999 \n" ;main(int argc, char **argv){ char *cbuf; float velo, time, trace, line; float fbuf[6]; FILE *infp=stdin,*outfp=stdout; float *times, *vrms; int mintrace,maxtrace,minline,maxline; int n1=8192; int ic, icmax=9999999; int iline, itrace, iline0, itrace0, cdplbl; int nvt, nxin, i; int linepos, tracepos, timepos, velopos; /* get parameters */ initargs(argc,argv); askdoc(1); if(!getparint("linepos",&linepos)) linepos = 1; if(!getparint("tracepos",&tracepos)) tracepos = 2; if(!getparint("timepos",&timepos)) timepos = 5; if(!getparint("velopos",&velopos)) velopos = 6; linepos -= 1; tracepos -= 1; timepos -= 1; velopos -= 1; if(!getparint("mintrace",&mintrace)) mintrace = -99999; if(!getparint("maxtrace",&maxtrace)) maxtrace = 99999; if(!getparint("minline",&minline)) minline = -99999; if(!getparint("maxline",&maxline)) maxline = 99999;/* memory allocation */ cbuf = (char*)malloc(81*sizeof(char)); times = (float*)malloc(n1*sizeof(int)); vrms = (float*)malloc(n1*sizeof(int)); nxin = 0; nvt = 0;/* read input velf file */ iline0 = -99999; itrace0 = -99999; for (ic=0;ic<icmax;ic++) { if (feof(infp) !=0 ) break; for(i=0;i<81;i++) cbuf[i]=' '; gets(cbuf); sscanf(cbuf,"%f %f %f %f %f %f", &fbuf[0],&fbuf[1],&fbuf[2],&fbuf[3],&fbuf[4],&fbuf[5]); line = fbuf[linepos]; trace = fbuf[tracepos]; time = fbuf[timepos]; velo = fbuf[velopos]; iline = line; itrace = trace; if(nvt>0 && (iline!=iline0 || itrace!=itrace0) ) { cdplbl = iline0*10000+itrace0; printhvel(cdplbl,nvt,times,vrms,outfp); fprintf(stderr,"VELF2HVEL at cdplbl=%d line=%d trace=%d nvt=%d\n",cdplbl,iline0,itrace0,nvt); nvt = 0; nxin = nxin + 1; } iline0 = iline; itrace0 = itrace; if(iline>=minline && iline<=maxline && itrace>=mintrace && itrace<=maxtrace) { times[nvt] = time; vrms[nvt] = velo; nvt = nvt + 1; } } if (nvt>0) { nxin = nxin + 1; cdplbl = iline0*10000+itrace0; printhvel(cdplbl,nvt,times,vrms,outfp); fprintf(stderr, "VELF2HVEL at cdplbl=%d line=%d trace=%d nvt=%d\n",cdplbl,iline0,itrace0,nvt); } fprintf(stderr,"\n"); fprintf(stderr,"ASCII2HVEL conversion done for %d locations \n",nxin); free(times); free(vrms); free(cbuf);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -