About EODG
People
Research Programme
Satellite Instruments
Methods & Tools
Laboratory Resources
Aerosol Refractive Index Measurement
(Aerosol Refractive Index Archive: ARIA)
(Atmospheric Infrared Spectrum Atlas)
(Atmospheric Anomaly Service)
Mie Code
  mie_single
  mie_lognormal
  mie_derivs
  mie_derivs_ln
  mie_dlm_single
  mieext_f
(MORSE)
ORAC
(The RFM)
Publications
Local Weather
EODG [restricted]
(AOPP)
(C5)
(printable)

mie_dlm_single DLM

Purpose

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.

Calling the procedure

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_single, Dx, Cm [, Dqv=Dqv] [, /DLM] [, mthread=mthread] [, /SILENT], Dqxt, Dqsc, Dqbk, Dg [, Xs1] [, Xs2] [, SPM]

The input parameters in the above call are:

  • 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.

Limitations and dependences

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.

Download source code

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.

Maintained by Greg McGarragh

Earth Observation Data Group, Department of Physics, University of Oxford. Page last updated: @15:18 GMT 07-Jun-2022