📄 tramp.doc
字号:
supplied as an internal check to ensure that the correct rays specified in the array ray or the arrays amin and amax have been traced. This ray code is determined by the program as follows: the number to the left of the decimal refers to the deepest layer encountered by the ray; the number to the right of the decimal will be one, unless (1) the ray was reflected upward from a layer boundary, in which case it will be two, or (2) the ray traveled as a head wave, in which case it will be three (assuming the ray was not reflected upward from a layer boundary after traveling as a head wave).Shot point located at depth: in this case, the array ray should not contain ray codes corresponding to layers above the shot point.Ray step length: a very small value of step may not result in increased ray tracing accuracy due to round-off errorRay changes direction: a ray traveling left to right can reflect or refract and change direction and travel right to left, or vice versa.Terminating a ray: if istop=0, a ray will be traced until it encounters the top, bottom, left or right of the model, unless it is reflected off the top of the model using nrbnd and rbnd.Ray stopped warning: the warnings which begin ray stopped - are included in the file r1.out directly before the summary information for that ray is listed.Failure of ray search mode: it is possible that the iterative shooting/bisection algorithm used in the ray search mode may fail, or find a limited range of take-off angles that only sample a part of a layer, if either (1) the model has large lateral variations, (2) the range of take-off angles defining the desired ray group is very small, (3) the value of nsmax is too small or stol is too large, or (4) it is not possible to trace the desired type of rays through a particular part of the model (i.e., violates Snell's law). In any case, increase the value of nsmax first and then decrease the value of stol if necessary and this should work (unless the problem is case 4). If this fails, take-off angles can be supplied manually using ray=1.0 and the arrays amin and amax. Use irays=1 to see why the search mode is failing.Travel time- and amplitude-distance curves: join successive points of the same ray code in the same ray group. Prograde and retrograde branches will be separated if ibreak=1.Ray search mode and multiple reflections: for ray groups specified by L.2 in the array ray, the take-off angles determined in the search mode will correspond to rays which reflect off the Lth layer boundary only and may or may not give rise to the multiple reflections specified by nrbnd and rbnd .Integer code in the file tx.out: is used to identify each travel time to allow for the appropriate comparison with the rays traced during inversion. It will begin at one and be incremented one for each ray group if itxout=1. In addition, the integer will be incremented by one for a change from a prograde to retrograde branch or vice versa if ibreak=1. Laterally homogeneous layer: if a layer boundary is to be horizontal or the upper or lower velocity of a layer is to be constant, then only a single point is required in the velocity model and it should be specified at an x-coordinate equal to xmin. If two or more points are required, then the first and last point must be specified at xmin and xmax, respectively.Constant velocity layer: to specify a layer with constant velocity, assign a single upper layer velocity at xmin and assign a lower layer velocity of zero at xmin.Zero vertical velocity gradient layer: to specify a layer with zero vertical velocity gradient, assign one or more upper layer velocities as usual and assign a lower layer velocity of zero at xmin.Zero velocity discontinuity across layer boundary: to specify a layer boundary with no associated velocity discontinuity, assign an upper layer velocity of zero at xmin for the layer directly beneath the boundary.Head waves: if the velocity contrast across the head wave boundary away from the critical point is zero or negative, the angle of emergence from the boundary is 90 degree (grazing). Head wave amplitudes will be incorrect if any part of the ray path contains a reflection or conversion.In-plane spreading/cubic spline: a non-head wave ray group must consist of at least two rays to calculate the in-plane spreading. The slope of the cubic spline used to calculate the in-plane spreading may be sensitive to the number of rays traced for a particular ray group if the model has large lateral variations; therefore, the number of rays traced will determine the amount of lateral heterogeneity that is sampled.Q attenuation: is calculated at a single frequency, omega, and is applied equally at all frequencies, i. e., frequency-independent attenuation; therefore, there is no waveform distortion due to dispersion. This approximation is valid for narrow-band data or if the total attenuation along any given ray path is not too large. External plot routines: TRAMP is self-contained except for the graphics calls inside the following CALCOMP or CALCOMP-like plot routines: PLOTS, PLOT, NUMBER, SYMBOL, LINE, EMPTY, ERASE, PLOTND. The file pltlib.f contains ALL these routines (and a few other less important ones used by the graphics system where the code was developed) and it will be necessary to replace the "call" statements within each of these with their equivalents in the local graphics package. Array SizesThe parameters specifying the size of all arrays within TRAMP are contained in the file tramp.par and may be altered to suit a particular problem and memory requirements.model layers - playerpoints defining a single layer boundary (must be a multiple of 10) - ppcntrpoints at which the upper or lower layer velocity is defined (must be a multiple of 10) - ppveltrapezoids within a layer - ptrapshot points - pshotray codes for a single shot - prayfray groups for all shots combined - ptrayfrays in a single group - pnrayfrays reaching the surface (not including the search mode) - praypoints defining a single ray - pprayintersections with model boundaries for a single ray - pirayreflecting boundaries for a single ray - preflreflecting boundaries for all ray groups - prefltconverting boundaries for a single ray - pconvconverting boundaries for all ray groups - pconvtpoints defining smooth layer boundary or isovelocity contour - pnsmthtrapezoids within which Poisson's ratio is modified - papoisvelocity-depth profiles - pnvzarrivals in a single seismogram - parrivseismograms - pseis Warning and Error MessagesThe following is a list and explanation of all possible warning and error messages generated by TRAMP:*** error in velocity model *** - an error in the format of the velocity model in the file r.in or v.in has been detected. One of the following problems exists: (1) the x-coordinates of a boundary or upper or lower velocity have not been listed from left to right (2) the x-coordinate of the first or last point of a boundary or upper or lower velocity (comprised of two or more points) does not equal xmin or xmax, respectively (3) a model block has a P-wave velocity less than or equal to zero (4) a line specifying the model (x- or z-coordinates or upper or lower velocity) or a blank line in the file r.in or v.in has been omitted (i.e., the file is incomplete)*** array size error for number of model points *** - the size of the arrays specifying the maximum number of points defining a layer boundary and/or the upper or lower layer velocity is not a multiple of 10*** maximum number of blocks in layer _ exceeded *** - a layer in the velocity model will consist of more than the maximum number of trapezoids allowed for a single layer given the current form of the model. Reduce the number of points defining the upper and/or lower boundary or velocity for the particular layer.*** location of shot point outside model *** - a shot point is located outside the model.*** error in specification of amin or amax *** - values of amin or amax have not been specified or are greater than 180 in absolute value.*** max reflecting boundaries exceeded *** - the number of reflecting boundaries in nrbnd is greater than that allowed for one or more ray groups.*** max converting boundaries exceeded *** - the number of converting boundaries in ncbnd is greater than that allowed for one or more ray groups.*** reflecting boundary greater than # of layers *** - a boundary in rbnd is greater than or equal to the number of model layers.*** no ray codes specified *** - no ray codes have been specified in the array ray.*** shot# _ ray code _ no rays traced *** - the search mode was unable to find rays for the shot point and ray code specified.*** shot# _ ray code _ 1 ray traced *** - the search mode was unable to find the maximum take-off angle of a refracted ray group for the shot point and ray code specified; only a single ray with a take-off angle equal to the minimum value is traced.*** less than nray rays traced for _ ray groups *** - the search mode was unable to find rays (or traced less than nray rays) for the number of ray groups specified.*** possible inaccuracies in rngkta *** - the Runge Kutta routine has detected possible inaccuracies in its attempt to solve the ray tracing equations. The exact point(s) at which the problem occurred can be found in the file r2.out if idump=1 is used. The problem can be eliminated by either reducing the velocity gradient in the appropriate location of the model or reducing the value of step and/or smin.*** ray stopped - consists of too many points *** - a ray is composed of more than the maximum number of points (step lengths) allowed. Tracing of this ray is terminated.*** ray stopped - intersected too many boundaries *** - a ray intersected more than the maximum number of model boundaries allowed. Tracing of this ray is terminated.*** ray stopped - illegal reflection *** - a ray has reflected off a boundary not specified in ray or rbnd and istop=1. Tracing of this ray is terminated.*** ray stopped - converted ray cannot reflect/refract *** - a ray is at a point of conversion from S to P and is beyond the critical angle. Tracing of this ray is terminated.*** ray stopped - s-wave cannot propagate *** - a ray propagating as an S-wave has entered a model block in which the S-wave velocity is zero. Tracing of this ray is terminated.*** ray stopped - reflected from pinchout *** - the layer from which a ray is to be reflected has zero thickness. Tracing of this ray is terminated.*** ray refl. from zero vel. contrast boundary *** - the amplitude of a ray reflected from a zero velocity contrast boundary has been set to zero. If ampsmt>0, the amplitude of this ray may become greater than zero after smoothing.*** ray attenuated to zero amplitude *** - the amplitude of a ray is zero because of large Q attenuation. If ampsmt>0, the amplitude of this ray may become greater than zero after smoothing.*** block undetermined *** - this is the most serious error since it implies that TRAMP has lost track of what model block a ray is supposed to be in and therefore implies there is probably a bug in the code. The problem may be avoided if the ray step length is reduced. Also check that layer boundaries do not cross or that a deeper boundary is specified before a shallower boundary in the file r.in or v.in.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -