next up previous contents
Next: plotray.hlp Up: The BELLHOP ray/beam Previous: The BELLHOP ray/beam


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

      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.


        Name           Unit         Description
        *.ENV            1       ENVironmental data

        *.PRT            6       PRinT file
        *.RAY           21       RAY   file
        *.SHD           25       SHaDe 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)



 (1) - TITLE
       Syntax: TITLE

          TITLE: Title of run enclosed in sinqle quotes


       Syntax: FREQ

          FREQ: Frequency in Hz


       Syntax: NMEDIA (<20)

          Dummy parameter for compatibility with KRAKEN.

 (4) - OPTIONS

       Syntax: OPTION

          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 ...


          NMESH  SIGMA  Z(NSSP)
          Z(1)     CP(1) /
          Z(2)     CP(2) /
          Z(NSSP)  CP(NSSP) /


          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

          OPTION(1:1): Type of bottom boundary condition
                       'V' VACUUM below bottom
                       'R' Perfectly RIGID

          SIGMA:        Bottom roughness (currently ignored)


          NSD  SD(1:NSD)
          NRD  RD(1:NRD)
          NR    R(1:NR )

          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


          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


          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.


          STEP  ZBOX  RBOX

          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.

Michael B. Porter
Tue Oct 28 13:27:38 PST 1997