Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aclt_v1_0.gz(5 Kbytes)
Manuscript Title: VOIGTL: a fast subroutine for Voigt function evaluation on vector processors.
Authors: A.E. Lynas-Gray
Program title: VOIGTL
Catalogue identifier: ACLT_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 75(1993)135
Programming language: Fortran.
Computer: CRAY-XMP/416.
Operating system: UNICOS 6.0.12.
Word size: 64
Keywords: Stellar atmospheres, Special function Evaluation, Spectrum synthesis, Astrophysics, Stars.
Classification: 1.7.

Nature of problem:
Stellar line absorption coefficients are, in most cases, Voigt profiles which are convolutions of Doppler and Lorentz profiles. Voigt function evaluation is required repeatedly in synthetic stellar spectrum calculations and, in the case of local thermodynamic equilibrium being assumed, is dominant in determining computer time required.

Solution method:
Lether and Wenston [1] propose a representation of the Voigt function (H(x,y)) as an integral over [0,infinity] of a meromorphic function that involves a free parameter; this is chosen so that H(x,y) can be efficiently computed through the use of a corrected trapezoidal rule that takes simple poles of the integrand into account. In this paper, Lether and Wenston's algorithm is presented as a subroutine optimising required computing time for a chosen accuracy of H(x,y); this need not only be determined by the spectrum being synthesised, but also by the floating point representation in hardware. The presented routine returns H(x,y) for an arbitrary grid of x and y values, having a maximum absolute error of 10**-13, with a single call; at a single model stellar atmosphere depth point, one call can be used to return H(x,y) at all wavelengths of interest for a spectrum line. Code that vectorises on CRAY computers is used and it offers considerable advantages over other routines in the literature which have comparable accuracy.

For each spectral line, the size of the problem is defined in terms of the number of wavelength points, as well as the accuracy with which the H(x,y) are to be evaluated. Available computer memory is an obvious restriction on the size of the calculation. Floating point representation in hardware also limits the accuracy that can be achieved.

Unusual features:
Routine interdependence was eliminated by avoiding the use of COMMON BLOCK declarations; all dimensions being fixed by PARAMETER statements in the main program. Provided necessary workspace can be supplied, the incorporation of VOIGTL into any program is straightforward. After VOIGTL has been called and control returned to the calling routine, workspace may be used for another purpose.

Running time:
A single call of VOIGTL with one damping parameter and a million dis- placement parameters requires 2.28 seconds of CRAY-XMP processor time.

[1] Lether, F.G. and Wenston, P.R., 1990, Appl. Maths. Comput. 35, 277.