PROGRAM SUMMARY
Title of program:
AUTO_DERIV
Catalogue identifier:
ADLS
Ref. in CPC:
127(2000)343
Distribution format: gzip file
Operating system: GNU/Linux, AIX 4.3, HP-UX B.10.01
High speed store required:
680K words
Number of bits in a word:
32
Number of lines in distributed program, including test data, etc:
2851
Programming language used: Fortran
Computer: Intel Pentium II PC
Nature of physical 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.
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 are available).
Unusual features of the program
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.)