inseis_source_wavelet.c 2.21 KB
Newer Older
Tilman Steinweg's avatar
Tilman Steinweg committed
1
/*-----------------------------------------------------------------------------------------
Florian Wittkamp's avatar
Florian Wittkamp committed
2
 * Copyright (C) 2016  For the list of authors, see file AUTHORS.
Tilman Steinweg's avatar
Tilman Steinweg committed
3
 *
Florian Wittkamp's avatar
Florian Wittkamp committed
4
 * This file is part of IFOS.
Tilman Steinweg's avatar
Tilman Steinweg committed
5
 * 
Florian Wittkamp's avatar
Florian Wittkamp committed
6
 * IFOS is free software: you can redistribute it and/or modify
Tilman Steinweg's avatar
Tilman Steinweg committed
7 8 9
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2.0 of the License only.
 * 
Florian Wittkamp's avatar
Florian Wittkamp committed
10
 * IFOS is distributed in the hope that it will be useful,
Tilman Steinweg's avatar
Tilman Steinweg committed
11 12 13 14 15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
Florian Wittkamp's avatar
Florian Wittkamp committed
16
 * along with IFOS. See file COPYING and/or <http://www.gnu.org/licenses/gpl-2.0.html>.
Tilman Steinweg's avatar
Tilman Steinweg committed
17 18 19 20 21 22 23 24
-----------------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------
 *   Read source wavelet in su format                                  
 *  ----------------------------------------------------------------------*/
#include "fd.h"
#include "segy.h"

Florian Wittkamp's avatar
Florian Wittkamp committed
25
void  inseis_source_wavelet(float *section, int ns, int ishot, int SH){
Tilman Steinweg's avatar
Tilman Steinweg committed
26 27 28 29

	/* declaration of extern variables */
	extern int MYID;
	extern char SIGNAL_FILE[STRING_SIZE];
Florian Wittkamp's avatar
Florian Wittkamp committed
30
    extern char SIGNAL_FILE_SH[STRING_SIZE];
31 32 33
    
    extern int USE_WORKFLOW;
    extern int WORKFLOW_STAGE;
34 35 36 37
	/* declaration of local variables */
	int j;
	float dump;
	segy tr;
Tilman Steinweg's avatar
Tilman Steinweg committed
38
	char data[STRING_SIZE];
Florian Wittkamp's avatar
Florian Wittkamp committed
39 40 41
    FILE *fpdata;
    
    if(SH==0) {
42 43 44 45 46
        if(USE_WORKFLOW){
            sprintf(data,"%s.stage%d.shot%d.su",SIGNAL_FILE,WORKFLOW_STAGE,ishot);
        } else {
            sprintf(data,"%s.shot%d.su",SIGNAL_FILE,ishot);
        }
Florian Wittkamp's avatar
Florian Wittkamp committed
47
    } else {
48 49 50 51 52
        if(USE_WORKFLOW){
            sprintf(data,"%s.stage%d.shot%d.su",SIGNAL_FILE_SH,WORKFLOW_STAGE,ishot);
        } else {
            sprintf(data,"%s.shot%d.su",SIGNAL_FILE_SH,ishot);
        }
Florian Wittkamp's avatar
Florian Wittkamp committed
53 54
    }
    
Tilman Steinweg's avatar
Tilman Steinweg committed
55
	fpdata = fopen(data,"r");
Florian Wittkamp's avatar
Florian Wittkamp committed
56
	if (fpdata==NULL) declare_error(" Source wavelet not found ");
Tilman Steinweg's avatar
Tilman Steinweg committed
57 58 59 60 61 62 63 64 65 66 67 68

	/* SEGY (without file-header) */
	fread(&tr,240,1,fpdata);
	fread(&tr.data,4,ns,fpdata);
			
	for(j=0;j<ns;j++){
	    dump=tr.data[j];
	    section[j+1]=dump;
	}
			  
	fclose(fpdata);
}