GAUNTHARMONICS_GAUNT1 Subroutine

public subroutine GAUNTHARMONICS_GAUNT1(LMAX, LPOT, W, YR, CLEB, LOFLM, ICLEB, IEND, JEND, NCLEB, LMAXD, LMGF0D, LMPOTD)

  • fills the array cleb with the gaunt coeffients ,i.e. the integral of y(l1,m1)y(l2,m2)y(l3,m3) but only for lm2.le.lm1 and lm3>1
  • calculate the pointer array jend to project the indices array cleb with the same lm3,l1,l2 values - because of the special ordering of array cleb only the last index has to be determined. (the parameter n has to be chosen that l1+l2+l3 .lt. 2*n) using gaussian quadrature as given by M. Abramowitz and I.A. Stegun, Handbook of Mathematical Functions, NBS Applied Mathematics Series 55 (1968), pages 887 and 916 M. Weinert and E. Wimmer Northwestern University March 1980

An index array -icleb- is used to save storage place. fills the array loflm which is used to determine the l-value of a given lm-value.

B. Drittler November 1987

modified gaunt coefficients are als calculated defined by the integral of y(l1,m1)y(l2,m2)y(l3,m3)i*(l2-l1+l3)

Note

This subroutine has to be called only once!

Warning

ncleb is an empirical factor - it has to be optimized

Arguments

Type IntentOptional Attributes Name
integer :: LMAX
integer :: LPOT
double precision :: W(*)
double precision :: YR(4*LMAXD,0:4*LMAXD,0:4*LMAXD)
double precision :: CLEB(NCLEB,2)
integer :: LOFLM(*)
integer :: ICLEB(NCLEB,4)
integer :: IEND
integer :: JEND(LMPOTD,0:LMAXD,0:LMAXD)
integer :: NCLEB
integer :: LMAXD
integer :: LMGF0D
integer :: LMPOTD