13 real(kind=
kreal),
private,
allocatable :: scale(:)
24 real(kind=
kreal),
intent(inout) :: commtime
25 integer(kind=kint) :: n, np, ndof
26 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:)
27 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
28 integer(kind=kint) :: i, k, ip1, ip2, ip3, ip4, iq1, iq2, iq3, iq4
29 integer(kind=kint) :: isl, iel, isu, ieu, inod
30 real(kind=
kreal) :: start_time, end_time
46 allocate(scale(ndof*np))
49 scale(4*i-3)= 1.d0/dsqrt(dabs(d(16*i-15)))
50 scale(4*i-2)= 1.d0/dsqrt(dabs(d(16*i-10)))
51 scale(4*i-1)= 1.d0/dsqrt(dabs(d(16*i- 5)))
52 scale(4*i )= 1.d0/dsqrt(dabs(d(16*i )))
58 commtime = commtime + end_time - start_time
65 d(16*i-15)= d(16*i-15)*scale(ip1)*scale(ip1)
66 d(16*i-14)= d(16*i-14)*scale(ip1)*scale(ip2)
67 d(16*i-13)= d(16*i-13)*scale(ip1)*scale(ip3)
68 d(16*i-12)= d(16*i-12)*scale(ip1)*scale(ip4)
69 d(16*i-11)= d(16*i-11)*scale(ip2)*scale(ip1)
70 d(16*i-10)= d(16*i-10)*scale(ip2)*scale(ip2)
71 d(16*i- 9)= d(16*i- 9)*scale(ip2)*scale(ip3)
72 d(16*i- 8)= d(16*i- 8)*scale(ip2)*scale(ip4)
73 d(16*i- 7)= d(16*i- 7)*scale(ip3)*scale(ip1)
74 d(16*i- 6)= d(16*i- 6)*scale(ip3)*scale(ip2)
75 d(16*i- 5)= d(16*i- 5)*scale(ip3)*scale(ip3)
76 d(16*i- 4)= d(16*i- 4)*scale(ip3)*scale(ip4)
77 d(16*i- 3)= d(16*i- 3)*scale(ip4)*scale(ip1)
78 d(16*i- 2)= d(16*i- 2)*scale(ip4)*scale(ip2)
79 d(16*i- 1)= d(16*i- 1)*scale(ip4)*scale(ip3)
80 d(16*i- 0)= d(16*i- 0)*scale(ip4)*scale(ip4)
91 al(16*k-15)= al(16*k-15)*scale(ip1)*scale(iq1)
92 al(16*k-14)= al(16*k-14)*scale(ip1)*scale(iq2)
93 al(16*k-13)= al(16*k-13)*scale(ip1)*scale(iq3)
94 al(16*k-12)= al(16*k-12)*scale(ip1)*scale(iq4)
95 al(16*k-11)= al(16*k-11)*scale(ip2)*scale(iq1)
96 al(16*k-10)= al(16*k-10)*scale(ip2)*scale(iq2)
97 al(16*k- 9)= al(16*k- 9)*scale(ip2)*scale(iq3)
98 al(16*k- 8)= al(16*k- 8)*scale(ip2)*scale(iq4)
99 al(16*k- 7)= al(16*k- 7)*scale(ip3)*scale(iq1)
100 al(16*k- 6)= al(16*k- 6)*scale(ip3)*scale(iq2)
101 al(16*k- 5)= al(16*k- 5)*scale(ip3)*scale(iq3)
102 al(16*k- 4)= al(16*k- 4)*scale(ip3)*scale(iq4)
103 al(16*k- 3)= al(16*k- 3)*scale(ip4)*scale(iq1)
104 al(16*k- 2)= al(16*k- 2)*scale(ip4)*scale(iq2)
105 al(16*k- 1)= al(16*k- 1)*scale(ip4)*scale(iq3)
106 al(16*k- 0)= al(16*k- 0)*scale(ip4)*scale(iq4)
118 au(16*k-15)= au(16*k-15)*scale(ip1)*scale(iq1)
119 au(16*k-14)= au(16*k-14)*scale(ip1)*scale(iq2)
120 au(16*k-13)= au(16*k-13)*scale(ip1)*scale(iq3)
121 au(16*k-12)= au(16*k-12)*scale(ip1)*scale(iq4)
122 au(16*k-11)= au(16*k-11)*scale(ip2)*scale(iq1)
123 au(16*k-10)= au(16*k-10)*scale(ip2)*scale(iq2)
124 au(16*k- 9)= au(16*k- 9)*scale(ip2)*scale(iq3)
125 au(16*k- 8)= au(16*k- 8)*scale(ip2)*scale(iq4)
126 au(16*k- 7)= au(16*k- 7)*scale(ip3)*scale(iq1)
127 au(16*k- 6)= au(16*k- 6)*scale(ip3)*scale(iq2)
128 au(16*k- 5)= au(16*k- 5)*scale(ip3)*scale(iq3)
129 au(16*k- 4)= au(16*k- 4)*scale(ip3)*scale(iq4)
130 au(16*k- 3)= au(16*k- 3)*scale(ip4)*scale(iq1)
131 au(16*k- 2)= au(16*k- 2)*scale(ip4)*scale(iq2)
132 au(16*k- 1)= au(16*k- 1)*scale(ip4)*scale(iq3)
133 au(16*k- 0)= au(16*k- 0)*scale(ip4)*scale(iq4)
138 b(4*i-3)= b(4*i-3) * scale(4*i-3)
139 b(4*i-2)= b(4*i-2) * scale(4*i-2)
140 b(4*i-1)= b(4*i-1) * scale(4*i-1)
141 b(4*i )= b(4*i ) * scale(4*i )
149 integer(kind=kint) :: n, np, ndof
150 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:), x(:)
151 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
152 integer(kind=kint) :: i, k, ip1, ip2, ip3, ip4, iq1, iq2, iq3, iq4
153 integer(kind=kint) :: isl, iel, isu, ieu, inod
172 x(4*i-3)= x(4*i-3) * scale(4*i-3)
173 x(4*i-2)= x(4*i-2) * scale(4*i-2)
174 x(4*i-1)= x(4*i-1) * scale(4*i-1)
175 x(4*i )= x(4*i ) * scale(4*i )
176 b(4*i-3)= b(4*i-3) / scale(4*i-3)
177 b(4*i-2)= b(4*i-2) / scale(4*i-2)
178 b(4*i-1)= b(4*i-1) / scale(4*i-1)
179 b(4*i )= b(4*i ) / scale(4*i )
187 d(16*i-15)= d(16*i-15)/(scale(ip1)*scale(ip1))
188 d(16*i-14)= d(16*i-14)/(scale(ip1)*scale(ip2))
189 d(16*i-13)= d(16*i-13)/(scale(ip1)*scale(ip3))
190 d(16*i-12)= d(16*i-12)/(scale(ip1)*scale(ip4))
191 d(16*i-11)= d(16*i-11)/(scale(ip2)*scale(ip1))
192 d(16*i-10)= d(16*i-10)/(scale(ip2)*scale(ip2))
193 d(16*i- 9)= d(16*i- 9)/(scale(ip2)*scale(ip3))
194 d(16*i- 8)= d(16*i- 8)/(scale(ip2)*scale(ip4))
195 d(16*i- 7)= d(16*i- 7)/(scale(ip3)*scale(ip1))
196 d(16*i- 6)= d(16*i- 6)/(scale(ip3)*scale(ip2))
197 d(16*i- 5)= d(16*i- 5)/(scale(ip3)*scale(ip3))
198 d(16*i- 4)= d(16*i- 4)/(scale(ip3)*scale(ip4))
199 d(16*i- 3)= d(16*i- 3)/(scale(ip4)*scale(ip1))
200 d(16*i- 2)= d(16*i- 2)/(scale(ip4)*scale(ip2))
201 d(16*i- 1)= d(16*i- 1)/(scale(ip4)*scale(ip3))
202 d(16*i- 0)= d(16*i- 0)/(scale(ip4)*scale(ip4))
212 al(16*k-15)= al(16*k-15)/(scale(ip1)*scale(iq1))
213 al(16*k-14)= al(16*k-14)/(scale(ip1)*scale(iq2))
214 al(16*k-13)= al(16*k-13)/(scale(ip1)*scale(iq3))
215 al(16*k-12)= al(16*k-12)/(scale(ip1)*scale(iq4))
216 al(16*k-11)= al(16*k-11)/(scale(ip2)*scale(iq1))
217 al(16*k-10)= al(16*k-10)/(scale(ip2)*scale(iq2))
218 al(16*k- 9)= al(16*k- 9)/(scale(ip2)*scale(iq3))
219 al(16*k- 8)= al(16*k- 8)/(scale(ip2)*scale(iq4))
220 al(16*k- 7)= al(16*k- 7)/(scale(ip3)*scale(iq1))
221 al(16*k- 6)= al(16*k- 6)/(scale(ip3)*scale(iq2))
222 al(16*k- 5)= al(16*k- 5)/(scale(ip3)*scale(iq3))
223 al(16*k- 4)= al(16*k- 4)/(scale(ip3)*scale(iq4))
224 al(16*k- 3)= al(16*k- 3)/(scale(ip4)*scale(iq1))
225 al(16*k- 2)= al(16*k- 2)/(scale(ip4)*scale(iq2))
226 al(16*k- 1)= al(16*k- 1)/(scale(ip4)*scale(iq3))
227 al(16*k- 0)= al(16*k- 0)/(scale(ip4)*scale(iq4))
239 au(16*k-15)= au(16*k-15)/(scale(ip1)*scale(iq1))
240 au(16*k-14)= au(16*k-14)/(scale(ip1)*scale(iq2))
241 au(16*k-13)= au(16*k-13)/(scale(ip1)*scale(iq3))
242 au(16*k-12)= au(16*k-12)/(scale(ip1)*scale(iq4))
243 au(16*k-11)= au(16*k-11)/(scale(ip2)*scale(iq1))
244 au(16*k-10)= au(16*k-10)/(scale(ip2)*scale(iq2))
245 au(16*k- 9)= au(16*k- 9)/(scale(ip2)*scale(iq3))
246 au(16*k- 8)= au(16*k- 8)/(scale(ip2)*scale(iq4))
247 au(16*k- 7)= au(16*k- 7)/(scale(ip3)*scale(iq1))
248 au(16*k- 6)= au(16*k- 6)/(scale(ip3)*scale(iq2))
249 au(16*k- 5)= au(16*k- 5)/(scale(ip3)*scale(iq3))
250 au(16*k- 4)= au(16*k- 4)/(scale(ip3)*scale(iq4))
251 au(16*k- 3)= au(16*k- 3)/(scale(ip4)*scale(iq1))
252 au(16*k- 2)= au(16*k- 2)/(scale(ip4)*scale(iq2))
253 au(16*k- 1)= au(16*k- 1)/(scale(ip4)*scale(iq3))
254 au(16*k- 0)= au(16*k- 0)/(scale(ip4)*scale(iq4))