32 1 PM, EINT, RHO, TEMP,
33 2 Z, QOLD, SESAME, SOUND,
35 4 DV2, POLD, SSP, RHO0,
40#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: NEL
54 . PM(NPROPM,*), EINT(*), (*), TEMP(*), Z(*), QOLD(*),
55 . SESAME(*), SOUND(*), (*), VOLN(MVSIZ), C(*), DV2(*), POLD(*), SSP(*),
61 INTEGER I, MX, NR, NT, IDR, IDT, IDP, IDE, IDQ
64 . espe(mvsiz), e01(mvsiz),
65 . dtde, dpdr, sph, rl, tl, zl, dxdr, zz, deltat, xlamb,
66 . stefan, opac, rossel, xkr
75 dpdm(i) = four_over_3 * pm(22,mx)
76 e01(i) =eint(i)-(pold(i)+qold(i))*dv2(i)
77 e01(i) =
max(zero,e01(i))
78 espe(i)=e01(i)/
max(em30,voln(i)*rho(i))
86 CALL mintp_re(sesame(idr),nr,sesame(idt),nt,sesame(ide),rho(i),temp(i),espe(i),dtde)
88 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idp),rho(i),temp(i),p01(i),dpdr)
90 dpdm(i)=dpdm(i)+rho0(i)*dpdr
91 sph = rho(i)/
max(em15,dtde)
102 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idq),rl,tl,zl,dxdr)
110 z(i)=exp(zl*log(ten))
115 deltat= threep44 * zep26 * log(zz) / zz
116 IF(deltat > zero)
THEN
117 deltat= one / ( one + deltat)
122 ne = rho(i)*na*zz/atom
123 xlamb = pm(36,mx)*temp(i)**three_half/sqrt(ne)
124 xlamb =
max(one,xlamb)
125 xlamb =
max(em10, log(xlamb))
126 xk(i) = zep4*deltat*pm(35,mx) * temp(i)**twop5 / (zz*xlamb)
128 IF(stefan > zero.AND.temp(i) >= ep04)
THEN
131 idr = nint(pm(50,mx))
136 CALL mintp_rt(sesame(idr),nr,sesame(idt),nt,sesame(idq),rl,tl,opac,dxdr)
138 rossel = one / ( rho(i) * opac)
139 xkr = sixteen * stefan * temp(i)**3 * rossel * third
142 xk(i) =
min(xk(i),pm(51,mx))
149 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
subroutine sesa20(pm, eint, rho, temp, z, qold, sesame, sound, xk, voln, mat, c, dv2, pold, ssp, rho0, p01, nel)