Appendix A: Homogeneous Sphere

The theory underlying this appendix is given in Chapter 4; some of the computational aspects of Mie theory are discussed in Section 4.8. Perhaps the best known program for computing Mie scattering coefficients is that by Dave (1968)-it is certainly one of the earliest to have a wide distribution. We have profited greatly from this program, and we would be remiss if we did not acknowledge our indebtedness to Dave. The subroutine BHMIE described in this appendix is, however, sufficiently different that it should not be considered as merely a minor variant form. We have borrowed tricks from here and there as well as added a few of our own, all with the aim of writing a simple, efficient program, easy to understand and hence easy to modify. One of the major departures from the Dave program is that in BHMIE convergence of series is not determined by iteration. With the wisdom of hindsight, iteration seems inefficient because there is little disagreement about the approximate number of terms required for convergence: slightly more than x terms are sufficient, where x is the size parameter. We have tried various criteria, based more or less on guessing. After BHMIE was written, however, an extensive study was published by Wiscombe (1979, 1980), and we have modified our programs in the light of his work. Thus, series in BHMIE are terminated after NSTOP terms, where NSTOP is the integer closest to x + 4x1’3 + 2. A similar criterion was used by Wiscombe, who was guided by a suggestion by Khare and extensive computations. This criterion can, of course, be changed. But lest the reader with a large computer budget be seduced by the idea that if a certain number of terms is good then even more are better, we must issue a warning. Computation of +,, by forward recurrence is unstable, and roundoff error will eventually become unacceptable. Provided that one does not generate more orders of $,, than are needed for reasonable convergence, and that $,, is a double-precision variable, problems are not likely to be encountered with a computer of moderate size. But an attempt to squeeze out a few more decimal places might lead to disaster: scattering coefficients of order appreciably greater than NSTOP might be computed inaccurately, and greatly so, even though they are not really needed.