Introduction
PSyclone autodiff module is PSyclone’s prototype implementation of
source-to-source
automatic differentiation (AD).
It takes generic Fortran code and applies automatic differentiation in
forward-mode (tangent) or
reverse-mode (adjoint).
It is inspired by Tapenade (see Hascoet and Pascual[1] and [2]), which is also used to perform numerical tests of the transformations, and OpenAD (see Utke et al.[3]).
The general approach and transformations rules were adapted from Griewank and Walther[4].
This module was created as a M1 internship project in the AIRSEA team of Inria Grenoble.