updated 18 May 2023

The Acoustics Toolbox is distributed under the GNU Public License.


at source code (zip file) for Mac, Linux, or Windows. Binaries are *NOT* provided. (2023_5_18)
at Binaries (zip file) for Windows 10. This version is older than the one above. (The source code is also included so that you can access the compatible Matlab routines that read/write model input/output.) (2020_11_4)

The Fortran2008 source code should be fully portable. The Windows10 binaries were compiled for a plain vanilla Intel architecture. Therefore they will likely be slower that one that you compile yourself for the native architecture.

Compiling the package

The Fortran95 standard does not clarify whether record lengths are in bytes or words. For some compilers, e.g. the Intel Fortran you need to use a compiler switch making bytes the standard unit for record lengths. We use the free gfortran compiler.

The compilation is done using standard Makefiles that work under Unix, OS X, etc. We also use them under Windows with either the Cygwin system or MinGW, which provide a Unix-like environment under Windows. Cygwin and Mingw are also freely distributed.

    make clean # to remove old objects and executables

    make # to compile (can also say 'make all' )

    !!!! make install # to move the binaries to at/bin (currently not implemented)

Running the package

We currently run the Acoustics Toolbox through Matlab using shell-escape commands to execute the binaries and a variety of Matlab scripts and functions (in at/matlab) to manipulate and display the output. If you don't have Matlab then you'll have to figure out your own graphics. In that case, the Matlab plot routines at least provide a good example of how to read the file formats.

The only challenge in this phase is to get the paths set up properly. When you call the Acoustics Toolbox through Matlab, you're using Matlab scripts. Those Matlab scripts use the Matlab 'which' command to find the location of the binaries within the Matlab search path. Therefore, Matlab has to have its path set to include the Acoustics Toolbox.

Here's an example of running kraken at the regular command line (rather than from inside Matlab):

cd at/tests/Munk
kraken.exe MunkK

The 'cd' command above is hypothetical. You should cd to the directory where you've created the Acoustics Toolbox. If you get an error, the likely problem is that the path is not set properly. The following commands may be useful in tracking that down.

which kraken.exe

If instead, you run the package through Matlb, start Matlab and make sure you have 'at' in your path. Check that by typing to following on the Matlab command line:
cd at/tests/Munk
kraken MunkK

If the above runs without error, then go to at/tests and type 'runtests' to execute a huge battery of test cases. If the above generates an error then it could be you don't have at/Matlab in your Matlab path.

The test battery that you run by typing 'runtests' may fail somewhere unless you have a  beefy computer--- it generates a very large number of figures and consumes a lot of memory in the process. However, it's easy enough to restart the test battery at exactly the point where it overwhelms your system.

MATLAB version of the Acoustics Toolbox

Note that at/Matlab includes versions of BELLHOP, KRAKEL, SCOOTER, and SPARC in Matlab (Kraken to come soon). The Matlab versions are typically much slower; however, they're much easier to use and modify. The Matlab version of SCOOTER has an optional Mex file (thanks to Paul Hursky) for the inner loop which is a tridiagonal solver. If you compile the Mex file, the Matlab SCOOTER runs about as fast as the Fortran one. The Matlab versions are not maintained as carefully as the Fortran versions and may not have the latest updates.

J. P. Ianniello also wrote a Matlab version of Kraken, called Krak_mat. See the link on oalib on the 'Modes' page. It implements the Kraken algorithm but is not set up to use the same input and output files.

There are demo versions of various acoustic models available. See the link for 'Demo' on oalib on the 'Other' page. These are 'toy' codes that illustrate the methods, but are not really suitable for realistic problems.

The Acoustics Toolbox now includes a simple PE model in Matlab called (what else?) Simple.

GUI Wrappers:

ACT: Matlab front-end providing a Graphical User Interface for the Acoustic Toolbox written by Alec Duncan from the Centre for Marine Science and Technology at Curtin University.

Python Tools:

AcousticPy: Runs the test cases for the Acoustic Toolbox and provides components to read and plot various files--- written by Orlando Rodríguez from the University of Algarve.

arlpy, a Python interface to BELLHOP. Some of these tools may be useful for KRAKEN as well (September 2018)

C++ and CUDA

bellhopcxx/bellhopcuda Port of BELLHOP to multithreaded C++ and CUDA with compatible interface (based on BELLHOP release 2022_4 with bug fixes and some algorithmic changes). The speed up is roughly proportional to the number of processors. Contributed by the Jaffe Lab for Underwater Imaging, Scripps Institution of Oceanography, University of California, San Diego.