44 lines
1.4 KiB
Fortran
44 lines
1.4 KiB
Fortran
subroutine electra(ro,t,ye,ee,pe,se
|
|
a ,eer,eet,per,pet,ser,set,keyps)
|
|
implicit real*8 (a-h,o-z)
|
|
common /nunu/ nu,dnudr,dnudb,eta,detadnu,nup
|
|
data facen,facpr,facs,rg /2.037300d+24,1.358200d+24,1.686304d-10
|
|
1,8.314339d+07/
|
|
data a1,a2,a3,a4 /2.059815d-03,-7.027778d-03
|
|
1,4.219747d-02,-1.132427d+00/
|
|
beta=facs*t
|
|
b32=b12*beta
|
|
u=(f62/f52)**2
|
|
dudnu=2.0d0*u*(df62/f62-df52/f52)
|
|
x=beta*u
|
|
f=1.0d0+x*(2.5d0+x*(2.0d0+0.5d0*x))
|
|
df=2.5d0+x*(4.0d0+1.5d0*x)
|
|
dfdb=u*df
|
|
fi32=f32+(f-1.0d0)*f52/u
|
|
dfidnu=dfidu*dudnu+df32+(f-1.0d0)*df52/u
|
|
dfidb=dfdb*f52/u
|
|
dfidbet=dfidb+dfidnu*dnudb
|
|
gs=sqrt(g)
|
|
dg=0.75d0*gs
|
|
dgdb=u*dg
|
|
dgdu=beta*dg
|
|
gi32=f32+(g-1.0d0)*f52/u
|
|
dgidu=(u*dgdu-g+1.0d0)*f52/us
|
|
dgidnu=dgidu*dudnu+df32+(g-1.0d0)*df52/u
|
|
dgidb=dgdb*f52/u
|
|
dgidbet=dgidb+dgidnu*dnudb
|
|
dgidroe=dgidnu*dnudr
|
|
em=facen*b52*fi32
|
|
demdbet=facen*b32*(2.5d0*fi32+beta*dfidbet)
|
|
dpmdbet=facpr*b32*(2.5d0*gi32+beta*dgidbet)
|
|
demdroe=facen*b52*dfidroe
|
|
dpmdroe=facpr*b52*dgidroe
|
|
call divine(nup,fp12,dfp12,s12)
|
|
s42=2.0d0
|
|
call divine(nup,fp42,dfp42,s42)
|
|
eer=(ye*(demdroe+depdroe)-(em+ep)/ro)/ro
|
|
eet=facs*(demdbet+depdbet)/ro
|
|
per=ye*(dpmdroe+dppdroe)
|
|
pet=facs*(dpmdbet+dppdbet)
|
|
end
|