Welcome to Adams/Solver Subroutines - Kxcad.net
Welcome to Adams/Solver Subroutines - Kxcad.net
Welcome to Adams/Solver Subroutines - Kxcad.net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
118<br />
<strong>Adams</strong>/<strong>Solver</strong><br />
Computing Partial Derivatives<br />
The computation of the partial derivatives of a complicated FORTRAN subroutine can be an<br />
overwhelming task. MSC investigated the software, Au<strong>to</strong>matic Differentiation of FORTRAN<br />
(ADIFOR), that may be able <strong>to</strong> au<strong>to</strong>mate this task.<br />
ADIFOR is a <strong>to</strong>ol for au<strong>to</strong>matic computation of derivatives of function defined in FORTRAN 77<br />
programs.<br />
Au<strong>to</strong>matic differentiation is a technique for computing the derivatives of functions described by<br />
computer programs. ADIFOR implements au<strong>to</strong>matic differentiation by transforming a collection of<br />
FORTRAN 77 subroutines that compute a function f in<strong>to</strong> new FORTRAN 77 subroutines that compute<br />
the derivatives of the outputs of f with respect <strong>to</strong> a specified set of inputs of f.<br />
ADIFOR 2.0 consists of:<br />
• ADIFOR Preprocessor<br />
• ADIntrinsics template expander and library<br />
• SparsLinC library.<br />
Figure 1 shows a block diagram of the ADIFOR 2.0 process, which consists of three steps:<br />
1. Apply the ADIFOR Preprocessor <strong>to</strong> your FORTRAN 77 program <strong>to</strong> produce augmented code for<br />
the computation of derivatives. The preprocessor invokes the ADIntrinsics template expander<br />
directly.<br />
2. Construct a derivative driver code that invokes the generated derivative code and uses the<br />
computed derivatives.<br />
3. Compile the generated derivative code and your derivative driver code, and link these with the<br />
derivative support packages. That is, the ADIntrinsics exception handling package and<br />
(optionally) the SparsLinC sparse derivative package.<br />
Figure 1. Block Diagram of the ADIFOR Process