18 real(kind=realtype),
dimension(3),
intent(in) :: frac
19 real(kind=realtype),
dimension(3) :: fracd
20 real(kind=realtype),
dimension(8) :: weights
21 real(kind=realtype),
dimension(8) :: weightsd
22 real(kind=realtype) :: tempd
23 tempd = (
one-frac(1))*weightsd(7)
25 fracd(2) = fracd(2) + frac(1)*frac(3)*weightsd(8) + frac(3)*tempd
26 fracd(3) = fracd(3) + frac(1)*frac(2)*weightsd(8) + frac(2)*tempd
27 tempd = (
one-frac(2))*weightsd(6)
28 fracd(1) = fracd(1) + frac(2)*frac(3)*weightsd(8) + frac(3)*tempd - &
29 & frac(2)*frac(3)*weightsd(7)
32 fracd(3) = fracd(3) + frac(1)*tempd
33 tempd = (
one-frac(2))*weightsd(5)
34 fracd(1) = fracd(1) - frac(3)*tempd
35 fracd(3) = fracd(3) + (
one-frac(1))*tempd - frac(1)*frac(2)*weightsd&
36 & (4) - (
one-frac(1))*frac(2)*weightsd(3) - frac(1)*(
one-frac(2))*&
37 & weightsd(2) - (
one-frac(1))*(
one-frac(2))*weightsd(1)
38 tempd = (
one-frac(3))*weightsd(4)
39 fracd(2) = fracd(2) + frac(1)*tempd - frac(1)*frac(3)*weightsd(6) - &
40 & (
one-frac(1))*frac(3)*weightsd(5)
44 fracd(1) = fracd(1) + frac(2)*tempd
45 tempd = (
one-frac(3))*weightsd(3)
47 fracd(1) = fracd(1) - frac(2)*tempd
48 fracd(2) = fracd(2) + (
one-frac(1))*tempd
49 tempd = (
one-frac(3))*weightsd(2)
51 fracd(1) = fracd(1) + (
one-frac(2))*tempd
52 fracd(2) = fracd(2) - frac(1)*tempd
53 tempd = (
one-frac(3))*weightsd(1)
55 fracd(1) = fracd(1) - (
one-frac(2))*tempd
56 fracd(2) = fracd(2) - (
one-frac(1))*tempd
65 real(kind=realtype),
dimension(3),
intent(in) :: frac
66 real(kind=realtype),
dimension(8),
intent(out) :: weights
67 weights(1) = (
one-frac(1))*(
one-frac(2))*(
one-frac(3))
68 weights(2) = frac(1)*(
one-frac(2))*(
one-frac(3))
69 weights(3) = (
one-frac(1))*frac(2)*(
one-frac(3))
70 weights(4) = frac(1)*frac(2)*(
one-frac(3))
71 weights(5) = (
one-frac(1))*(
one-frac(2))*frac(3)
72 weights(6) = frac(1)*(
one-frac(2))*frac(3)
73 weights(7) = (
one-frac(1))*frac(2)*frac(3)
74 weights(8) = frac(1)*frac(2)*frac(3)
80 real(kind=realtype),
dimension(3),
intent(in) :: frac
81 real(kind=realtype),
dimension(8),
intent(out) :: weights
82 weights(1) = (
one-frac(1))*(
one-frac(2))*(
one-frac(3))
83 weights(2) = frac(1)*(
one-frac(2))*(
one-frac(3))
84 weights(3) = frac(1)*frac(2)*(
one-frac(3))
85 weights(4) = (
one-frac(1))*frac(2)*(
one-frac(3))
86 weights(5) = (
one-frac(1))*(
one-frac(2))*frac(3)
87 weights(6) = frac(1)*(
one-frac(2))*frac(3)
88 weights(7) = frac(1)*frac(2)*frac(3)
89 weights(8) = (
one-frac(1))*frac(2)*frac(3)
105 real(kind=realtype),
dimension(3),
intent(in) :: xcen
106 real(kind=realtype),
dimension(3) :: xcend
107 real(kind=realtype),
dimension(3, 3, 3, 3),
intent(in) :: blk
108 real(kind=realtype),
dimension(3, 3, 3, 3) :: blkd
109 real(kind=realtype),
dimension(3),
intent(in) :: frac0
111 real(kind=realtype),
dimension(3) :: frac
112 real(kind=realtype),
dimension(3) :: fracd
114 real(kind=realtype),
dimension(3, 8) :: xn
115 real(kind=realtype),
dimension(3, 8) :: xnd
116 real(kind=realtype) :: u, v, w, uv, uw, vw, wvu, du, dv, dw
117 real(kind=realtype) :: ud, vd, wd, uvd, uwd, vwd, wvud, dud, dvd, &
119 real(kind=realtype) :: a11, a12, a13, a21, a22, a23, a31, a32, a33, &
121 real(kind=realtype) :: a11d, a12d, a13d, a21d, a22d, a23d, a31d, &
123 real(kind=realtype) :: f(3), x(3)
124 real(kind=realtype) :: fd(3), xd(3)
125 integer(kind=inttype),
dimension(8),
parameter :: indices=(/1, 2, 4&
127 integer(kind=inttype) :: i, j, k, ii, ll
128 real(kind=realtype),
parameter :: adteps=1.e-25_realtype
129 real(kind=realtype),
parameter :: thresconv=1.e-10_realtype
134 real(kind=realtype) :: x1
135 real(kind=realtype) :: x1d
136 real(kind=realtype) :: max1
137 real(kind=realtype) :: max1d
138 real(kind=realtype),
dimension(3) :: tempd
139 real(kind=realtype),
dimension(3) :: tmp
140 real(kind=realtype),
dimension(3) :: tmpd
141 real(kind=realtype) :: temp
142 real(kind=realtype) :: tempd0
143 real(kind=realtype) :: temp0
144 real(kind=realtype) :: tempd1
145 real(kind=realtype) :: temp1
146 real(kind=realtype) :: tempd2
147 real(kind=realtype) :: temp2
148 real(kind=realtype) :: tempd3
158 call pushinteger4(ii)
160 xn(:, indices(ii)) =
eighth*(blk(i, j, k, :)+blk(i+1, j, k, :)&
161 & +blk(i, j+1, k, :)+blk(i+1, j+1, k, :)+blk(i, j, k+1, :)+blk&
162 & (i+1, j, k+1, :)+blk(i, j+1, k+1, :)+blk(i+1, j+1, k+1, :))
168 tmp(:) = xn(:, i) - xn(:, 1)
176 xn(1, 7) = xn(1, 7) + xn(1, 2) + xn(1, 4) + xn(1, 5) - xn(1, 3) - xn&
178 xn(2, 7) = xn(2, 7) + xn(2, 2) + xn(2, 4) + xn(2, 5) - xn(2, 3) - xn&
180 xn(3, 7) = xn(3, 7) + xn(3, 2) + xn(3, 4) + xn(3, 5) - xn(3, 3) - xn&
182 xn(1, 3) = xn(1, 3) - xn(1, 2) - xn(1, 4)
183 xn(2, 3) = xn(2, 3) - xn(2, 2) - xn(2, 4)
184 xn(3, 3) = xn(3, 3) - xn(3, 2) - xn(3, 4)
185 xn(1, 6) = xn(1, 6) - xn(1, 2) - xn(1, 5)
186 xn(2, 6) = xn(2, 6) - xn(2, 2) - xn(2, 5)
187 xn(3, 6) = xn(3, 6) - xn(3, 2) - xn(3, 5)
188 xn(1, 8) = xn(1, 8) - xn(1, 4) - xn(1, 5)
189 xn(2, 8) = xn(2, 8) - xn(2, 4) - xn(2, 5)
190 xn(3, 8) = xn(3, 8) - xn(3, 4) - xn(3, 5)
198 newtonhexa:
do ll=1,15
205 f(1) = xn(1, 2)*u + xn(1, 4)*v + xn(1, 5)*w + xn(1, 3)*uv + xn(1, &
206 & 6)*uw + xn(1, 8)*vw + xn(1, 7)*wvu - x(1)
208 f(2) = xn(2, 2)*u + xn(2, 4)*v + xn(2, 5)*w + xn(2, 3)*uv + xn(2, &
209 & 6)*uw + xn(2, 8)*vw + xn(2, 7)*wvu - x(2)
211 f(3) = xn(3, 2)*u + xn(3, 4)*v + xn(3, 5)*w + xn(3, 3)*uv + xn(3, &
212 & 6)*uw + xn(3, 8)*vw + xn(3, 7)*wvu - x(3)
214 a11 = xn(1, 2) + xn(1, 3)*v + xn(1, 6)*w + xn(1, 7)*vw
215 a12 = xn(1, 4) + xn(1, 3)*u + xn(1, 8)*w + xn(1, 7)*uw
216 a13 = xn(1, 5) + xn(1, 6)*u + xn(1, 8)*v + xn(1, 7)*uv
217 a21 = xn(2, 2) + xn(2, 3)*v + xn(2, 6)*w + xn(2, 7)*vw
218 a22 = xn(2, 4) + xn(2, 3)*u + xn(2, 8)*w + xn(2, 7)*uw
219 a23 = xn(2, 5) + xn(2, 6)*u + xn(2, 8)*v + xn(2, 7)*uv
220 a31 = xn(3, 2) + xn(3, 3)*v + xn(3, 6)*w + xn(3, 7)*vw
221 a32 = xn(3, 4) + xn(3, 3)*u + xn(3, 8)*w + xn(3, 7)*uw
222 a33 = xn(3, 5) + xn(3, 6)*u + xn(3, 8)*v + xn(3, 7)*uv
226 val = a11*(a22*a33-a32*a23) + a21*(a13*a32-a12*a33) + a31*(a12*a23&
228 if (val .ge. 0.)
then
230 call pushcontrol1b(0)
233 call pushcontrol1b(1)
235 if (x1 .lt. adteps)
then
238 call pushcontrol1b(0)
242 call pushcontrol1b(1)
245 val = sign(
one, val)/max1
247 du = val*((a22*a33-a23*a32)*f(1)+(a13*a32-a12*a33)*f(2)+(a12*a23-&
249 dv = val*((a23*a31-a21*a33)*f(1)+(a11*a33-a13*a31)*f(2)+(a13*a21-&
251 dw = val*((a21*a32-a22*a31)*f(1)+(a12*a31-a11*a32)*f(2)+(a11*a22-&
262 val = sqrt(du*du + dv*dv + dw*dw)
263 if (val .le. thresconv)
then
266 ad_count = ad_count + 1
269 call pushcontrol1b(0)
270 call pushinteger4(ad_count)
272 100
call pushcontrol1b(1)
273 call pushinteger4(ad_count)
280 call popinteger4(ad_count)
283 call popcontrol1b(branch)
284 if (branch .eq. 0)
then
303 a21 = xn(2, 2) + xn(2, 3)*v + xn(2, 6)*w + xn(2, 7)*vw
305 a22 = xn(2, 4) + xn(2, 3)*u + xn(2, 8)*w + xn(2, 7)*uw
306 a31 = xn(3, 2) + xn(3, 3)*v + xn(3, 6)*w + xn(3, 7)*vw
307 a32 = xn(3, 4) + xn(3, 3)*u + xn(3, 8)*w + xn(3, 7)*uw
308 a11 = xn(1, 2) + xn(1, 3)*v + xn(1, 6)*w + xn(1, 7)*vw
309 a12 = xn(1, 4) + xn(1, 3)*u + xn(1, 8)*w + xn(1, 7)*uw
310 temp2 = a11*a22 - a12*a21
311 temp1 = a12*a31 - a11*a32
312 temp0 = a21*a32 - a22*a31
313 vald = (temp0*f(1)+temp1*f(2)+temp2*f(3))*dwd
316 fd(1) = fd(1) + temp0*tempd0
318 fd(2) = fd(2) + temp1*tempd0
320 fd(3) = fd(3) + temp2*tempd0
321 a11d = a22*tempd3 - a32*tempd2
322 a22d = a11*tempd3 - a31*tempd1
323 a12d = a31*tempd2 - a21*tempd3
324 a21d = a32*tempd1 - a12*tempd3
325 a31d = a12*tempd2 - a22*tempd1
326 a32d = a21*tempd1 - a11*tempd2
328 a23 = xn(2, 5) + xn(2, 6)*u + xn(2, 8)*v + xn(2, 7)*uv
329 a33 = xn(3, 5) + xn(3, 6)*u + xn(3, 8)*v + xn(3, 7)*uv
330 a13 = xn(1, 5) + xn(1, 6)*u + xn(1, 8)*v + xn(1, 7)*uv
331 temp2 = a13*a21 - a11*a23
332 temp1 = a11*a33 - a13*a31
333 temp0 = a23*a31 - a21*a33
334 vald = vald + (temp0*f(1)+temp1*f(2)+temp2*f(3))*dvd
339 a13d = a21*tempd3 - a31*tempd2
340 a21d = a21d + a13*tempd3 - a33*tempd1
341 a11d = a11d + a33*tempd2 - a23*tempd3
343 a33d = a11*tempd2 - a21*tempd1
344 a31d = a31d + a23*tempd1 - a13*tempd2
345 temp = a22*a33 - a23*a32
347 fd(1) = fd(1) + temp0*tempd0 + temp*tempd3
348 temp0 = a13*a32 - a12*a33
349 fd(2) = fd(2) + temp1*tempd0 + temp0*tempd3
350 temp1 = a12*a23 - a13*a22
351 fd(3) = fd(3) + temp2*tempd0 + temp1*tempd3
352 vald = vald + (temp*f(1)+temp0*f(2)+temp1*f(3))*dud
355 a23d = a23d + a31*tempd1 + a12*tempd2 - a32*tempd0
357 a12d = a12d + a23*tempd2 - a33*tempd1
358 a13d = a13d + a32*tempd1 - a22*tempd2
359 a22d = a22d + a33*tempd0 - a13*tempd2
360 a32d = a32d + a13*tempd1 - a23*tempd0
361 a33d = a33d + a22*tempd0 - a12*tempd1
363 max1d = -(sign(
one, val)*vald/max1**2)
364 call popcontrol1b(branch)
365 if (branch .eq. 0)
then
372 call popcontrol1b(branch)
373 if (branch .eq. 0)
then
378 wvud = xn(3, 7)*fd(3) + xn(2, 7)*fd(2) + xn(1, 7)*fd(1)
380 a11d = a11d + (a22*a33-a32*a23)*vald
382 a21d = a21d + (a13*a32-a12*a33)*vald
384 a31d = a31d + (a12*a23-a13*a22)*vald
386 a12d = a12d + a23*tempd2 - a33*tempd1
387 a23d = a23d + a12*tempd2 - a32*tempd0
388 a13d = a13d + a32*tempd1 - a22*tempd2
389 a22d = a22d + a33*tempd0 - a13*tempd2
390 a32d = a32d + a13*tempd1 - a23*tempd0
391 a33d = a33d + a22*tempd0 - a12*tempd1
392 xnd(3, 5) = xnd(3, 5) + a33d + w*fd(3)
393 xnd(3, 6) = xnd(3, 6) + u*a33d + w*a31d + uw*fd(3)
394 xnd(3, 8) = xnd(3, 8) + v*a33d + w*a32d + vw*fd(3)
395 xnd(3, 7) = xnd(3, 7) + uv*a33d + uw*a32d + vw*a31d + wvu*fd(3)
396 uvd = xn(3, 7)*a33d + xn(2, 7)*a23d + xn(1, 7)*a13d + xn(3, 3)*fd(&
397 & 3) + xn(2, 3)*fd(2) + xn(1, 3)*fd(1)
398 xnd(3, 4) = xnd(3, 4) + a32d + v*fd(3)
399 xnd(3, 3) = xnd(3, 3) + u*a32d + v*a31d + uv*fd(3)
400 uwd = xn(3, 7)*a32d + xn(2, 7)*a22d + xn(1, 7)*a12d + xn(3, 6)*fd(&
401 & 3) + xn(2, 6)*fd(2) + xn(1, 6)*fd(1)
402 ud = ud + xn(3, 6)*a33d + xn(3, 3)*a32d + xn(2, 6)*a23d + xn(2, 3)&
403 & *a22d + xn(1, 6)*a13d + xn(1, 3)*a12d + xn(3, 2)*fd(3) + xn(2, 2&
404 & )*fd(2) + xn(1, 2)*fd(1) + v*w*wvud + w*uwd + v*uvd
405 xnd(3, 2) = xnd(3, 2) + a31d + u*fd(3)
406 vwd = xn(3, 7)*a31d + xn(2, 7)*a21d + xn(1, 7)*a11d + xn(3, 8)*fd(&
407 & 3) + xn(2, 8)*fd(2) + xn(1, 8)*fd(1)
408 vd = vd + xn(3, 8)*a33d + xn(3, 3)*a31d + xn(2, 8)*a23d + xn(2, 3)&
409 & *a21d + xn(1, 8)*a13d + xn(1, 3)*a11d + xn(3, 4)*fd(3) + xn(2, 4&
410 & )*fd(2) + xn(1, 4)*fd(1) + u*w*wvud + w*vwd + u*uvd
411 wd = wd + xn(3, 8)*a32d + xn(3, 6)*a31d + xn(2, 8)*a22d + xn(2, 6)&
412 & *a21d + xn(1, 8)*a12d + xn(1, 6)*a11d + xn(3, 5)*fd(3) + xn(2, 5&
413 & )*fd(2) + xn(1, 5)*fd(1) + u*v*wvud + v*vwd + u*uwd
414 xnd(2, 5) = xnd(2, 5) + a23d + w*fd(2)
415 xnd(2, 6) = xnd(2, 6) + u*a23d + w*a21d + uw*fd(2)
416 xnd(2, 8) = xnd(2, 8) + v*a23d + w*a22d + vw*fd(2)
417 xnd(2, 7) = xnd(2, 7) + uv*a23d + uw*a22d + vw*a21d + wvu*fd(2)
418 xnd(2, 4) = xnd(2, 4) + a22d + v*fd(2)
419 xnd(2, 3) = xnd(2, 3) + u*a22d + v*a21d + uv*fd(2)
420 xnd(2, 2) = xnd(2, 2) + a21d + u*fd(2)
421 xnd(1, 5) = xnd(1, 5) + a13d + w*fd(1)
422 xnd(1, 6) = xnd(1, 6) + u*a13d + w*a11d + uw*fd(1)
423 xnd(1, 8) = xnd(1, 8) + v*a13d + w*a12d + vw*fd(1)
424 xnd(1, 7) = xnd(1, 7) + uv*a13d + uw*a12d + vw*a11d + wvu*fd(1)
425 xnd(1, 4) = xnd(1, 4) + a12d + v*fd(1)
426 xnd(1, 3) = xnd(1, 3) + u*a12d + v*a11d + uv*fd(1)
427 xnd(1, 2) = xnd(1, 2) + a11d + u*fd(1)
429 xd(3) = xd(3) - fd(3)
432 xd(2) = xd(2) - fd(2)
435 xd(1) = xd(1) - fd(1)
438 xnd(3, 4) = xnd(3, 4) + xnd(3, 7) - xnd(3, 8) - xnd(3, 3)
439 xnd(3, 5) = xnd(3, 5) + xnd(3, 7) - xnd(3, 8) - xnd(3, 6)
440 xnd(2, 4) = xnd(2, 4) + xnd(2, 7) - xnd(2, 8) - xnd(2, 3)
441 xnd(2, 5) = xnd(2, 5) + xnd(2, 7) - xnd(2, 8) - xnd(2, 6)
442 xnd(1, 4) = xnd(1, 4) + xnd(1, 7) - xnd(1, 8) - xnd(1, 3)
443 xnd(1, 5) = xnd(1, 5) + xnd(1, 7) - xnd(1, 8) - xnd(1, 6)
444 xnd(3, 2) = xnd(3, 2) + xnd(3, 7) - xnd(3, 6) - xnd(3, 3)
445 xnd(2, 2) = xnd(2, 2) + xnd(2, 7) - xnd(2, 6) - xnd(2, 3)
446 xnd(1, 2) = xnd(1, 2) + xnd(1, 7) - xnd(1, 6) - xnd(1, 3)
447 xnd(3, 3) = xnd(3, 3) - xnd(3, 7)
448 xnd(3, 6) = xnd(3, 6) - xnd(3, 7)
449 xnd(3, 8) = xnd(3, 8) - xnd(3, 7)
450 xnd(2, 3) = xnd(2, 3) - xnd(2, 7)
451 xnd(2, 6) = xnd(2, 6) - xnd(2, 7)
452 xnd(2, 8) = xnd(2, 8) - xnd(2, 7)
453 xnd(1, 3) = xnd(1, 3) - xnd(1, 7)
454 xnd(1, 6) = xnd(1, 6) - xnd(1, 7)
455 xnd(1, 8) = xnd(1, 8) - xnd(1, 7)
458 xnd(:, 1) = xnd(:, 1) - xd
462 xnd(:, 1) = xnd(:, 1) - tmpd
467 tempd =
eighth*xnd(:, indices(ii))
468 xnd(:, indices(ii)) = 0.0_8
469 blkd(i, j, k, :) = blkd(i, j, k, :) + tempd
470 blkd(i+1, j, k, :) = blkd(i+1, j, k, :) + tempd
471 blkd(i, j+1, k, :) = blkd(i, j+1, k, :) + tempd
472 blkd(i+1, j+1, k, :) = blkd(i+1, j+1, k, :) + tempd
473 blkd(i, j, k+1, :) = blkd(i, j, k+1, :) + tempd
474 blkd(i+1, j, k+1, :) = blkd(i+1, j, k+1, :) + tempd
475 blkd(i, j+1, k+1, :) = blkd(i, j+1, k+1, :) + tempd
476 blkd(i+1, j+1, k+1, :) = blkd(i+1, j+1, k+1, :) + tempd
492 real(kind=realtype),
dimension(3),
intent(in) :: xcen
493 real(kind=realtype),
dimension(3, 3, 3, 3),
intent(in) :: blk
494 real(kind=realtype),
dimension(3),
intent(in) :: frac0
496 real(kind=realtype),
dimension(3),
intent(out) :: frac
498 real(kind=realtype),
dimension(3, 8) :: xn
499 real(kind=realtype) :: u, v, w, uv, uw, vw, wvu, du, dv, dw
500 real(kind=realtype) :: a11, a12, a13, a21, a22, a23, a31, a32, a33, &
502 real(kind=realtype) :: f(3), x(3)
503 integer(kind=inttype),
dimension(8),
parameter :: indices=(/1, 2, 4&
505 integer(kind=inttype) :: i, j, k, ii, ll
506 real(kind=realtype),
parameter :: adteps=1.e-25_realtype
507 real(kind=realtype),
parameter :: thresconv=1.e-10_realtype
512 real(kind=realtype) :: x1
513 real(kind=realtype) :: max1
521 xn(:, indices(ii)) =
eighth*(blk(i, j, k, :)+blk(i+1, j, k, :)&
522 & +blk(i, j+1, k, :)+blk(i+1, j+1, k, :)+blk(i, j, k+1, :)+blk&
523 & (i+1, j, k+1, :)+blk(i, j+1, k+1, :)+blk(i+1, j+1, k+1, :))
529 xn(:, i) = xn(:, i) - xn(:, 1)
536 xn(1, 7) = xn(1, 7) + xn(1, 2) + xn(1, 4) + xn(1, 5) - xn(1, 3) - xn&
538 xn(2, 7) = xn(2, 7) + xn(2, 2) + xn(2, 4) + xn(2, 5) - xn(2, 3) - xn&
540 xn(3, 7) = xn(3, 7) + xn(3, 2) + xn(3, 4) + xn(3, 5) - xn(3, 3) - xn&
542 xn(1, 3) = xn(1, 3) - xn(1, 2) - xn(1, 4)
543 xn(2, 3) = xn(2, 3) - xn(2, 2) - xn(2, 4)
544 xn(3, 3) = xn(3, 3) - xn(3, 2) - xn(3, 4)
545 xn(1, 6) = xn(1, 6) - xn(1, 2) - xn(1, 5)
546 xn(2, 6) = xn(2, 6) - xn(2, 2) - xn(2, 5)
547 xn(3, 6) = xn(3, 6) - xn(3, 2) - xn(3, 5)
548 xn(1, 8) = xn(1, 8) - xn(1, 4) - xn(1, 5)
549 xn(2, 8) = xn(2, 8) - xn(2, 4) - xn(2, 5)
550 xn(3, 8) = xn(3, 8) - xn(3, 4) - xn(3, 5)
557 newtonhexa:
do ll=1,15
563 f(1) = xn(1, 2)*u + xn(1, 4)*v + xn(1, 5)*w + xn(1, 3)*uv + xn(1, &
564 & 6)*uw + xn(1, 8)*vw + xn(1, 7)*wvu - x(1)
565 f(2) = xn(2, 2)*u + xn(2, 4)*v + xn(2, 5)*w + xn(2, 3)*uv + xn(2, &
566 & 6)*uw + xn(2, 8)*vw + xn(2, 7)*wvu - x(2)
567 f(3) = xn(3, 2)*u + xn(3, 4)*v + xn(3, 5)*w + xn(3, 3)*uv + xn(3, &
568 & 6)*uw + xn(3, 8)*vw + xn(3, 7)*wvu - x(3)
570 a11 = xn(1, 2) + xn(1, 3)*v + xn(1, 6)*w + xn(1, 7)*vw
571 a12 = xn(1, 4) + xn(1, 3)*u + xn(1, 8)*w + xn(1, 7)*uw
572 a13 = xn(1, 5) + xn(1, 6)*u + xn(1, 8)*v + xn(1, 7)*uv
573 a21 = xn(2, 2) + xn(2, 3)*v + xn(2, 6)*w + xn(2, 7)*vw
574 a22 = xn(2, 4) + xn(2, 3)*u + xn(2, 8)*w + xn(2, 7)*uw
575 a23 = xn(2, 5) + xn(2, 6)*u + xn(2, 8)*v + xn(2, 7)*uv
576 a31 = xn(3, 2) + xn(3, 3)*v + xn(3, 6)*w + xn(3, 7)*vw
577 a32 = xn(3, 4) + xn(3, 3)*u + xn(3, 8)*w + xn(3, 7)*uw
578 a33 = xn(3, 5) + xn(3, 6)*u + xn(3, 8)*v + xn(3, 7)*uv
582 val = a11*(a22*a33-a32*a23) + a21*(a13*a32-a12*a33) + a31*(a12*a23&
584 if (val .ge. 0.)
then
589 if (x1 .lt. adteps)
then
594 val = sign(
one, val)/max1
596 du = val*((a22*a33-a23*a32)*f(1)+(a13*a32-a12*a33)*f(2)+(a12*a23-&
598 dv = val*((a23*a31-a21*a33)*f(1)+(a11*a33-a13*a31)*f(2)+(a13*a21-&
600 dw = val*((a21*a32-a22*a31)*f(1)+(a12*a31-a11*a32)*f(2)+(a11*a22-&
607 val = sqrt(du*du + dv*dv + dw*dw)
608 if (val .le. thresconv)
goto 100
real(kind=realtype), parameter eighth
real(kind=realtype), parameter one
subroutine fractoweights(frac, weights)
subroutine fractoweights_b(frac, fracd, weights, weightsd)
subroutine newtonupdate(xcen, blk, frac0, frac)
subroutine newtonupdate_b(xcen, xcend, blk, blkd, frac0, frac, fracd)
subroutine fractoweights2(frac, weights)