The Acoustics Toolbox
The Acoustics Toolbox is a collection of acoustic models and
related software for studying sound propagation in an ocean
waveguide. Actually, the models have been structured to be
suitable for general wave propagation problems; however, the ocean
application is our main focus.
The acoustic models in the
package are:
- KRAKEN normal mode approach
- SCOOTER spectral integral (also know
as wavenumber integration or the reflectivity method
- BOUNCE calculation of a
reflection coefficient for a stack of layers
- BELLHOP Gaussian beam tracing and
ray tracing code
- SPARC A spectral integral
code that operates directly in the time domain.
There are generally no limits on
the dimensions that can be handled (up to virtual memory). The
code uses dynamic allocation for virtually all arrays. There are a
few exceptions. You will generally get a flag if for some reason
any dynamic memory allocation fails or if you have exceeded an
intrinsic limit in the code.
The documentation uses a common
Fortran or Matlab syntax where a ( 1 : 5 ) represents a vector (
1, 2, 3, 4, 5 ). The convention on model input is that such
vectors are defined by first reading a line with the number of
elements in the vector. Then the vector itself is read in.
However, in reading the vector one can optionally provide just the
first and last elements followed by a '/'. Thus, after specifying
5 elements, the vector (1:5) can be read is as '1 5 /'
For option letters in the various
models, you will often see that there is a default. For instance,
BELLHOP defaults to a point source in cylindrical coordinates, but
you can explicitly select a point source ('R') or a line source
('X'). If you just want to go with the default, then simply put in
a blank space for that position.
The following modules are part of
the package.
Group I: Mode Computations:
- KRAKEN Solves for
the modes and writes them to disk. Elastic media are allowed but
material attenuation in an elastic medium is ignored.
- KRAKENC A version of KRAKEN which finds the
eigenvalues in the complex plane. KRAKEN uses perturbation
theory to obtain imaginary parts of the eigenvalues while
KRAKENC computes the complex eigenvalues exactly. KRAKENC
runs about 3 times slower but is necessary for leaky mode
computations or for including material attenuation in elastic
media. Internally KRAKENC replaces elastic layers by an
equivalent reflection coefficent. For this reason, you cannot
use KRAKENC to look at fields within the elastic layers.
- KRAKEL Analogous to KRAKENC but also
computes elastic displacements and stresses for elastic media.
KRAKEL is seldom used and tends to not be kept up-to-date.
Group II: Basic Plotting Routines:
- PLOTSSP Plots the sound speed profile.
- PLOTMODE Plots selected modes.
- PLOTGRN Plots the Green's funtion for the
depth separated wave equation for a particular source/receiver
combination.
- PLOTTRI Plots the triangular elements used
for 3-D field calculations.
Group III: Field Computations:
- FIELD
Computes fields on a vertical array over a specified range and
for a series of source depths. Individual phones in the array
may be displaced from the vertical. Range dependence is handled
by either adiabatic or one-way coupled mode theory.
- FIELD3D Computes
field for a three-dimensionally varying SSP using adiabatic mode
theory.
Group IV: Plotting Routines that use Group III Program Output:
- PLOTSHD Plots tranmission
loss in plan or elevation, i.e. an (x,y) plot or an (r,z) plot.
- PLOTRAYXY Plots the ray paths of the
Gaussian beams generated during 3D field calculations.
The various programs for
computing fields (GROUP III) are only needed for PLOTSHD, or for
special user programs (e.g. ambiguity surfaces).
The following extensions are used
with these programs:
- .F90 The
Fortran90/95 source code
- .HLP A HeLP
file documenting the module
- .BAT A BATch
file which runs the module
All user input in all modules is
read using list-directed I/O. Thus data can be typed in
free-format using space, tabs, commas or slashes as delimeters.
Character input should be enclosed in single quotes like this:
'CHARACTER INPUT'. You will see the '/' character in a number of
the input files. This terminates an input line causing the program
to use default values.
Directory Structure
- AT: This is the Acoustics
Toolbox directory which contains command files for running
KRAKEN and other models in the toolbox.
- Bellhop: Bellhop and Bellhop3D beam tracing models
- doc: html files with brief notes about
how to run the models
- Krakel: A version of KRAKEN that provides the
displacement field in elastic media. It does not presently
include attenuation and is of limited practical use.
- Kraken: Kraken and Krakenc normal mode codes
- KrakenField: Routines that sum the Kraken normal modes to
produce acoustic fields. Includes options for range-independent,
range-dependent, and 3D fields.
- Matlab: Includes routines for plotting the results of
all the models, as well as Matlab equivalents of some of the
Fortran models.
- misc: Miscellaneous subroutines
(root-finders, linear equation solvers, etc.) used by the
various models.
- Scooter: Includes the Scooter wavenumber integration model and
the Sparc time-domain version.
- tests: A huge battery of test cases used to
exercise and demonstrate the various model capabilities.
- tslib: Miscellaneous subroutines specifically
related to timeseries manipulations.