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, iq1, iq2, iq3
29 integer(kind=kint) :: isl, iel, isu, ieu, inod
30 real(kind=
kreal) :: start_time, end_time
46 allocate(scale(ndof*np))
49 scale(3*i-2)= 1.d0/dsqrt(dabs(d(9*i-8)))
50 scale(3*i-1)= 1.d0/dsqrt(dabs(d(9*i-4)))
51 scale(3*i )= 1.d0/dsqrt(dabs(d(9*i )))
57 commtime = commtime + end_time - start_time
63 d(9*i-8)= d(9*i-8)*scale(ip1)*scale(ip1)
64 d(9*i-7)= d(9*i-7)*scale(ip1)*scale(ip2)
65 d(9*i-6)= d(9*i-6)*scale(ip1)*scale(ip3)
66 d(9*i-5)= d(9*i-5)*scale(ip2)*scale(ip1)
67 d(9*i-4)= d(9*i-4)*scale(ip2)*scale(ip2)
68 d(9*i-3)= d(9*i-3)*scale(ip2)*scale(ip3)
69 d(9*i-2)= d(9*i-2)*scale(ip3)*scale(ip1)
70 d(9*i-1)= d(9*i-1)*scale(ip3)*scale(ip2)
71 d(9*i )= d(9*i )*scale(ip3)*scale(ip3)
81 al(9*k-8)= al(9*k-8)*scale(ip1)*scale(iq1)
82 al(9*k-7)= al(9*k-7)*scale(ip1)*scale(iq2)
83 al(9*k-6)= al(9*k-6)*scale(ip1)*scale(iq3)
84 al(9*k-5)= al(9*k-5)*scale(ip2)*scale(iq1)
85 al(9*k-4)= al(9*k-4)*scale(ip2)*scale(iq2)
86 al(9*k-3)= al(9*k-3)*scale(ip2)*scale(iq3)
87 al(9*k-2)= al(9*k-2)*scale(ip3)*scale(iq1)
88 al(9*k-1)= al(9*k-1)*scale(ip3)*scale(iq2)
89 al(9*k )= al(9*k )*scale(ip3)*scale(iq3)
100 au(9*k-8)= au(9*k-8)*scale(ip1)*scale(iq1)
101 au(9*k-7)= au(9*k-7)*scale(ip1)*scale(iq2)
102 au(9*k-6)= au(9*k-6)*scale(ip1)*scale(iq3)
103 au(9*k-5)= au(9*k-5)*scale(ip2)*scale(iq1)
104 au(9*k-4)= au(9*k-4)*scale(ip2)*scale(iq2)
105 au(9*k-3)= au(9*k-3)*scale(ip2)*scale(iq3)
106 au(9*k-2)= au(9*k-2)*scale(ip3)*scale(iq1)
107 au(9*k-1)= au(9*k-1)*scale(ip3)*scale(iq2)
108 au(9*k )= au(9*k )*scale(ip3)*scale(iq3)
113 b(3*i-2)= b(3*i-2) * scale(3*i-2)
114 b(3*i-1)= b(3*i-1) * scale(3*i-1)
115 b(3*i )= b(3*i ) * scale(3*i )
123 integer(kind=kint) :: n, np, ndof
124 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:), x(:)
125 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
126 integer(kind=kint) :: i, k, ip1, ip2, ip3, iq1, iq2, iq3
127 integer(kind=kint) :: isl, iel, isu, ieu, inod
146 x(3*i-2)= x(3*i-2) * scale(3*i-2)
147 x(3*i-1)= x(3*i-1) * scale(3*i-1)
148 x(3*i )= x(3*i ) * scale(3*i )
149 b(3*i-2)= b(3*i-2) / scale(3*i-2)
150 b(3*i-1)= b(3*i-1) / scale(3*i-1)
151 b(3*i )= b(3*i ) / scale(3*i )
158 d(9*i-8)= d(9*i-8)/(scale(ip1)*scale(ip1))
159 d(9*i-7)= d(9*i-7)/(scale(ip1)*scale(ip2))
160 d(9*i-6)= d(9*i-6)/(scale(ip1)*scale(ip3))
161 d(9*i-5)= d(9*i-5)/(scale(ip2)*scale(ip1))
162 d(9*i-4)= d(9*i-4)/(scale(ip2)*scale(ip2))
163 d(9*i-3)= d(9*i-3)/(scale(ip2)*scale(ip3))
164 d(9*i-2)= d(9*i-2)/(scale(ip3)*scale(ip1))
165 d(9*i-1)= d(9*i-1)/(scale(ip3)*scale(ip2))
166 d(9*i )= d(9*i )/(scale(ip3)*scale(ip3))
176 al(9*k-8)= al(9*k-8)/(scale(ip1)*scale(iq1))
177 al(9*k-7)= al(9*k-7)/(scale(ip1)*scale(iq2))
178 al(9*k-6)= al(9*k-6)/(scale(ip1)*scale(iq3))
179 al(9*k-5)= al(9*k-5)/(scale(ip2)*scale(iq1))
180 al(9*k-4)= al(9*k-4)/(scale(ip2)*scale(iq2))
181 al(9*k-3)= al(9*k-3)/(scale(ip2)*scale(iq3))
182 al(9*k-2)= al(9*k-2)/(scale(ip3)*scale(iq1))
183 al(9*k-1)= al(9*k-1)/(scale(ip3)*scale(iq2))
184 al(9*k )= al(9*k )/(scale(ip3)*scale(iq3))
195 au(9*k-8)= au(9*k-8)/(scale(ip1)*scale(iq1))
196 au(9*k-7)= au(9*k-7)/(scale(ip1)*scale(iq2))
197 au(9*k-6)= au(9*k-6)/(scale(ip1)*scale(iq3))
198 au(9*k-5)= au(9*k-5)/(scale(ip2)*scale(iq1))
199 au(9*k-4)= au(9*k-4)/(scale(ip2)*scale(iq2))
200 au(9*k-3)= au(9*k-3)/(scale(ip2)*scale(iq3))
201 au(9*k-2)= au(9*k-2)/(scale(ip3)*scale(iq1))
202 au(9*k-1)= au(9*k-1)/(scale(ip3)*scale(iq2))
203 au(9*k )= au(9*k )/(scale(ip3)*scale(iq3))