Adjoint methods are a computationally inexpensive way of deriving sensitivity information where there are fewer dependent (cost) variables than there are independent (input) variables. Automatic differentiation (AD) software makes it possible to create discrete adjoint codes with minimal human effort, an issue that had previously restricted acceptance of adjoint CFD codes. In terms of computational performance, automatic code is often assumed to be inferior to hand code. The structure of the underlying code is critical to the performance of the transformed code. This paper reviews the implementation of AD on Fortran CFD codes and gives details of how small rearrangements can be used to produce competitive tangent and adjoint code using source transformation AD. Copyright © 2005 John Wiley & Sons, Ltd.