Automatic differentiation in Odyssee

Abstract
This paper describes the design of Odyssée, a system for fortran programs manipulations and its application to automatic differentiation. The Odyssée system manipulates fortran programs as symbolic objects. It is an open system built as a toolkit, written in a high-level programming language adapted to this purpose. The use of a variational method to perform data assimilation requires the computation of the gradient of a cost function represented by a large-size fortran program. The usual drawback in the reverse automatic differentiation method is the storage requirement. The Odyssée system allows one to implement storage/recomputation strategies in order to fit the needed compromizes. We present the implementation of the strategy used in the weather forecasting arpege/ifs project to produce the adjoint code from the code representing the numerical model. Odyssée produces the same code as the hand-written adjoint code for thearpege/ifs project. DOI: 10.1034/j.1600-0870.1993.00016.x