Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] abnk_v1_0.gz(7 Kbytes)|
|Manuscript Title: COULFG: Coulomb and Bessel functions and their derivatives, for real arguments, by Steed's method.|
|Authors: A.R. Barnett|
|Program title: COULFG|
|Catalogue identifier: ABNK_v1_0|
Distribution format: gz
|Journal reference: Comput. Phys. Commun. 27(1982)147|
|Programming language: Fortran.|
|Computer: IBM 370/165.|
|Operating system: OS/360 GI COMPILER AND HX COMPILER (LEVEL 2.2.1).|
|RAM: 180K words|
|Word size: 32|
|Keywords: General purpose, Klein-gordon, Real angular momentum, Recurrence relations, Schrodinger, Bessel, Spherical bessel, Continued-fraction, Heavy-ion, Pionic, Kaonic, Exotic atoms, Scattering states.|
|Classification: 4.5, 4.7.|
Nature of problem:
Coulomb interaction of charged particles in spherical coordinates (Coulomb functions) and uncharged particles (spherical Bessel functions), and general problems in cylindrical coordinates yielding Bessel-function solutions can be obtained with the program. COULFG computes the Coulomb wavefunctions Flambda(eta,x), Glambda(eta,x), F'lambda(eta,x) and G'lambda(eta,x) for a range of lambda-values in integer steps, l greater than or equal to lambda greater than or equal to m greater than -1, for real x greater than 0 and real eta, 10**4 greater than or equal to absolute value of eta. Values of the maximum angular momentum, l, of several thousand can be treated. When the functions have oscillating character the absolute accuracies are about 10**-14 but this is only limited by the word length used; extended precision variables can yield absolute accuracies of 10**-30. COULFG will generate spherical Bessel functions and cylindrical Bessel functions for a wide range of integer-spaced real orders.
An enhanced version of Steed's method, used previously for integer lambda in the subroutine RCWFN is adopted. The more recent subroutine KLEIN for a single lambda value also is similiar, the additional feature being the stable recurrence relations for a range of lambda values.
It is well known that the method used loses accuracy as x<xm (the turning point for the minimum order required) and eventually, when Gm >~ 10**6, a JWKB approximate solution is adopted which is accurate to <~ 1% as a rule. Several ouput variables signal that this has occurred.
A considerably revised version is presented of the CPC program 'RCWFN' (catalogue ABPC) used to compute the Coulomb functions Fl(eta,x, Gl(eta,x) and their x-derivatives over a range of integer L- values>=0. The new program, COULFG, calculates Flambda(eta,x), Glambda(eta,x), F'lambda(eta,x) and G'lambda(eta,x) when lambda is real (lambda >-1) and for a similar range in the (eta,x) plane as before, 10**4>= x >0, 10**4>= |eta|. Integer-spaced lambda-values are obtained by a suitable combination of stable recurrence relations. Subroutine COULFG will return, furthermore, for a range of integer- spaced orders;
a) Spherical Bessel functions Jlambda(x), Ylambda(x), J'lambda(x), Y'lambda(x), and
b) Cylindrical Bessel functions Jeta(x), Yeta(x), J'eta(x), Y'eta(x), where both lambda, eta can be real or integral. Values of order in excess of 1000 have been tested.
A "mode" option is provided so that, for each case, arrays of the regular and irregular functions and their derivatives, or just the two functions, or the regular function alone (Flambda, Jlambda, Jeta) are calculated and stored. Both core and execution time are saved by this technique. In the region of x where the function ocsillate, i.e. x >= xlambda (the turning point of the lambdath partial wave) the relative accuracy of the functions for IBM machines (REAL*8) as programmed, is ~~ 10**-14 - 10**-16 and for CDC machines (single precision) is ~~ 10**-12 - 10**-14. With no change in the code except for the accuracy parameter the accuracy can be increased to ~~10**-30 by using the AUTODOUBLE facility on an extended-precision IBM compiler. The accuracy decreases in a predictable way as x decreases below xlambda; a measure of this decreased accuracy is provided by the program. JWKB approximations are provided when x is sufficiently smaller than xlambda.
The test deck ran in 2 1/2 s on the Gl compiler and the HX compiler, one half of which demonstrates error conditions.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|