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

60 lines
1.5 KiB
Fortran

subroutine entene(t,ah,anh,anpr,ane,energ,entrop)
c =================================================
c
c internal energy and entropy of atoms and ions
c
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'ATOMIC.FOR'
INCLUDE 'MODELQ.FOR'
parameter (ev2erg=1.6018d-12,
* entcon=103.973)
c
tk=bolk*t
tkk=tk*t
tkln15=1.5*log(tk)
natoms=30
energ=0.
entrop=0.
c
c hydrogen
c
call mpartf(1,1,0,t,u,dulog)
if(u.lt.2.) u=2.
if(dulog.lt.0.) dulog=0.
alm=1.5*log(amas(1))
energ=tk*dulog*anh
entrop=(tkln15-log(anh)+log(u)+alm+tkk*dulog+entcon)*anh
energ=energ+enev(1,1)*ev2erg*anpr
entrop=entrop+(tkln15-log(anpr)+alm+entcon)*anpr
c
c other species
c
xmax=2.154e4*sqrt(sqrt(t/ane))
do i=2,natoms
chip=0
do j=1,2
if(rr(i,j).gt.1.e-15) then
aden=rr(i,j)*ah
if(aden.lt.1.e-20) aden=1.e-20
call mpartf(i,j,0,t,u,dulog)
if(u.lt.un) u=un
if(dulog.lt.0.) dulog=0.
energ=energ+(chip*ev2erg+tk*dulog)*aden
entrop=entrop+(tkln15-log(aden)+log(u)+
* 1.5*log(amas(i))+tkk*dulog+entcon)*aden
end if
chip=chip+enev(i,j)
end do
end do
c
c entropy of electrons
c
c entel=tkln15-log(ane)+1.5*log(emass(99))+entcon
entel=tkln15-log(ane)-11.2622+entcon
entrop=entrop+entel*ane
entrop=entrop*bolk
C
return
end