In the simplest zero-offset Kirchhoff program (which is very slow) loops may be reordered arbitrarily. I reorder the code to avoid computing results that lie off the bottom of mesh and to reuse square roots thus making the code run much faster. An example shows that diffraction followed by migration gives low frequency amplification.
Neither IEI Claerbout (1985) nor PVI 1992 contains runnable, conjugate Kirchhoff code. This article fills the gap. Eventually this material will appear in a revised IEI. Meanwhile, I plan to put to use the fast version below in iterative migrations for parameter and missing data estimation.