34
35
36
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "param_c.inc"
45
46
47
48 INTEGER, INTENT(IN) :: NEL
49 INTEGER, INTENT(IN) :: NFT
50 INTEGER MAT(*)
52 . rho(*), t(*), xk(*), pm(npropm,*),
sesame(*), z(*)
53
54
55
56 INTEGER I, J, MX, NR, NT, IDR, IDT, IDQ
58 . zz, deltat, xlamb, stefan, rl, tl, opac, dxdr, rossel, xkr
59 real*8 ne, na, atom
60
61 DATA na /6.0225e+23/
62
63
64
65
66 DO i=1,nel
67 j=i+nft
68 mx = mat(i)
70 deltat= threep44 * zep26 * log(zz) / zz
71 IF(deltat>zero)THEN
72 deltat= one / ( one + deltat)
73 ELSE
74 deltat= zero
75 ENDIF
76 atom = pm(37,mx)
77 ne = rho(i)*na*zz/atom
78 xlamb = pm(36,mx)*t(i)**three_half/sqrt(ne)
79 xlamb =
max(one,xlamb)
80 xlamb =
max(em10, log(xlamb))
81 xk(j) = xk(j) + zep4*deltat*pm(35,mx)*t(i)**twop5 / (zz*xlamb)
82 ENDDO
83
84
85
86
87 DO i=1,nel
88 j=i+nft
89 mx = mat(i)
90 stefan = pm(51,mx)
91 IF(stefan>zero.AND.t(i)>ep04)THEN
92 nr = nint(pm(48,mx))
93 nt = nint(pm(49,mx))
94 idr = nint(pm(50,mx))
95 idt = idr + nr
96 idq = idt + nt
97 rl = log10(rho(i))
98 tl = log10(t(i))
101 opac = ten**opac
102 rossel = one / ( rho(i) * opac)
103 xkr = sixteen * stefan * t(i)**3 * rossel * third
104 xk(j) = xk(j) + xkr
105 ENDIF
106 xk(j) =
min(xk(j),pm(52,mx))
107 ENDDO
108
109 RETURN
subroutine mintp_rt(xx, nx, yy, ny, zz, x, y, z, dzdx)
subroutine sesame(iflag, nel, pm, off, eint, rho, rho0, espe, dvol, mat, pnew, dpdm, dpde, theta, bufmat)