121 lines
3.6 KiB
Fortran
121 lines
3.6 KiB
Fortran
SUBROUTINE DOPGAM(ITR,ID,T,DOP,AGAM)
|
|
C ====================================
|
|
C
|
|
C Doppler width and the Voigt damping parameter for the line ITR
|
|
C
|
|
C Input:
|
|
C ITR - index of transition
|
|
C ID - depth index
|
|
C T - temperature
|
|
C Output:
|
|
C DOP - Doppler width
|
|
C AGAM - total damping parameter (in units of Doppler widths;
|
|
C ie. = gam/4pi/DOP, where gam is the "physical" damping
|
|
C parameter expresed in circular frequencies)
|
|
C
|
|
C Damping parameter is calculated only for transitions with
|
|
C |IPROF(ITR)| = 1 (ie. those for which either Voigt or some non-
|
|
C standard profile is assumed)
|
|
C Determination of AGAM:
|
|
C is controlled by input parameters transmitted by COMMON/VOIPAR:
|
|
C
|
|
C GAMAR(IP) - for > 0 - has the meaning of natural damping
|
|
C parameter (=Einstein coefficient for
|
|
C spontaneous emission)
|
|
C = 0 - classical natural damping assumed
|
|
C < 0 - damping is given by a non-standard,
|
|
C user supplied procedure GAMSP
|
|
C STARK1(IP) - = 0 - Stark broadening neglected
|
|
C < 0 - scaled classical expression
|
|
C (ie gam = -STARK1 * classical Stark)
|
|
C > 0 - Stark broadening given by
|
|
C n(el)*[STARK1*T**STARK2 + STARK3]
|
|
C STRAK2, STARK3 - see above
|
|
C VDWH(IP) - .le.0 - Van der Waals broadening neglected
|
|
C > 0 - scaled classical expression
|
|
C
|
|
C the corresponding index IP is given by ITRA(IUP(ITR),ILOW(ITR))
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
INCLUDE 'BASICS.FOR'
|
|
INCLUDE 'ATOMIC.FOR'
|
|
INCLUDE 'MODELQ.FOR'
|
|
PARAMETER (BOL2=2.76108D-16, CIN=UN/2.997925D10)
|
|
PARAMETER (R02=2.5,R12=45.,OP4=0.4,VW0=4.5E-9)
|
|
C
|
|
J=IUP(ITR)
|
|
IAT=IATM(J)
|
|
FR=FR0(ITR)
|
|
IE=IEL(J)
|
|
AM=BOL2/AMASS(IAT)*T
|
|
AGAM=0.
|
|
C
|
|
C Doppler width
|
|
C
|
|
DOP=FR*CIN*SQRT(AM+VTURBS(ID)*VTURBS(ID))
|
|
C
|
|
C -----------------
|
|
C damping parameter - only for IPROF = 1
|
|
C
|
|
IF(IABS(IPROF(ITR)).NE.1) RETURN
|
|
IP=ITRA(J,ILOW(ITR))
|
|
ANE=ELEC(ID)
|
|
C
|
|
C Natural (radiation) broadening
|
|
C
|
|
If(GAMAR(IP).GT.0.) THEN
|
|
AGAM=GAMAR(IP)
|
|
ELSE IF (GAMAR(IP).EQ.0.) THEN
|
|
AGAM=2.47342D-22*FR*FR
|
|
ELSE
|
|
C
|
|
C Non-standard expression - for the total damping parameter,
|
|
C not only for radiation damping
|
|
C
|
|
CALL GAMSP(ITR,T,ANE,AGAM)
|
|
END IF
|
|
C
|
|
C Stark broadening
|
|
C
|
|
Z=FLOAT(IZ(IE))
|
|
ANFF=Z*Z*EH/ENION(J)
|
|
IF(STARK1(IP).EQ.0.) THEN
|
|
AGAM=AGAM+1.D-8*ANFF**2.5*ANE
|
|
ELSE IF (STARK1(IP).GT.0.) THEN
|
|
AGAM=AGAM+ANE*(STARK1(IP)*T**STARK2(IP)+STARK3(IP))
|
|
END IF
|
|
C
|
|
C Van der Waals broadening
|
|
C
|
|
IF(IELH.GT.0) THEN
|
|
AH=POPUL(NFIRST(IELH),ID)
|
|
ELSE
|
|
AH=DENS(ID)/WMM(ID)/YTOT(ID)
|
|
END IF
|
|
IF(IELHE1.NE.0) THEN
|
|
AHE=AH*ABUND(IATHE,ID)
|
|
ELSE
|
|
AHE=AH*ABNDD(2,ID)
|
|
END IF
|
|
VDWC=(T*1.E-4)**0.3*(AH+0.42*AHE)
|
|
IF(VDWH(IP).GE.0.) THEN
|
|
IF(IAT.LT.21) THEN
|
|
R2=R02*(ANFF/Z)**2
|
|
ELSE IF(IAT.LT.45) then
|
|
R2=(R12-FLOAT(IAT))/Z
|
|
ELSE
|
|
R2=0.5
|
|
END IF
|
|
GW0=VDWC*VW0*R2**OP4
|
|
AGAM=AGAM+GW0
|
|
ELSE IF (VDWH(IP).LT.0.) THEN
|
|
GW0=VDWC*EXP(2.3025851*VDWH(IP))
|
|
AGAM=AGAM+GW0
|
|
END IF
|
|
c
|
|
C Total damping parameter in units of Doppler widths
|
|
C
|
|
AGAM=AGAM/DOP/12.566370614
|
|
RETURN
|
|
END
|