1 subroutine neo_helena(fcirc, te, ti, zzne, z, f, q, r, eps, zdne, dte, &
2 dti, znue, znui, sigspitz, signeo, zjbt, hjbt)
14 real(r8),
intent(in) :: fcirc
15 real(r8),
intent(in) :: zzne, zdne
16 real(r8),
intent(in) :: z, q, r, f, eps
17 real(r8),
intent(in) :: te, ti, dte, dti
19 real(r8),
intent(out) :: znue, znui
20 real(r8),
intent(out) :: sigspitz, signeo
21 real(r8),
intent(out) :: zjbt, hjbt
23 real(r8) :: ft, rpe, znz
24 real(r8) :: zne, zni, zdni, dni
26 real(r8) :: f33tef, f31tef, f32tefe, f32tefi, f32ee, f32ei, f34tef
28 real(r8) :: zl31, zl32, zl34
29 real(r8) :: a0, anu,
p
30 real(r8) :: xx, dx, alfai, etai
31 real(r8) :: a1, a2e, a2i
32 real(r8) :: hl31, hl32
43 zle = 31.3_r8 - log(sqrt(zne) / te)
44 zli = 30.0_r8 - log(z**3 * sqrt(zni) / ti**1.5_r8)
47 znue = 6.921e-18_r8 * q * r * zne * z * zle / (te**2 * eps**1.5_r8)
48 znui = 4.90e-18_r8 * q * r * zni * z**4 * zli / (ti**2 * eps**1.5_r8)
50 f33tef = ft / (1._r8 + (0.55_r8 - 0.1_r8 * ft) * sqrt(znue) &
51 + 0.45_r8 * (1._r8 - ft) * znue / z**1.5_r8)
53 znz = 0.58_r8 + 0.74_r8 / (0.76_r8 + z)
55 sigspitz = 1.9012e4_r8 * te**1.5_r8 / (z * znz * zle)
58 signeo = 1._r8 - (1._r8 + 0.36_r8 / z) * x + 0.59_r8 / z * x &
59 * x - 0.23_r8 / z * x**3
60 signeo = signeo * sigspitz
62 f31tef = ft / (1._r8 + (1._r8 - 0.1_r8 * ft) * sqrt(znue) &
63 + 0.5_r8 * (1._r8 - ft) * znue / z)
66 zl31 = (1._r8 + 1.4_r8 / (z + 1._r8)) * x - 1.9_r8 / (z &
67 + 1._r8) * x * x + 0.3_r8 / (z + 1._r8) * x**3 + 0.2_r8 &
70 f32tefe = ft / (1._r8 + 0.26_r8 * (1._r8 - ft) * sqrt(znue) &
71 + 0.18_r8 * (1._r8 - 0.37_r8 * ft) * znue / sqrt(z))
73 f32tefi = ft / (1._r8 + (1._r8 + 0.6_r8 * ft) * sqrt(znue) &
74 + 0.85_r8 * (1._r8 - 0.37_r8 * ft) * znue * (1._r8 + z))
77 f32ee = (0.05_r8 + 0.62_r8 * z) / (z * (1._r8 + 0.44_r8 * z)) &
78 * (x - x**4) + 1._r8 / (1._r8 + 0.22_r8 * z) * (x**2 - x**4 &
79 - 1.2_r8 * (x**3 - x**4)) + 1.2_r8 / (1._r8 + 0.5_r8 * z) &
83 f32ei = -(0.56_r8 + 1.93_r8 * z) / (z * (1._r8 + 0.44_r8 * z)) &
84 * (y - y**4) + 4.95_r8 / (1._r8 + 2.48_r8 * z) * (y**2 - y**4 &
85 - 0.55_r8 * (y**3 - y**4)) - 1.2_r8 / (1._r8 + 0.5_r8 * z) &
90 f34tef = ft / (1._r8 + (1._r8 - 0.1_r8 * ft) * sqrt(znue) &
91 + 0.5_r8 * (1._r8 - 0.5_r8 * ft) * znue / z)
93 a0 = -1.17_r8 * (1._r8 - ft) / (1._r8 - 0.22_r8 * ft &
98 anu = ((a0 + 0.25_r8 * (1._r8 - ft * ft) * sqrt(znui)) / (1._r8 &
99 + 0.5_r8 * sqrt(znui)) + 0.315_r8 * znui**2 * ft**6) / (1._r8 &
100 + 0.15_r8 * znui**2 * ft**6)
103 zl34 = (1._r8 + 1.4_r8 / (z + 1._r8)) * x - 1.9_r8 / (z &
104 + 1._r8) * x * x + 0.3_r8 / (z + 1._r8) * x**3 + 0.2_r8 &
107 p = (zni * ti + zne * te) * 1.602e-19_r8
108 zjbt = -f *
p * (zl31 * dni / zni + rpe * (zl31 + zl32) * dte &
109 / te + (1._r8 - rpe) * (1._r8 + zl34 / zl31 * anu) * zl31 * dti / ti)
112 xx = (1._r8 - fcirc) / fcirc
114 dx = 1.414_r8 * z + z * z + xx * (0.754_r8 + 2.657_r8 * z &
115 + 2._r8 * z * z) + xx * xx * (0.348_r8 + 1.243_r8 * z + z * z)
117 alfai = -1.172_r8 / (1._r8 + 0.462_r8 * xx)
119 if (dni /= 0._r8)
then
120 etai = (dte / te) / (dni / zni)
125 a1 = (dni * (te + ti) + zni * (dte + dti)) * 1.6022e-19_r8
127 a2e = etai / (1._r8 + etai) * z / (z + 1._r8) * a1
130 hl31 = f * xx * (0.754_r8 + 2.210_r8 * z + z * z + xx &
131 * (0.348_r8 + 1.243_r8 * z + z * z)) / dx
133 hl32 = -f * xx * (0.884_r8 + 2.074_r8 * z) / dx
135 hjbt = -hl31 * (a1 + alfai / z * a2i) - hl32 * a2e
subroutine neo_helena(fcirc, te, ti, zzne, z, f, q, r, eps, zdne, dte, dti, znue, znui, sigspitz, signeo, zjbt, hjbt)
real(r8) function p(a, x, xr, xs, yr, ys, psi, psir, F_dia)