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)
2194 subroutine ilu1b66 (RHS_Aij, DkINV, Aik, Akj)
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