Internal Wave Simulator Engines

The IW simulator package is a collection of C++ classes that provide functions and features necessary for simulating internal waves in the deep ocean.

Currently, the only fully-supported engine in the package provides Garrett-Munk style internal waves following the prescription of Henyey and Reynolds ( A Numerical Simulator of Ocean Internal Waves for Long-Range Acoustics , FS Henyey and SA Reynolds, APL Technical Memorandum TM 1-13.) Features of this functionality:

* "slice" solutions in (x,z) at arbitrary evolution time;
* Everything implemented as library routines;
* All parameters exposed (i.e., none hardcoded);
* LAPACK for eigenvalue computations;
* netCDF for input Brunt-Vaisala profile format;
* FFTW for inverse Fourier transforms;
* Numerical Recipes gasdev (Box-Muller) routine for Gaussian variates, modified for 32 or 64 bit machines;
* A mechanism for caching eigenmodes and eigenvalues, thus avoiding lengthy recalculation for problems with identical ocean parameters. Solutions are cached in open-source netCDF files.

Some documentation for the more significant classes is provided by XML webpages. This can either be built from scratch if you have OMhelp, or extracted from a compressed archive file. The source was developed under G++ 4.7.1 on various Linux machines and uses the STL. The code can be obtained by email from Rex Andrew, randrew at apl dot washington dot edu .