The imaginary part of f can be large if the eigenvalue has a large imaginary part or if 

 the speed of sound in the layer has a large imaginary part. When this happens the imaginary 

 part of 2/3 f-^' 2, which appears as an exponential in the modified Hankel functions, may 

 become large in absolute value even though Re f has been limited. A final check is therefore 

 made before the exponential is computed. If Im f3/2 jg greater than T-hm, f is reduced in 

 amplitude to the size at which it will equal T-hm. The angle of f in the complex plane is 

 preserved. 



This limitation of the exponential can be viewed in another way. In a following sec- 

 tion the two components of the modified Hankel functions, Fj and F2, eq (68) and (69), 

 have exponential terms whose arguments are equal and opposite in sign. When these argu- 

 ments have magnitude of 2/3 T-lim, they differ in size by 1 5 decimal places, which is near 

 the 1 8-decimal-place word size of the machine. The abihty to compute the difference in 

 these two terms is essentially the same as the abiUty to compute the depth function accurately. 



PREVENTING ZEROES IN THE DETERMINANT 



Placing limits on f can cause problems in the determinant because f may be set equal 

 to S-lim at several interfaces. The equations that arise for matching boundary conditions 

 may then be identical for these interfaces and may therefore fail to be linearly independent. 

 The triangularized determinant will thus have zeroes on the diagonal at positions equivalent 

 to interfaces that do not have real physical importance for the mode. These will prevent 

 location of the significant "zeroes" or roots. These artificial zeroes must be removed. 



The artificial zeroes are detected and removed in the subroutine DET, which evaluates 

 the determinant. If four elements from the matrix have the configuration 



and c is to be set to zero by row reduction, d will be replaced by a value, x, as follows: 



X = d - bc/a. 

 If d is located on the diagonal, complete loss of accuracy is checked for by computing 



s=|x2|/|d2|. 



If s is less than 1 , x is not used; instead, d is replaced by 1 0~ d. Note that this substi- 

 tution will occur when x is zero, thus preventing zeroes on the diagonal. The power of ten, 

 -17, is chosen to be near the total word size of 18 decimal places. 



The above substitution prevents sudden jumps in the value of the determinant when 

 all precision is lost at one step in the evaluation. This is important for the mode search rou- 

 tine which detects roots by looking for minima in a series of values of the determinant while 

 one parameter is incremented slowly. A sudden jump will often produce a relative minimum 

 which will be falsely interpreted as a root. At true roots, one or more elements along the 

 diagonal are small, but not as small as those checked for here. 



19 



