112 lines
3.3 KiB
Fortran
112 lines
3.3 KiB
Fortran
FUNCTION CHEAVJ(I,NJ,IGJ)
|
|
C =========================
|
|
C
|
|
C Calculates collisional excitation rates from a non-averaged (l,s)
|
|
C state of He I, with n=1, 2, 3, to some averaged state
|
|
C with n = 2, 3, 4.
|
|
C
|
|
C The rates are calculated using appropriate summations of the
|
|
C Storey-Hummer rates (calculated by procedure COLLHE, and stored
|
|
C in array COLHE1)
|
|
C
|
|
C Input:
|
|
C I - index of the lower state, using the ordering defined in
|
|
C COLLHE, ie. I=1 for 1 sing S, I=2 for 2 trip S, etc.
|
|
C NJ - principal quantum number of the (averaged) upper level
|
|
C IGJ - statistical weight of the upper level
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
INCLUDE 'BASICS.FOR'
|
|
INCLUDE 'ATOMIC.FOR'
|
|
|
|
CHEAVJ=0.
|
|
C
|
|
C -----------------------------------------------------
|
|
C ******** transitions to an averaged level with n=2
|
|
C -----------------------------------------------------
|
|
C
|
|
IF(NJ.EQ.2) THEN
|
|
IF(IGJ.EQ.4) THEN
|
|
C
|
|
C a) upper level is an averaged singlet state
|
|
C
|
|
CHEAVJ=COLHE1(1,3)+COLHE1(1,5)
|
|
ELSE IF(IGJ.EQ.12) THEN
|
|
C
|
|
C b) upper level is an averaged triplet state
|
|
C
|
|
CHEAVJ=COLHE1(1,2)+COLHE1(1,4)
|
|
ELSE IF(IGJ.EQ.16) THEN
|
|
C
|
|
C c) upper level is an average of both siglet and triplet states
|
|
C
|
|
CHEAVJ=COLHE1(1,3)+COLHE1(1,5)+COLHE1(1,2)+COLHE1(1,4)
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
C
|
|
C -----------------------------------------------------
|
|
C ******** transitions to an averaged level with n=3
|
|
C -----------------------------------------------------
|
|
C
|
|
ELSE IF(NJ.EQ.3) THEN
|
|
IF(IGJ.EQ.9) THEN
|
|
C
|
|
C a) upper level is an averaged singlet state
|
|
C
|
|
CHEAVJ=COLHE1(I,7)+COLHE1(I,11)+COLHE1(I,10)
|
|
ELSE IF(IGJ.EQ.27) THEN
|
|
C
|
|
C b) upper level is an averaged triplet state
|
|
C
|
|
CHEAVJ=COLHE1(I,6)+COLHE1(I,8)+COLHE1(I,9)
|
|
ELSE IF(IGJ.EQ.36) THEN
|
|
C
|
|
C c) upper level is an average of both siglet and triplet states
|
|
C
|
|
CHEAVJ=COLHE1(I,7)+COLHE1(I,11)+COLHE1(I,10)+
|
|
* COLHE1(I,6)+COLHE1(I,8)+COLHE1(I,9)
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
C
|
|
C -----------------------------------------------------
|
|
C ******** transitions to an averaged level with n=4
|
|
C -----------------------------------------------------
|
|
C
|
|
ELSE IF(NJ.EQ.4) THEN
|
|
IF(IGJ.EQ.16) THEN
|
|
C
|
|
C a) upper level is an averaged singlet state
|
|
C
|
|
CHEAVJ=COLHE1(I,13)+COLHE1(I,19)+COLHE1(I,16)+
|
|
* COLHE1(I,18)
|
|
ELSE IF(IGJ.EQ.48) THEN
|
|
C
|
|
C b) upper level is an averaged triplet state
|
|
C
|
|
CHEAVJ=COLHE1(I,12)+COLHE1(I,14)+COLHE1(I,15)+
|
|
* COLHE1(I,17)
|
|
ELSE IF(IGJ.EQ.64) THEN
|
|
C
|
|
C c) upper level is an average of both siglet and triplet states
|
|
C
|
|
CHEAVJ=COLHE1(I,13)+COLHE1(I,19)+COLHE1(I,16)+
|
|
* COLHE1(I,18)+COLHE1(I,12)+COLHE1(I,14)+
|
|
* COLHE1(I,15)+COLHE1(I,17)
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
ELSE
|
|
GO TO 10
|
|
END IF
|
|
RETURN
|
|
|
|
10 WRITE(6,601) NJ,IGJ
|
|
WRITE(10,601) NJ,IGJ
|
|
601 FORMAT(1H0/' INCONSISTENT INPUT TO PROCEDURE CHEAVJ'/
|
|
* ' QUANTUM NUMBER =',I3,' STATISTICAL WEIGHT',2I4)
|
|
call quit(' ',nj,igj)
|
|
|
|
END
|