In transmission traveltime tomography, we usually need to link every source with the corresponding receiver positions. The way how I do this with the initial value ray tracing just described is as follows:

- (a) An sparse fan of rays is traced
from the given source position. The aperture of this fan is greater
than the aperture of the receiver positions. The end points of these
rays (
*z*_{end}) and the shooting angles () are saved. - (b) The angle that corresponds to a given
receiver location is obtained (by using splines interpolation)
from the relation vs.
*z*_{end}. This relation is a function almost everywhere. In some places it can be be multivalued because the same receiver location can correspond to different shooting angles (all of them greater than the critical angle). The points were the function is multivalued must be removed before the interpolation. Because of the way the medium is described, vs.*z*_{end}always increases or always decreases (except where multivalued). - (c) A ray is traced along the newly found and the
*z*_{end}that results is compared to the expected receiver position. If the difference is greater than a predetermined value, the function vs.*z*_{end}is updated with the latest values of and*z*_{end}and the procedure goes again to step (b). If the difference is smaller than a predetermined value, the ray has been captured.

11/18/1997