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.