📄 rayinvr.doc
字号:
gradient is to remain fixed in all or part of a layer during the inversion, then the x-coordinates at which the upper and lower layer velocities are defined must be the same. Note that if the x-coordinates of the velocity values are not all the same as the location of the upper and lower layer boundary nodes, then it is possible for the velocity gradient to vary at these nodes since there are no velocities specified at these points and the upper and lower layer velocities are interpolated from values on either side, or at xmax if only one velocity point is used.Fixed layer thickness: if the thickness of a layer is to remain fixed in all or part of a layer during the inversion, then the x-coordinates at which the upper and lower layer boundaries are defined must be the same.Multiple ray paths to a single observation: if more than one pair of ray paths brackets the location of an observed travel time pick, then the pair of ray paths corresponding to the least interpolated travel time is used to calculate the travel time residual and the partial derivatives for the inversion.Inversion of zero-velocity-discontinuity boundary: it is not possible to invert for a layer boundary with an associated zero-velocity discontinuity if only refracted rays cross the boundary, i.e., rays must be reflected off the boundary (although the physical meaning of reflections from a zero-velocity discontinuity must be considered).Boundaries crossing after inversion: check that layer boundaries do not cross after inversion; if they do, re-do the inversion with increased damping or re-do the ray tracing with the appropriate boundary nodes held fixed or the thickness of the layer held fixed.Inversion of layer pinchouts: for a few special cases there are bugs in the inversion code when attempting to invert model parameters associated with a layer pinchout.S-waves and inversion: although rays corresponding to S-waves and conversions can be traced, they should not be traced if partial derivatives are being calculated for the purpose of inversion since the appropriate code to invert for S-wave velocity or Poisson's ratio has not yet been included.External plot routines: RAYINVR 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 RAYINVR are contained in the file rayinvr.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 - pprayreflecting 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 - pnsmthtrapezoids within which Poisson's ratio is modified - papoismodel parameters for which partial derivatives are calculated for inversion - pnvartravel time picks in the file tx.in - prayifloating reflectors - pfreflpoints defining a single floating reflector - ppfrefiterations in two-point ray tracing search - pn2pttravel times with the same integer code for a single shot - pnobsf Warning and Error MessagesThe following is a list and explanation of warning and error messages generated by RAYINVR:*** 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 flags indicating the parameters to be varied during the inversion) in the file r.in or v.in has been omitted (i.e., the file is incomplete) (5) the x-coordinates of the upper layer velocities do not equal the x-coordinates of the lower layer velocities in a layer in which the vertical velocity gradient is to remain fixed during the inversion (6) the x-coordinates of the upper layer boundary do not equal the x-coordinates of the lower layer boundary in a layer in which the thickness is to remain fixed during the inversion*** array size error for number of model points *** - the parameters specifying the maximum number of points defining a layer boundary (ppcntr) and/or the upper or lower layer velocity (ppvel) 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.*** reflect 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. Note that this warning is conservative so that no significant inaccuracies may have occurred.*** 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 - 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.*** block undetermined *** - this is the most serious error since it implies that RAYINVR 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 a deeper boundary is specified before a shallower boundary in the file r.in or v.in. Also check that a source is not located exactly on a layer or block boundary or the edge of the model.*** max number of rays reaching surface exceeded *** - the maximum allowable number of rays reaching the surface (not including those traced in the search mode) has been reached.*** no parameters varied for inversion *** - invr=1 but no model parameters have been selected for inversion in the file r.in or v.in.*** too many parameters varied for inversion *** - the maximum allowable number of model parameters selected for inversion has been exceeded.*** attempt to interpolate over ximax *** - invr=1 and the travel time and partial derivatives were to be interpolated to an observed receiver location using two rays that have end points greater than ximax from the receiver location; no interpolation is performed. This message is included in the file r1.out at the end of each ray group in which this occurs at least once. Other ProgramsVMODEL: a program to check, edit and plot the file v.in used as input by the program RAYINVR Program Description The program VMODEL performs three main tasks associated with the file v.in containing the velocity model used as input by the program RAYINVR. First, it checks the format of v.in to ensure it is as required by RAYINVR. If it detects format errors, it indicates the location and type of error. Similarly, it checks for unusually small or large velocity values, negative vertical velocity gradients, large vertical or lateral velocity gradients, low-velocity zones, crossing layer boundaries, and boundaries with large slope changes. Second, VMODEL can edit the file v.in by (1) re-ordering the boundary and/or velocity nodes from left to right, (2) re-sampling the boundary and/or velocity nodes to increase or decrease the number of model parameters, and (3) smoothing the boundaries and/or lateral velocity variations using a three-point averaging filter. Third, plot (1) the 2-D model versus depth or two-way travel time, (2) 1-D velocity profiles versus depth or time, or (3) the RMS velocity variation across the model. FilesInput file: vm.in contains program input parameters in the PLTPAR, AXEPAR and MODPAR namelistsInput file: v.in contains the velocity model used as input by RAYINVROutput file: v.out contains the velocity model after it has been edited or smoothed or nodes have been sorted from left to rightOutput file: vm.out contains warning and error messages regarding the format of the file v.in as well as summary information
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -