BELLHOP computes acoustic fields in oceanic environments via beam tracing. The environment treated consists of an acoustic medium with a sound speed that may depend on range and depth. A theoretical description may be found in:
Michael B. Porter and Homer P. Bucker, ``Gaussian beam tracing for computing ocean acoustic fields,'' J. Acoust. Soc. Amer. 82, 1349--1359 (1987).
The following programs are used with BELLHOP :
BELLHOP Main program for doing Gaussian beam tracing
PLOTRAY Produces plots of central rays of beams
ANGLES Given the source and recvr sound speeds, computes the angle of the limiting ray.
PLOTSSP Plots the sound speed profile
BELLHOP produces pressure fields in the NRL standard format. These fields can then be plotted using the following routines:
PLOTSLICE Plots a transmission loss versus range curve.
PLOTFIELD Plots a full TL field versus range and depth.
The steps in running the program are as follows: 1. Set up your environmental file and run PLOTSSP to make sure the SSP looks reasonable. 2. Do a ray trace. That is, A. Run BELLHOP with the ray trace option to calculate about 50 rays. B. Run PLOTRAY to make sure you have the angular coverage you expect. Do the rays behave irregularly? If so reduce the step-size and try again. 3. Re-run BELLHOP using the coherent, incoherent or semicoherent option for transmission loss. (Use the default number of beams.) 4. Run either PLOTSLICE to plot a single transmission loss curve or PLOTFIELD to plot a full range-depth field plot. 5. Double the number of beams and check convergence. Files: Name Unit Description Input *.ENV 1 ENVironmental data Output *.PRT 6 PRinT file *.RAY 21 RAY file *.SHD 25 SHaDe file --------------------------------------------------------- EXAMPLE AND DESCRIPTION OF ENV FILE: 'Munk profile' ! TITLE 50.0 ! FREQ (Hz) 1 ! NMEDIA 'SVN' ! SSPOPT (Analytic or C-linear interpolation) 51 0.0 5000.0 ! DEPTH of bottom (m) 0.0 1548.52 / 200.0 1530.29 / 250.0 1526.69 / 400.0 1517.78 / 600.0 1509.49 / 800.0 1504.30 / 1000.0 1501.38 / 1200.0 1500.14 / 1400.0 1500.12 / 1600.0 1501.02 / 1800.0 1502.57 / 2000.0 1504.62 / 2200.0 1507.02 / 2400.0 1509.69 / 2600.0 1512.55 / 2800.0 1515.56 / 3000.0 1518.67 / 3200.0 1521.85 / 3400.0 1525.10 / 3600.0 1528.38 / 3800.0 1531.70 / 4000.0 1535.04 / 4200.0 1538.39 / 4400.0 1541.76 / 4600.0 1545.14 / 4800.0 1548.52 / 5000.0 1551.91 / 'V' 0.0 1 1000.0 / ! NSD SD(1:NSD) (m) 2 0.0 5000.0 / ! NRD RD(1:NRD) (m) 501 0.0 100.0 / ! NRR RR(1:NR ) (km) 'R' ! Run-type: 'R/C/I/S' 51 -11.0 11.0 / ! NBEAMS ALPHA(1:NBEAMS) (degrees) 200.0 5500.0 101.0 ! STEP (m) ZBOX (m) RBOX (km) --------------------------------------------------------- DESCRIPTION OF INPUTS: (1) - TITLE Syntax: TITLE Description: TITLE: Title of run enclosed in sinqle quotes (2) - FREQUENCY Syntax: FREQ Description: FREQ: Frequency in Hz (3) - NUMBER OF MEDIA Syntax: NMEDIA (<20) Description: Dummy parameter for compatibility with KRAKEN. (4) - OPTIONS Syntax: OPTION Description: OPTION(1:1): Type of interpolation to be used for the SSP 'S' for cubic Spline (recommended) 'C' for C-linear 'N' for N2-linear 'A' for Analytic. The user must modify the analytic formulas in ANALYT.FOR and re-link. Use PLOTSSP to check that the SSP looks the way you thought it should. Apart from potential typos, this will also show up fit-problems which might occur with the spline option. Splines yield a poor fit to certain kinds of curves, e.g. curves with sharp bends. OPTION(2:2): Type of top boundary condition 'V' VACUUM above top 'R' Perfectly RIGID For open ocean problems option 'V' should be used for the surface BC. OPTION(3:3): Volume attenuation option 'T' Thorp attenuation formula. 'N' No volume attenuation. OPTION(4:4): Arrival time/amplitude information 'A' to produce it ... (5) - SOUND SPEED PROFILE Syntax: NMESH SIGMA Z(NSSP) Z(1) CP(1) / Z(2) CP(2) / . . . Z(NSSP) CP(NSSP) / Description: NMESH: Dummy parameter for KRAKEN compatibility SIGMA: Dummy parameter for KRAKEN compatibility Z(NSSP): Depth at bottom of medium (m). This value is used to detect the last SSP point when reading in the profile which follows. The following should be omitted when the 'A' option is used (indicating that an analytic profile is supplied by a user written subroutine). Z(): Depth (m). Note that the surface starts at the first depth point specified. Thus if you have say, XBT data which starts at 50 m below the surface, then you'll need to put in some SSP point at 0 m, otherwise the free-surface would be placed at 50 m giving erroneous results. Try to keep the number of depth points to the minimum necessary to describe the physics: a fine SSP sampling can force a fine step-size for integrating the rays. CP(): P-wave speed (m/s) (Must be followed by a '/' for compatibility with the KRAKEN program.) (6) - OPTIONS Syntax: OPTION SIGMA Description: OPTION(1:1): Type of bottom boundary condition 'V' VACUUM below bottom 'R' Perfectly RIGID SIGMA: Bottom roughness (currently ignored) (7) - SOURCE/RECEIVER DEPTHS AND RANGES Syntax: NSD SD(1:NSD) NRD RD(1:NRD) NR R(1:NR ) Description: NSD: The number of source depths (<51) SD(): The source depths (m) NRD: The number of receiver depths (<101 and NR*NRD <= 52000) RD(): The receiver depths (m) NR: The number of receiver ranges (NR < 1001 and NR*NRD <= 50000) R(): The receiver ranges (km) This data is read in using list-directed I/O you can type it just about any way you want, e.g. on one line or split onto several lines. Also if the depths or ranges are equally spaced then you can type just the first and last depths followed by a '/' and the intermediate depths will be generated automatically. (8) - RUN TYPE Syntax: OPTION Description: OPTION: 'R' generates a ray file 'E' generates an eigenray file 'C' for Coherent TL calculation 'I' for Incoherent TL calculation 'S' for Semicoherent TL calculation (Lloyd mirror source pattern) (9) - BEAM FAN Syntax: NBEAMS ALPHA(1:NBEAMS) Description: NBEAMS: Number of beams (use 0 to have the program calculate a value automatically. ALPHA(): Beam angles (negative angles toward surface) For a ray trace you can type in a sequence of angles or you can type the first and last angles followed by a '/'. For a TL calculation, the rays must be equally spaced otherwise the results will be incorrect. (10) - NUMERICAL INTEGRATOR INFO Syntax: STEP ZBOX RBOX Description: STEP: The step size used for tracing the rays (m). ZBOX: The maximum depth to trace a ray (m). RBOX: The maximum range to trace a ray (km). The required step size depends on many factors. This includes frequency, size of features in the SSP (such as surface ducts), range of rcvrs, and whether a coherent or incoherent TL calculation is performed. If you use STEP=0.0 BELLHOP will use a default step-size and tell you what it picked. You should then halve the step size until the results are convergent to your required accuracy. To obtain a smooth ray trace you should use the spline SSP interpolation and a step-size less than the smallest distance between SSP data points. Rays are traced until they exit the box ( ZBOX, RBOX ). By setting ZBOX less than the water depth you can eliminate bottom reflections.