mie_dlm_single is an IDL DLM which is functionally equivalent to mie_single.pro (with some minor differences!). The Mie algorithm itself is written in Fortran 77 and the DLM functionality is added by a C wrapper.
Note: A brief guide to creating IDL DLM's is now
available here.
mie_dlm_single is an IDL DLM procedure and can be called with the following command line from the IDL prompt (as long as the both mie_dlm_single.dlm and mie_dlm_single.so are located somewhere with the path defined by the IDL_DLM_PATH environment variable):
Dx: Particle size parameter(s). This must be a vector of type double (although it can have only one element).
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). This must be of type double complex.
Dqv: Cosines of the scattering angles at which to calculate the intensity functions etc. If specified it must be vector of type double (although it can have only one element).
mthread=mthread: Controls the number of threads which will be utilised by the DLM version of the algorithm. If not set by default the code will use 1 thread. See the procedure header for more information.
The output parameters are:
Dqxt: Extinction efficiency. This will be a vector of type double, with the same number of elements as Dx.
Dqsc: Scattering efficiency. This is of the same type and size as Dqxt.
Dqbk: Backscattering efficiency. This is of the same type and size as Dqxt.
Dg: Asymmetry parameter. This is of the same type and size as Dqxt.
Xs1: First amplitude function - amplitude of light polarized in the plane perpendicular to the directions of incident light propagation and observation. Xs1 is a complex array of the same dimension as Dqv and is only calculated if Dqv is specified.
Xs2: Second amplitude function - amplitude of light polarized in the plane parallel to the directions of incident light propagation and observation. Xs2 is a complex array of the same dimension as Dqv and is only calculated if Dqv is specified.
SPM: Scattering phase matrix elements F11 (F[0,*,*]), F33 (F[1,*,*]), F12 (F[2,*,*]), F34 (F[3,*,*]), where the 2nd dimension is the same dimension as Dqv and the 3rd dimension is the same dimension as Dx. Only calculated if Dqv is specified.
The maximum size parameter allowed by mie_dlm_single.pro is 1200. Any value larger than this will result in the programme halting with the error message: MIE_DLM_SINGLE: Size Parameter Overflow.
In order to use the routine you must have both the mie_dlm_single.dlm and mie_dlm_single.so in the path specified by your IDL_DLM_PATH environment variable.
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.