Automatic differentiation in Odyssée

This paper describes the design of  Odyssee , a system for fortran programs manipulations and its application to automatic differentiation. The  Odyssee 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  Odyssee 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.  Odyssee produces the same code as the hand-written adjoint code for thearpege/ifs project. DOI: 10.1034/j.1600-0870.1993.00016.x