SUNMO - NMO for an arbitrary velocity function of time and CDP

 nmo <stdin >stdout [optional parameters]                       

 Optional Parameters:                                           
 tnmo=0           NMO times corresponding to velocities in vnmo       
 vnmo=2000        NMO velocities corresponding to times in tnmo       
 anis1=0          two anisotropy coefficients making up quartic term  
 anis2=0          in traveltime curve, corresponding to times in tnmo 
 cdp=             CDPs for which vnmo & tnmo are specified (see Notes)
 smute=1.5        samples with NMO stretch exceeding smute are zeroed 
 lmute=25         length (in samples) of linear ramp for stretch mute 
 sscale=1         =1 to divide output samples by NMO stretch factor   
 invert=0         =1 to perform (approximate) inverse NMO                
 ixoffset=0       do not consider cross-line offset                   
                       =1 read cross-line offset from trace header         

 Notes:                                                   

 For constant-velocity NMO, specify only one vnmo=constant and omit tnmo.  

 The anisotropy coefficients anis1, anis2 permit non-hyperbolicity due      
 to layering, mode conversion, or anisotropy. Default is isotropic NMO.    

 For NMO with a velocity function of time only, specify the arrays          
         vnmo=v1,v2,... tnmo=t1,t2,...                          
 where v1 is the velocity at time t1, v2 is the velocity at time t2, ...   
 The times specified in the tnmo array must be monotonically increasing.   
 Linear interpolation and constant extrapolation of the specified velocities
 is used to compute the velocities at times not specified.            
 The same holds for the anisotropy coefficients as a function of time only.

 For NMO with a velocity function of time and CDP, specify the array        
         cdp=cdp1,cdp2,...                                      
 and, for each CDP specified, specify the vnmo and tnmo arrays as described
 above. The first (vnmo,tnmo) pair corresponds to the first cdp, and so on.
 Linear interpolation and constant extrapolation of 1/velocity^2 is used   
 to compute velocities at CDPs not specified.                         
 The same holds for the anisotropy coefficients as a function of time and  
 CDP.                                                     

 Moveout is defined by                                          

   1        anis1                                              
  --- x^2 + ------------- x^4.                                        
  v^2      1 + anis2 x^2                                        

 Note: In general, the user should set the cdp parameter.  The default is  
      to use tr.cdp from the first trace and assume only one cdp.         
 Caveat:                                                  
 Nmo cannot handle negative moveout as in triplication caused by      
 anisotropy. But negative moveout happens necessarily for negative anis1 at
 sufficiently large offsets. Then the error-negative moveout- is printed.  
 Check anis1. An error (anis2 too small) is also printed if the       
 denominator of the quartic term becomes negative. Check anis2. These errors
 are prompted even if they occur in traces which would not survive the      
 NMO-stretch threshold. Chop off enough far-offset traces (e.g. with suwind)
 if anis1, anis2 are fine for near-offset traces.                     

 NMO interpolation error is less than 1% for frequencies less than 60% of  
 the Nyquist frequency.                                   

 Exact inverse NMO is impossible, particularly for early times at large    
 offsets and for frequencies near Nyquist with large interpolation errors. 

 Credits:
      SEP: Shuki, Chuck Sword
      CWP: Shuki, Jack, Dave Hale, Bjoern Rommel
      Modified: 08/08/98 - Carlos E. Theodoro - option for lateral offset

 Technical Reference:
      The Common Depth Point Stack
      William A. Schneider
      Proc. IEEE, v. 72, n. 10, p. 1238-1254
      1984

 Trace header fields accessed: ns, dt, delrt, offset, cdp, sy