EyNuel edited this page Jan 31, 2013 · 33 revisions

Welcome to the cTraceo wiki pages.

The cTraceo Acoustic Raytracing Model is a propagation model for use in underwater acoustics and was developed at the SiPLAB of the University of the Algarve. Technically, cTraceo is a Gaussian beam tracing model for 2D waveguides written in C, and was based on the TRACEO model written in Fortran 77.
The cTraceo model is a completely re-engineered version of it's Fortran predecessor and features 3-4x higher performance as well as reduced memory usage of up to 3 orders of magnitude. It also provides windows support as well as improved usability.
See the features section below and take a look at our Getting Started guide before proceeding to the downloads section. You may also want to take a look at the Troubleshooting page or at the notes on available cTraceo branches (versions).

Should you have any questions, suggestions or feedback, don't hesitate in contacting us.


cTraceo features include:

  • Support for range dependent altimetry and bathymetry interfaces, including range dependent elastic properties;
  • Reflections on elastic media interfaces take into account their densities as well as compressional and shear wave speeds and attenuations;
  • Range-independent sound speed profiles, and range-dependent sound speed fields;
  • Support for user-defined smooth objects within the waveguide (like rocks, marine mammals or submarines);
  • Full support for backscattering (from altimetry, bathymetry and objects);
  • Allows free positioning of acoustic source and receivers (altimetry, bathymetry, objects and receivers may also be positioned on either side of the source for modeling complex waveguides);
  • Support for horizontal, vertical, rectangular and arbitrarily shaped receiver arrays (allows modeling unusual array shapes, multiple arrays, or array distortions);
  • A list of feature requests is maintained here.

Output Options

Outputs generated by cTraceo are written to Matlab .mat files (see note below).

  • Ray trajectories and amplitudes;
  • Eigenray searches with user-definable proximity threshold;
  • Arrival patterns;
  • Acoustic pressure;
  • Coherent transmission loss;
  • Particle velocity components (for modeling vector sensors).

NOTE: It is not necessary to have Matlab(R) installed for compilation or usage as cTraceo does not rely on Matlab libraries to write these files. Instead we developed a drop-in replacement for the Matlab C API for writing .mat files to handle this.


A list of publications related to cTraceo can be found here.


Contributions to the development of cTraceo are welcome. The easiest way to help out is trying out our model and providing feedback by contacting us or filing a bug report or feature request.
Code contributions to the model's C code or writing more example cases would also be very welcome.


Contact information