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

59 lines
1.5 KiB
Fortran

SUBROUTINE HYLSEW(IJ)
C =====================
C
C Initialization procedure for treating the hydrogen line opacity
C
INCLUDE 'PARAMS.FOR'
INCLUDE 'SYNTHP.FOR'
C
C IHYL=-1 - hydrogen lines are excluded a priori
C
IHYLW(IJ)=0
if(iath.le.0) return
FR=FREQ(IJ)
IF(FR.GE.3.28805E15) RETURN
AL0=2.997925E17/FR
AL1=AL0
IF(grav.lt.6.) then
IF(AL0.GT.160..AND.AL1.LT.364.6) RETURN
IF(AL0.GT.506..AND.AL1.LT.630.) RETURN
IF(AL0.GT.680..AND.AL1.LT.820.3) RETURN
else
IF(AL0.GT.540..AND.AL1.LT.600.) RETURN
IF(AL0.GT.720..AND.AL1.LT.820.3) RETURN
end if
C
C otherwise, hydrogen lines are included
C
IHYLW(IJ)=1
M20W(IJ)=40
IF(AL1.LT.364.6) THEN
ILOWHW(IJ)=1
FRION=3.28805E15
ELSE IF(AL1.LT.820.) THEN
ILOWHW(IJ)=2
FRION=8.2225E14
ELSE IF(AL1.LT.1458.) THEN
ILOWHW(IJ)=3
FRION=3.6544142E14
ELSE IF(AL1.LT.2278.) THEN
ILOWHW(IJ)=4
FRION=2.0555837E14
ELSE IF(AL1.LT.3281.) THEN
ILOWHW(IJ)=5
FRION=1.315589E14
ELSE IF(AL1.LT.4466.) THEN
ILOWHW(IJ)=6
FRION=9.136394E13
ELSE
ILOWHW(IJ)=7
FRION=6.7120228E13
END IF
IF(FRION.GT.FR) M10W(IJ)=int(SQRT(3.289017E15/ABS(FRION-FR)))
c WRITE(6,601) ILOWH,M20+1
c 601 FORMAT(1H0/ ' *** HYDROGEN LINES CONTRIBUTE'/
c * ' THE NEAREST LINE ON THE SHORT-WAVELENGTH SIDE IS',
c * I3,' TO ',I3/)
RETURN
END