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
[1]
Walter Baur,et al.
The Complexity of Partial Derivatives
,
1983,
Theor. Comput. Sci..
[2]
J. Morgenstern,et al.
How to compute fast a function and all its derivatives: a variation on the theorem of Baur-strassen
,
1985,
SIGA.
[3]
Pierre Weis,et al.
The CAML reference manual
,
1990
.
[4]
Andreas Griewank,et al.
ADIFOR: Automatic differentiation in a source translator environment
,
1992,
ISSAC '92.
[5]
G. Charles.
Automatic differentiation and iterative processes
,
1992
.
[6]
Andreas Griewank,et al.
Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation
,
1992
.