SUDATUMK2DS - Kirchhoff datuming of sources for 2D prestack data (input data are receiver gathers)           

    sudatumk2ds  infile=  outfile=  [parameters]                 

 Required parameters:                                      
 infile=stdin           file for input seismic traces            
 outfile=stdout   file for common offset migration output 
 ttfile           file for input traveltime tables         
   The following 9 parameters describe traveltime tables:        
 fzt              first depth sample in traveltime table         
 nzt              number of depth samples in traveltime table    
 dzt              depth interval in traveltime table       
 fxt              first lateral sample in traveltime table 
 nxt              number of lateral samples in traveltime table  
 dxt              lateral interval in traveltime table           
 fs               x-coordinate of first source             
 ns               number of sources                  
 ds               x-coordinate increment of sources        

 fxi                   x-coordinate of the first surface location     
 dxi                   horizontal spacing on surface                  
 nxi                   number of input surface locations              
 sgn                   Sign of the datuming process (up=-1 or down=1) 

 Optional Parameters:                                      
 dt= or from header (dt)      time sampling interval of input data     
 ft= or from header (ft)      first time sample of input data          
 surf="0,0;99999,0"  The first surface defined the recording surface
 surf="0,0;99999,0"  and the second one, the new datum.             
                       "x1,z1;x2,z2;x3,z3;...
 fzo=fzt          z-coordinate of first point in output trace    
 dzo=0.2*dzt            vertical spacing of output trace         
 nzo=5*(nzt-1)+1 number of points in output trace          ",   
 fxso=fxt         x-coordinate of first shot              
 dxso=0.5*dxt           shot horizontal spacing                 
 nxso=2*(nxt-1)+1       number of shots                    
 fxgo=fxt         x-coordinate of first receiver                 
 exgo=fxgo+(nxgo-1)*dxgo      x-coordinate of the last receiver  
 dxgo=0.5*dxt           receiver horizontal spacing              
 nxgo=nxso        number of receivers per shot             
 fmax=0.25/dt           frequency-highcut for input traces       
 offmax=99999           maximum absolute offset allowed in migration   
 aperx=nxt*dxt/2        migration lateral aperature              
 angmax=60        migration angle aperature from vertical  
 v0=1500(m/s)           reference velocity value at surface      
 dvz=0.0          reference velocity vertical gradient           
 antiali=1             Antialiase filter (no-filter = 0)              
 jpfile=stderr          job print file name                      
 mtr=100          print verbal information at every mtr traces   
 ntr=100000       maximum number of input traces to be migrated  

 Notes:                                              
 1. Traveltime tables were generated by program rayt2d (or other ones) 
    on relatively coarse grids, with dimension ns*nxt*nzt. In the
    migration process, traveltimes are interpolated into shot/gephone  
    positions and output grids.                            
 2. Input traces must be SU format and organized in common shot gathers
 3. If the offset value of an input trace is not in the offset array   
    of output, the nearest one in the array is chosen.           
 4. Amplitudes are computed using the reference velocity profile, v(z),
    specified by the parameters v0= and dvz=.                    
 5. Input traces must specify source and receiver positions via the header
    fields tr.sx and tr.gx. Offset is computed automatically.          


 Author:  Trino Salinas, 05/01/96,  Colorado School of Mines

 This code is based on sukzmig2d.c written by Zhenyue Liu, 03/01/95.
 Subroutines from Dave Hale's modeling library were adapted in
 this code to define topography using cubic splines.

 This code implements a Kirchhoff extraplolation operator that allows to
 transfer data from one reference surface to another.  The formula used in
 this application is a far field approximation of the Berryhill's original
 formula (Berryhill, 1979).  This equation is the result of a stationary
 phase analysis to get an analog asymptotic expansion for the two-and-one
 half dimensional extrapolation formula (Bleistein, 1984).

 The extrapolation formula permits the downward continuation of upgoing
 waves  and  upward  continuation  of  downgoing waves.  For upward conti-
 nuation of upgoing waves and downward continuation of downgoing waves,
 the conjugate transpose of the equation is used (Bevc, 1993).

 References :

 Berryhill, J.R., 1979, Wave equation datuming: Geophysics,
   44, 1329--1344.

 _______________, 1984, Wave equation datuming before stack
   (short note) : Geophysics, 49, 2064--2067.

 Bevc, D., 1993, Data parallel wave equation datuming with
   irregular acquisition topography :  63rd Ann. Internat.
   Mtg., SEG, Expanded Abstracts, 197--200.

 Bleistein, N., 1984, Mathematical methods for wave phenomena,
   Academic Press Inc. (Harcourt Brace Jovanovich Publishers),
   New York.