User login


You are here

DNAD, a simple tool for automatic differentiation

Wenbin Yu's picture


I am writing to introduce DNAD, a Fortran module I wrote for automatic differentiation of analysis codes written in Fortran including those legacy codes written in Fortran 77. Although only implementation using Fortran 90/95 was carried out, it is straightward to translate it to a language you like such as c/c++.

Currently, DNAD is a Fortran 90/95 module developed using the arithmetic of dual numbers and the operator overloading feature of Fortran 90/95. Very minimum changes of  the source codes are needed to enable sensitivity calculation of existing Fortran programs. Code differentiated using DNAD can exactly compute derivatives of the outputs with respect to design variables. DNAD has been shown to be a better alterative than using finite difference or complex-step approximation for computing derivatives (sensitivities). It has been used to automatically differentiate VABS and GEBT.  It is an ideal way to compute sensitivities for a code you don’t know much about it. The source codes are available to anybody if you are interested. More details can be found from



Subscribe to Comments for "DNAD, a simple tool for automatic differentiation"

Recent comments

More comments


Subscribe to Syndicate