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.