SpectraRust/tlusty/extracted/ckoest.f
2026-03-19 14:05:33 +08:00

60 lines
1.6 KiB
Fortran

FUNCTION CKOEST(S,L,N,FREQ,GG)
C ==============================
C
C EVALUATES HE I PHOTOIONIZATION CROSS SECTION USING
C KOESTER'S FITS (1985, AA 149, 423)
C
C CALLING SEQUENCE INCLUDES:
C S = MULTIPLICITY, EITHER 1 OR 3
C L = ANGULAR MOMENTUM, 0, 1, OR 2;
C for L > 2 - hydrogenic expresion
C N = PRINCIPAL QUANTUM NUMBER
C FREQ = FREQUENCY
C GG = STATISTICAL WEIGHT
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INTEGER S,L,SS,LL
PARAMETER (PHOT0=2.815D29)
DIMENSION COEF(3,11),IST(3)
C
DATA IST/1,2,6/
C
DATA COEF/
. -58.229, 4.3965, -0.22134 ,
. -68.438, 5.7453, -0.26277 ,
. -67.310, 6.1831, -0.32244 ,
. -92.020, 10.313 , -0.45090 ,
. -68.936, 5.2666, -0.15812 ,
. -63.408, 3.8797, -0.12479 ,
. -63.778, 4.5102, -0.18213 ,
. -76.903, 6.3639, -0.21565 ,
. -61.027, 3.1833, -0.043675,
. -83.287, 7.1751, -0.20821 ,
. -83.287, 7.1751, -0.20821 /
C
SAVE COEF,IST
C
IF(L.GT.2) GO TO 20
C
C SELECT BEGINNING AND END OF COEFFICIENTS
C
SS=(S-1)/2
LL=2*L
NSL=IST(N)+LL+SS
C
C EVALUATE CROSS SECTION
C
X=LOG(CAS/FREQ)
CKOEST=EXP(COEF(1,NSL)+X*(COEF(2,NSL)+X*COEF(3,NSL)))/GG
RETURN
C
C Hydrogenic expression for L > 2
C [multiplied by relative population of state (s,l,n), ie.
C by stat.weight(s,l)/stat.weight(n)]
C
20 GN=TWO*N*N
CKOEST=PHOT0/FREQ/FREQ/FREQ/N**5*(2*L+1)*S/GN
RETURN
END