13 real(kind=
kreal),
private,
allocatable :: scale(:)
24 real(kind=
kreal),
intent(inout) :: commtime
25 integer(kind=kint) :: n, np, ndof, ndof2
26 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:)
27 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
28 integer(kind=kint) :: i,j,k,ii,ij, ip(hecmat%ndof),iq(hecmat%ndof)
29 integer(kind=kint) :: isl, iel, isu, ieu, inod
30 real(kind=
kreal) :: start_time, end_time
47 allocate(scale(ndof*np))
51 scale(ndof*(i-1)+k)= 1.d0/dsqrt(dabs(d(ndof*ndof*(i-1)+(k-1)*(ndof+1)+1)))
58 commtime = commtime + end_time - start_time
66 d(ndof2*(i-1)+ndof*(j-1)+k)=d(ndof2*(i-1)+ndof*(j-1)+k)*scale(ip(j))*scale(ip(k))
76 iq(ii) = ndof*(inod-1)+ii
80 al(ndof2*(k-1)+ndof*(ii-1)+ij)=al(ndof2*(k-1)+ndof*(ii-1)+ij)*scale(ip(ii))*scale(iq(ij))
91 iq(ii) = ndof*(inod-1)+ii
95 au(ndof2*(k-1)+ndof*(ii-1)+ij)=au(ndof2*(k-1)+ndof*(ii-1)+ij)*scale(ip(ii))*scale(iq(ij))
103 b(ndof*(i-1)+k)=b(ndof*(i-1)+k)*scale(ndof*(i-1)+k)
112 integer(kind=kint) :: n, np, ndof, ndof2
113 real(kind=
kreal),
pointer :: d(:), al(:), au(:), b(:), x(:)
114 integer(kind=kint),
pointer :: inl(:), ial(:), inu(:), iau(:)
115 integer(kind=kint) :: i,j,k,ii,ij, ip(hecmat%ndof),iq(hecmat%ndof)
116 integer(kind=kint) :: isl, iel, isu, ieu, inod
137 x(ndof*(i-1)+k)=x(ndof*(i-1)+k)*scale(ndof*(i-1)+k)
138 b(ndof*(i-1)+k)=b(ndof*(i-1)+k)/scale(ndof*(i-1)+k)
148 d(ndof2*(i-1)+ndof*(j-1)+k)=d(ndof2*(i-1)+ndof*(j-1)+k)/(scale(ip(j))*scale(ip(k)))
158 iq(ii) = ndof*(inod-1)+ii
162 al(ndof2*(k-1)+ndof*(ii-1)+ij)=al(ndof2*(k-1)+ndof*(ii-1)+ij)/(scale(ip(ii))*scale(iq(ij)))
173 iq(ii) = ndof*(inod-1)+ii
177 au(ndof2*(k-1)+ndof*(ii-1)+ij)=au(ndof2*(k-1)+ndof*(ii-1)+ij)/(scale(ip(ii))*scale(iq(ij)))