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

39 lines
831 B
Fortran

SUBROUTINE RATMAL(ID,A,B)
C
C LTE RATE MATRIX (SAHA-BOLTZMANN EQS.)
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'ATOMIC.FOR'
INCLUDE 'MODELQ.FOR'
DIMENSION A(MLEVEL,MLEVEL),B(MLEVEL)
C
ANE=ELEC(ID)
DO I=1,NLEVEL
B(I)=0.
DO J=1,NLEVEL
A(J,I)=0.
END DO
END DO
C
DO IAT=1,NATOM
N0I=N0A(IAT)
NKI=NKA(IAT)
N1I=NKI-1
NREFI=NKI
DO I=N0I,N1I
A(I,I)=1.
N=NNEXT(IEL(I))
A(I,N)=-ANE*SBF(I)*WOP(I,ID)
END DO
DO I=N0I,NKI
IL=ILK(I)
A(NREFI,I)=UN
IF(IL.NE.0) A(NREFI,I)=1.+ANE*USUM(IL)
END DO
B(NREFI)=DENS(ID)/WMM(ID)/YTOT(ID)*ABUND(IAT,ID)
END DO
C
RETURN
END