21 integer(kind=kint) :: N
22 real(kind=
kreal),
pointer :: dlu0(:) => null()
23 real(kind=
kreal),
pointer :: allu0(:) => null()
24 real(kind=
kreal),
pointer :: aulu0(:) => null()
25 integer(kind=kint),
pointer :: inumFI1L(:) => null()
26 integer(kind=kint),
pointer :: inumFI1U(:) => null()
27 integer(kind=kint),
pointer :: FI1L(:) => null()
28 integer(kind=kint),
pointer :: FI1U(:) => null()
29 real(kind=
kreal),
pointer :: alu(:) => null()
36 integer(kind=kint ) :: np, npu, npl
37 integer(kind=kint ) :: precond
38 real (kind=
kreal) :: sigma_diag
40 real(kind=
kreal),
pointer :: d(:)
41 real(kind=
kreal),
pointer :: al(:)
42 real(kind=
kreal),
pointer :: au(:)
44 integer(kind=kint ),
pointer :: inl(:), inu(:)
45 integer(kind=kint ),
pointer :: ial(:)
46 integer(kind=kint ),
pointer :: iau(:)
48 real (kind=
kreal):: alutmp(6,6)
49 integer(kind=kint ):: ip
65 if (precond.eq.10)
call form_ilu0_66 &
66 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
68 if (precond.eq.11)
call form_ilu1_66 &
69 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
71 if (precond.eq.12)
call form_ilu2_66 &
72 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
79 & dlu0(36*ip-35), dlu0(36*ip-34), dlu0(36*ip-33), dlu0(36*ip-32),&
80 & dlu0(36*ip-31), dlu0(36*ip-30), dlu0(36*ip-29), dlu0(36*ip-28),&
81 & dlu0(36*ip-27), dlu0(36*ip-26), dlu0(36*ip-25), dlu0(36*ip-24),&
82 & dlu0(36*ip-23), dlu0(36*ip-22), dlu0(36*ip-21), dlu0(36*ip-20),&
83 & dlu0(36*ip-19), dlu0(36*ip-18), dlu0(36*ip-17), dlu0(36*ip-16),&
84 & dlu0(36*ip-15), dlu0(36*ip-14), dlu0(36*ip-13), dlu0(36*ip-12),&
85 & dlu0(36*ip-11), dlu0(36*ip-10), dlu0(36*ip-9 ), dlu0(36*ip-8 ),&
86 & dlu0(36*ip-7), dlu0(36*ip-6), dlu0(36*ip-5), dlu0(36*ip-4),&
87 & dlu0(36*ip-3), dlu0(36*ip-2), dlu0(36*ip-1), dlu0(36*ip ))
88 alu(36*ip-35)= alutmp(1,1)
89 alu(36*ip-34)= alutmp(1,2)
90 alu(36*ip-33)= alutmp(1,3)
91 alu(36*ip-32)= alutmp(1,4)
92 alu(36*ip-31)= alutmp(1,5)
93 alu(36*ip-30)= alutmp(1,6)
94 alu(36*ip-29)= alutmp(2,1)
95 alu(36*ip-28)= alutmp(2,2)
96 alu(36*ip-27)= alutmp(2,3)
97 alu(36*ip-26)= alutmp(2,4)
98 alu(36*ip-25)= alutmp(2,5)
99 alu(36*ip-24)= alutmp(2,6)
100 alu(36*ip-23)= alutmp(3,1)
101 alu(36*ip-22)= alutmp(3,2)
102 alu(36*ip-21)= alutmp(3,3)
103 alu(36*ip-20)= alutmp(3,4)
104 alu(36*ip-19)= alutmp(3,5)
105 alu(36*ip-18)= alutmp(3,6)
106 alu(36*ip-17)= alutmp(4,1)
107 alu(36*ip-16)= alutmp(4,2)
108 alu(36*ip-15)= alutmp(4,3)
109 alu(36*ip-14)= alutmp(4,4)
110 alu(36*ip-13)= alutmp(4,5)
111 alu(36*ip-12)= alutmp(4,6)
112 alu(36*ip-11)= alutmp(5,1)
113 alu(36*ip-10)= alutmp(5,2)
114 alu(36*ip-9 )= alutmp(5,3)
115 alu(36*ip-8 )= alutmp(5,4)
116 alu(36*ip-7 )= alutmp(5,5)
117 alu(36*ip-6 )= alutmp(5,6)
118 alu(36*ip-5 )= alutmp(6,1)
119 alu(36*ip-4 )= alutmp(6,2)
120 alu(36*ip-3 )= alutmp(6,3)
121 alu(36*ip-2 )= alutmp(6,4)
122 alu(36*ip-1 )= alutmp(6,5)
123 alu(36*ip )= alutmp(6,6)
129 real(kind=
kreal),
intent(inout) :: ww(:)
130 integer(kind=kint) :: i, j, isl, iel, isu, ieu, k
131 real(kind=
kreal) :: sw1, sw2, sw3, x1, x2, x3
132 real(kind=
kreal) :: sw4, sw5, sw6, x4, x5, x6
153 sw1= sw1 -allu0(36*j-35)*x1-allu0(36*j-34)*x2-allu0(36*j-33)*x3-allu0(36*j-32)*x4-allu0(36*j-31)*x5-allu0(36*j-30)*x6
154 sw2= sw2 -allu0(36*j-29)*x1-allu0(36*j-28)*x2-allu0(36*j-27)*x3-allu0(36*j-26)*x4-allu0(36*j-25)*x5-allu0(36*j-24)*x6
155 sw3= sw3 -allu0(36*j-23)*x1-allu0(36*j-22)*x2-allu0(36*j-21)*x3-allu0(36*j-20)*x4-allu0(36*j-19)*x5-allu0(36*j-18)*x6
156 sw4= sw4 -allu0(36*j-17)*x1-allu0(36*j-16)*x2-allu0(36*j-15)*x3-allu0(36*j-14)*x4-allu0(36*j-13)*x5-allu0(36*j-12)*x6
157 sw5= sw5 -allu0(36*j-11)*x1-allu0(36*j-10)*x2-allu0(36*j-9 )*x3-allu0(36*j-8 )*x4-allu0(36*j-7 )*x5-allu0(36*j-6 )*x6
158 sw6= sw6 -allu0(36*j-5 )*x1-allu0(36*j-4 )*x2-allu0(36*j-3 )*x3-allu0(36*j-2 )*x4-allu0(36*j-1 )*x5-allu0(36*j )*x6
167 x2= x2 -alu(36*i-29)*x1
168 x3= x3 -alu(36*i-23)*x1 -alu(36*i-22)*x2
169 x4= x4 -alu(36*i-17)*x1 -alu(36*i-16)*x2 -alu(36*i-15)*x3
170 x5= x5 -alu(36*i-11)*x1 -alu(36*i-10)*x2 -alu(36*i-9 )*x3 -alu(36*i-8)*x4
171 x6= x6 -alu(36*i-5 )*x1 -alu(36*i-4 )*x2 -alu(36*i-3 )*x3 -alu(36*i-2)*x4 -alu(36*i-1)*x5
173 x5= alu(36*i-7 )*( x5 -alu(36*i-6 )*x6 )
174 x4= alu(36*i-14)*( x4 -alu(36*i-12)*x6 -alu(36*i-13)*x5)
175 x3= alu(36*i-21)*( x3 -alu(36*i-18)*x6 -alu(36*i-19)*x5 -alu(36*i-20)*x4)
176 x2= alu(36*i-28)*( x2 -alu(36*i-24)*x6 -alu(36*i-25)*x5 -alu(36*i-26)*x4 -alu(36*i-27)*x3)
177 x1= alu(36*i-35)*( x1 -alu(36*i-30)*x6 -alu(36*i-31)*x5 -alu(36*i-32)*x4 -alu(36*i-33)*x3 -alu(36*i-34)*x2)
190 isu= inumfi1u(i-1) + 1
206 sw1= sw1 +aulu0(36*j-35)*x1+aulu0(36*j-34)*x2+aulu0(36*j-33)*x3+aulu0(36*j-32)*x4+aulu0(36*j-31)*x5+aulu0(36*j-30)*x6
207 sw2= sw2 +aulu0(36*j-29)*x1+aulu0(36*j-28)*x2+aulu0(36*j-27)*x3+aulu0(36*j-26)*x4+aulu0(36*j-25)*x5+aulu0(36*j-24)*x6
208 sw3= sw3 +aulu0(36*j-23)*x1+aulu0(36*j-22)*x2+aulu0(36*j-21)*x3+aulu0(36*j-20)*x4+aulu0(36*j-19)*x5+aulu0(36*j-18)*x6
209 sw4= sw4 +aulu0(36*j-17)*x1+aulu0(36*j-16)*x2+aulu0(36*j-15)*x3+aulu0(36*j-14)*x4+aulu0(36*j-13)*x5+aulu0(36*j-12)*x6
210 sw5= sw5 +aulu0(36*j-11)*x1+aulu0(36*j-10)*x2+aulu0(36*j-9 )*x3+aulu0(36*j-8 )*x4+aulu0(36*j-7 )*x5+aulu0(36*j-6 )*x6
211 sw6= sw6 +aulu0(36*j-5 )*x1+aulu0(36*j-4 )*x2+aulu0(36*j-3 )*x3+aulu0(36*j-2 )*x4+aulu0(36*j-1 )*x5+aulu0(36*j )*x6
219 x2= x2 -alu(36*i-29)*x1
220 x3= x3 -alu(36*i-23)*x1 -alu(36*i-22)*x2
221 x4= x4 -alu(36*i-17)*x1 -alu(36*i-16)*x2 -alu(36*i-15)*x3
222 x5= x5 -alu(36*i-11)*x1 -alu(36*i-10)*x2 -alu(36*i-9 )*x3 -alu(36*i-8)*x4
223 x6= x6 -alu(36*i-5 )*x1 -alu(36*i-4 )*x2 -alu(36*i-3 )*x3 -alu(36*i-2)*x4 -alu(36*i-1)*x5
225 x5= alu(36*i-7 )*( x5 -alu(36*i-6 )*x6 )
226 x4= alu(36*i-14)*( x4 -alu(36*i-12)*x6 -alu(36*i-13)*x5)
227 x3= alu(36*i-21)*( x3 -alu(36*i-18)*x6 -alu(36*i-19)*x5 -alu(36*i-20)*x4)
228 x2= alu(36*i-28)*( x2 -alu(36*i-24)*x6 -alu(36*i-25)*x5 -alu(36*i-26)*x4 -alu(36*i-27)*x3)
229 x1= alu(36*i-35)*( x1 -alu(36*i-30)*x6 -alu(36*i-31)*x5 -alu(36*i-32)*x4 -alu(36*i-33)*x3 -alu(36*i-34)*x2)
230 ww(6*i-5)= ww(6*i-5) -x1
231 ww(6*i-4)= ww(6*i-4) -x2
232 ww(6*i-3)= ww(6*i-3) -x3
233 ww(6*i-2)= ww(6*i-2) -x4
234 ww(6*i-1)= ww(6*i-1) -x5
235 ww(6*i )= ww(6*i ) -x6
241 if (
associated(dlu0))
deallocate(dlu0)
242 if (
associated(allu0))
deallocate(allu0)
243 if (
associated(aulu0))
deallocate(aulu0)
244 if (
associated(inumfi1l))
deallocate(inumfi1l)
245 if (
associated(inumfi1u))
deallocate(inumfi1u)
246 if (
associated(fi1l))
deallocate(fi1l)
247 if (
associated(fi1u))
deallocate(fi1u)
248 if (
associated(alu))
deallocate(alu)
266 subroutine form_ilu0_66 &
267 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
270 integer(kind=kint ),
intent(in):: n, np, npu, npl
271 real (kind=
kreal),
intent(in):: sigma_diag
273 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
274 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
275 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
277 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
278 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
279 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
281 integer(kind=kint),
dimension(:),
allocatable :: iw1, iw2
282 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
283 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
284 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
285 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
286 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
287 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
288 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
289 integer(kind=kint) :: i,jj,ij0,kk
290 integer(kind=kint) :: j,k
291 allocate (iw1(np) , iw2(np))
292 allocate(dlu0(36*np), allu0(36*npl), aulu0(36*npu))
293 allocate(inumfi1l(0:np), inumfi1u(0:np), fi1l(npl), fi1u(npu))
321 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
322 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
323 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
324 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
325 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
326 dlu0(36*i )=dlu0(36*i )*sigma_diag
333 do k= inumfi1l(i-1)+1, inumfi1l(i)
337 do k= inumfi1u(i-1)+1, inumfi1u(i)
341 do kk= inl(i-1)+1, inl(i)
380 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
381 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
382 & d61,d62,d63,d64,d65,d66)
384 aik(1,1)= allu0(36*kk-35)
385 aik(1,2)= allu0(36*kk-34)
386 aik(1,3)= allu0(36*kk-33)
387 aik(1,4)= allu0(36*kk-32)
388 aik(1,5)= allu0(36*kk-31)
389 aik(1,6)= allu0(36*kk-30)
390 aik(2,1)= allu0(36*kk-29)
391 aik(2,2)= allu0(36*kk-28)
392 aik(2,3)= allu0(36*kk-27)
393 aik(2,4)= allu0(36*kk-26)
394 aik(2,5)= allu0(36*kk-25)
395 aik(2,6)= allu0(36*kk-24)
396 aik(3,1)= allu0(36*kk-23)
397 aik(3,2)= allu0(36*kk-22)
398 aik(3,3)= allu0(36*kk-21)
399 aik(3,4)= allu0(36*kk-20)
400 aik(3,5)= allu0(36*kk-19)
401 aik(3,6)= allu0(36*kk-18)
402 aik(4,1)= allu0(36*kk-17)
403 aik(4,2)= allu0(36*kk-16)
404 aik(4,3)= allu0(36*kk-15)
405 aik(4,4)= allu0(36*kk-14)
406 aik(4,5)= allu0(36*kk-13)
407 aik(4,6)= allu0(36*kk-12)
408 aik(5,1)= allu0(36*kk-11)
409 aik(5,2)= allu0(36*kk-10)
410 aik(5,3)= allu0(36*kk-9)
411 aik(5,4)= allu0(36*kk-8)
412 aik(5,5)= allu0(36*kk-7)
413 aik(5,6)= allu0(36*kk-6)
414 aik(6,1)= allu0(36*kk-5)
415 aik(6,2)= allu0(36*kk-4)
416 aik(6,3)= allu0(36*kk-3)
417 aik(6,4)= allu0(36*kk-2)
418 aik(6,5)= allu0(36*kk-1)
419 aik(6,6)= allu0(36*kk )
421 do jj= inu(k-1)+1, inu(k)
423 if (iw1(j).eq.0.and.iw2(j).eq.0) cycle
425 akj(1,1)= aulu0(36*jj-35)
426 akj(1,2)= aulu0(36*jj-34)
427 akj(1,3)= aulu0(36*jj-33)
428 akj(1,4)= aulu0(36*jj-32)
429 akj(1,5)= aulu0(36*jj-31)
430 akj(1,6)= aulu0(36*jj-30)
431 akj(2,1)= aulu0(36*jj-29)
432 akj(2,2)= aulu0(36*jj-28)
433 akj(2,3)= aulu0(36*jj-27)
434 akj(2,4)= aulu0(36*jj-26)
435 akj(2,5)= aulu0(36*jj-25)
436 akj(2,6)= aulu0(36*jj-24)
437 akj(3,1)= aulu0(36*jj-23)
438 akj(3,2)= aulu0(36*jj-22)
439 akj(3,3)= aulu0(36*jj-21)
440 akj(3,4)= aulu0(36*jj-20)
441 akj(3,5)= aulu0(36*jj-19)
442 akj(3,6)= aulu0(36*jj-18)
443 akj(4,1)= aulu0(36*jj-17)
444 akj(4,2)= aulu0(36*jj-16)
445 akj(4,3)= aulu0(36*jj-15)
446 akj(4,4)= aulu0(36*jj-14)
447 akj(4,5)= aulu0(36*jj-13)
448 akj(4,6)= aulu0(36*jj-12)
449 akj(5,1)= aulu0(36*jj-11)
450 akj(5,2)= aulu0(36*jj-10)
451 akj(5,3)= aulu0(36*jj-9)
452 akj(5,4)= aulu0(36*jj-8)
453 akj(5,5)= aulu0(36*jj-7)
454 akj(5,6)= aulu0(36*jj-6)
455 akj(6,1)= aulu0(36*jj-5)
456 akj(6,2)= aulu0(36*jj-4)
457 akj(6,3)= aulu0(36*jj-3)
458 akj(6,4)= aulu0(36*jj-2)
459 akj(6,5)= aulu0(36*jj-1)
460 akj(6,6)= aulu0(36*jj )
462 call ilu1b66 (rhs_aij, dkinv, aik, akj)
465 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
466 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
467 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
468 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
469 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
470 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
471 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
472 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
473 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
474 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
475 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
476 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
477 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
478 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
479 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
480 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
481 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
482 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
483 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
484 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
485 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
486 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
487 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
488 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
489 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
490 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
491 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
492 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
493 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
494 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
495 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
496 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
497 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
498 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
499 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
500 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
505 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
506 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
507 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
508 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
509 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
510 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
511 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
512 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
513 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
514 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
515 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
516 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
517 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
518 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
519 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
520 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
521 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
522 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
523 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
524 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
525 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
526 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
527 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
528 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
529 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
530 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
531 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
532 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
533 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
534 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
535 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
536 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
537 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
538 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
539 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
540 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
545 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
546 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
547 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
548 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
549 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
550 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
551 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
552 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
553 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
554 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
555 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
556 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
557 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
558 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
559 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
560 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
561 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
562 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
563 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
564 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
565 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
566 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
567 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
568 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
569 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
570 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
571 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
572 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
573 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
574 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
575 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
576 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
577 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
578 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
579 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
580 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
587 deallocate (iw1, iw2)
588 end subroutine form_ilu0_66
597 subroutine form_ilu1_66 &
598 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
601 integer(kind=kint ),
intent(in):: n, np, npu, npl
602 real (kind=
kreal),
intent(in):: sigma_diag
604 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
605 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
606 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
608 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
609 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
610 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
612 integer(kind=kint),
dimension(:),
allocatable :: iw1, iw2
613 integer(kind=kint),
dimension(:),
allocatable :: iwsl, iwsu
614 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
615 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
616 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
617 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
618 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
619 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
620 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
621 integer(kind=kint) :: nplf1,npuf1
622 integer(kind=kint) :: i,jj,jj1,ij0,kk,ik,kk1,kk2,l,isk,iek,isj,iej
623 integer(kind=kint) :: icou,icou0,icouu,icouu1,icouu2,icouu3,icoul,icoul1,icoul2,icoul3
624 integer(kind=kint) :: j,k,isl,isu
633 allocate (iw1(np) , iw2(np))
634 allocate (inumfi1l(0:np), inumfi1u(0:np))
645 do l= inl(i-1)+1, inl(i)
648 do l= inu(i-1)+1, inu(i)
660 if (iw1(jj).eq.0 .and. jj.lt.i)
then
661 inumfi1l(i)= inumfi1l(i)+1
664 if (iw1(jj).eq.0 .and. jj.gt.i)
then
665 inumfi1u(i)= inumfi1u(i)+1
670 nplf1= nplf1 + inumfi1l(i)
671 npuf1= npuf1 + inumfi1u(i)
676 allocate (iwsl(0:np), iwsu(0:np))
677 allocate (fi1l(npl+nplf1), fi1u(npu+npuf1))
678 allocate (allu0(36*(npl+nplf1)), aulu0(36*(npu+npuf1)))
686 iwsl(i)= inl(i)-inl(i-1) + inumfi1l(i) + iwsl(i-1)
687 iwsu(i)= inu(i)-inu(i-1) + inumfi1u(i) + iwsu(i-1)
693 inumfi1l(i)= inumfi1l(i-1) + inumfi1l(i)
694 inumfi1u(i)= inumfi1u(i-1) + inumfi1u(i)
698 do l= inl(i-1)+1, inl(i)
701 do l= inu(i-1)+1, inu(i)
713 if (iw1(jj).eq.0 .and. jj.lt.i)
then
715 fi1l(icoul+iwsl(i-1)+inl(i)-inl(i-1))= jj
718 if (iw1(jj).eq.0 .and. jj.gt.i)
then
720 fi1u(icouu+iwsu(i-1)+inu(i)-inu(i-1))= jj
738 icoul1= inl(i) - inl(i-1)
739 icoul2= inumfi1l(i) - inumfi1l(i-1)
740 icoul3= icoul1 + icoul2
741 icouu1= inu(i) - inu(i-1)
742 icouu2= inumfi1u(i) - inumfi1u(i-1)
743 icouu3= icouu1 + icouu2
747 do k= inl(i-1)+1, inl(i)
752 do k= inumfi1l(i-1)+1, inumfi1l(i)
754 iw1(icou0)= fi1l(icou0+iwsl(i-1))
760 call fill_in_s66_sort (iw1, iw2, icoul3, np)
765 if (ik.le.inl(i)-inl(i-1))
then
767 kk2= 36*(ik+inl(i-1))
768 allu0(kk1-35)= al(kk2-35)
769 allu0(kk1-34)= al(kk2-34)
770 allu0(kk1-33)= al(kk2-33)
771 allu0(kk1-32)= al(kk2-32)
772 allu0(kk1-31)= al(kk2-31)
773 allu0(kk1-30)= al(kk2-30)
774 allu0(kk1-29)= al(kk2-29)
775 allu0(kk1-28)= al(kk2-28)
776 allu0(kk1-27)= al(kk2-27)
777 allu0(kk1-26)= al(kk2-26)
778 allu0(kk1-25)= al(kk2-25)
779 allu0(kk1-24)= al(kk2-24)
780 allu0(kk1-23)= al(kk2-23)
781 allu0(kk1-22)= al(kk2-22)
782 allu0(kk1-21)= al(kk2-21)
783 allu0(kk1-20)= al(kk2-20)
784 allu0(kk1-19)= al(kk2-19)
785 allu0(kk1-18)= al(kk2-18)
786 allu0(kk1-17)= al(kk2-17)
787 allu0(kk1-16)= al(kk2-16)
788 allu0(kk1-15)= al(kk2-15)
789 allu0(kk1-14)= al(kk2-14)
790 allu0(kk1-13)= al(kk2-13)
791 allu0(kk1-12)= al(kk2-12)
792 allu0(kk1-11)= al(kk2-11)
793 allu0(kk1-10)= al(kk2-10)
794 allu0(kk1-9 )= al(kk2-9 )
795 allu0(kk1-8 )= al(kk2-8 )
796 allu0(kk1-7 )= al(kk2-7 )
797 allu0(kk1-6 )= al(kk2-6 )
798 allu0(kk1-5 )= al(kk2-5 )
799 allu0(kk1-4 )= al(kk2-4 )
800 allu0(kk1-3 )= al(kk2-3 )
801 allu0(kk1-2 )= al(kk2-2 )
802 allu0(kk1-1 )= al(kk2-1 )
803 allu0(kk1 )= al(kk2 )
809 do k= inu(i-1)+1, inu(i)
814 do k= inumfi1u(i-1)+1, inumfi1u(i)
816 iw1(icou0)= fi1u(icou0+iwsu(i-1))
822 call fill_in_s66_sort (iw1, iw2, icouu3, np)
827 if (ik.le.inu(i)-inu(i-1))
then
829 kk2= 36*(ik+inu(i-1))
830 aulu0(kk1-35)= au(kk2-35)
831 aulu0(kk1-34)= au(kk2-34)
832 aulu0(kk1-33)= au(kk2-33)
833 aulu0(kk1-32)= au(kk2-32)
834 aulu0(kk1-31)= au(kk2-31)
835 aulu0(kk1-30)= au(kk2-30)
836 aulu0(kk1-29)= au(kk2-29)
837 aulu0(kk1-28)= au(kk2-28)
838 aulu0(kk1-27)= au(kk2-27)
839 aulu0(kk1-26)= au(kk2-26)
840 aulu0(kk1-25)= au(kk2-25)
841 aulu0(kk1-24)= au(kk2-24)
842 aulu0(kk1-23)= au(kk2-23)
843 aulu0(kk1-22)= au(kk2-22)
844 aulu0(kk1-21)= au(kk2-21)
845 aulu0(kk1-20)= au(kk2-20)
846 aulu0(kk1-19)= au(kk2-19)
847 aulu0(kk1-18)= au(kk2-18)
848 aulu0(kk1-17)= au(kk2-17)
849 aulu0(kk1-16)= au(kk2-16)
850 aulu0(kk1-15)= au(kk2-15)
851 aulu0(kk1-14)= au(kk2-14)
852 aulu0(kk1-13)= au(kk2-13)
853 aulu0(kk1-12)= au(kk2-12)
854 aulu0(kk1-11)= au(kk2-11)
855 aulu0(kk1-10)= au(kk2-10)
856 aulu0(kk1-9 )= au(kk2-9 )
857 aulu0(kk1-8 )= au(kk2-8 )
858 aulu0(kk1-7 )= au(kk2-7 )
859 aulu0(kk1-6 )= au(kk2-6 )
860 aulu0(kk1-5 )= au(kk2-5 )
861 aulu0(kk1-4 )= au(kk2-4 )
862 aulu0(kk1-3 )= au(kk2-3 )
863 aulu0(kk1-2 )= au(kk2-2 )
864 aulu0(kk1-1 )= au(kk2-1 )
865 aulu0(kk1 )= au(kk2 )
878 deallocate (iwsl, iwsu)
885 allocate (dlu0(36*np))
888 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
889 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
890 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
891 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
892 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
893 dlu0(36*i )=dlu0(36*i )*sigma_diag
900 do k= inumfi1l(i-1)+1, inumfi1l(i)
904 do k= inumfi1u(i-1)+1, inumfi1u(i)
908 do kk= inl(i-1)+1, inl(i)
947 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
948 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
949 & d61,d62,d63,d64,d65,d66)
951 do kk1= inumfi1l(i-1)+1, inumfi1l(i)
952 if (k.eq.fi1l(kk1))
then
953 aik(1,1)= allu0(36*kk1-35)
954 aik(1,2)= allu0(36*kk1-34)
955 aik(1,3)= allu0(36*kk1-33)
956 aik(1,4)= allu0(36*kk1-32)
957 aik(1,5)= allu0(36*kk1-31)
958 aik(1,6)= allu0(36*kk1-30)
959 aik(2,1)= allu0(36*kk1-29)
960 aik(2,2)= allu0(36*kk1-28)
961 aik(2,3)= allu0(36*kk1-27)
962 aik(2,4)= allu0(36*kk1-26)
963 aik(2,5)= allu0(36*kk1-25)
964 aik(2,6)= allu0(36*kk1-24)
965 aik(3,1)= allu0(36*kk1-23)
966 aik(3,2)= allu0(36*kk1-22)
967 aik(3,3)= allu0(36*kk1-21)
968 aik(3,4)= allu0(36*kk1-20)
969 aik(3,5)= allu0(36*kk1-19)
970 aik(3,6)= allu0(36*kk1-18)
971 aik(4,1)= allu0(36*kk1-17)
972 aik(4,2)= allu0(36*kk1-16)
973 aik(4,3)= allu0(36*kk1-15)
974 aik(4,4)= allu0(36*kk1-14)
975 aik(4,5)= allu0(36*kk1-13)
976 aik(4,6)= allu0(36*kk1-12)
977 aik(5,1)= allu0(36*kk1-11)
978 aik(5,2)= allu0(36*kk1-10)
979 aik(5,3)= allu0(36*kk1-9)
980 aik(5,4)= allu0(36*kk1-8)
981 aik(5,5)= allu0(36*kk1-7)
982 aik(5,6)= allu0(36*kk1-6)
983 aik(6,1)= allu0(36*kk1-5)
984 aik(6,2)= allu0(36*kk1-4)
985 aik(6,3)= allu0(36*kk1-3)
986 aik(6,4)= allu0(36*kk1-2)
987 aik(6,5)= allu0(36*kk1-1)
988 aik(6,6)= allu0(36*kk1 )
993 do jj= inu(k-1)+1, inu(k)
995 do jj1= inumfi1u(k-1)+1, inumfi1u(k)
996 if (j.eq.fi1u(jj1))
then
997 akj(1,1)= aulu0(36*jj1-35)
998 akj(1,2)= aulu0(36*jj1-34)
999 akj(1,3)= aulu0(36*jj1-33)
1000 akj(1,4)= aulu0(36*jj1-32)
1001 akj(1,5)= aulu0(36*jj1-31)
1002 akj(1,6)= aulu0(36*jj1-30)
1003 akj(2,1)= aulu0(36*jj1-29)
1004 akj(2,2)= aulu0(36*jj1-28)
1005 akj(2,3)= aulu0(36*jj1-27)
1006 akj(2,4)= aulu0(36*jj1-26)
1007 akj(2,5)= aulu0(36*jj1-25)
1008 akj(2,6)= aulu0(36*jj1-24)
1009 akj(3,1)= aulu0(36*jj1-23)
1010 akj(3,2)= aulu0(36*jj1-22)
1011 akj(3,3)= aulu0(36*jj1-21)
1012 akj(3,4)= aulu0(36*jj1-20)
1013 akj(3,5)= aulu0(36*jj1-19)
1014 akj(3,6)= aulu0(36*jj1-18)
1015 akj(4,1)= aulu0(36*jj1-17)
1016 akj(4,2)= aulu0(36*jj1-16)
1017 akj(4,3)= aulu0(36*jj1-15)
1018 akj(4,4)= aulu0(36*jj1-14)
1019 akj(4,5)= aulu0(36*jj1-13)
1020 akj(4,6)= aulu0(36*jj1-12)
1021 akj(5,1)= aulu0(36*jj1-11)
1022 akj(5,2)= aulu0(36*jj1-10)
1023 akj(5,3)= aulu0(36*jj1-9)
1024 akj(5,4)= aulu0(36*jj1-8)
1025 akj(5,5)= aulu0(36*jj1-7)
1026 akj(5,6)= aulu0(36*jj1-6)
1027 akj(6,1)= aulu0(36*jj1-5)
1028 akj(6,2)= aulu0(36*jj1-4)
1029 akj(6,3)= aulu0(36*jj1-3)
1030 akj(6,4)= aulu0(36*jj1-2)
1031 akj(6,5)= aulu0(36*jj1-1)
1032 akj(6,6)= aulu0(36*jj1 )
1037 call ilu1b66 (rhs_aij, dkinv, aik, akj)
1040 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
1041 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
1042 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
1043 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
1044 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
1045 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
1046 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
1047 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
1048 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
1049 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
1050 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
1051 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
1052 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
1053 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
1054 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
1055 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
1056 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
1057 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
1058 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
1059 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
1060 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
1061 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
1062 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
1063 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
1064 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
1065 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
1066 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
1067 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
1068 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
1069 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
1070 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
1071 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
1072 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
1073 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
1074 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
1075 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
1080 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
1081 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
1082 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
1083 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
1084 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
1085 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
1086 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
1087 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
1088 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
1089 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
1090 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
1091 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
1092 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
1093 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
1094 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
1095 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
1096 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
1097 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
1098 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
1099 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
1100 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
1101 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
1102 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
1103 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
1104 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
1105 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
1106 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
1107 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
1108 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
1109 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
1110 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
1111 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
1112 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
1113 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
1114 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
1115 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
1120 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
1121 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
1122 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
1123 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
1124 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
1125 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
1126 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
1127 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
1128 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
1129 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
1130 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
1131 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
1132 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
1133 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
1134 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
1135 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
1136 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
1137 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
1138 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
1139 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
1140 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
1141 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
1142 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
1143 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
1144 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
1145 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
1146 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
1147 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
1148 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
1149 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
1150 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
1151 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
1152 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
1153 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
1154 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
1155 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
1162 deallocate (iw1, iw2)
1164 end subroutine form_ilu1_66
1173 subroutine form_ilu2_66 &
1174 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
1177 integer(kind=kint ),
intent(in):: n, np, npu, npl
1178 real (kind=
kreal),
intent(in):: sigma_diag
1180 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
1181 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
1182 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
1184 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
1185 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
1186 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
1188 integer(kind=kint),
dimension(:),
allocatable:: iw1 , iw2
1189 integer(kind=kint),
dimension(:),
allocatable:: iwsl, iwsu
1190 integer(kind=kint),
dimension(:),
allocatable:: iconfi1l, iconfi1u
1191 integer(kind=kint),
dimension(:),
allocatable:: inumfi2l, inumfi2u
1192 integer(kind=kint),
dimension(:),
allocatable:: fi2l, fi2u
1193 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
1194 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
1195 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
1196 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
1197 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
1198 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
1199 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
1200 integer(kind=kint) :: nplf1,nplf2,npuf1,npuf2,ias,iconik,iconkj
1201 integer(kind=kint) :: i,jj,ij0,kk,ik,kk1,kk2,l,isk,iek,isj,iej
1202 integer(kind=kint) :: icou,icouu,icouu1,icouu2,icouu3,icoul,icoul1,icoul2,icoul3
1203 integer(kind=kint) :: j,k,isl,isu
1213 allocate (iw1(np) , iw2(np))
1214 allocate (inumfi2l(0:np), inumfi2u(0:np))
1225 do l= inl(i-1)+1, inl(i)
1228 do l= inu(i-1)+1, inu(i)
1240 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1241 inumfi2l(i)= inumfi2l(i)+1
1244 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1245 inumfi2u(i)= inumfi2u(i)+1
1250 nplf1= nplf1 + inumfi2l(i)
1251 npuf1= npuf1 + inumfi2u(i)
1256 allocate (iwsl(0:np), iwsu(0:np))
1257 allocate (fi2l(nplf1), fi2u(npuf1))
1265 inumfi2l(i)= inumfi2l(i-1) + inumfi2l(i)
1266 inumfi2u(i)= inumfi2u(i-1) + inumfi2u(i)
1270 do l= inl(i-1)+1, inl(i)
1273 do l= inu(i-1)+1, inu(i)
1285 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1287 fi2l(icoul+inumfi2l(i-1))= jj
1290 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1292 fi2u(icouu+inumfi2u(i-1))= jj
1305 allocate (inumfi1l(0:np), inumfi1u(0:np))
1316 do l= inl(i-1)+1, inl(i)
1319 do l= inu(i-1)+1, inu(i)
1323 do l= inumfi2l(i-1)+1, inumfi2l(i)
1327 do l= inumfi2u(i-1)+1, inumfi2u(i)
1335 isj= inumfi2u(kk-1) + 1
1339 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1340 inumfi1l(i)= inumfi1l(i) + 1
1343 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1344 inumfi1u(i)= inumfi1u(i) + 1
1350 isk= inumfi2l(i-1)+1
1358 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1359 inumfi1l(i)= inumfi1l(i) + 1
1362 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1363 inumfi1u(i)= inumfi1u(i) + 1
1368 nplf2= nplf2 + inumfi1l(i)
1369 npuf2= npuf2 + inumfi1u(i)
1374 allocate (fi1l(npl+nplf1+nplf2))
1375 allocate (fi1u(npu+npuf1+npuf2))
1377 allocate (iconfi1l(npl+nplf1+nplf2))
1378 allocate (iconfi1u(npu+npuf1+npuf2))
1383 iwsl(i)= inl(i)-inl(i-1) + inumfi2l(i)-inumfi2l(i-1) + &
1384 & inumfi1l(i) + iwsl(i-1)
1385 iwsu(i)= inu(i)-inu(i-1) + inumfi2u(i)-inumfi2u(i-1) + &
1386 & inumfi1u(i) + iwsu(i-1)
1392 inumfi1l(i)= inumfi1l(i-1) + inumfi1l(i)
1393 inumfi1u(i)= inumfi1u(i-1) + inumfi1u(i)
1397 do l= inl(i-1)+1, inl(i)
1400 do l= inu(i-1)+1, inu(i)
1404 do l= inumfi2l(i-1)+1, inumfi2l(i)
1408 do l= inumfi2u(i-1)+1, inumfi2u(i)
1416 isj= inumfi2u(kk-1) + 1
1420 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1421 ias= inl(i)-inl(i-1)+inumfi2l(i)-inumfi2l(i-1)+iwsl(i-1)
1426 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1427 ias= inu(i)-inu(i-1)+inumfi2u(i)-inumfi2u(i-1)+iwsu(i-1)
1435 isk= inumfi2l(i-1) + 1
1443 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1444 ias= inl(i)-inl(i-1)+inumfi2l(i)-inumfi2l(i-1)+iwsl(i-1)
1449 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1450 ias= inu(i)-inu(i-1)+inumfi2u(i)-inumfi2u(i-1)+iwsu(i-1)
1465 allocate (allu0(9*(npl+nplf1+nplf2)))
1466 allocate (aulu0(9*(npu+npuf1+npuf2)))
1477 icoul1= inl(i) - inl(i-1)
1478 icoul2= inumfi2l(i) - inumfi2l(i-1) + icoul1
1479 icoul3= inumfi1l(i) - inumfi1l(i-1) + icoul2
1481 icouu1= inu(i) - inu(i-1)
1482 icouu2= inumfi2u(i) - inumfi2u(i-1) + icouu1
1483 icouu3= inumfi1u(i) - inumfi1u(i-1) + icouu2
1488 do k= inl(i-1)+1, inl(i)
1494 do k= inumfi2l(i-1)+1, inumfi2l(i)
1496 iw1(icou+icoul1)= fi2l(k)
1500 do k= inumfi1l(i-1)+1, inumfi1l(i)
1502 iw1(icou+icoul2)= fi1l(icou+icoul2+isl)
1509 call fill_in_s66_sort (iw1, iw2, icoul3, np)
1514 if (ik.le.inl(i)-inl(i-1))
then
1516 kk2= 36*(ik+inl(i-1))
1517 allu0(kk1-35)= al(kk2-35)
1518 allu0(kk1-34)= al(kk2-34)
1519 allu0(kk1-33)= al(kk2-33)
1520 allu0(kk1-32)= al(kk2-32)
1521 allu0(kk1-31)= al(kk2-31)
1522 allu0(kk1-30)= al(kk2-30)
1523 allu0(kk1-29)= al(kk2-29)
1524 allu0(kk1-28)= al(kk2-28)
1525 allu0(kk1-27)= al(kk2-27)
1526 allu0(kk1-26)= al(kk2-26)
1527 allu0(kk1-25)= al(kk2-25)
1528 allu0(kk1-24)= al(kk2-24)
1529 allu0(kk1-23)= al(kk2-23)
1530 allu0(kk1-22)= al(kk2-22)
1531 allu0(kk1-21)= al(kk2-21)
1532 allu0(kk1-20)= al(kk2-20)
1533 allu0(kk1-19)= al(kk2-19)
1534 allu0(kk1-18)= al(kk2-18)
1535 allu0(kk1-17)= al(kk2-17)
1536 allu0(kk1-16)= al(kk2-16)
1537 allu0(kk1-15)= al(kk2-15)
1538 allu0(kk1-14)= al(kk2-14)
1539 allu0(kk1-13)= al(kk2-13)
1540 allu0(kk1-12)= al(kk2-12)
1541 allu0(kk1-11)= al(kk2-11)
1542 allu0(kk1-10)= al(kk2-10)
1543 allu0(kk1-9 )= al(kk2-9 )
1544 allu0(kk1-8 )= al(kk2-8 )
1545 allu0(kk1-7 )= al(kk2-7 )
1546 allu0(kk1-6 )= al(kk2-6 )
1547 allu0(kk1-5 )= al(kk2-5 )
1548 allu0(kk1-4 )= al(kk2-4 )
1549 allu0(kk1-3 )= al(kk2-3 )
1550 allu0(kk1-2 )= al(kk2-2 )
1551 allu0(kk1-1 )= al(kk2-1 )
1552 allu0(kk1 )= al(kk2 )
1557 do k= inl(i-1)+1, inl(i)
1563 do k= inumfi2l(i-1)+1, inumfi2l(i)
1569 do k= inumfi1l(i-1)+1, inumfi1l(i)
1575 iconfi1l(k+isl)= iw1(iw2(k))
1580 do k= inu(i-1)+1, inu(i)
1586 do k= inumfi2u(i-1)+1, inumfi2u(i)
1588 iw1(icou+icouu1)= fi2u(k)
1592 do k= inumfi1u(i-1)+1, inumfi1u(i)
1594 iw1(icou+icouu2)= fi1u(icou+icouu2+isu)
1600 call fill_in_s66_sort (iw1, iw2, icouu3, np)
1605 if (ik.le.inu(i)-inu(i-1))
then
1607 kk2= 36*(ik+inu(i-1))
1608 aulu0(kk1-35)= au(kk2-35)
1609 aulu0(kk1-34)= au(kk2-34)
1610 aulu0(kk1-33)= au(kk2-33)
1611 aulu0(kk1-32)= au(kk2-32)
1612 aulu0(kk1-31)= au(kk2-31)
1613 aulu0(kk1-30)= au(kk2-30)
1614 aulu0(kk1-29)= au(kk2-29)
1615 aulu0(kk1-28)= au(kk2-28)
1616 aulu0(kk1-27)= au(kk2-27)
1617 aulu0(kk1-26)= au(kk2-26)
1618 aulu0(kk1-25)= au(kk2-25)
1619 aulu0(kk1-24)= au(kk2-24)
1620 aulu0(kk1-23)= au(kk2-23)
1621 aulu0(kk1-22)= au(kk2-22)
1622 aulu0(kk1-21)= au(kk2-21)
1623 aulu0(kk1-20)= au(kk2-20)
1624 aulu0(kk1-19)= au(kk2-19)
1625 aulu0(kk1-18)= au(kk2-18)
1626 aulu0(kk1-17)= au(kk2-17)
1627 aulu0(kk1-16)= au(kk2-16)
1628 aulu0(kk1-15)= au(kk2-15)
1629 aulu0(kk1-14)= au(kk2-14)
1630 aulu0(kk1-13)= au(kk2-13)
1631 aulu0(kk1-12)= au(kk2-12)
1632 aulu0(kk1-11)= au(kk2-11)
1633 aulu0(kk1-10)= au(kk2-10)
1634 aulu0(kk1-9 )= au(kk2-9 )
1635 aulu0(kk1-8 )= au(kk2-8 )
1636 aulu0(kk1-7 )= au(kk2-7 )
1637 aulu0(kk1-6 )= au(kk2-6 )
1638 aulu0(kk1-5 )= au(kk2-5 )
1639 aulu0(kk1-4 )= au(kk2-4 )
1640 aulu0(kk1-3 )= au(kk2-3 )
1641 aulu0(kk1-2 )= au(kk2-2 )
1642 aulu0(kk1-1 )= au(kk2-1 )
1643 aulu0(kk1 )= au(kk2 )
1648 do k= inu(i-1)+1, inu(i)
1654 do k= inumfi2u(i-1)+1, inumfi2u(i)
1660 do k= inumfi1u(i-1)+1, inumfi1u(i)
1666 iconfi1u(k+isu)= iw1(iw2(k))
1674 inumfi1l(i)= iwsl(i)
1675 inumfi1u(i)= iwsu(i)
1678 deallocate (iwsl, iwsu)
1679 deallocate (inumfi2l, inumfi2u)
1680 deallocate ( fi2l, fi2u)
1687 allocate (dlu0(36*np))
1690 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
1691 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
1692 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
1693 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
1694 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
1695 dlu0(36*i )=dlu0(36*i )*sigma_diag
1702 do k= inumfi1l(i-1)+1, inumfi1l(i)
1706 do k= inumfi1u(i-1)+1, inumfi1u(i)
1710 do kk= inumfi1l(i-1)+1, inumfi1l(i)
1712 iconik= iconfi1l(kk)
1751 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
1752 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
1753 & d61,d62,d63,d64,d65,d66)
1755 aik(1,1)= allu0(36*kk-35)
1756 aik(1,2)= allu0(36*kk-34)
1757 aik(1,3)= allu0(36*kk-33)
1758 aik(1,4)= allu0(36*kk-32)
1759 aik(1,5)= allu0(36*kk-31)
1760 aik(1,6)= allu0(36*kk-30)
1761 aik(2,1)= allu0(36*kk-29)
1762 aik(2,2)= allu0(36*kk-28)
1763 aik(2,3)= allu0(36*kk-27)
1764 aik(2,4)= allu0(36*kk-26)
1765 aik(2,5)= allu0(36*kk-25)
1766 aik(2,6)= allu0(36*kk-24)
1767 aik(3,1)= allu0(36*kk-23)
1768 aik(3,2)= allu0(36*kk-22)
1769 aik(3,3)= allu0(36*kk-21)
1770 aik(3,4)= allu0(36*kk-20)
1771 aik(3,5)= allu0(36*kk-19)
1772 aik(3,6)= allu0(36*kk-18)
1773 aik(4,1)= allu0(36*kk-17)
1774 aik(4,2)= allu0(36*kk-16)
1775 aik(4,3)= allu0(36*kk-15)
1776 aik(4,4)= allu0(36*kk-14)
1777 aik(4,5)= allu0(36*kk-13)
1778 aik(4,6)= allu0(36*kk-12)
1779 aik(5,1)= allu0(36*kk-11)
1780 aik(5,2)= allu0(36*kk-10)
1781 aik(5,3)= allu0(36*kk-9)
1782 aik(5,4)= allu0(36*kk-8)
1783 aik(5,5)= allu0(36*kk-7)
1784 aik(5,6)= allu0(36*kk-6)
1785 aik(6,1)= allu0(36*kk-5)
1786 aik(6,2)= allu0(36*kk-4)
1787 aik(6,3)= allu0(36*kk-3)
1788 aik(6,4)= allu0(36*kk-2)
1789 aik(6,5)= allu0(36*kk-1)
1790 aik(6,6)= allu0(36*kk )
1792 do jj= inumfi1u(k-1)+1, inumfi1u(k)
1794 iconkj= iconfi1u(jj)
1796 if ((iconik+iconkj).lt.2)
then
1797 akj(1,1)= aulu0(36*jj-35)
1798 akj(1,2)= aulu0(36*jj-34)
1799 akj(1,3)= aulu0(36*jj-33)
1800 akj(1,4)= aulu0(36*jj-32)
1801 akj(1,5)= aulu0(36*jj-31)
1802 akj(1,6)= aulu0(36*jj-30)
1803 akj(2,1)= aulu0(36*jj-29)
1804 akj(2,2)= aulu0(36*jj-28)
1805 akj(2,3)= aulu0(36*jj-27)
1806 akj(2,4)= aulu0(36*jj-26)
1807 akj(2,5)= aulu0(36*jj-25)
1808 akj(2,6)= aulu0(36*jj-24)
1809 akj(3,1)= aulu0(36*jj-23)
1810 akj(3,2)= aulu0(36*jj-22)
1811 akj(3,3)= aulu0(36*jj-21)
1812 akj(3,4)= aulu0(36*jj-20)
1813 akj(3,5)= aulu0(36*jj-19)
1814 akj(3,6)= aulu0(36*jj-18)
1815 akj(4,1)= aulu0(36*jj-17)
1816 akj(4,2)= aulu0(36*jj-16)
1817 akj(4,3)= aulu0(36*jj-15)
1818 akj(4,4)= aulu0(36*jj-14)
1819 akj(4,5)= aulu0(36*jj-13)
1820 akj(4,6)= aulu0(36*jj-12)
1821 akj(5,1)= aulu0(36*jj-11)
1822 akj(5,2)= aulu0(36*jj-10)
1823 akj(5,3)= aulu0(36*jj-9)
1824 akj(5,4)= aulu0(36*jj-8)
1825 akj(5,5)= aulu0(36*jj-7)
1826 akj(5,6)= aulu0(36*jj-6)
1827 akj(6,1)= aulu0(36*jj-5)
1828 akj(6,2)= aulu0(36*jj-4)
1829 akj(6,3)= aulu0(36*jj-3)
1830 akj(6,4)= aulu0(36*jj-2)
1831 akj(6,5)= aulu0(36*jj-1)
1832 akj(6,6)= aulu0(36*jj )
1834 call ilu1b66 (rhs_aij, dkinv, aik, akj)
1837 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
1838 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
1839 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
1840 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
1841 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
1842 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
1843 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
1844 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
1845 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
1846 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
1847 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
1848 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
1849 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
1850 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
1851 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
1852 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
1853 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
1854 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
1855 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
1856 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
1857 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
1858 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
1859 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
1860 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
1861 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
1862 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
1863 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
1864 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
1865 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
1866 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
1867 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
1868 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
1869 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
1870 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
1871 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
1872 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
1877 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
1878 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
1879 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
1880 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
1881 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
1882 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
1883 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
1884 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
1885 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
1886 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
1887 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
1888 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
1889 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
1890 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
1891 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
1892 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
1893 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
1894 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
1895 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
1896 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
1897 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
1898 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
1899 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
1900 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
1901 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
1902 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
1903 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
1904 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
1905 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
1906 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
1907 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
1908 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
1909 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
1910 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
1911 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
1912 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
1917 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
1918 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
1919 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
1920 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
1921 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
1922 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
1923 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
1924 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
1925 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
1926 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
1927 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
1928 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
1929 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
1930 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
1931 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
1932 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
1933 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
1934 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
1935 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
1936 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
1937 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
1938 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
1939 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
1940 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
1941 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
1942 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
1943 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
1944 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
1945 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
1946 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
1947 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
1948 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
1949 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
1950 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
1951 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
1952 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
1959 deallocate (iw1, iw2)
1960 deallocate (iconfi1l, iconfi1u)
1962 end subroutine form_ilu2_66
1970 subroutine fill_in_s66_sort (STEM, INUM, N, NP)
1973 integer(kind=kint) :: n, np
1974 integer(kind=kint),
dimension(NP) :: stem
1975 integer(kind=kint),
dimension(NP) :: inum
1976 integer(kind=kint),
dimension(:),
allocatable :: istack
1977 integer(kind=kint) :: m,nstack,jstack,l,ir,ip,i,j,k,ss,ii,temp,it
1979 allocate (istack(-np:+np))
1998 if (stem(i).le.ss)
goto 2
2009 if (jstack.eq.0)
then
2015 l = istack(jstack-1)
2028 if (stem(l+1).gt.stem(ir))
then
2037 if (stem(l).gt.stem(ir))
then
2046 if (stem(l+1).gt.stem(l))
then
2063 if (stem(i).lt.ss)
goto 3
2067 if (stem(j).gt.ss)
goto 4
2090 if (jstack.gt.nstack)
then
2091 write (*,*)
'NSTACK overflow'
2095 if (ir-i+1.ge.j-1)
then
2100 istack(jstack )= j-1
2109 end subroutine fill_in_s66_sort
2118 subroutine ilu1a66 (ALU, D11,D12,D13,D14,D15,D16,D21,D22,D23,D24,D25,D26, &
2119 & D31,D32,D33,D34,D35,D36,D41,D42,D43,D44,D45,D46,D51,D52,D53,D54,D55,D56, &
2120 & D61,D62,D63,D64,D65,D66)
2123 real(kind=
kreal) :: alu(6,6), pw(6)
2124 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
2125 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
2126 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
2127 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
2128 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
2129 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
2130 integer(kind=kint) :: i,j,k
2170 alu(k,k)= 1.d0/alu(k,k)
2172 alu(i,k)= alu(i,k) * alu(k,k)
2174 pw(j)= alu(i,j) - alu(i,k)*alu(k,j)
2196 real(kind=
kreal) :: rhs_aij(6,6), dkinv(6,6), aik(6,6), akj(6,6)
2197 real(kind=
kreal) :: x1,x2,x3,x4,x5,x6
2208 x2= x2 -dkinv(2,1)*x1
2209 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2210 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2211 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2212 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2215 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2216 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2217 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2218 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2219 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2221 rhs_aij(1,1)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2222 rhs_aij(2,1)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2223 rhs_aij(3,1)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2224 rhs_aij(4,1)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2225 rhs_aij(5,1)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2226 rhs_aij(6,1)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
2237 x2= x2 -dkinv(2,1)*x1
2238 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2239 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2240 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2241 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2244 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2245 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2246 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2247 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2248 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2250 rhs_aij(1,2)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2251 rhs_aij(2,2)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2252 rhs_aij(3,2)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2253 rhs_aij(4,2)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2254 rhs_aij(5,2)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2255 rhs_aij(6,2)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
2266 x2= x2 -dkinv(2,1)*x1
2267 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2268 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2269 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2270 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2273 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2274 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2275 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2276 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2277 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2279 rhs_aij(1,3)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2280 rhs_aij(2,3)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2281 rhs_aij(3,3)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2282 rhs_aij(4,3)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2283 rhs_aij(5,3)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2284 rhs_aij(6,3)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
2295 x2= x2 -dkinv(2,1)*x1
2296 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2297 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2298 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2299 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2302 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2303 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2304 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2305 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2306 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2308 rhs_aij(1,4)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2309 rhs_aij(2,4)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2310 rhs_aij(3,4)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2311 rhs_aij(4,4)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2312 rhs_aij(5,4)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2313 rhs_aij(6,4)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
2324 x2= x2 -dkinv(2,1)*x1
2325 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2326 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2327 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2328 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2331 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2332 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2333 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2334 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2335 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2337 rhs_aij(1,5)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2338 rhs_aij(2,5)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2339 rhs_aij(3,5)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2340 rhs_aij(4,5)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2341 rhs_aij(5,5)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2342 rhs_aij(6,5)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
2353 x2= x2 -dkinv(2,1)*x1
2354 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2355 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2356 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2357 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2360 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2361 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2362 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2363 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2364 x1= dkinv(1,1)*( x1 -dkinv(1,6)*x6 -dkinv(1,5)*x5 -dkinv(1,4)*x4 -dkinv(1,3)*x3 -dkinv(1,2)*x2)
2366 rhs_aij(1,6)= aik(1,1)*x1 +aik(1,2)*x2 +aik(1,3)*x3 +aik(1,4)*x4 +aik(1,5)*x5 +aik(1,6)*x6
2367 rhs_aij(2,6)= aik(2,1)*x1 +aik(2,2)*x2 +aik(2,3)*x3 +aik(2,4)*x4 +aik(2,5)*x5 +aik(2,6)*x6
2368 rhs_aij(3,6)= aik(3,1)*x1 +aik(3,2)*x2 +aik(3,3)*x3 +aik(3,4)*x4 +aik(3,5)*x5 +aik(3,6)*x6
2369 rhs_aij(4,6)= aik(4,1)*x1 +aik(4,2)*x2 +aik(4,3)*x3 +aik(4,4)*x4 +aik(4,5)*x5 +aik(4,6)*x6
2370 rhs_aij(5,6)= aik(5,1)*x1 +aik(5,2)*x2 +aik(5,3)*x3 +aik(5,4)*x4 +aik(5,5)*x5 +aik(5,6)*x6
2371 rhs_aij(6,6)= aik(6,1)*x1 +aik(6,2)*x2 +aik(6,3)*x3 +aik(6,4)*x4 +aik(6,5)*x5 +aik(6,6)*x6
real(kind=kreal) function, public hecmw_mat_get_sigma_diag(hecMAT)
integer(kind=kint) function, public hecmw_mat_get_precond(hecMAT)
subroutine, public hecmw_precond_bilu_66_apply(WW)
subroutine ilu1a66(ALU, D11, D12, D13, D14, D15, D16, D21, D22, D23, D24, D25, D26, D31, D32, D33, D34, D35, D36, D41, D42, D43, D44, D45, D46, D51, D52, D53, D54, D55, D56, D61, D62, D63, D64, D65, D66)
subroutine, public hecmw_precond_bilu_66_setup(hecMAT)
subroutine, public hecmw_precond_bilu_66_clear()
subroutine ilu1b66(RHS_Aij, DkINV, Aik, Akj)
integer(kind=4), parameter kreal