diff --git a/fdelmodc/fdelmodc b/fdelmodc/fdelmodc index 749fd04edacc5f1be9c2f189e0f7cb729b7b0342..2490595cb11059d767c62d36f5e165bc82028adc 100755 Binary files a/fdelmodc/fdelmodc and b/fdelmodc/fdelmodc differ diff --git a/marchenko/readShotData.c b/marchenko/readShotData.c index 1e1e33c5aa34be3b35b800b3951f7f89a4213ba8..a619799113de01c77af1a667cb060e3de055731b 100644 --- a/marchenko/readShotData.c +++ b/marchenko/readShotData.c @@ -16,7 +16,8 @@ int optncr(int n); void cc1fft(complex *data, int n, int sign); void rc1fft(float *rdata, complex *cdata, int n, int sign); -int readShotData(char *filename, float *xrcv, float *xsrc, float *zsrc, int *xnx, complex *cdata, int nw, int nw_low, int nshots, int nx, int nxs, float fxsb, float dxs, int ntfft, int mode, float scale, float tsq, int reci, int *nshots_r, int *isxcount, int *reci_xsrc, int *reci_xrcv, float *ixmask, int verbose) +int readShotData(char *filename, float *xrcv, float *xsrc, float *zsrc, int *xnx, complex *cdata, int nw, int nw_low, int nshots, +int nx, int nxs, float fxsb, float dxs, int ntfft, int mode, float scale, float tsq, float Q, float f0, int reci, int *nshots_r, int *isxcount, int *reci_xsrc, int *reci_xrcv, float *ixmask, int verbose) { FILE *fp; segy hdr; @@ -102,6 +103,13 @@ int readShotData(char *filename, float *xrcv, float *xsrc, float *zsrc, int *xnx } } + /* Q-correction */ + if (Q != 0.0 && f0 != 0.0) { + for (iw=0; iw<nt; iw++) { + trace[iw] *= expf(((dt*iw)*M_PI*f0)/Q); + } + } + /* transform to frequency domain */ if (ntfft > hdr.ns) memset( &trace[nt-1], 0, sizeof(float)*(ntfft-nt) );