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, ip5, ip6
29 integer(kind=kint) :: iq1, iq2, iq3, iq4, iq5, iq6
30 integer(kind=kint) :: isl, iel, isu, ieu, inod
31 real(kind=
kreal) :: start_time, end_time
47 allocate(scale(ndof*np))
50 scale(6*i-5)= 1.d0/dsqrt(dabs(d(36*i-35)))
51 scale(6*i-4)= 1.d0/dsqrt(dabs(d(36*i-28)))
52 scale(6*i-3)= 1.d0/dsqrt(dabs(d(36*i-21)))
53 scale(6*i-2)= 1.d0/dsqrt(dabs(d(36*i-14)))
54 scale(6*i-1)= 1.d0/dsqrt(dabs(d(36*i-7)))
55 scale(6*i )= 1.d0/dsqrt(dabs(d(36*i )))
61 commtime = commtime + end_time - start_time
71 d(36*i-35)= d(36*i-35)*scale(ip1)*scale(ip1)
72 d(36*i-34)= d(36*i-34)*scale(ip1)*scale(ip2)
73 d(36*i-33)= d(36*i-33)*scale(ip1)*scale(ip3)
74 d(36*i-32)= d(36*i-32)*scale(ip1)*scale(ip4)
75 d(36*i-31)= d(36*i-31)*scale(ip1)*scale(ip5)
76 d(36*i-30)= d(36*i-30)*scale(ip1)*scale(ip6)
78 d(36*i-29)= d(36*i-29)*scale(ip2)*scale(ip1)
79 d(36*i-28)= d(36*i-28)*scale(ip2)*scale(ip2)
80 d(36*i-27)= d(36*i-27)*scale(ip2)*scale(ip3)
81 d(36*i-26)= d(36*i-26)*scale(ip2)*scale(ip4)
82 d(36*i-25)= d(36*i-25)*scale(ip2)*scale(ip5)
83 d(36*i-24)= d(36*i-24)*scale(ip2)*scale(ip6)
85 d(36*i-23)= d(36*i-23)*scale(ip3)*scale(ip1)
86 d(36*i-22)= d(36*i-22)*scale(ip3)*scale(ip2)
87 d(36*i-21)= d(36*i-21)*scale(ip3)*scale(ip3)
88 d(36*i-20)= d(36*i-20)*scale(ip3)*scale(ip4)
89 d(36*i-19)= d(36*i-19)*scale(ip3)*scale(ip5)
90 d(36*i-18)= d(36*i-18)*scale(ip3)*scale(ip6)
92 d(36*i-17)= d(36*i-17)*scale(ip4)*scale(ip1)
93 d(36*i-16)= d(36*i-16)*scale(ip4)*scale(ip2)
94 d(36*i-15)= d(36*i-15)*scale(ip4)*scale(ip3)
95 d(36*i-14)= d(36*i-14)*scale(ip4)*scale(ip4)
96 d(36*i-13)= d(36*i-13)*scale(ip4)*scale(ip5)
97 d(36*i-12)= d(36*i-12)*scale(ip4)*scale(ip6)
99 d(36*i-11)= d(36*i-11)*scale(ip5)*scale(ip1)
100 d(36*i-10)= d(36*i-10)*scale(ip5)*scale(ip2)
101 d(36*i-9 )= d(36*i-9 )*scale(ip5)*scale(ip3)
102 d(36*i-8 )= d(36*i-8 )*scale(ip5)*scale(ip4)
103 d(36*i-7 )= d(36*i-7 )*scale(ip5)*scale(ip5)
104 d(36*i-6 )= d(36*i-6 )*scale(ip5)*scale(ip6)
106 d(36*i-5 )= d(36*i-5 )*scale(ip6)*scale(ip1)
107 d(36*i-4 )= d(36*i-4 )*scale(ip6)*scale(ip2)
108 d(36*i-3 )= d(36*i-3 )*scale(ip6)*scale(ip3)
109 d(36*i-2 )= d(36*i-2 )*scale(ip6)*scale(ip4)
110 d(36*i-1 )= d(36*i-1 )*scale(ip6)*scale(ip5)
111 d(36*i )= d(36*i )*scale(ip6)*scale(ip6)
125 al(36*k-35)= al(36*k-35)*scale(ip1)*scale(iq1)
126 al(36*k-34)= al(36*k-34)*scale(ip1)*scale(iq2)
127 al(36*k-33)= al(36*k-33)*scale(ip1)*scale(iq3)
128 al(36*k-32)= al(36*k-32)*scale(ip1)*scale(iq4)
129 al(36*k-31)= al(36*k-31)*scale(ip1)*scale(iq5)
130 al(36*k-30)= al(36*k-30)*scale(ip1)*scale(iq6)
132 al(36*k-29)= al(36*k-29)*scale(ip2)*scale(iq1)
133 al(36*k-28)= al(36*k-28)*scale(ip2)*scale(iq2)
134 al(36*k-27)= al(36*k-27)*scale(ip2)*scale(iq3)
135 al(36*k-26)= al(36*k-26)*scale(ip2)*scale(iq4)
136 al(36*k-25)= al(36*k-25)*scale(ip2)*scale(iq5)
137 al(36*k-24)= al(36*k-24)*scale(ip2)*scale(iq6)
139 al(36*k-23)= al(36*k-23)*scale(ip3)*scale(iq1)
140 al(36*k-22)= al(36*k-22)*scale(ip3)*scale(iq2)
141 al(36*k-21)= al(36*k-21)*scale(ip3)*scale(iq3)
142 al(36*k-20)= al(36*k-20)*scale(ip3)*scale(iq4)
143 al(36*k-19)= al(36*k-19)*scale(ip3)*scale(iq5)
144 al(36*k-18)= al(36*k-18)*scale(ip3)*scale(iq6)
146 al(36*k-17)= al(36*k-17)*scale(ip4)*scale(iq1)
147 al(36*k-16)= al(36*k-16)*scale(ip4)*scale(iq2)
148 al(36*k-15)= al(36*k-15)*scale(ip4)*scale(iq3)
149 al(36*k-14)= al(36*k-14)*scale(ip4)*scale(iq4)
150 al(36*k-13)= al(36*k-13)*scale(ip4)*scale(iq5)
151 al(36*k-12)= al(36*k-12)*scale(ip4)*scale(iq6)
153 al(36*k-11)= al(36*k-11)*scale(ip5)*scale(iq1)
154 al(36*k-10)= al(36*k-10)*scale(ip5)*scale(iq2)
155 al(36*k-9 )= al(36*k-9 )*scale(ip5)*scale(iq3)
156 al(36*k-8 )= al(36*k-8 )*scale(ip5)*scale(iq4)
157 al(36*k-7 )= al(36*k-7 )*scale(ip5)*scale(iq5)
158 al(36*k-6 )= al(36*k-6 )*scale(ip5)*scale(iq6)
160 al(36*k-5 )= al(36*k-5 )*scale(ip6)*scale(iq1)
161 al(36*k-4 )= al(36*k-4 )*scale(ip6)*scale(iq2)
162 al(36*k-3 )= al(36*k-3 )*scale(ip6)*scale(iq3)
163 al(36*k-2 )= al(36*k-2 )*scale(ip6)*scale(iq4)
164 al(36*k-1 )= al(36*k-1 )*scale(ip6)*scale(iq5)
165 al(36*k )= al(36*k )*scale(ip6)*scale(iq6)
180 au(36*k-35)= au(36*k-35)*scale(ip1)*scale(iq1)
181 au(36*k-34)= au(36*k-34)*scale(ip1)*scale(iq2)
182 au(36*k-33)= au(36*k-33)*scale(ip1)*scale(iq3)
183 au(36*k-32)= au(36*k-32)*scale(ip1)*scale(iq4)
184 au(36*k-31)= au(36*k-31)*scale(ip1)*scale(iq5)
185 au(36*k-30)= au(36*k-30)*scale(ip1)*scale(iq6)
187 au(36*k-29)= au(36*k-29)*scale(ip2)*scale(iq1)
188 au(36*k-28)= au(36*k-28)*scale(ip2)*scale(iq2)
189 au(36*k-27)= au(36*k-27)*scale(ip2)*scale(iq3)
190 au(36*k-26)= au(36*k-26)*scale(ip2)*scale(iq4)
191 au(36*k-25)= au(36*k-25)*scale(ip2)*scale(iq5)
192 au(36*k-24)= au(36*k-24)*scale(ip2)*scale(iq6)
194 au(36*k-23)= au(36*k-23)*scale(ip3)*scale(iq1)
195 au(36*k-22)= au(36*k-22)*scale(ip3)*scale(iq2)
196 au(36*k-21)= au(36*k-21)*scale(ip3)*scale(iq3)
197 au(36*k-20)= au(36*k-20)*scale(ip3)*scale(iq4)
198 au(36*k-19)= au(36*k-19)*scale(ip3)*scale(iq5)
199 au(36*k-18)= au(36*k-18)*scale(ip3)*scale(iq6)
201 au(36*k-17)= au(36*k-17)*scale(ip4)*scale(iq1)
202 au(36*k-16)= au(36*k-16)*scale(ip4)*scale(iq2)
203 au(36*k-15)= au(36*k-15)*scale(ip4)*scale(iq3)
204 au(36*k-14)= au(36*k-14)*scale(ip4)*scale(iq4)
205 au(36*k-13)= au(36*k-13)*scale(ip4)*scale(iq5)
206 au(36*k-12)= au(36*k-12)*scale(ip4)*scale(iq6)
208 au(36*k-11)= au(36*k-11)*scale(ip5)*scale(iq1)
209 au(36*k-10)= au(36*k-10)*scale(ip5)*scale(iq2)
210 au(36*k-9 )= au(36*k-9 )*scale(ip5)*scale(iq3)
211 au(36*k-8 )= au(36*k-8 )*scale(ip5)*scale(iq4)
212 au(36*k-7 )= au(36*k-7 )*scale(ip5)*scale(iq5)
213 au(36*k-6 )= au(36*k-6 )*scale(ip5)*scale(iq6)
215 au(36*k-5 )= au(36*k-5 )*scale(ip6)*scale(iq1)
216 au(36*k-4 )= au(36*k-4 )*scale(ip6)*scale(iq2)
217 au(36*k-3 )= au(36*k-3 )*scale(ip6)*scale(iq3)
218 au(36*k-2 )= au(36*k-2 )*scale(ip6)*scale(iq4)
219 au(36*k-1 )= au(36*k-1 )*scale(ip6)*scale(iq5)
220 au(36*k )= au(36*k )*scale(ip6)*scale(iq6)
225 b(6*i-5)= b(6*i-5) * scale(6*i-5)
226 b(6*i-4)= b(6*i-4) * scale(6*i-4)
227 b(6*i-3)= b(6*i-3) * scale(6*i-3)
228 b(6*i-2)= b(6*i-2) * scale(6*i-2)
229 b(6*i-1)= b(6*i-1) * scale(6*i-1)
230 b(6*i )= b(6*i ) * scale(6*i )
238 integer(kind=kint) :: n, np, ndof
239 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:), x(:)
240 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
241 integer(kind=kint) :: i, k, ip1, ip2, ip3, ip4, ip5, ip6
242 integer(kind=kint) :: iq1, iq2, iq3, iq4, iq5, iq6
243 integer(kind=kint) :: isl, iel, isu, ieu, inod
262 x(6*i-5)= x(6*i-5) * scale(6*i-5)
263 x(6*i-4)= x(6*i-4) * scale(6*i-4)
264 x(6*i-3)= x(6*i-3) * scale(6*i-3)
265 x(6*i-2)= x(6*i-2) * scale(6*i-2)
266 x(6*i-1)= x(6*i-1) * scale(6*i-1)
267 x(6*i )= x(6*i ) * scale(6*i )
269 b(6*i-5)= b(6*i-5) / scale(6*i-5)
270 b(6*i-4)= b(6*i-4) / scale(6*i-4)
271 b(6*i-3)= b(6*i-3) / scale(6*i-3)
272 b(6*i-2)= b(6*i-2) / scale(6*i-2)
273 b(6*i-1)= b(6*i-1) / scale(6*i-1)
274 b(6*i )= b(6*i ) / scale(6*i )
285 d(36*i-35)= d(36*i-35)/(scale(ip1)*scale(ip1))
286 d(36*i-34)= d(36*i-34)/(scale(ip1)*scale(ip2))
287 d(36*i-33)= d(36*i-33)/(scale(ip1)*scale(ip3))
288 d(36*i-32)= d(36*i-32)/(scale(ip1)*scale(ip4))
289 d(36*i-31)= d(36*i-31)/(scale(ip1)*scale(ip5))
290 d(36*i-30)= d(36*i-30)/(scale(ip1)*scale(ip6))
292 d(36*i-29)= d(36*i-29)/(scale(ip2)*scale(ip1))
293 d(36*i-28)= d(36*i-28)/(scale(ip2)*scale(ip2))
294 d(36*i-27)= d(36*i-27)/(scale(ip2)*scale(ip3))
295 d(36*i-26)= d(36*i-26)/(scale(ip2)*scale(ip4))
296 d(36*i-25)= d(36*i-25)/(scale(ip2)*scale(ip5))
297 d(36*i-24)= d(36*i-24)/(scale(ip2)*scale(ip6))
299 d(36*i-23)= d(36*i-23)/(scale(ip3)*scale(ip1))
300 d(36*i-22)= d(36*i-22)/(scale(ip3)*scale(ip2))
301 d(36*i-21)= d(36*i-21)/(scale(ip3)*scale(ip3))
302 d(36*i-20)= d(36*i-20)/(scale(ip3)*scale(ip4))
303 d(36*i-19)= d(36*i-19)/(scale(ip3)*scale(ip5))
304 d(36*i-18)= d(36*i-18)/(scale(ip3)*scale(ip6))
306 d(36*i-17)= d(36*i-17)/(scale(ip4)*scale(ip1))
307 d(36*i-16)= d(36*i-16)/(scale(ip4)*scale(ip2))
308 d(36*i-15)= d(36*i-15)/(scale(ip4)*scale(ip3))
309 d(36*i-14)= d(36*i-14)/(scale(ip4)*scale(ip4))
310 d(36*i-13)= d(36*i-13)/(scale(ip4)*scale(ip5))
311 d(36*i-12)= d(36*i-12)/(scale(ip4)*scale(ip6))
313 d(36*i-11)= d(36*i-11)/(scale(ip5)*scale(ip1))
314 d(36*i-10)= d(36*i-10)/(scale(ip5)*scale(ip2))
315 d(36*i-9 )= d(36*i-9 )/(scale(ip5)*scale(ip3))
316 d(36*i-8 )= d(36*i-8 )/(scale(ip5)*scale(ip4))
317 d(36*i-7 )= d(36*i-7 )/(scale(ip5)*scale(ip5))
318 d(36*i-6 )= d(36*i-6 )/(scale(ip5)*scale(ip6))
320 d(36*i-5 )= d(36*i-5 )/(scale(ip6)*scale(ip1))
321 d(36*i-4 )= d(36*i-4 )/(scale(ip6)*scale(ip2))
322 d(36*i-3 )= d(36*i-3 )/(scale(ip6)*scale(ip3))
323 d(36*i-2 )= d(36*i-2 )/(scale(ip6)*scale(ip4))
324 d(36*i-1 )= d(36*i-1 )/(scale(ip6)*scale(ip5))
325 d(36*i )= d(36*i )/(scale(ip6)*scale(ip6))
339 al(36*k-35)= al(36*k-35)/(scale(ip1)*scale(iq1))
340 al(36*k-34)= al(36*k-34)/(scale(ip1)*scale(iq2))
341 al(36*k-33)= al(36*k-33)/(scale(ip1)*scale(iq3))
342 al(36*k-32)= al(36*k-32)/(scale(ip1)*scale(iq4))
343 al(36*k-31)= al(36*k-31)/(scale(ip1)*scale(iq5))
344 al(36*k-30)= al(36*k-30)/(scale(ip1)*scale(iq6))
346 al(36*k-29)= al(36*k-29)/(scale(ip2)*scale(iq1))
347 al(36*k-28)= al(36*k-28)/(scale(ip2)*scale(iq2))
348 al(36*k-27)= al(36*k-27)/(scale(ip2)*scale(iq3))
349 al(36*k-26)= al(36*k-26)/(scale(ip2)*scale(iq4))
350 al(36*k-25)= al(36*k-25)/(scale(ip2)*scale(iq5))
351 al(36*k-24)= al(36*k-24)/(scale(ip2)*scale(iq6))
353 al(36*k-23)= al(36*k-23)/(scale(ip3)*scale(iq1))
354 al(36*k-22)= al(36*k-22)/(scale(ip3)*scale(iq2))
355 al(36*k-21)= al(36*k-21)/(scale(ip3)*scale(iq3))
356 al(36*k-20)= al(36*k-20)/(scale(ip3)*scale(iq4))
357 al(36*k-19)= al(36*k-19)/(scale(ip3)*scale(iq5))
358 al(36*k-18)= al(36*k-18)/(scale(ip3)*scale(iq6))
360 al(36*k-17)= al(36*k-17)/(scale(ip4)*scale(iq1))
361 al(36*k-16)= al(36*k-16)/(scale(ip4)*scale(iq2))
362 al(36*k-15)= al(36*k-15)/(scale(ip4)*scale(iq3))
363 al(36*k-14)= al(36*k-14)/(scale(ip4)*scale(iq4))
364 al(36*k-13)= al(36*k-13)/(scale(ip4)*scale(iq5))
365 al(36*k-12)= al(36*k-12)/(scale(ip4)*scale(iq6))
367 al(36*k-11)= al(36*k-11)/(scale(ip5)*scale(iq1))
368 al(36*k-10)= al(36*k-10)/(scale(ip5)*scale(iq2))
369 al(36*k-9 )= al(36*k-9 )/(scale(ip5)*scale(iq3))
370 al(36*k-8 )= al(36*k-8 )/(scale(ip5)*scale(iq4))
371 al(36*k-7 )= al(36*k-7 )/(scale(ip5)*scale(iq5))
372 al(36*k-6 )= al(36*k-6 )/(scale(ip5)*scale(iq6))
374 al(36*k-5 )= al(36*k-5 )/(scale(ip6)*scale(iq1))
375 al(36*k-4 )= al(36*k-4 )/(scale(ip6)*scale(iq2))
376 al(36*k-3 )= al(36*k-3 )/(scale(ip6)*scale(iq3))
377 al(36*k-2 )= al(36*k-2 )/(scale(ip6)*scale(iq4))
378 al(36*k-1 )= al(36*k-1 )/(scale(ip6)*scale(iq5))
379 al(36*k )= al(36*k )/(scale(ip6)*scale(iq6))
394 au(36*k-35)= au(36*k-35)/(scale(ip1)*scale(iq1))
395 au(36*k-34)= au(36*k-34)/(scale(ip1)*scale(iq2))
396 au(36*k-33)= au(36*k-33)/(scale(ip1)*scale(iq3))
397 au(36*k-32)= au(36*k-32)/(scale(ip1)*scale(iq4))
398 au(36*k-31)= au(36*k-31)/(scale(ip1)*scale(iq5))
399 au(36*k-30)= au(36*k-30)/(scale(ip1)*scale(iq6))
401 au(36*k-29)= au(36*k-29)/(scale(ip2)*scale(iq1))
402 au(36*k-28)= au(36*k-28)/(scale(ip2)*scale(iq2))
403 au(36*k-27)= au(36*k-27)/(scale(ip2)*scale(iq3))
404 au(36*k-26)= au(36*k-26)/(scale(ip2)*scale(iq4))
405 au(36*k-25)= au(36*k-25)/(scale(ip2)*scale(iq5))
406 au(36*k-24)= au(36*k-24)/(scale(ip2)*scale(iq6))
408 au(36*k-23)= au(36*k-23)/(scale(ip3)*scale(iq1))
409 au(36*k-22)= au(36*k-22)/(scale(ip3)*scale(iq2))
410 au(36*k-21)= au(36*k-21)/(scale(ip3)*scale(iq3))
411 au(36*k-20)= au(36*k-20)/(scale(ip3)*scale(iq4))
412 au(36*k-19)= au(36*k-19)/(scale(ip3)*scale(iq5))
413 au(36*k-18)= au(36*k-18)/(scale(ip3)*scale(iq6))
415 au(36*k-17)= au(36*k-17)/(scale(ip4)*scale(iq1))
416 au(36*k-16)= au(36*k-16)/(scale(ip4)*scale(iq2))
417 au(36*k-15)= au(36*k-15)/(scale(ip4)*scale(iq3))
418 au(36*k-14)= au(36*k-14)/(scale(ip4)*scale(iq4))
419 au(36*k-13)= au(36*k-13)/(scale(ip4)*scale(iq5))
420 au(36*k-12)= au(36*k-12)/(scale(ip4)*scale(iq6))
422 au(36*k-11)= au(36*k-11)/(scale(ip5)*scale(iq1))
423 au(36*k-10)= au(36*k-10)/(scale(ip5)*scale(iq2))
424 au(36*k-9 )= au(36*k-9 )/(scale(ip5)*scale(iq3))
425 au(36*k-8 )= au(36*k-8 )/(scale(ip5)*scale(iq4))
426 au(36*k-7 )= au(36*k-7 )/(scale(ip5)*scale(iq5))
427 au(36*k-6 )= au(36*k-6 )/(scale(ip5)*scale(iq6))
429 au(36*k-5 )= au(36*k-5 )/(scale(ip6)*scale(iq1))
430 au(36*k-4 )= au(36*k-4 )/(scale(ip6)*scale(iq2))
431 au(36*k-3 )= au(36*k-3 )/(scale(ip6)*scale(iq3))
432 au(36*k-2 )= au(36*k-2 )/(scale(ip6)*scale(iq4))
433 au(36*k-1 )= au(36*k-1 )/(scale(ip6)*scale(iq5))
434 au(36*k )= au(36*k )/(scale(ip6)*scale(iq6))