If E is less than 10~2, the step is successful and the stored values are updated for the 

 next step. Before v is stored, though, the iterative step of eq (88) is appHed one more time 

 to obtain a more precise value of v. This requires httle extra effort because the quantities 

 Gj and Dq"^ are already available. 



If the error E is less than 10"^, the next step size is doubled. 



It is possible for the extrapolation to be too successful. That is, if v is very near the 

 true root, Gg and Av will be very small. The numerical derivative may then be inaccurate. 

 Therefore, before the error term E is computed, a quantity 



F = |v/Av|2 



is computed. If F is greater than 10 , the extrapolated derivative is used rather than the 

 computed derivative and the program proceeds to the next step. If F is greater than 10^'+, 

 the step size is doubled before proceeding to the next step. 



The other principal part of the program is the initiaUzation which must evaluate v at 

 three values of x to obtain the numbers needed for the first extrapolation, eq (87). 



INPUT AND OUTPUT 



The first input card contains the maximum number of steps allowed, the limits 

 applied to E and F, and keys which control both the amount of detail in the printout and 

 whether the profile parameters are to be read in or retained from the previous run. Default 

 values are supphed when these items are left blank. Next the profile parameters are read in. 

 These are an older style and only permit specification of the absorption loss at the top of a 

 layer. The sound speed gradient is assumed to be real at the top of any layer. 



A final card indicates which variable — frequency, sound speed, depth, gradient, 

 absorption, or density - will be varied, by specifying a number called nx in the program, 

 from 1 to 6. The next number, ny, specifies which layer the variable will be in. This layer 

 number is not needed if frequency is selected. A third number, nz, indicates, if zero, that 

 the profile will remain continuous as the selected parameter is varied. If nz is not zero, the 

 selected parameter moves alone without a compensating motion in other profile parameters. 

 The card next gives the initial and final value of the parameter to be varied and the initial 

 step size. Finally, the particular mode to be followed is indicated by giving an approximate 

 phase velocity and an initial step size. These must be chosen such that the subsequent itera- 

 tion will converge on the correct mode. 



The principal output of this program is the print statement at line 314. Each line of 

 output contains the value of the parameter being varied, the complex phase velocity, the 

 determinant G, the derivative D~l , the error term E, the mode attenuation, the mode group 

 velocity (if frequency is the parameter being varied), and the step number. After the final 

 step, the profile in its final form is printed out. 



40 



