TAMC: Tangent linear and Adjoint Model Compiler, by Ralf Giering