35 lines
1.1 KiB
Fortran
35 lines
1.1 KiB
Fortran
SUBROUTINE DIVSTR(A,DIV)
|
|
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
|
|
INCLUDE 'PARAMS.FOR'
|
|
PARAMETER (UN=1.,TWO=2.,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)
|
|
C
|
|
A=UNH*LOG(BETAD)-CA
|
|
IF(BETAD.LT.BL) RETURN
|
|
IF(A.GE.AL) THEN
|
|
X=SQRT(A)*(UN+UNQ*LOG(A)/(FO*A-FI))
|
|
ELSE
|
|
X=SQRT(CX+A)
|
|
ENDIF
|
|
DO I=1,5
|
|
XN=X*(UN-(X*X-TWH*LOG(X)-A)/(TWO*X*X-TWH))
|
|
IF(ABS(XN-X).LE.DX) GO TO 20
|
|
X=XN
|
|
END DO
|
|
20 DIV=X
|
|
RETURN
|
|
END
|