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

49 lines
1.2 KiB
Fortran

SUBROUTINE HYDTAB(I,J,ID)
C
C interpolated hydrogen line broadening table for line I->J and
C for parameters (TEMP, ELEC) at depth ID
C
INCLUDE 'PARAMS.FOR'
INCLUDE 'MODELP.FOR'
C
ILINE=ILIN0(I,J)
IF(ILINE.EQ.0) RETURN
WL0=WLINE(I,J)
NWL=NWLH(ILINE)
C
C coefficient for the asymptotic profile is determined from
C the input data
C
if(id.eq.1) then
XCLOG=PRF(NWL,1,1,ILINE)+2.5*WLHYD(ILINE,NWL)-0.477121
XKLOG=0.6666667*XCLOG
XK=EXP(XKLOG*2.3025851)
end if
C
C temperature is modified in order to account for the
C effect of turbulent velocity on the Doppler width
C
T=TEMP(ID)+6.06E-9*VTURB(ID)
ANE=ELEC(ID)
TL=LOG10(T)
ANEL=LOG10(ANE)
F00=1.25E-9*ANE**0.666666667
FXK=F00*XK
DOP=1.E8/WL0*SQRT(1.65E8*T)
DBETA=WL0*WL0/2.997925E18/FXK
BETAD=DBETA*DOP
C
C interpolation to the actual values of temperature and electron
C density. The result is stored at array PRFHYD, having indices
C ILINE - line number
C ID - depth index
C IWL - wavelength index
C
DO IWL=1,NWL
CALL INTHYD(PROF,TL,ANEL,IWL,ILINE)
PRFHYD(ILINE,ID,IWL)=PROF
END DO
C
RETURN
END