TaylUR, an arbitrary-order diagonal automatic differentiation package   for Fortran 95
  We present TaylUR, a Fortran 95 module to automatically compute the numerical values of a complex-valued function's derivatives w.r.t. several variables up to an arbitrary order in each variable, but excluding mixed derivatives. Arithmetic operators and Fortran intrinsics are overloaded to act correctly on objects of defined type "taylor", which encodes a function along with its first few derivatives w.r.t. the user-defined independent variables. Derivatives of products and composite functions are computed using Leibniz's rule and Faa di Bruno's formula. TaylUR makes heavy use of operator overloading and other object-oriented Fortran 95 features. 
G.M. von Hippel