69 lines
2.1 KiB
Fortran
69 lines
2.1 KiB
Fortran
SUBROUTINE LYMLIN(ID,FREQ,ABLY,EMLY,SCLY)
|
|
C =========================================
|
|
C
|
|
C OPACITY OF THE LYMAN LINES WINGS (ALPHA - DELTA)
|
|
C WITH APPROXIMATE PARTIAL REDISTRIBUTION
|
|
C
|
|
INCLUDE 'PARAMS.FOR'
|
|
INCLUDE 'MODELP.FOR'
|
|
DIMENSION SN(4),SR(4),SS(4),GS(4),FRLY(4),BNLY(4),GA(4)
|
|
DATA FRLY / 2.4660375E15, 2.9227111E15, 3.0825469E15, 3.156528E15/
|
|
* ,BNLY / 5.527E-2, 4.090E-2, 2.699E-2, 1.855E-2 /,
|
|
* SN / 1.308E5, 5.280E3, 5.847E2, 1.078E2 /,
|
|
* SR / 1.218E-16, 9.196E-17, 1.058E-16, 1.296E-16 /,
|
|
* SS / 9.478E-3, 1.600E-2, 1.441E-2, 1.547E-2 /,
|
|
* GS / 7.237E-8, 5.432E-6, 5.821E-5, 4.027E-4 /,
|
|
* GA / 1.000, 1.791, 2.362, 2.801 /
|
|
C
|
|
data icomp/0/
|
|
if(iath.le.0) return
|
|
if(icomp.eq.0) then
|
|
icomp=1
|
|
read(4,*,err=10,end=10) ifstrk,ifnat,ifres,ifprd,ifsti
|
|
go to 11
|
|
10 continue
|
|
ifstrk=0
|
|
ifnat=1
|
|
ifres=1
|
|
ifprd=0
|
|
ifsti=0
|
|
if(iophli.lt.0) then
|
|
ifstrk=1
|
|
ifprd=1
|
|
end if
|
|
11 continue
|
|
end if
|
|
c
|
|
ABLY=0.
|
|
EMLY=0.
|
|
SCLY=0.
|
|
|
|
if(freq.gt.3.3e15) return
|
|
|
|
P=POPUL(N0HN,ID)
|
|
T=TEMP(ID)
|
|
ANE=ELEC(ID)
|
|
DO 40 I=1,4
|
|
DFR=ABS(FRLY(I)-FREQ)
|
|
IF(DFR.LE.5.E11) DFR=1.E12
|
|
DFR2=DFR*DFR
|
|
DFRS=SQRT(DFR)
|
|
COR=(2.*FREQ/(FREQ+FRLY(I)))**2
|
|
F=1.
|
|
IF(iabs(IOPHLI).EQ.2) F=FEAUTR(FREQ,ID)
|
|
STARK=SS(I)*ANE*F/DFR2/DFRS
|
|
if(ifstrk.eq.0) stark=0.
|
|
if(ifnat.eq.0) sn(i)=0.
|
|
if(ifres.eq.0) sr(i)=0.
|
|
SGLY=SN(I)*(1.+SR(I)*P)*COR/DFR2+STARK
|
|
sgly=sgly*wnhint(i+1,id)
|
|
GAMA=1./(GA(I)+GS(I)*ANE*F/DFRS)
|
|
if(ifprd.eq.0) gama=0.
|
|
ABLY=ABLY+P*SGLY
|
|
EMLY=EMLY+POPUL(N0HN+I,ID)*SGLY*BNLY(I)*(1.-GAMA)
|
|
if(ifsti.ne.0) ably=ably-popul(n0hn+i,id)*sgly/(i+1)/(i+1)
|
|
SCLY=SCLY+P*SGLY*GAMA
|
|
40 CONTINUE
|
|
RETURN
|
|
END
|