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

30 lines
745 B
Fortran

SUBROUTINE PARTDV(TEMP,DNE,Z,NLEV,NE,GEE,ENRGY,S,U)
C ===================================================
C
INCLUDE 'PARAMS.FOR'
DIMENSION GEE(*),ENRGY(*),S(*)
INTEGER NE(*)
U=0.0
ET=TEMP/11604.8
P=(14.69D0-0.20-0.6667*LOG10(DNE))
C
DO 10 I=1,NLEV
U1=FLOAT(NE(I))
ZSTAR=Z-S(I)
IF (ZSTAR.GT.0)THEN
W=P+4.*LOG10(ZSTAR)-4.*LOG10(U1)
ELSE
W=0.0
ENDIF
IF (W.GT.1.) W=1.
C
IF ((ENRGY(I)/ET).LT.65.0) THEN
U1=GEE(I)*W*EXP(-ENRGY(I)/ET)
ELSE
U1=0.0
ENDIF
U=U+U1
10 CONTINUE
RETURN
END