The mie_derivs.pro procedure performs single particle Mie scattering calculations, providing the distribution of scattering radiation, various particle cross sections and the analytically derived derivatives of all calculated quantities.
A the derivation of expressions for the analytical derivatives of Mie scattering terms is covered by: Grainger, R.G., J. Lucas, G.E. Thomas, G. Ewan, "The Calculation of Mie Derivatives", Appl. Opt., 43(28), 5286-5393, 2004.
mie_derivs.pro is an IDL procedure and can be called with the following command line from the IDL prompt (as long as the source file lies within your IDL_PATH environment variable):
x: Particle size parameter(s). This must be a scalar float/double quantity and must always be greater than zero.
Cm: Complex refractive index of the particle(s). Only one refractive index value can be used in each call to the procedure and must take the form complex(a,-b) (where a is the real part of the refractive index, and b is the imaginary (or absorptive) part, and is either zero or negative).
Dqv: Cosines of the scattering angles at which to calculate the intensity functions etc. If specified it must be vector of type float or double (although it can have only one element).
The output parameters are:
Qext: Extinction efficiency.
Qsca: Scattering efficiency.
dQextdx: Derivative of the extinction efficiency wrt the particle size parameter.
dQextdRem: Derivative of the extinction efficiency wrt the real part of the refractive index.
dQextdImm: Derivative of the extinction efficiency wrt the imaginary part of the refractive index.
dQscadx: Derivative of the scattering efficiency wrt the particle size parameter.
dQscadRem: Derivative of the scattering efficiency wrt the real part of the refractive index.
dQscadImm: Derivative of the scattering efficiency wrt the imaginary part of the refractive index.
Note: All of the above output variables are scalars of type double.
i1: First intensity function - intensity of light polarized in the plane perpendicular to the directions of incident light propagation and observation.
i2: Second intensity function - intensity of light polarized in the plane parallel to the directions of incident light propagation and observation.
di1dx: Derivative of the first intensity function wrt the particle size parameter
di2dx: Derivative of the second intensity function wrt the particle size parameter
di1dRem: Derivative of the first intensity function wrt to the real part of the refractive index
di1dImm: Derivative of the first intensity function wrt to the imaginary part of the refractive index
di2dRem: Derivative of the second intensity function wrt to the real part of the refractive index
di2dImm: Derivative of the second intensity function wrt to the imaginary part of the refractive index
Note: All of these output variables will be vectors of type double, with the same number of elements as Dqv.
The source code for this routine and supporting routines is part of the EODG Mie scattering distribution which may be downloaded as a gzipped tar file here.