ADIFOR: Automatic Differentiation of Fortran 77

ADIFOR: Automatic Differentiation of Fortran 77

ADIFOR (AD) is a tool for the automatic differentiation of Fortran 77 programs. Given a Fortran 77 source code and a user's specification of dependent and independent variables, ADIFOR will generate an augmented derivative code that computes the partial derivatives of all of the specified dependent variables with respect to all of the specified independent variables, in addition to the original result.

AD is applicable to a wide variety of scientific and engineering areas including weather prediction, aerospace vehicle optimization, earthquake ground modeling, nonlinear structural analysis, chemical reactor modeling, medical drug modeling, waste site and ground water flow characterization, hydrodynamic modeling, the differentiation of ANSI-C, the computation of higher-order derivatives, and the computation of "adjoints."

Argonne and Rice University collaborated to develop ADIFOR.

Applications

  • Suitable for use with application codes from various domains of science and engineering

Features

  • Full Fortran 77 Support
  • Flexible Intrinsic Handler
  • Transparent Sparsity Support

Technical Details/Requirements

  • Runs on Sun (SunOS-5.x, SunOS-4.x), SGI (IRIX), HP (Hpux), IBM (AIX) and Intel x86 (Windows 95/NT and Linux86) platforms

Licensing Information

ADIFOR is not in the public domain. Users wishing to use ADIFOR for educational and non-profit research or for the purpose of commercial evaluation can obtain ADIFOR at no cost by doing the following:

  • Fill out and electronically submit a copy of the ADIFOR Request Form.
  • Print a copy of the ADIFOR Public License.
  • Read and sign the license. Students should have their advisor sign the license.
  • Fax the signed license to Argonne at (630) 252-5986.

Anyone desiring permission to incorporate this software or a work based on the software into commercial products or otherwise use it for commercial purposes should e-mail Paul Hovland at Argonne or call (630) 252-5986.