The Black Box Approach (Sequential OVERFLOW)

The ADIFOR 2.0 tool can augment any pure Fortran 77 program to produce analytic derivatives. OVERFLOW, however, uses some non-Fortran subroutines to do dynamic memory allocation. Fortunately, the memory management is sufficiently disciplined that straightforward post-processing of the ADIFOR generated source resulted in correct derivative code. We refer to this use of ADIFOR as ``black box'' (BB).

To compute derivatives with respect to 3 input parameters, the BB calculation for the RS6000 requires about 5 times the cost of a function evaluation, which places its cost between one-sided and two-sided difference methods. The BB computation cost for the Cray shows a penalty of 10 times the cost of the function evaluation --- much more expensive than even two-sided differences, however, the answers provided by automatic differentiation of CFD codes have proven to be accurate for cases in which even two-sided differences failed.

The memory requirements for a derivative code can be given as O(n * M), where ``n'' is the number of independent variables in the differentiation, and ``M'' is the memory required for the function evaluation. Hence, for large problems, the memory requirements are likely to be the limiting resource with regard to derivative computation.