Oxford Physics
Home Oxford Physics University of Oxford Live Weather Getting here Contact

Introduction
  mie_single
  mie_lognormal
  mie_derivs
  mie_derivs_ln
  mie_dlm_single
  mieext_f
AOPP home
Contact

UNIVERSITY HOME

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

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

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.

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

Download source code

The source code and dlm file for this routine can be downloaded in gzip form from here.
last updated @16:54 GMT 08-Nov-2010 printable version