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. The code
has been compiled for use with Linux on x86 systems. The compilers used
were the Intel Fortran Compiler v.10.0 and gcc v.4.1.3. It should be
possible to compile the DLM for other operating systems and
processors, but some alterations to the wrapper code may be
required.
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):
mie_dlm_single, Dx, Cm, [Dqv=dqv], Dqxt, Dqsc, Dqbk, Dg, Xs1, Xs2
The input parameters in the above call are:
Dx: The particle size parameter(s). This must be a
vector of type double (although it can have only one element).
Cm: The complex refractive index of the particles. 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=dqv: This is an optional keyword parameter which
specifies the cosine of the scattering angles at which to calculate
the phase function. If specified it must be vector of type
double (although it can have only one element).
The output parameters are:
Dqxt: The extinction efficiency. This will be a vector of type double,
with the same number of elements as Dx.
Dqsc: The scattering efficiency. This is of the same type and size as
Dqxt.
Dqbk: The back-scatter efficiency. This is of the same type and size as
Dqxt.
Dg: The asymmetry parameter. Again, this is of the same type and size as
Dqxt.
Xs1: The first amplitude function - amplitude of light polarized
in the plane perpendicular to the directions of incident light propagation
and observation. Xs1 is a double complex array of dimensions the
no. of elements in Dqv by the no. of elements in Dx.
Xs2: The second amplitude function - amplitude of light polarized
in the plane parallel to the directions of incident light propagation and
observation. Xs2 is of the same type and size as Xs1.
If Dqv is not specified Xs1, Xs2,
Dph are still calculated for a scattering angle of 0 degrees.
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.
Within AOPP the following applies:
The correct IDL_DLM_PATH is set with the command: setenv IDL_DLM_PATH $IDL_DLM_PATH:/home/crun/eodg/idl/dlm/x86
If you are using a machine running 64-bit linux, then the path is
slightly different: setenv IDL_DLM_PATH $IDL_DLM_PATH:/home/crun/eodg/idl/dlm/x86-64