updated 26 December 2007

Download


atWin           with pre-compiled Windows Pentium II binaries.

atOSXintel   with pre-compiled Mac OS X binaries for the Intel processor (10.5 Leopard; seem not to work under 10.4)

atLinuxIntel with pre-compiled Linux binaries for the Intel processor

These distributions are virtually identical with the exception of the pre-compiled binaries in at/bin. Thus if you have any other platform and a Fortran 95 compiler you can pick either of these as your base.
The atOSX binaries were compiled on a MacBook Pro using the Intel compiler. They can be recompiled with g95 or gfortran compilers by a single change to at/Makefile to select the appropriate compiler.

Comments on the compilers

The Intel compiler produced the fastest executables (approximately 2x the speed of the others). I discover that the Fortran95 standard does not clarify whether record lengths are in bytes or words. The only change required for the Intel compiler was to add a compiler switch making bytes the standard unit for record lengths.

The g95 compiler is available free on the web and has functioned well for us on various platform.

The gfortran compiler is also available free on the web and, on limited testing, seemed to produce faster executables. The entire package again compiled with no changes except the root finder zseccx encountered an unusual overflow condition on one test case. This was fixed with some clumsy code and the current version now works with all 3 compilers mentioned here.


Compiling the package

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

    UPDATE (!) the path in at/Makefile to correspond to the directory where you're doing the installation.

    make clean # to remove old objects and executables
    make all # to compile everything

    make install # to move the binaries to at/bin

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 which in turn escape to the shell to execute the binaries. Therefore, Matlab has to have it's path set to include the Acoustics Toolbox. Further, when Matlab does a shell escape, the shell has to include the binaries in its path. We suggest the following steps:

1) make sure you can run the codes first from a regular command line. Once you have those paths set up correctly, you should be able to change to the tests directory and run one of the models on a test case. For example:
cd at/tests/Munk
kraken.exe < MunkK.env
should work. The 'cd' command above is hypothetical. You should cd to the directory where you've created the Acoustics Toolbox.

2) 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.env

Again the 'cd' is hypothetical. I just mean for you to cd to the tests/Munk directory.

3) 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. Alternatively it could be that when Matlab does the shell escape, it doesn't have the path set to include the binaries. Check the latter by typing
! printenv
! which kraken.exe
! kraken.exe < MunkK.env

The '! printenv' command will show you the path that is set when you do a shell escape. The '! which' command will show you where the shell thinks the binary is. The '! kraken.exe' command will then run the kraken binary. If kraken.exe did not run, it's because if didn't know where the binary is. In that case, the 'which' will confirm that the shell has no idea where the binary is. In that case, the printenv command will show you that you don't have the path set to include the binary. At that point, you have some work to do. I can't tell you how to set your path because it's done in many, many ways depending on your operating environment. Consult your system administrator and give him some chocalates. Maybe start first with the chocalates.

Incidentally, the test battery that you run by typing 'runtests' will probably fail somewhere unless you have a particularly 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 version of BELLHOP, SCOOTER, and SPARC in Matlab (Kraken to come soon). The Matlab versions are typically several times 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.

GUI Wrapper:

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.