S. Stamatiadis, R. Prosmiti and S. C. Farantos
Institute of Electronic Structure and Laser
Foundation for Research and Technology - Hellas,
and
Department of Chemistry
University of Crete
Iraklion, Crete 711 10, Greece
Published in "Computer Physics Communications, 127 (2000) 343-355"
VERSION 2 (ADLS_v2_0) "Computer Physics Communications, 181 (2010) 1818"
Title of the program: AUTO_DERIV
Catalogue number: ADLS, ADLS_v2_0
Program Summary URL: http://cpc.cs.qub.ac.uk/summaries/ADLS
Program obtainable from: CPC Program Library, Queen's University
of Belfast, N. Ireland
Computer for which the program is designed: Any computer equipped
with an ISO FORTRAN 90 conforming compiler
Computer on which the program has been tested : Intel Pentium
II PC, IBM RS/6000, HP Exemplar
Operating system under which the program has been tested: GNU/Linux,
AIX 4.3, HP-UX B.10.01
Programming language used: ISO FORTRAN 90
Compilers with which it has been tested: HP f90, NAGWare f95,
IBM xlf90, Fujitsu F95, Absoft Pro Fortran F90, PGI Workstation pgf90
Memory required to execute with typical data: 680 KBytes
No. of bits in a word: 32
No. of bytes in distributed program, included test data etc:
68 402
Distribution format: ASCII
Keywords: Automatic differentiation, derivatives, Fortran 90,
Potential Energy Surfaces, Molecular Dynamics, Non Linear Mechanics
Method of Solution
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.
Restrictions on the complexity of the problem
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.
Typical 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 were available).
Unusual features of the program
None.