#include #include #include #include #include "utils.h" #include "std_cpp_includes.hh" typedef struct s_Rtuple{ RPNT coor; } Rtuple; using RVL::RVLException; // Extracting receiver/source positions from given sufile. //----------------------------------------------------------------------// vector ex_pos( string sufile, bool rcv ){ //----------------------------------------------------------------------// try{ vector pos; /* #ifdef IWAVE_USE_MPI if( retrieveGlobalRank()==0 ){ #endif */ //Reading in file FILE *fp = NULL; if (!(fp=fopen(sufile.c_str(),"r"))) { RVLException e; e << "failed to open su file = "<=t0_src && tau<=T_src ) { int j = int((tau+t0_src)/dt); p[i] = df[j]/(4*pi*c*c*r); } } // cleanup userfree_(df); } int xargc; char **xargv; //----------------------------------------------------------------------// int main(int argc, char ** argv) { //----------------------------------------------------------------------// try { PARARRAY *pars=NULL; char *str=NULL; Value val; FILE *fp_src=NULL; FILE *fp_trc=NULL; float bulk, buoy; string src, trc; segy tr_src, tr_trc; int nt_src, nt_trc; float dt_src, dt_trc, dt; float delrt_src, delrt_trc; float *pbuf=NULL; float r, tmp; fpos_t pos_trc; xargc=argc; xargv=argv; //requestdoc(1); pars = ps_new(); if (ps_createargs(pars,argc-1,&(argv[1]))) { RVLException e; e<<"ERROR: exact_3D.x from ps_creatargs \n"; e<<" called with args:\n"; e<<" argc = "<(*pars,"bulk"); buoy = RVL::valparse(*pars,"buoy"); // filenames for source and pressure trace src = RVL::valparse(*pars,"source"); trc = RVL::valparse(*pars,"pressure"); // open source file if (!(fp_src=fopen(src.c_str(),"r"))) { RVLException e; e<<"ERROR: exact_3D from fopen\n"; e<<" failed to open source trace file = "< g_pos = ex_pos(trc,true); vector s_pos = ex_pos(trc,false); /* cerr << " rcv positions: \n"; for( int i=0; i