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

📄 suhack.c

📁 seismic software,very useful
💻 C
字号:
#include <math.h>#include "su.h"#include "segy.h"#include "par.h"#ifdef PAR_CHKPAR parlist[] = {   {"foo" ,'i' ,"0" ,"2" }  ,{"bar" ,'f' ,"0.01" ,"0.1" }  ,{0 ,0 ,0 ,0 }};#endifchar    *sdoc ="\n suhack <in >out""\n Optional parameters:""\n""\n foo=  - useless but legal parameter w/ range 0 - 2 allowed""\n bar=  - useless but legal parameter w/ range 0.01 - 0.1 allowed""\n""\n Author: Reginald H. Beardsley "__DATE__" rhb@acm.org""\n";main(int argc, char* argv[] ){   segytrace in;   /* input volume */   segytrace out;   FILE* infp  = stdin;   FILE* outfp = stdout;   int i;   int j;   int k=7;   int foo;   float bar;   initargs(argc, argv);   askdoc(1);   /*----------------*/   /* get parameters */   /*----------------*/   getparfloat( "bar" ,&bar );   getparint( "foo" ,&foo );   /*------------------------*/   /* loop over input traces */   /*------------------------*/   memset( &in ,0 ,sizeof(in) );   if( !fgettr( infp ,&in ) ){      err( "Unable to read first trace!" );   }   do {      memset( &out ,0 ,sizeof(out) );      memcpy( &out ,&in ,240 );      out.dt = 100;      out.ns = in.ns / 4;      for( i=1; i<in.ns; i++ ){         in.data[i] += in.data[i-1];      }      for( i=in.ns-2; i>=0; i-- ){         in.data[i] += in.data[i+1];      }      for( j=0; j<out.ns-1; j++ ){         i = j*4;         if( i < 60 ){            /* clean up garbage at start */            out.data[j] = 0.0;          }else if( i-k > 0 && i+k < in.ns ){            out.data[j] = 2*in.data[i] - in.data[i-k] - in.data[i+k];            out.data[j] /= k*k;         }      }      out.data[0] = out.data[2];      out.data[1] = out.data[2];      out.data[out.ns-1] = out.data[out.ns-2];      /*----------------*/      /* output results */      /*----------------*/      if( outfp ){         fputtr(outfp, &out);      }      memset( &in ,0 ,sizeof(in) );   } while (fgettr(infp, &in));   return 0;}

⌨️ 快捷键说明

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