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

42 lines
1.3 KiB
Fortran

SUBROUTINE DIVSTR(IAH)
C ======================
C
C Auxiliary procedure for STARKA - determination of the division
C point between Doppler and asymptotic Stark profiles
C
C Input: BETAD - Doppler width in beta units
C Output: A - auxiliary parameter
C A=1.5*LOG(BETAD)-1.671
C DIV - only for A > 1; division point between Doppler
C and asymptotic Stark wing, expressed in units
C of betad.
C DIV = solution of equation
C exp(-(beta/betad)**2)/betad/sqrt(pi)=3*beta**-5/2
C
C He II: different definition of parameter ADH !
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'MODELQ.FOR'
PARAMETER (UNQ=1.25,UNH=1.5,TWH=2.5,FO=4.,FI=5.)
PARAMETER (CA=1.671,BL=5.821,AL=1.26,CX=0.28,DX=0.0001)
PARAMETER (CA2=0.978,XA2=0.69314718)
C
ADH=UNH*LOG(BETAD)-CA
IF(IAH.EQ.2) ADH=ADH+XA2
IF(BETAD.LT.BL) RETURN
IF(ADH.GE.AL) THEN
X=SQRT(ADH)*(UN+UNQ*LOG(ADH)/(FO*ADH-FI))
ELSE
X=SQRT(CX+ADH)
ENDIF
DO I=1,5
X2=X*X
XN=X*(UN-(X2-TWH*LOG(X)-ADH)/(TWO*X2-TWH))
IF(ABS(XN-X).LE.DX) GO TO 10
X=XN
END DO
10 DIVH=X
RETURN
END