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

41 lines
2.4 KiB
Fortran

FUNCTION UBETA(BETA)
C =====================
C
C **********************************************************************
C ***
C *** CALLED BY: SUBROUTINE PROFSP
C *** CALLS: SUBROUTINE LAGRAN
C ***
C *** Interpolation of function U(beta) in table from Dien (ApJ 109,452)
C ***
C **********************************************************************
INCLUDE 'IMPLIC.FOR'
C
DIMENSION B0(46),U0(46)
C
DATA (B0(I),U0(I),I= 1,46) /
1 0.0,.287,0.1,.286,0.2,.283,0.3,.278,0.4,.271,0.5,.262,0.6,.252,
1 0.7,.240,0.8,.228,0.9,.215,1.0,.202,1.1,.188,1.2,.174,1.3,.161,
1 1.4,.148,1.5,.135,1.6,.124,1.7,.113,1.8,.1024,1.9,.0928,
1 2.0,.0839,2.1,.0758,2.2,.0684,2.3,.0617,2.4,.0557,2.5,.0502,
1 2.6,.0454,2.7,.0411,2.8,.0373,2.9,.0338,3.0,.0310,3.2,.0260,
1 3.4,.0220,3.6,.0187,3.8,.0160,4.0,.0238,4.2,.0120,4.4,.0104,
1 4.6,.0091,4.8,.0080,5.0,.0071,6.0,.0041,7.0,.0027,8.0,.0018,
1 9.0,.0014,10.0,.0011/
C
C *** asymptotic value
C
IF(BETA.GT.10.) THEN
UBETA=0.2992*BETA**(-2.5)
ELSE
C *** Interpolation
C
DO I=3,46
IF (BETA.LT.B0(I)) GO TO 2
END DO
2 CALL LAGRAN (B0(I-2),B0(I-1),B0(I),U0(I-2),U0(I-1),
* U0(I), BETA,UBETA)
END IF
RETURN
END