diff --git a/corrvir/corrvir.c b/corrvir/corrvir.c index af907acf29033a902807711d207f4c27c8338cf3..49db154dd88cb06cb60bac1f2ddeb92d3ebc0a82 100644 --- a/corrvir/corrvir.c +++ b/corrvir/corrvir.c @@ -11,6 +11,11 @@ double wallclock_time(void); +int omp_get_max_threads(void); +int omp_get_num_threads(void); +int omp_get_thread_num(void); +void omp_set_num_threads(int num_threads); + typedef struct { /* complex number */ float r,i; } complex; @@ -21,6 +26,7 @@ void get_sutrace_at_position(FILE *fp, size_t itrace, complex *tracedata, comple int optncr(int n); void cr1_fft(complex *cdata, float *data, int n, int sign); +void rc1_fft(float *rdata, complex *cdata, int n, int sign); int getFileInfo(char *file_name, int *n1, int *n2, float *d1, float *d2, int verbose); @@ -211,7 +217,6 @@ int main (int argc, char **argv) /*================ Read geometry of all traces in file_shots ================*/ - //trace = (float *)calloc(nt, sizeof(float)); r = (float *)calloc(ntfft,sizeof(float)); c = (complex *)calloc((nf),sizeof(complex)); for (i=0; i<ntrace; i++) { @@ -226,12 +231,9 @@ int main (int argc, char **argv) memset(r,0,ntfft*sizeof(float)); nread = fread( r, sizeof(float), nt, fpin ); assert(nread == nt); - //memcpy(r,&trace[0],nt*sizeof(float)); rc1_fft(r,c,ntfft,-1); - // for (j=0; j<nfreq; j++) tracebuffer[i*nfreq+j] = c[j]; memcpy(&tracebuffer[i*nfreq],&c[0],nfreq*sizeof(complex)); } - //free(trace); free(r); free(c); } @@ -360,19 +362,6 @@ int main (int argc, char **argv) /*================ initializations ================*/ - - //for (j=0; j<MIN(rcvSrc[0].nsrc,rcvSrc[1].nsrc); j++) fprintf(stderr,"before allocs sx=%d sy=%d +1 sx=%d sx=%d\n",rcvSrc[0].src[j].x, rcvSrc[0].src[j].y, rcvSrc[1].src[j].x, rcvSrc[1].src[j].y); - - //nbuffer = 0; - ////nbufmax = (1024*1024*1024/(nfreq*sizeof(complex))); - //if (nbufmax !=0 ) { - // tracebuffer = (complex *)malloc(nbufmax*nfreq*sizeof(complex)); - // trace_in_buffer = (int *)malloc(nbufmax*sizeof(int)); - // for (i=0; i<nbufmax; i++) trace_in_buffer[i] = -1; - //} - //fprintf(stderr,"nfreq=%d, nbufmax=%d\n", nfreq, nbufmax); - - /*================ for nvirtual shots find suitable receivers ================*/ t1 = wallclock_time(); tinit += t1-t2; @@ -748,6 +737,8 @@ void get_sutrace_at_position(FILE *fp, size_t itrace, complex *tracedata, comple return; } +/* older implementation when part od traces is kept in memory buffer */ + void read_sutrace_at_position_old(FILE *fp, int itrace, int ircvnum, int isrcnum, complex *tracedata, complex *tracebuffer, int *trace_in_buffer, size_t *nbuffer, int ntfft, int nt, int nfreq, size_t nbufmax, size_t trace_sz, double *tread, double *tfft, double *tmemcpy) { static size_t freebuffer=0;