158 lines
5.1 KiB
Fortran
158 lines
5.1 KiB
Fortran
FUNCTION SBFHE1(II,IB,FR,GG)
|
|
C ============================
|
|
C
|
|
C Calculates photoionization cross sections of neutral helium
|
|
C from states with n = 1, 2, 3, 4.
|
|
C
|
|
C The levels are either non-averaged (l,s) states, or some
|
|
C averaged levels.
|
|
C The program allows only two standard possibilities of
|
|
C constructing averaged levels:
|
|
C i) all states within given principal quantum number n (>1) are
|
|
C lumped together
|
|
C ii) all siglet states for given n, and all triplet states for
|
|
C given n are lumped together separately (there are thus two
|
|
C explicit levels for a given n)
|
|
C
|
|
C The cross sections are calculated using appropriate averages
|
|
C of the Opacity Project cross sections, calculated by procedure
|
|
C HEPHOT
|
|
C
|
|
C For IB=21 or IB=23, Koester (1985, AA 149, 423) fits
|
|
C
|
|
C Input parameters:
|
|
C II - index of the lower level (in the numbering of explicit
|
|
C levels)
|
|
C IB - photoionization switch IBF for the given transition
|
|
C = 10 - means that the given transition is from an
|
|
C averaged level
|
|
C = 11 or 21 - the given transition is from non-averaged
|
|
C singlet state
|
|
C = 13 or 23 - the given transition is from non-averaged
|
|
C triplet state
|
|
C FR - frequency
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
INCLUDE 'BASICS.FOR'
|
|
INCLUDE 'ATOMIC.FOR'
|
|
C
|
|
NI=NQUANT(II)
|
|
IGI=INT(G(II)+0.01)
|
|
IS=IB-10
|
|
IF(IB.GT.20) IS=IB-20
|
|
sbfhe1=0.
|
|
C
|
|
C ----------------------------------------------------------------
|
|
C IB=11 or 13 - photoionization from an non-averaged (l,s) level
|
|
C ----------------------------------------------------------------
|
|
C
|
|
IF(IS.EQ.1.OR.IS.EQ.3) THEN
|
|
IL=(IGI/IS-1)/2
|
|
IF(IB.LT.20) THEN
|
|
SBFHE1=HEPHOT(IS,IL,NI,FR)
|
|
ELSE
|
|
SBFHE1=CKOEST(IS,IL,NI,FR,GG)
|
|
ENDIF
|
|
END IF
|
|
C
|
|
C ----------------------------------------------------------------
|
|
C IS=10 - photoionization from an averaged level
|
|
C ----------------------------------------------------------------
|
|
C
|
|
IF(IS.EQ.0) THEN
|
|
IF(NI.EQ.2) THEN
|
|
C
|
|
C ******** photoionization from an averaged level with n=2
|
|
C
|
|
IF(IGI.EQ.4) THEN
|
|
C
|
|
C a) lower level is an averaged singlet state
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,2,FR)+3.D0*HEPHOT(1,1,2,FR))/9.D0
|
|
ELSE IF(IGI.EQ.12) THEN
|
|
C
|
|
C b) lower level is an averaged triplet state
|
|
C
|
|
SBFHE1=(HEPHOT(3,0,2,FR)+3.D0*HEPHOT(3,1,2,FR))/9.D0
|
|
ELSE IF(IGI.EQ.16) THEN
|
|
C
|
|
C c) lower level is an average of both singlet and triplet states
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,2,FR)+3.D0*(HEPHOT(1,1,2,FR)+
|
|
* HEPHOT(3,0,2,FR))+9.D0*HEPHOT(3,1,2,FR))/1.6D1
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
C
|
|
C
|
|
C ******** photoionization from an averaged level with n=3
|
|
C
|
|
ELSE IF(NI.EQ.3) THEN
|
|
IF(IGI.EQ.9) THEN
|
|
C
|
|
C a) lower level is an averaged singlet state
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,3,FR)+3.D0*HEPHOT(1,1,3,FR)+
|
|
* 5.D0*HEPHOT(1,2,3,FR))/9.D0
|
|
ELSE IF(IGI.EQ.27) THEN
|
|
C
|
|
C b) lower level is an averaged triplet state
|
|
C
|
|
SBFHE1=(HEPHOT(3,0,3,FR)+3.D0*HEPHOT(3,1,3,FR)+
|
|
* 5.D0*HEPHOT(3,2,3,FR))/9.D0
|
|
ELSE IF(IGI.EQ.36) THEN
|
|
C
|
|
C c) lower level is an average of both singlet and triplet states
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,3,FR)+3.D0*HEPHOT(1,1,3,FR)+
|
|
* 5.D0*HEPHOT(1,2,3,FR)+
|
|
* 3.D0*HEPHOT(3,0,3,FR)+9.D0*HEPHOT(3,1,3,FR)+
|
|
* 15.D0*HEPHOT(3,2,3,FR))/3.6D0
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
ELSE IF(NI.EQ.4) THEN
|
|
C
|
|
C ******** photoionization from an averaged level with n=4
|
|
C
|
|
IF(IGI.EQ.16) THEN
|
|
C
|
|
C a) lower level is an averaged singlet state
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,4,FR)+3.D0*HEPHOT(1,1,4,FR)+
|
|
* 5.D0*HEPHOT(1,2,4,FR)+
|
|
* 7.D0*HEPHOT(1,3,4,FR))/1.6D1
|
|
ELSE IF(IGI.EQ.48) THEN
|
|
C
|
|
C b) lower level is an averaged triplet state
|
|
C
|
|
SBFHE1=(HEPHOT(3,0,4,FR)+3.D0*HEPHOT(3,1,4,FR)+
|
|
* 5.D0*HEPHOT(3,2,4,FR)+
|
|
* 7.D0*HEPHOT(3,3,4,FR))/1.6D1
|
|
ELSE IF(IGI.EQ.64) THEN
|
|
C
|
|
C c) lower level is an average of both singlet and triplet states
|
|
C
|
|
SBFHE1=(HEPHOT(1,0,4,FR)+3.D0*HEPHOT(1,1,4,FR)+
|
|
* 5.D0*HEPHOT(1,2,4,FR)+
|
|
* 7.D0*HEPHOT(1,3,4,FR)+
|
|
* 3.D0*HEPHOT(3,0,4,FR)+
|
|
* 9.D0*HEPHOT(3,1,4,FR)+
|
|
* 15.D0*HEPHOT(3,2,4,FR)+
|
|
* 21.D0*HEPHOT(3,3,4,FR))/6.4D1
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
END IF
|
|
RETURN
|
|
10 WRITE(6,601) NI,IGI,IS
|
|
WRITE(10,601) NI,IGI,IS
|
|
601 FORMAT(1H0/' INCONSISTENT INPUT TO PROCEDURE SBFHE1'/
|
|
* ' QUANTUM NUMBER =',I3,' STATISTICAL WEIGHT',I4,' S=',I3)
|
|
call quit(' ',ni,igi)
|
|
|
|
END
|