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, 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
66 if (precond.eq.10)
call form_ilu0_66 &
67 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
69 if (precond.eq.11)
call form_ilu1_66 &
70 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
72 if (precond.eq.12)
call form_ilu2_66 &
73 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
80 & dlu0(36*ip-35), dlu0(36*ip-34), dlu0(36*ip-33), dlu0(36*ip-32),&
81 & dlu0(36*ip-31), dlu0(36*ip-30), dlu0(36*ip-29), dlu0(36*ip-28),&
82 & dlu0(36*ip-27), dlu0(36*ip-26), dlu0(36*ip-25), dlu0(36*ip-24),&
83 & dlu0(36*ip-23), dlu0(36*ip-22), dlu0(36*ip-21), dlu0(36*ip-20),&
84 & dlu0(36*ip-19), dlu0(36*ip-18), dlu0(36*ip-17), dlu0(36*ip-16),&
85 & dlu0(36*ip-15), dlu0(36*ip-14), dlu0(36*ip-13), dlu0(36*ip-12),&
86 & dlu0(36*ip-11), dlu0(36*ip-10), dlu0(36*ip-9 ), dlu0(36*ip-8 ),&
87 & dlu0(36*ip-7), dlu0(36*ip-6), dlu0(36*ip-5), dlu0(36*ip-4),&
88 & dlu0(36*ip-3), dlu0(36*ip-2), dlu0(36*ip-1), dlu0(36*ip ))
89 alu(36*ip-35)= alutmp(1,1)
90 alu(36*ip-34)= alutmp(1,2)
91 alu(36*ip-33)= alutmp(1,3)
92 alu(36*ip-32)= alutmp(1,4)
93 alu(36*ip-31)= alutmp(1,5)
94 alu(36*ip-30)= alutmp(1,6)
95 alu(36*ip-29)= alutmp(2,1)
96 alu(36*ip-28)= alutmp(2,2)
97 alu(36*ip-27)= alutmp(2,3)
98 alu(36*ip-26)= alutmp(2,4)
99 alu(36*ip-25)= alutmp(2,5)
100 alu(36*ip-24)= alutmp(2,6)
101 alu(36*ip-23)= alutmp(3,1)
102 alu(36*ip-22)= alutmp(3,2)
103 alu(36*ip-21)= alutmp(3,3)
104 alu(36*ip-20)= alutmp(3,4)
105 alu(36*ip-19)= alutmp(3,5)
106 alu(36*ip-18)= alutmp(3,6)
107 alu(36*ip-17)= alutmp(4,1)
108 alu(36*ip-16)= alutmp(4,2)
109 alu(36*ip-15)= alutmp(4,3)
110 alu(36*ip-14)= alutmp(4,4)
111 alu(36*ip-13)= alutmp(4,5)
112 alu(36*ip-12)= alutmp(4,6)
113 alu(36*ip-11)= alutmp(5,1)
114 alu(36*ip-10)= alutmp(5,2)
115 alu(36*ip-9 )= alutmp(5,3)
116 alu(36*ip-8 )= alutmp(5,4)
117 alu(36*ip-7 )= alutmp(5,5)
118 alu(36*ip-6 )= alutmp(5,6)
119 alu(36*ip-5 )= alutmp(6,1)
120 alu(36*ip-4 )= alutmp(6,2)
121 alu(36*ip-3 )= alutmp(6,3)
122 alu(36*ip-2 )= alutmp(6,4)
123 alu(36*ip-1 )= alutmp(6,5)
124 alu(36*ip )= alutmp(6,6)
130 real(kind=
kreal),
intent(inout) :: ww(:)
131 integer(kind=kint) :: i, j, isl, iel, isu, ieu, k
132 real(kind=
kreal) :: sw1, sw2, sw3, x1, x2, x3
133 real(kind=
kreal) :: sw4, sw5, sw6, x4, x5, x6
154 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
155 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
156 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
157 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
158 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
159 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
168 x2= x2 -alu(36*i-29)*x1
169 x3= x3 -alu(36*i-23)*x1 -alu(36*i-22)*x2
170 x4= x4 -alu(36*i-17)*x1 -alu(36*i-16)*x2 -alu(36*i-15)*x3
171 x5= x5 -alu(36*i-11)*x1 -alu(36*i-10)*x2 -alu(36*i-9 )*x3 -alu(36*i-8)*x4
172 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
174 x5= alu(36*i-7 )*( x5 -alu(36*i-6 )*x6 )
175 x4= alu(36*i-14)*( x4 -alu(36*i-12)*x6 -alu(36*i-13)*x5)
176 x3= alu(36*i-21)*( x3 -alu(36*i-18)*x6 -alu(36*i-19)*x5 -alu(36*i-20)*x4)
177 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)
178 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)
191 isu= inumfi1u(i-1) + 1
207 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
208 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
209 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
210 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
211 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
212 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
220 x2= x2 -alu(36*i-29)*x1
221 x3= x3 -alu(36*i-23)*x1 -alu(36*i-22)*x2
222 x4= x4 -alu(36*i-17)*x1 -alu(36*i-16)*x2 -alu(36*i-15)*x3
223 x5= x5 -alu(36*i-11)*x1 -alu(36*i-10)*x2 -alu(36*i-9 )*x3 -alu(36*i-8)*x4
224 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
226 x5= alu(36*i-7 )*( x5 -alu(36*i-6 )*x6 )
227 x4= alu(36*i-14)*( x4 -alu(36*i-12)*x6 -alu(36*i-13)*x5)
228 x3= alu(36*i-21)*( x3 -alu(36*i-18)*x6 -alu(36*i-19)*x5 -alu(36*i-20)*x4)
229 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)
230 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)
231 ww(6*i-5)= ww(6*i-5) -x1
232 ww(6*i-4)= ww(6*i-4) -x2
233 ww(6*i-3)= ww(6*i-3) -x3
234 ww(6*i-2)= ww(6*i-2) -x4
235 ww(6*i-1)= ww(6*i-1) -x5
236 ww(6*i )= ww(6*i ) -x6
242 if (
associated(dlu0))
deallocate(dlu0)
243 if (
associated(allu0))
deallocate(allu0)
244 if (
associated(aulu0))
deallocate(aulu0)
245 if (
associated(inumfi1l))
deallocate(inumfi1l)
246 if (
associated(inumfi1u))
deallocate(inumfi1u)
247 if (
associated(fi1l))
deallocate(fi1l)
248 if (
associated(fi1u))
deallocate(fi1u)
249 if (
associated(alu))
deallocate(alu)
267 subroutine form_ilu0_66 &
268 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
271 integer(kind=kint ),
intent(in):: n, np, npu, npl
272 real (kind=
kreal),
intent(in):: sigma, sigma_diag
274 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
275 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
276 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
278 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
279 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
280 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
282 integer(kind=kint),
dimension(:),
allocatable :: iw1, iw2
283 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
284 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
285 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
286 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
287 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
288 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
289 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
290 integer(kind=kint) :: i,jj,ij0,kk
291 integer(kind=kint) :: j,k
292 allocate (iw1(np) , iw2(np))
293 allocate(dlu0(36*np), allu0(36*npl), aulu0(36*npu))
294 allocate(inumfi1l(0:np), inumfi1u(0:np), fi1l(npl), fi1u(npu))
322 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
323 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
324 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
325 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
326 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
327 dlu0(36*i )=dlu0(36*i )*sigma_diag
334 do k= inumfi1l(i-1)+1, inumfi1l(i)
338 do k= inumfi1u(i-1)+1, inumfi1u(i)
342 do kk= inl(i-1)+1, inl(i)
381 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
382 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
383 & d61,d62,d63,d64,d65,d66)
385 aik(1,1)= allu0(36*kk-35)
386 aik(1,2)= allu0(36*kk-34)
387 aik(1,3)= allu0(36*kk-33)
388 aik(1,4)= allu0(36*kk-32)
389 aik(1,5)= allu0(36*kk-31)
390 aik(1,6)= allu0(36*kk-30)
391 aik(2,1)= allu0(36*kk-29)
392 aik(2,2)= allu0(36*kk-28)
393 aik(2,3)= allu0(36*kk-27)
394 aik(2,4)= allu0(36*kk-26)
395 aik(2,5)= allu0(36*kk-25)
396 aik(2,6)= allu0(36*kk-24)
397 aik(3,1)= allu0(36*kk-23)
398 aik(3,2)= allu0(36*kk-22)
399 aik(3,3)= allu0(36*kk-21)
400 aik(3,4)= allu0(36*kk-20)
401 aik(3,5)= allu0(36*kk-19)
402 aik(3,6)= allu0(36*kk-18)
403 aik(4,1)= allu0(36*kk-17)
404 aik(4,2)= allu0(36*kk-16)
405 aik(4,3)= allu0(36*kk-15)
406 aik(4,4)= allu0(36*kk-14)
407 aik(4,5)= allu0(36*kk-13)
408 aik(4,6)= allu0(36*kk-12)
409 aik(5,1)= allu0(36*kk-11)
410 aik(5,2)= allu0(36*kk-10)
411 aik(5,3)= allu0(36*kk-9)
412 aik(5,4)= allu0(36*kk-8)
413 aik(5,5)= allu0(36*kk-7)
414 aik(5,6)= allu0(36*kk-6)
415 aik(6,1)= allu0(36*kk-5)
416 aik(6,2)= allu0(36*kk-4)
417 aik(6,3)= allu0(36*kk-3)
418 aik(6,4)= allu0(36*kk-2)
419 aik(6,5)= allu0(36*kk-1)
420 aik(6,6)= allu0(36*kk )
422 do jj= inu(k-1)+1, inu(k)
424 if (iw1(j).eq.0.and.iw2(j).eq.0) cycle
426 akj(1,1)= aulu0(36*jj-35)
427 akj(1,2)= aulu0(36*jj-34)
428 akj(1,3)= aulu0(36*jj-33)
429 akj(1,4)= aulu0(36*jj-32)
430 akj(1,5)= aulu0(36*jj-31)
431 akj(1,6)= aulu0(36*jj-30)
432 akj(2,1)= aulu0(36*jj-29)
433 akj(2,2)= aulu0(36*jj-28)
434 akj(2,3)= aulu0(36*jj-27)
435 akj(2,4)= aulu0(36*jj-26)
436 akj(2,5)= aulu0(36*jj-25)
437 akj(2,6)= aulu0(36*jj-24)
438 akj(3,1)= aulu0(36*jj-23)
439 akj(3,2)= aulu0(36*jj-22)
440 akj(3,3)= aulu0(36*jj-21)
441 akj(3,4)= aulu0(36*jj-20)
442 akj(3,5)= aulu0(36*jj-19)
443 akj(3,6)= aulu0(36*jj-18)
444 akj(4,1)= aulu0(36*jj-17)
445 akj(4,2)= aulu0(36*jj-16)
446 akj(4,3)= aulu0(36*jj-15)
447 akj(4,4)= aulu0(36*jj-14)
448 akj(4,5)= aulu0(36*jj-13)
449 akj(4,6)= aulu0(36*jj-12)
450 akj(5,1)= aulu0(36*jj-11)
451 akj(5,2)= aulu0(36*jj-10)
452 akj(5,3)= aulu0(36*jj-9)
453 akj(5,4)= aulu0(36*jj-8)
454 akj(5,5)= aulu0(36*jj-7)
455 akj(5,6)= aulu0(36*jj-6)
456 akj(6,1)= aulu0(36*jj-5)
457 akj(6,2)= aulu0(36*jj-4)
458 akj(6,3)= aulu0(36*jj-3)
459 akj(6,4)= aulu0(36*jj-2)
460 akj(6,5)= aulu0(36*jj-1)
461 akj(6,6)= aulu0(36*jj )
463 call ilu1b66 (rhs_aij, dkinv, aik, akj)
466 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
467 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
468 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
469 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
470 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
471 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
472 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
473 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
474 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
475 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
476 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
477 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
478 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
479 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
480 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
481 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
482 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
483 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
484 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
485 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
486 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
487 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
488 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
489 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
490 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
491 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
492 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
493 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
494 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
495 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
496 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
497 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
498 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
499 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
500 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
501 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
506 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
507 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
508 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
509 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
510 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
511 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
512 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
513 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
514 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
515 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
516 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
517 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
518 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
519 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
520 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
521 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
522 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
523 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
524 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
525 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
526 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
527 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
528 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
529 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
530 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
531 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
532 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
533 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
534 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
535 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
536 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
537 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
538 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
539 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
540 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
541 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
546 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
547 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
548 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
549 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
550 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
551 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
552 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
553 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
554 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
555 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
556 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
557 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
558 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
559 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
560 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
561 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
562 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
563 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
564 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
565 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
566 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
567 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
568 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
569 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
570 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
571 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
572 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
573 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
574 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
575 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
576 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
577 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
578 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
579 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
580 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
581 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
588 deallocate (iw1, iw2)
589 end subroutine form_ilu0_66
598 subroutine form_ilu1_66 &
599 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
602 integer(kind=kint ),
intent(in):: n, np, npu, npl
603 real (kind=
kreal),
intent(in):: sigma, sigma_diag
605 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
606 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
607 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
609 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
610 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
611 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
613 integer(kind=kint),
dimension(:),
allocatable :: iw1, iw2
614 integer(kind=kint),
dimension(:),
allocatable :: iwsl, iwsu
615 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
616 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
617 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
618 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
619 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
620 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
621 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
622 integer(kind=kint) :: nplf1,npuf1
623 integer(kind=kint) :: i,jj,jj1,ij0,kk,ik,kk1,kk2,l,isk,iek,isj,iej
624 integer(kind=kint) :: icou,icou0,icouu,icouu1,icouu2,icouu3,icoul,icoul1,icoul2,icoul3
625 integer(kind=kint) :: j,k,isl,isu
634 allocate (iw1(np) , iw2(np))
635 allocate (inumfi1l(0:np), inumfi1u(0:np))
646 do l= inl(i-1)+1, inl(i)
649 do l= inu(i-1)+1, inu(i)
661 if (iw1(jj).eq.0 .and. jj.lt.i)
then
662 inumfi1l(i)= inumfi1l(i)+1
665 if (iw1(jj).eq.0 .and. jj.gt.i)
then
666 inumfi1u(i)= inumfi1u(i)+1
671 nplf1= nplf1 + inumfi1l(i)
672 npuf1= npuf1 + inumfi1u(i)
677 allocate (iwsl(0:np), iwsu(0:np))
678 allocate (fi1l(npl+nplf1), fi1u(npu+npuf1))
679 allocate (allu0(36*(npl+nplf1)), aulu0(36*(npu+npuf1)))
687 iwsl(i)= inl(i)-inl(i-1) + inumfi1l(i) + iwsl(i-1)
688 iwsu(i)= inu(i)-inu(i-1) + inumfi1u(i) + iwsu(i-1)
694 inumfi1l(i)= inumfi1l(i-1) + inumfi1l(i)
695 inumfi1u(i)= inumfi1u(i-1) + inumfi1u(i)
699 do l= inl(i-1)+1, inl(i)
702 do l= inu(i-1)+1, inu(i)
714 if (iw1(jj).eq.0 .and. jj.lt.i)
then
716 fi1l(icoul+iwsl(i-1)+inl(i)-inl(i-1))= jj
719 if (iw1(jj).eq.0 .and. jj.gt.i)
then
721 fi1u(icouu+iwsu(i-1)+inu(i)-inu(i-1))= jj
739 icoul1= inl(i) - inl(i-1)
740 icoul2= inumfi1l(i) - inumfi1l(i-1)
741 icoul3= icoul1 + icoul2
742 icouu1= inu(i) - inu(i-1)
743 icouu2= inumfi1u(i) - inumfi1u(i-1)
744 icouu3= icouu1 + icouu2
748 do k= inl(i-1)+1, inl(i)
753 do k= inumfi1l(i-1)+1, inumfi1l(i)
755 iw1(icou0)= fi1l(icou0+iwsl(i-1))
761 call fill_in_s66_sort (iw1, iw2, icoul3, np)
766 if (ik.le.inl(i)-inl(i-1))
then
768 kk2= 36*(ik+inl(i-1))
769 allu0(kk1-35)= al(kk2-35)
770 allu0(kk1-34)= al(kk2-34)
771 allu0(kk1-33)= al(kk2-33)
772 allu0(kk1-32)= al(kk2-32)
773 allu0(kk1-31)= al(kk2-31)
774 allu0(kk1-30)= al(kk2-30)
775 allu0(kk1-29)= al(kk2-29)
776 allu0(kk1-28)= al(kk2-28)
777 allu0(kk1-27)= al(kk2-27)
778 allu0(kk1-26)= al(kk2-26)
779 allu0(kk1-25)= al(kk2-25)
780 allu0(kk1-24)= al(kk2-24)
781 allu0(kk1-23)= al(kk2-23)
782 allu0(kk1-22)= al(kk2-22)
783 allu0(kk1-21)= al(kk2-21)
784 allu0(kk1-20)= al(kk2-20)
785 allu0(kk1-19)= al(kk2-19)
786 allu0(kk1-18)= al(kk2-18)
787 allu0(kk1-17)= al(kk2-17)
788 allu0(kk1-16)= al(kk2-16)
789 allu0(kk1-15)= al(kk2-15)
790 allu0(kk1-14)= al(kk2-14)
791 allu0(kk1-13)= al(kk2-13)
792 allu0(kk1-12)= al(kk2-12)
793 allu0(kk1-11)= al(kk2-11)
794 allu0(kk1-10)= al(kk2-10)
795 allu0(kk1-9 )= al(kk2-9 )
796 allu0(kk1-8 )= al(kk2-8 )
797 allu0(kk1-7 )= al(kk2-7 )
798 allu0(kk1-6 )= al(kk2-6 )
799 allu0(kk1-5 )= al(kk2-5 )
800 allu0(kk1-4 )= al(kk2-4 )
801 allu0(kk1-3 )= al(kk2-3 )
802 allu0(kk1-2 )= al(kk2-2 )
803 allu0(kk1-1 )= al(kk2-1 )
804 allu0(kk1 )= al(kk2 )
810 do k= inu(i-1)+1, inu(i)
815 do k= inumfi1u(i-1)+1, inumfi1u(i)
817 iw1(icou0)= fi1u(icou0+iwsu(i-1))
823 call fill_in_s66_sort (iw1, iw2, icouu3, np)
828 if (ik.le.inu(i)-inu(i-1))
then
830 kk2= 36*(ik+inu(i-1))
831 aulu0(kk1-35)= au(kk2-35)
832 aulu0(kk1-34)= au(kk2-34)
833 aulu0(kk1-33)= au(kk2-33)
834 aulu0(kk1-32)= au(kk2-32)
835 aulu0(kk1-31)= au(kk2-31)
836 aulu0(kk1-30)= au(kk2-30)
837 aulu0(kk1-29)= au(kk2-29)
838 aulu0(kk1-28)= au(kk2-28)
839 aulu0(kk1-27)= au(kk2-27)
840 aulu0(kk1-26)= au(kk2-26)
841 aulu0(kk1-25)= au(kk2-25)
842 aulu0(kk1-24)= au(kk2-24)
843 aulu0(kk1-23)= au(kk2-23)
844 aulu0(kk1-22)= au(kk2-22)
845 aulu0(kk1-21)= au(kk2-21)
846 aulu0(kk1-20)= au(kk2-20)
847 aulu0(kk1-19)= au(kk2-19)
848 aulu0(kk1-18)= au(kk2-18)
849 aulu0(kk1-17)= au(kk2-17)
850 aulu0(kk1-16)= au(kk2-16)
851 aulu0(kk1-15)= au(kk2-15)
852 aulu0(kk1-14)= au(kk2-14)
853 aulu0(kk1-13)= au(kk2-13)
854 aulu0(kk1-12)= au(kk2-12)
855 aulu0(kk1-11)= au(kk2-11)
856 aulu0(kk1-10)= au(kk2-10)
857 aulu0(kk1-9 )= au(kk2-9 )
858 aulu0(kk1-8 )= au(kk2-8 )
859 aulu0(kk1-7 )= au(kk2-7 )
860 aulu0(kk1-6 )= au(kk2-6 )
861 aulu0(kk1-5 )= au(kk2-5 )
862 aulu0(kk1-4 )= au(kk2-4 )
863 aulu0(kk1-3 )= au(kk2-3 )
864 aulu0(kk1-2 )= au(kk2-2 )
865 aulu0(kk1-1 )= au(kk2-1 )
866 aulu0(kk1 )= au(kk2 )
879 deallocate (iwsl, iwsu)
886 allocate (dlu0(36*np))
889 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
890 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
891 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
892 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
893 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
894 dlu0(36*i )=dlu0(36*i )*sigma_diag
901 do k= inumfi1l(i-1)+1, inumfi1l(i)
905 do k= inumfi1u(i-1)+1, inumfi1u(i)
909 do kk= inl(i-1)+1, inl(i)
948 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
949 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
950 & d61,d62,d63,d64,d65,d66)
952 do kk1= inumfi1l(i-1)+1, inumfi1l(i)
953 if (k.eq.fi1l(kk1))
then
954 aik(1,1)= allu0(36*kk1-35)
955 aik(1,2)= allu0(36*kk1-34)
956 aik(1,3)= allu0(36*kk1-33)
957 aik(1,4)= allu0(36*kk1-32)
958 aik(1,5)= allu0(36*kk1-31)
959 aik(1,6)= allu0(36*kk1-30)
960 aik(2,1)= allu0(36*kk1-29)
961 aik(2,2)= allu0(36*kk1-28)
962 aik(2,3)= allu0(36*kk1-27)
963 aik(2,4)= allu0(36*kk1-26)
964 aik(2,5)= allu0(36*kk1-25)
965 aik(2,6)= allu0(36*kk1-24)
966 aik(3,1)= allu0(36*kk1-23)
967 aik(3,2)= allu0(36*kk1-22)
968 aik(3,3)= allu0(36*kk1-21)
969 aik(3,4)= allu0(36*kk1-20)
970 aik(3,5)= allu0(36*kk1-19)
971 aik(3,6)= allu0(36*kk1-18)
972 aik(4,1)= allu0(36*kk1-17)
973 aik(4,2)= allu0(36*kk1-16)
974 aik(4,3)= allu0(36*kk1-15)
975 aik(4,4)= allu0(36*kk1-14)
976 aik(4,5)= allu0(36*kk1-13)
977 aik(4,6)= allu0(36*kk1-12)
978 aik(5,1)= allu0(36*kk1-11)
979 aik(5,2)= allu0(36*kk1-10)
980 aik(5,3)= allu0(36*kk1-9)
981 aik(5,4)= allu0(36*kk1-8)
982 aik(5,5)= allu0(36*kk1-7)
983 aik(5,6)= allu0(36*kk1-6)
984 aik(6,1)= allu0(36*kk1-5)
985 aik(6,2)= allu0(36*kk1-4)
986 aik(6,3)= allu0(36*kk1-3)
987 aik(6,4)= allu0(36*kk1-2)
988 aik(6,5)= allu0(36*kk1-1)
989 aik(6,6)= allu0(36*kk1 )
994 do jj= inu(k-1)+1, inu(k)
996 do jj1= inumfi1u(k-1)+1, inumfi1u(k)
997 if (j.eq.fi1u(jj1))
then
998 akj(1,1)= aulu0(36*jj1-35)
999 akj(1,2)= aulu0(36*jj1-34)
1000 akj(1,3)= aulu0(36*jj1-33)
1001 akj(1,4)= aulu0(36*jj1-32)
1002 akj(1,5)= aulu0(36*jj1-31)
1003 akj(1,6)= aulu0(36*jj1-30)
1004 akj(2,1)= aulu0(36*jj1-29)
1005 akj(2,2)= aulu0(36*jj1-28)
1006 akj(2,3)= aulu0(36*jj1-27)
1007 akj(2,4)= aulu0(36*jj1-26)
1008 akj(2,5)= aulu0(36*jj1-25)
1009 akj(2,6)= aulu0(36*jj1-24)
1010 akj(3,1)= aulu0(36*jj1-23)
1011 akj(3,2)= aulu0(36*jj1-22)
1012 akj(3,3)= aulu0(36*jj1-21)
1013 akj(3,4)= aulu0(36*jj1-20)
1014 akj(3,5)= aulu0(36*jj1-19)
1015 akj(3,6)= aulu0(36*jj1-18)
1016 akj(4,1)= aulu0(36*jj1-17)
1017 akj(4,2)= aulu0(36*jj1-16)
1018 akj(4,3)= aulu0(36*jj1-15)
1019 akj(4,4)= aulu0(36*jj1-14)
1020 akj(4,5)= aulu0(36*jj1-13)
1021 akj(4,6)= aulu0(36*jj1-12)
1022 akj(5,1)= aulu0(36*jj1-11)
1023 akj(5,2)= aulu0(36*jj1-10)
1024 akj(5,3)= aulu0(36*jj1-9)
1025 akj(5,4)= aulu0(36*jj1-8)
1026 akj(5,5)= aulu0(36*jj1-7)
1027 akj(5,6)= aulu0(36*jj1-6)
1028 akj(6,1)= aulu0(36*jj1-5)
1029 akj(6,2)= aulu0(36*jj1-4)
1030 akj(6,3)= aulu0(36*jj1-3)
1031 akj(6,4)= aulu0(36*jj1-2)
1032 akj(6,5)= aulu0(36*jj1-1)
1033 akj(6,6)= aulu0(36*jj1 )
1038 call ilu1b66 (rhs_aij, dkinv, aik, akj)
1041 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
1042 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
1043 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
1044 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
1045 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
1046 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
1047 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
1048 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
1049 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
1050 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
1051 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
1052 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
1053 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
1054 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
1055 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
1056 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
1057 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
1058 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
1059 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
1060 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
1061 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
1062 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
1063 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
1064 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
1065 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
1066 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
1067 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
1068 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
1069 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
1070 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
1071 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
1072 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
1073 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
1074 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
1075 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
1076 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
1081 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
1082 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
1083 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
1084 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
1085 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
1086 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
1087 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
1088 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
1089 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
1090 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
1091 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
1092 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
1093 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
1094 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
1095 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
1096 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
1097 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
1098 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
1099 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
1100 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
1101 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
1102 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
1103 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
1104 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
1105 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
1106 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
1107 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
1108 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
1109 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
1110 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
1111 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
1112 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
1113 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
1114 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
1115 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
1116 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
1121 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
1122 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
1123 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
1124 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
1125 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
1126 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
1127 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
1128 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
1129 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
1130 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
1131 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
1132 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
1133 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
1134 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
1135 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
1136 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
1137 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
1138 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
1139 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
1140 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
1141 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
1142 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
1143 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
1144 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
1145 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
1146 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
1147 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
1148 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
1149 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
1150 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
1151 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
1152 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
1153 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
1154 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
1155 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
1156 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
1163 deallocate (iw1, iw2)
1165 end subroutine form_ilu1_66
1174 subroutine form_ilu2_66 &
1175 & (n, np, npl, npu, d, al, inl, ial, au, inu, iau, &
1176 & sigma, sigma_diag)
1178 integer(kind=kint ),
intent(in):: n, np, npu, npl
1179 real (kind=
kreal),
intent(in):: sigma, sigma_diag
1181 real(kind=
kreal),
dimension(36*NPL),
intent(in):: al
1182 real(kind=
kreal),
dimension(36*NPU),
intent(in):: au
1183 real(kind=
kreal),
dimension(36*NP ),
intent(in):: d
1185 integer(kind=kint ),
dimension(0:NP) ,
intent(in) :: inu, inl
1186 integer(kind=kint ),
dimension( NPL),
intent(in) :: ial
1187 integer(kind=kint ),
dimension( NPU),
intent(in) :: iau
1189 integer(kind=kint),
dimension(:),
allocatable:: iw1 , iw2
1190 integer(kind=kint),
dimension(:),
allocatable:: iwsl, iwsu
1191 integer(kind=kint),
dimension(:),
allocatable:: iconfi1l, iconfi1u
1192 integer(kind=kint),
dimension(:),
allocatable:: inumfi2l, inumfi2u
1193 integer(kind=kint),
dimension(:),
allocatable:: fi2l, fi2u
1194 real (kind=
kreal),
dimension(6,6) :: rhs_aij, dkinv, aik, akj
1195 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
1196 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
1197 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
1198 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
1199 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
1200 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
1201 integer(kind=kint) :: nplf1,nplf2,npuf1,npuf2,ias,iconik,iconkj
1202 integer(kind=kint) :: i,jj,ij0,kk,ik,kk1,kk2,l,isk,iek,isj,iej
1203 integer(kind=kint) :: icou,icouu,icouu1,icouu2,icouu3,icoul,icoul1,icoul2,icoul3
1204 integer(kind=kint) :: j,k,isl,isu
1214 allocate (iw1(np) , iw2(np))
1215 allocate (inumfi2l(0:np), inumfi2u(0:np))
1226 do l= inl(i-1)+1, inl(i)
1229 do l= inu(i-1)+1, inu(i)
1241 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1242 inumfi2l(i)= inumfi2l(i)+1
1245 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1246 inumfi2u(i)= inumfi2u(i)+1
1251 nplf1= nplf1 + inumfi2l(i)
1252 npuf1= npuf1 + inumfi2u(i)
1257 allocate (iwsl(0:np), iwsu(0:np))
1258 allocate (fi2l(nplf1), fi2u(npuf1))
1266 inumfi2l(i)= inumfi2l(i-1) + inumfi2l(i)
1267 inumfi2u(i)= inumfi2u(i-1) + inumfi2u(i)
1271 do l= inl(i-1)+1, inl(i)
1274 do l= inu(i-1)+1, inu(i)
1286 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1288 fi2l(icoul+inumfi2l(i-1))= jj
1291 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1293 fi2u(icouu+inumfi2u(i-1))= jj
1306 allocate (inumfi1l(0:np), inumfi1u(0:np))
1317 do l= inl(i-1)+1, inl(i)
1320 do l= inu(i-1)+1, inu(i)
1324 do l= inumfi2l(i-1)+1, inumfi2l(i)
1328 do l= inumfi2u(i-1)+1, inumfi2u(i)
1336 isj= inumfi2u(kk-1) + 1
1340 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1341 inumfi1l(i)= inumfi1l(i) + 1
1344 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1345 inumfi1u(i)= inumfi1u(i) + 1
1351 isk= inumfi2l(i-1)+1
1359 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1360 inumfi1l(i)= inumfi1l(i) + 1
1363 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1364 inumfi1u(i)= inumfi1u(i) + 1
1369 nplf2= nplf2 + inumfi1l(i)
1370 npuf2= npuf2 + inumfi1u(i)
1375 allocate (fi1l(npl+nplf1+nplf2))
1376 allocate (fi1u(npu+npuf1+npuf2))
1378 allocate (iconfi1l(npl+nplf1+nplf2))
1379 allocate (iconfi1u(npu+npuf1+npuf2))
1384 iwsl(i)= inl(i)-inl(i-1) + inumfi2l(i)-inumfi2l(i-1) + &
1385 & inumfi1l(i) + iwsl(i-1)
1386 iwsu(i)= inu(i)-inu(i-1) + inumfi2u(i)-inumfi2u(i-1) + &
1387 & inumfi1u(i) + iwsu(i-1)
1393 inumfi1l(i)= inumfi1l(i-1) + inumfi1l(i)
1394 inumfi1u(i)= inumfi1u(i-1) + inumfi1u(i)
1398 do l= inl(i-1)+1, inl(i)
1401 do l= inu(i-1)+1, inu(i)
1405 do l= inumfi2l(i-1)+1, inumfi2l(i)
1409 do l= inumfi2u(i-1)+1, inumfi2u(i)
1417 isj= inumfi2u(kk-1) + 1
1421 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1422 ias= inl(i)-inl(i-1)+inumfi2l(i)-inumfi2l(i-1)+iwsl(i-1)
1427 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1428 ias= inu(i)-inu(i-1)+inumfi2u(i)-inumfi2u(i-1)+iwsu(i-1)
1436 isk= inumfi2l(i-1) + 1
1444 if (iw1(jj).eq.0 .and. jj.lt.i)
then
1445 ias= inl(i)-inl(i-1)+inumfi2l(i)-inumfi2l(i-1)+iwsl(i-1)
1450 if (iw1(jj).eq.0 .and. jj.gt.i)
then
1451 ias= inu(i)-inu(i-1)+inumfi2u(i)-inumfi2u(i-1)+iwsu(i-1)
1466 allocate (allu0(9*(npl+nplf1+nplf2)))
1467 allocate (aulu0(9*(npu+npuf1+npuf2)))
1478 icoul1= inl(i) - inl(i-1)
1479 icoul2= inumfi2l(i) - inumfi2l(i-1) + icoul1
1480 icoul3= inumfi1l(i) - inumfi1l(i-1) + icoul2
1482 icouu1= inu(i) - inu(i-1)
1483 icouu2= inumfi2u(i) - inumfi2u(i-1) + icouu1
1484 icouu3= inumfi1u(i) - inumfi1u(i-1) + icouu2
1489 do k= inl(i-1)+1, inl(i)
1495 do k= inumfi2l(i-1)+1, inumfi2l(i)
1497 iw1(icou+icoul1)= fi2l(k)
1501 do k= inumfi1l(i-1)+1, inumfi1l(i)
1503 iw1(icou+icoul2)= fi1l(icou+icoul2+isl)
1510 call fill_in_s66_sort (iw1, iw2, icoul3, np)
1515 if (ik.le.inl(i)-inl(i-1))
then
1517 kk2= 36*(ik+inl(i-1))
1518 allu0(kk1-35)= al(kk2-35)
1519 allu0(kk1-34)= al(kk2-34)
1520 allu0(kk1-33)= al(kk2-33)
1521 allu0(kk1-32)= al(kk2-32)
1522 allu0(kk1-31)= al(kk2-31)
1523 allu0(kk1-30)= al(kk2-30)
1524 allu0(kk1-29)= al(kk2-29)
1525 allu0(kk1-28)= al(kk2-28)
1526 allu0(kk1-27)= al(kk2-27)
1527 allu0(kk1-26)= al(kk2-26)
1528 allu0(kk1-25)= al(kk2-25)
1529 allu0(kk1-24)= al(kk2-24)
1530 allu0(kk1-23)= al(kk2-23)
1531 allu0(kk1-22)= al(kk2-22)
1532 allu0(kk1-21)= al(kk2-21)
1533 allu0(kk1-20)= al(kk2-20)
1534 allu0(kk1-19)= al(kk2-19)
1535 allu0(kk1-18)= al(kk2-18)
1536 allu0(kk1-17)= al(kk2-17)
1537 allu0(kk1-16)= al(kk2-16)
1538 allu0(kk1-15)= al(kk2-15)
1539 allu0(kk1-14)= al(kk2-14)
1540 allu0(kk1-13)= al(kk2-13)
1541 allu0(kk1-12)= al(kk2-12)
1542 allu0(kk1-11)= al(kk2-11)
1543 allu0(kk1-10)= al(kk2-10)
1544 allu0(kk1-9 )= al(kk2-9 )
1545 allu0(kk1-8 )= al(kk2-8 )
1546 allu0(kk1-7 )= al(kk2-7 )
1547 allu0(kk1-6 )= al(kk2-6 )
1548 allu0(kk1-5 )= al(kk2-5 )
1549 allu0(kk1-4 )= al(kk2-4 )
1550 allu0(kk1-3 )= al(kk2-3 )
1551 allu0(kk1-2 )= al(kk2-2 )
1552 allu0(kk1-1 )= al(kk2-1 )
1553 allu0(kk1 )= al(kk2 )
1558 do k= inl(i-1)+1, inl(i)
1564 do k= inumfi2l(i-1)+1, inumfi2l(i)
1570 do k= inumfi1l(i-1)+1, inumfi1l(i)
1576 iconfi1l(k+isl)= iw1(iw2(k))
1581 do k= inu(i-1)+1, inu(i)
1587 do k= inumfi2u(i-1)+1, inumfi2u(i)
1589 iw1(icou+icouu1)= fi2u(k)
1593 do k= inumfi1u(i-1)+1, inumfi1u(i)
1595 iw1(icou+icouu2)= fi1u(icou+icouu2+isu)
1601 call fill_in_s66_sort (iw1, iw2, icouu3, np)
1606 if (ik.le.inu(i)-inu(i-1))
then
1608 kk2= 36*(ik+inu(i-1))
1609 aulu0(kk1-35)= au(kk2-35)
1610 aulu0(kk1-34)= au(kk2-34)
1611 aulu0(kk1-33)= au(kk2-33)
1612 aulu0(kk1-32)= au(kk2-32)
1613 aulu0(kk1-31)= au(kk2-31)
1614 aulu0(kk1-30)= au(kk2-30)
1615 aulu0(kk1-29)= au(kk2-29)
1616 aulu0(kk1-28)= au(kk2-28)
1617 aulu0(kk1-27)= au(kk2-27)
1618 aulu0(kk1-26)= au(kk2-26)
1619 aulu0(kk1-25)= au(kk2-25)
1620 aulu0(kk1-24)= au(kk2-24)
1621 aulu0(kk1-23)= au(kk2-23)
1622 aulu0(kk1-22)= au(kk2-22)
1623 aulu0(kk1-21)= au(kk2-21)
1624 aulu0(kk1-20)= au(kk2-20)
1625 aulu0(kk1-19)= au(kk2-19)
1626 aulu0(kk1-18)= au(kk2-18)
1627 aulu0(kk1-17)= au(kk2-17)
1628 aulu0(kk1-16)= au(kk2-16)
1629 aulu0(kk1-15)= au(kk2-15)
1630 aulu0(kk1-14)= au(kk2-14)
1631 aulu0(kk1-13)= au(kk2-13)
1632 aulu0(kk1-12)= au(kk2-12)
1633 aulu0(kk1-11)= au(kk2-11)
1634 aulu0(kk1-10)= au(kk2-10)
1635 aulu0(kk1-9 )= au(kk2-9 )
1636 aulu0(kk1-8 )= au(kk2-8 )
1637 aulu0(kk1-7 )= au(kk2-7 )
1638 aulu0(kk1-6 )= au(kk2-6 )
1639 aulu0(kk1-5 )= au(kk2-5 )
1640 aulu0(kk1-4 )= au(kk2-4 )
1641 aulu0(kk1-3 )= au(kk2-3 )
1642 aulu0(kk1-2 )= au(kk2-2 )
1643 aulu0(kk1-1 )= au(kk2-1 )
1644 aulu0(kk1 )= au(kk2 )
1649 do k= inu(i-1)+1, inu(i)
1655 do k= inumfi2u(i-1)+1, inumfi2u(i)
1661 do k= inumfi1u(i-1)+1, inumfi1u(i)
1667 iconfi1u(k+isu)= iw1(iw2(k))
1675 inumfi1l(i)= iwsl(i)
1676 inumfi1u(i)= iwsu(i)
1679 deallocate (iwsl, iwsu)
1680 deallocate (inumfi2l, inumfi2u)
1681 deallocate ( fi2l, fi2u)
1688 allocate (dlu0(36*np))
1691 dlu0(36*i-35)=dlu0(36*i-35)*sigma_diag
1692 dlu0(36*i-28)=dlu0(36*i-28)*sigma_diag
1693 dlu0(36*i-21)=dlu0(36*i-21)*sigma_diag
1694 dlu0(36*i-14)=dlu0(36*i-14)*sigma_diag
1695 dlu0(36*i-7 )=dlu0(36*i-7 )*sigma_diag
1696 dlu0(36*i )=dlu0(36*i )*sigma_diag
1703 do k= inumfi1l(i-1)+1, inumfi1l(i)
1707 do k= inumfi1u(i-1)+1, inumfi1u(i)
1711 do kk= inumfi1l(i-1)+1, inumfi1l(i)
1713 iconik= iconfi1l(kk)
1752 call ilu1a66 (dkinv,d11,d12,d13,d14,d15,d16,d21,d22,d23,d24,d25,d26, &
1753 & d31,d32,d33,d34,d35,d36,d41,d42,d43,d44,d45,d46,d51,d52,d53,d54,d55,d56, &
1754 & d61,d62,d63,d64,d65,d66)
1756 aik(1,1)= allu0(36*kk-35)
1757 aik(1,2)= allu0(36*kk-34)
1758 aik(1,3)= allu0(36*kk-33)
1759 aik(1,4)= allu0(36*kk-32)
1760 aik(1,5)= allu0(36*kk-31)
1761 aik(1,6)= allu0(36*kk-30)
1762 aik(2,1)= allu0(36*kk-29)
1763 aik(2,2)= allu0(36*kk-28)
1764 aik(2,3)= allu0(36*kk-27)
1765 aik(2,4)= allu0(36*kk-26)
1766 aik(2,5)= allu0(36*kk-25)
1767 aik(2,6)= allu0(36*kk-24)
1768 aik(3,1)= allu0(36*kk-23)
1769 aik(3,2)= allu0(36*kk-22)
1770 aik(3,3)= allu0(36*kk-21)
1771 aik(3,4)= allu0(36*kk-20)
1772 aik(3,5)= allu0(36*kk-19)
1773 aik(3,6)= allu0(36*kk-18)
1774 aik(4,1)= allu0(36*kk-17)
1775 aik(4,2)= allu0(36*kk-16)
1776 aik(4,3)= allu0(36*kk-15)
1777 aik(4,4)= allu0(36*kk-14)
1778 aik(4,5)= allu0(36*kk-13)
1779 aik(4,6)= allu0(36*kk-12)
1780 aik(5,1)= allu0(36*kk-11)
1781 aik(5,2)= allu0(36*kk-10)
1782 aik(5,3)= allu0(36*kk-9)
1783 aik(5,4)= allu0(36*kk-8)
1784 aik(5,5)= allu0(36*kk-7)
1785 aik(5,6)= allu0(36*kk-6)
1786 aik(6,1)= allu0(36*kk-5)
1787 aik(6,2)= allu0(36*kk-4)
1788 aik(6,3)= allu0(36*kk-3)
1789 aik(6,4)= allu0(36*kk-2)
1790 aik(6,5)= allu0(36*kk-1)
1791 aik(6,6)= allu0(36*kk )
1793 do jj= inumfi1u(k-1)+1, inumfi1u(k)
1795 iconkj= iconfi1u(jj)
1797 if ((iconik+iconkj).lt.2)
then
1798 akj(1,1)= aulu0(36*jj-35)
1799 akj(1,2)= aulu0(36*jj-34)
1800 akj(1,3)= aulu0(36*jj-33)
1801 akj(1,4)= aulu0(36*jj-32)
1802 akj(1,5)= aulu0(36*jj-31)
1803 akj(1,6)= aulu0(36*jj-30)
1804 akj(2,1)= aulu0(36*jj-29)
1805 akj(2,2)= aulu0(36*jj-28)
1806 akj(2,3)= aulu0(36*jj-27)
1807 akj(2,4)= aulu0(36*jj-26)
1808 akj(2,5)= aulu0(36*jj-25)
1809 akj(2,6)= aulu0(36*jj-24)
1810 akj(3,1)= aulu0(36*jj-23)
1811 akj(3,2)= aulu0(36*jj-22)
1812 akj(3,3)= aulu0(36*jj-21)
1813 akj(3,4)= aulu0(36*jj-20)
1814 akj(3,5)= aulu0(36*jj-19)
1815 akj(3,6)= aulu0(36*jj-18)
1816 akj(4,1)= aulu0(36*jj-17)
1817 akj(4,2)= aulu0(36*jj-16)
1818 akj(4,3)= aulu0(36*jj-15)
1819 akj(4,4)= aulu0(36*jj-14)
1820 akj(4,5)= aulu0(36*jj-13)
1821 akj(4,6)= aulu0(36*jj-12)
1822 akj(5,1)= aulu0(36*jj-11)
1823 akj(5,2)= aulu0(36*jj-10)
1824 akj(5,3)= aulu0(36*jj-9)
1825 akj(5,4)= aulu0(36*jj-8)
1826 akj(5,5)= aulu0(36*jj-7)
1827 akj(5,6)= aulu0(36*jj-6)
1828 akj(6,1)= aulu0(36*jj-5)
1829 akj(6,2)= aulu0(36*jj-4)
1830 akj(6,3)= aulu0(36*jj-3)
1831 akj(6,4)= aulu0(36*jj-2)
1832 akj(6,5)= aulu0(36*jj-1)
1833 akj(6,6)= aulu0(36*jj )
1835 call ilu1b66 (rhs_aij, dkinv, aik, akj)
1838 dlu0(36*i-35)= dlu0(36*i-35) - rhs_aij(1,1)
1839 dlu0(36*i-34)= dlu0(36*i-34) - rhs_aij(1,2)
1840 dlu0(36*i-33)= dlu0(36*i-33) - rhs_aij(1,3)
1841 dlu0(36*i-32)= dlu0(36*i-32) - rhs_aij(1,4)
1842 dlu0(36*i-31)= dlu0(36*i-31) - rhs_aij(1,5)
1843 dlu0(36*i-30)= dlu0(36*i-30) - rhs_aij(1,6)
1844 dlu0(36*i-29)= dlu0(36*i-29) - rhs_aij(2,1)
1845 dlu0(36*i-28)= dlu0(36*i-28) - rhs_aij(2,2)
1846 dlu0(36*i-27)= dlu0(36*i-27) - rhs_aij(2,3)
1847 dlu0(36*i-26)= dlu0(36*i-26) - rhs_aij(2,4)
1848 dlu0(36*i-25)= dlu0(36*i-25) - rhs_aij(2,5)
1849 dlu0(36*i-24)= dlu0(36*i-24) - rhs_aij(2,6)
1850 dlu0(36*i-23)= dlu0(36*i-23) - rhs_aij(3,1)
1851 dlu0(36*i-22)= dlu0(36*i-22) - rhs_aij(3,2)
1852 dlu0(36*i-21)= dlu0(36*i-21) - rhs_aij(3,3)
1853 dlu0(36*i-20)= dlu0(36*i-20) - rhs_aij(3,4)
1854 dlu0(36*i-19)= dlu0(36*i-19) - rhs_aij(3,5)
1855 dlu0(36*i-18)= dlu0(36*i-18) - rhs_aij(3,6)
1856 dlu0(36*i-17)= dlu0(36*i-17) - rhs_aij(4,1)
1857 dlu0(36*i-16)= dlu0(36*i-16) - rhs_aij(4,2)
1858 dlu0(36*i-15)= dlu0(36*i-15) - rhs_aij(4,3)
1859 dlu0(36*i-14)= dlu0(36*i-14) - rhs_aij(4,4)
1860 dlu0(36*i-13)= dlu0(36*i-13) - rhs_aij(4,5)
1861 dlu0(36*i-12)= dlu0(36*i-12) - rhs_aij(4,6)
1862 dlu0(36*i-11)= dlu0(36*i-11) - rhs_aij(5,1)
1863 dlu0(36*i-10)= dlu0(36*i-10) - rhs_aij(5,2)
1864 dlu0(36*i-9 )= dlu0(36*i-9 ) - rhs_aij(5,3)
1865 dlu0(36*i-8 )= dlu0(36*i-8 ) - rhs_aij(5,4)
1866 dlu0(36*i-7 )= dlu0(36*i-7 ) - rhs_aij(5,5)
1867 dlu0(36*i-6 )= dlu0(36*i-6 ) - rhs_aij(5,6)
1868 dlu0(36*i-5 )= dlu0(36*i-5 ) - rhs_aij(6,1)
1869 dlu0(36*i-4 )= dlu0(36*i-4 ) - rhs_aij(6,2)
1870 dlu0(36*i-3 )= dlu0(36*i-3 ) - rhs_aij(6,3)
1871 dlu0(36*i-2 )= dlu0(36*i-2 ) - rhs_aij(6,4)
1872 dlu0(36*i-1 )= dlu0(36*i-1 ) - rhs_aij(6,5)
1873 dlu0(36*i )= dlu0(36*i ) - rhs_aij(6,6)
1878 allu0(36*ij0-35)= allu0(36*ij0-35) - rhs_aij(1,1)
1879 allu0(36*ij0-34)= allu0(36*ij0-34) - rhs_aij(1,2)
1880 allu0(36*ij0-33)= allu0(36*ij0-33) - rhs_aij(1,3)
1881 allu0(36*ij0-32)= allu0(36*ij0-32) - rhs_aij(1,4)
1882 allu0(36*ij0-31)= allu0(36*ij0-31) - rhs_aij(1,5)
1883 allu0(36*ij0-30)= allu0(36*ij0-30) - rhs_aij(1,6)
1884 allu0(36*ij0-29)= allu0(36*ij0-29) - rhs_aij(2,1)
1885 allu0(36*ij0-28)= allu0(36*ij0-28) - rhs_aij(2,2)
1886 allu0(36*ij0-27)= allu0(36*ij0-27) - rhs_aij(2,3)
1887 allu0(36*ij0-26)= allu0(36*ij0-26) - rhs_aij(2,4)
1888 allu0(36*ij0-25)= allu0(36*ij0-25) - rhs_aij(2,5)
1889 allu0(36*ij0-24)= allu0(36*ij0-24) - rhs_aij(2,6)
1890 allu0(36*ij0-23)= allu0(36*ij0-23) - rhs_aij(3,1)
1891 allu0(36*ij0-22)= allu0(36*ij0-22) - rhs_aij(3,2)
1892 allu0(36*ij0-21)= allu0(36*ij0-21) - rhs_aij(3,3)
1893 allu0(36*ij0-20)= allu0(36*ij0-20) - rhs_aij(3,4)
1894 allu0(36*ij0-19)= allu0(36*ij0-19) - rhs_aij(3,5)
1895 allu0(36*ij0-18)= allu0(36*ij0-18) - rhs_aij(3,6)
1896 allu0(36*ij0-17)= allu0(36*ij0-17) - rhs_aij(4,1)
1897 allu0(36*ij0-16)= allu0(36*ij0-16) - rhs_aij(4,2)
1898 allu0(36*ij0-15)= allu0(36*ij0-15) - rhs_aij(4,3)
1899 allu0(36*ij0-14)= allu0(36*ij0-14) - rhs_aij(4,4)
1900 allu0(36*ij0-13)= allu0(36*ij0-13) - rhs_aij(4,5)
1901 allu0(36*ij0-12)= allu0(36*ij0-12) - rhs_aij(4,6)
1902 allu0(36*ij0-11)= allu0(36*ij0-11) - rhs_aij(5,1)
1903 allu0(36*ij0-10)= allu0(36*ij0-10) - rhs_aij(5,2)
1904 allu0(36*ij0-9 )= allu0(36*ij0-9 ) - rhs_aij(5,3)
1905 allu0(36*ij0-8 )= allu0(36*ij0-8 ) - rhs_aij(5,4)
1906 allu0(36*ij0-7 )= allu0(36*ij0-7 ) - rhs_aij(5,5)
1907 allu0(36*ij0-6 )= allu0(36*ij0-6 ) - rhs_aij(5,6)
1908 allu0(36*ij0-5 )= allu0(36*ij0-5 ) - rhs_aij(6,1)
1909 allu0(36*ij0-4 )= allu0(36*ij0-4 ) - rhs_aij(6,2)
1910 allu0(36*ij0-3 )= allu0(36*ij0-3 ) - rhs_aij(6,3)
1911 allu0(36*ij0-2 )= allu0(36*ij0-2 ) - rhs_aij(6,4)
1912 allu0(36*ij0-1 )= allu0(36*ij0-1 ) - rhs_aij(6,5)
1913 allu0(36*ij0 )= allu0(36*ij0 ) - rhs_aij(6,6)
1918 aulu0(36*ij0-35)= aulu0(36*ij0-35) - rhs_aij(1,1)
1919 aulu0(36*ij0-34)= aulu0(36*ij0-34) - rhs_aij(1,2)
1920 aulu0(36*ij0-33)= aulu0(36*ij0-33) - rhs_aij(1,3)
1921 aulu0(36*ij0-32)= aulu0(36*ij0-32) - rhs_aij(1,4)
1922 aulu0(36*ij0-31)= aulu0(36*ij0-31) - rhs_aij(1,5)
1923 aulu0(36*ij0-30)= aulu0(36*ij0-30) - rhs_aij(1,6)
1924 aulu0(36*ij0-29)= aulu0(36*ij0-29) - rhs_aij(2,1)
1925 aulu0(36*ij0-28)= aulu0(36*ij0-28) - rhs_aij(2,2)
1926 aulu0(36*ij0-27)= aulu0(36*ij0-27) - rhs_aij(2,3)
1927 aulu0(36*ij0-26)= aulu0(36*ij0-26) - rhs_aij(2,4)
1928 aulu0(36*ij0-25)= aulu0(36*ij0-25) - rhs_aij(2,5)
1929 aulu0(36*ij0-24)= aulu0(36*ij0-24) - rhs_aij(2,6)
1930 aulu0(36*ij0-23)= aulu0(36*ij0-23) - rhs_aij(3,1)
1931 aulu0(36*ij0-22)= aulu0(36*ij0-22) - rhs_aij(3,2)
1932 aulu0(36*ij0-21)= aulu0(36*ij0-21) - rhs_aij(3,3)
1933 aulu0(36*ij0-20)= aulu0(36*ij0-20) - rhs_aij(3,4)
1934 aulu0(36*ij0-19)= aulu0(36*ij0-19) - rhs_aij(3,5)
1935 aulu0(36*ij0-18)= aulu0(36*ij0-18) - rhs_aij(3,6)
1936 aulu0(36*ij0-17)= aulu0(36*ij0-17) - rhs_aij(4,1)
1937 aulu0(36*ij0-16)= aulu0(36*ij0-16) - rhs_aij(4,2)
1938 aulu0(36*ij0-15)= aulu0(36*ij0-15) - rhs_aij(4,3)
1939 aulu0(36*ij0-14)= aulu0(36*ij0-14) - rhs_aij(4,4)
1940 aulu0(36*ij0-13)= aulu0(36*ij0-13) - rhs_aij(4,5)
1941 aulu0(36*ij0-12)= aulu0(36*ij0-12) - rhs_aij(4,6)
1942 aulu0(36*ij0-11)= aulu0(36*ij0-11) - rhs_aij(5,1)
1943 aulu0(36*ij0-10)= aulu0(36*ij0-10) - rhs_aij(5,2)
1944 aulu0(36*ij0-9 )= aulu0(36*ij0-9 ) - rhs_aij(5,3)
1945 aulu0(36*ij0-8 )= aulu0(36*ij0-8 ) - rhs_aij(5,4)
1946 aulu0(36*ij0-7 )= aulu0(36*ij0-7 ) - rhs_aij(5,5)
1947 aulu0(36*ij0-6 )= aulu0(36*ij0-6 ) - rhs_aij(5,6)
1948 aulu0(36*ij0-5 )= aulu0(36*ij0-5 ) - rhs_aij(6,1)
1949 aulu0(36*ij0-4 )= aulu0(36*ij0-4 ) - rhs_aij(6,2)
1950 aulu0(36*ij0-3 )= aulu0(36*ij0-3 ) - rhs_aij(6,3)
1951 aulu0(36*ij0-2 )= aulu0(36*ij0-2 ) - rhs_aij(6,4)
1952 aulu0(36*ij0-1 )= aulu0(36*ij0-1 ) - rhs_aij(6,5)
1953 aulu0(36*ij0 )= aulu0(36*ij0 ) - rhs_aij(6,6)
1960 deallocate (iw1, iw2)
1961 deallocate (iconfi1l, iconfi1u)
1963 end subroutine form_ilu2_66
1971 subroutine fill_in_s66_sort (STEM, INUM, N, NP)
1974 integer(kind=kint) :: n, np
1975 integer(kind=kint),
dimension(NP) :: stem
1976 integer(kind=kint),
dimension(NP) :: inum
1977 integer(kind=kint),
dimension(:),
allocatable :: istack
1978 integer(kind=kint) :: m,nstack,jstack,l,ir,ip,i,j,k,ss,ii,temp,it
1980 allocate (istack(-np:+np))
1999 if (stem(i).le.ss)
goto 2
2010 if (jstack.eq.0)
then
2016 l = istack(jstack-1)
2029 if (stem(l+1).gt.stem(ir))
then
2038 if (stem(l).gt.stem(ir))
then
2047 if (stem(l+1).gt.stem(l))
then
2064 if (stem(i).lt.ss)
goto 3
2068 if (stem(j).gt.ss)
goto 4
2091 if (jstack.gt.nstack)
then
2092 write (*,*)
'NSTACK overflow'
2096 if (ir-i+1.ge.j-1)
then
2101 istack(jstack )= j-1
2110 end subroutine fill_in_s66_sort
2119 subroutine ilu1a66 (ALU, D11,D12,D13,D14,D15,D16,D21,D22,D23,D24,D25,D26, &
2120 & D31,D32,D33,D34,D35,D36,D41,D42,D43,D44,D45,D46,D51,D52,D53,D54,D55,D56, &
2121 & D61,D62,D63,D64,D65,D66)
2124 real(kind=
kreal) :: alu(6,6), pw(6)
2125 real(kind=
kreal) :: d11,d12,d13,d14,d15,d16
2126 real(kind=
kreal) :: d21,d22,d23,d24,d25,d26
2127 real(kind=
kreal) :: d31,d32,d33,d34,d35,d36
2128 real(kind=
kreal) :: d41,d42,d43,d44,d45,d46
2129 real(kind=
kreal) :: d51,d52,d53,d54,d55,d56
2130 real(kind=
kreal) :: d61,d62,d63,d64,d65,d66
2131 integer(kind=kint) :: i,j,k
2171 alu(k,k)= 1.d0/alu(k,k)
2173 alu(i,k)= alu(i,k) * alu(k,k)
2175 pw(j)= alu(i,j) - alu(i,k)*alu(k,j)
2197 real(kind=
kreal) :: rhs_aij(6,6), dkinv(6,6), aik(6,6), akj(6,6)
2198 real(kind=
kreal) :: x1,x2,x3,x4,x5,x6
2209 x2= x2 -dkinv(2,1)*x1
2210 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2211 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2212 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2213 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2216 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2217 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2218 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2219 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2220 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)
2222 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
2223 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
2224 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
2225 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
2226 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
2227 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
2238 x2= x2 -dkinv(2,1)*x1
2239 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2240 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2241 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2242 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2245 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2246 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2247 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2248 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2249 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)
2251 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
2252 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
2253 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
2254 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
2255 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
2256 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
2267 x2= x2 -dkinv(2,1)*x1
2268 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2269 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2270 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2271 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2274 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2275 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2276 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2277 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2278 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)
2280 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
2281 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
2282 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
2283 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
2284 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
2285 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
2296 x2= x2 -dkinv(2,1)*x1
2297 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2298 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2299 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2300 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2303 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2304 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2305 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2306 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2307 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)
2309 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
2310 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
2311 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
2312 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
2313 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
2314 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
2325 x2= x2 -dkinv(2,1)*x1
2326 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2327 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2328 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2329 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2332 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2333 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2334 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2335 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2336 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)
2338 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
2339 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
2340 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
2341 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
2342 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
2343 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
2354 x2= x2 -dkinv(2,1)*x1
2355 x3= x3 -dkinv(3,1)*x1 -dkinv(3,2)*x2
2356 x4= x4 -dkinv(4,1)*x1 -dkinv(4,2)*x2 -dkinv(4,3)*x3
2357 x5= x5 -dkinv(5,1)*x1 -dkinv(5,2)*x2 -dkinv(5,3)*x3 -dkinv(5,4)*x4
2358 x6= x6 -dkinv(6,1)*x1 -dkinv(6,2)*x2 -dkinv(6,3)*x3 -dkinv(6,4)*x4 -dkinv(6,5)*x5
2361 x5= dkinv(5,5)*( x5 -dkinv(5,6)*x6 )
2362 x4= dkinv(4,4)*( x4 -dkinv(4,6)*x6 -dkinv(4,5)*x5)
2363 x3= dkinv(3,3)*( x3 -dkinv(3,6)*x6 -dkinv(3,5)*x5 -dkinv(3,4)*x4)
2364 x2= dkinv(2,2)*( x2 -dkinv(2,6)*x6 -dkinv(2,5)*x5 -dkinv(2,4)*x4 -dkinv(2,3)*x3)
2365 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)
2367 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
2368 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
2369 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
2370 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
2371 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
2372 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)
real(kind=kreal) function, public hecmw_mat_get_sigma(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