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

63 lines
1.6 KiB
Fortran

SUBROUTINE GFREE0(ID)
C =====================
C
C depth-dependent quantities for the hydrogenic free-free Gaunt factor
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'MODELQ.FOR'
PARAMETER (THET0=5.0404D3,
* THET1=UN/THET0,
* A0=1.0823d0,
* B0=2.98D-2,
* C0=6.70D-3,
* D0=1.12D-2,
* A1=3.9999187d-3,
* B1=-7.8622889d-5,
* C1=1.070192d0,
* A2=6.4628601d-2,
* B2=-6.1953813d-4,
* C2=2.6061249d-1,
* A3=3.7542343d-2,
* B3=1.3983474d-5,
* C3=5.7917786d-1,
* A4=3.4169006d-1,
* B4=1.1852264d-2,
* XMIN=0.2D0,
* XMINI=UN/XMIN,
* THMIN=4.0D-2)
C
T=TEMP(ID)
THET=UN/MAX(THET0/T,THMIN)
GF0(ID)=(A0+B0*THET)
GF1(ID)=(A1+B1*THET)*THET+C1
GF2(ID)=(A2+B2*THET)*THET+C2
GF3(ID)=(A3+B3*THET)*THET+C3
GF4(ID)=A4+B4*THET
GF5(ID)=C0+D0*THET
GF6(ID)=GF0(ID)+GF5(ID)*XMINI
C
C auxiliary quantities for derivatives
C
THT=THET0/T
IF(THT.GE.THMIN) THEN
THET=THT
GF0D(ID)=B0*THET1
GF1D(ID)=(A1+B1*THET*TWO)*THET1
GF2D(ID)=(A2+B2*THET*TWO)*THET1
GF3D(ID)=(A3+B3*THET*TWO)*THET1
GF4D(ID)=B4*THET1
GF5D(ID)=D0*THET1
GF6D(ID)=GF0D(ID)+GF5D(ID)*XMINI
ELSE
GF0D(ID)=0.
GF1D(ID)=0.
GF2D(ID)=0.
GF3D(ID)=0.
GF4D(ID)=0.
GF5D(ID)=0.
GF6D(ID)=0.
END IF
RETURN
END