Home Contact Us Site Map  
 
       
    next up previous contents
Next: 5.1 Some basic algebra Up: manual Previous: 4.4.3 Estimating Resource Requirements   Contents

5. Automatic Differentiation

Automatic differentiation (AD), also referred to as algorithmic (or, more loosely, computational) differentiation, involves automatically deriving code to calculate partial derivatives from an existing fully non-linear prognostic code. (see [23]). A software tool is used that parses and transforms source files according to a set of linguistic and mathematical rules. AD tools are like source-to-source translators in that they parse a program code as input and produce a new program code as output. However, unlike a pure source-to-source translation, the output program represents a new algorithm, such as the evaluation of the Jacobian, the Hessian, or higher derivative operators. In principle, a variety of derived algorithms can be generated automatically in this way.

The MITGCM has been adapted for use with the Tangent linear and Adjoint Model Compiler (TAMC) and its successor TAF (Transformation of Algorithms in Fortran), developed by Ralf Giering ([20], [18,19]). The first application of the adjoint of the MITGCM for sensitivity studies has been published by [37]. [48,47] use the MITGCM and its adjoint for ocean state estimation studies. In the following we shall refer to TAMC and TAF synonymously, except were explicitly stated otherwise.

TAMC exploits the chain rule for computing the first derivative of a function with respect to a set of input variables. Treating a given forward code as a composition of operations - each line representing a compositional element, the chain rule is rigorously applied to the code, line by line. The resulting tangent linear or adjoint code, then, may be thought of as the composition in forward or reverse order, respectively, of the Jacobian matrices of the forward code's compositional elements.



Subsections
next up previous contents
Next: 5.1 Some basic algebra Up: manual Previous: 4.4.3 Estimating Resource Requirements   Contents
mitgcm-support@dev.mitgcm.org
Copyright 2002 Massachusetts Institute of Technology