Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] adls_v1_0.gz(8 Kbytes)
Manuscript Title: AUTO_DERIV: tool for automatic differentiation of a Fortran code.
Authors: S. Stamatiadis, R. Prosmiti, S.C. Farantos
Program title: AUTO_DERIV
Catalogue identifier: ADLS_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 127(2000)343
Programming language: Fortran.
Computer: Intel Pentium II PC, IBM RS/6000, HP Exemplar.
Operating system: GNU/Linux, AIX 4.3, HP-UX B.10.01.
RAM: 680K words
Word size: 32
Keywords: General purpose, Differential equations, Molecular physics, Vibration, Automatic, Differentiation, Derivatives, Fortran 90, Potential energy, Surfaces, Molecular dynamics, Non linear mechanics.
Classification: 4.3, 16.3.

Nature of problem:
Complicated analytical functions of many independent variables often appear in molecular simulations. Particularly, in Molecular Dynamics the first and occasionally the second partial derivatives of the potential function are required which AUTO_DERIV evaluates to machine precision.

Solution method:
The mathematical rules for differentiation of sums, products, quotients, elementary functions in conjunction with the chain rule for compound functions are applied. The function should be expressed as one or more Fortran 90 or Fortran 77 procedures. A new type of variables is defined and the overloading mechanism of functions and operators provided by the Fortran 90 language is extensively used to implement the differentiation rules.

None imposed by the program. There are certain limitations that may appear mostly due to the specific implementation chosen in the user code. They can always be overcome by recoding parts of the routines developed by the user or by modifying AUTO_DERIV according to specific instructions given below. The common restrictions of available memory and the capabilities of the compiler hold.

Unusual features:
None (The program has been tested using the following compilers: HP f90, NAGWare f95, IBM xlf90, Fujitsu F95, Absoft Pro Fortran F90, PGI Workstation pgf90.)

Running time:
The typical running time for the program depends on the compiler and the complexity of the differentiated function. A rough estimate is that AUTO_DERIV is an order of magnitude slower than the evaluation of the analytical function value and derivatives (if they are available).