60 lines
1.5 KiB
Fortran
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
|