TAMC Overview

CONDITIONS OF USAGE:

The generated code is for non-profit-orientated academic research and education only. Any commercial or other profit-orientated use or evaluation is strictly forbidden. Passing the code to any third party is not allowed.

For commercial or other profit-orientated applications please contact info@fastopt.com .

By using TAMC you are accepting the conditions above. Any usage is logged.

AVAILABILITY:

TAMC can be used remotely via Email.

SYNOPSIS:

TAMC is a source-to-source translator that generates Fortran routines for computation of the first-order derivatives out of Fortran routines.

FUNCTIONALITY:

TAMC provides automatic differentiation in forward and reverse mode for programs written in Fortran. Given a Fortran routine (or collection of routines) for a function, TAMC produces Fortran routines for the computation of the derivatives of this function. The derivatives are computed in the reverse mode (adjoint model) or in the forward mode (tangent-linear model). In both modes Jacobian-Matrix products can be computed.

HIGHLIGHTS:

Fortran 77 Support:
TAMC supports almost the full FORTRAN-77 standard.
Fortran 90 Support:
Most Fortran-90 extensions to FORTRAN-77 are supported. Array assignments and WHERE statements are supported. Modules and use-statements are supported. All intrinsic functions are handled (some restrictions apply).
Analysises:
TAMC normalizes the code and applies a control flow analysis. TAMC applies an intraprocedural data dependence and an interprocedural data flow analysis. Given the independent and dependent variables of the specified top-level routine, TAMC determines all active routines and variables and produces derivative code only for those.
Directives
TAMC accepts several directives. Using the reverse mode storing of variables instead of recomputation is controlled by directives.
Multi level checkpointing can be implemented by splitting a loop and inserting directives.
Black box (library) routines are handled using flow information given by directives.

Last changes August 18th 1999.