25 real(kind=
kreal),
intent(out) :: r(:)
26 real(kind=
kreal),
intent(out) :: rlag(:)
27 real(kind=
kreal) :: tcomm, sum
28 integer(kind=kint) :: i, idof, ii, i0, ls, le, l, loc0, ll, j, loc, l0, k
29 integer(kind=kint) :: ndof, npndof
40 if (heclagmat%num_lagrange > 0)
then
46 ls=heclagmat%indexU_lagrange(i-1)+1
47 le=heclagmat%indexU_lagrange(i)
51 ll=heclagmat%itemU_lagrange(l)
53 sum=sum+heclagmat%AU_lagrange(loc)*hecmat%X(npndof+ll)
59 do i=1,heclagmat%num_lagrange
60 ls=heclagmat%indexL_lagrange(i-1)+1
61 le=heclagmat%indexL_lagrange(i)
65 j=heclagmat%itemL_lagrange(l)
70 sum=sum+heclagmat%AL_lagrange(loc)*hecmat%X(ll)
73 rlag(i)=hecmat%B(npndof+i)-sum
85 real(kind=
kreal),
allocatable :: r(:)
86 real(kind=
kreal),
allocatable :: rlag(:)
87 real(kind=
kreal) :: bnorm2, rnorm2
88 real(kind=
kreal) :: rlagnorm2
89 real(kind=
kreal) :: tcomm
90 integer(kind=kint) :: i
91 allocate(r(hecmat%NDOF*hecmat%NP),rlag(heclagmat%num_lagrange))
99 do i=1,heclagmat%num_lagrange
100 rlagnorm2=rlagnorm2+rlag(i)*rlag(i)
105 if (heclagmat%num_lagrange > 0) rnorm2=rnorm2+rlagnorm2
117 real(kind=
kreal),
allocatable :: r(:)
118 real(kind=
kreal),
allocatable :: rlag(:)
119 real(kind=
kreal) :: rmax, rlagmax
120 real(kind=
kreal) :: tcomm
121 allocate(r(hecmat%NDOF*hecmat%NP),rlag(heclagmat%num_lagrange))
123 rmax = maxval(dabs(r))
124 if (heclagmat%num_lagrange > 0)
then
125 rlagmax = maxval(dabs(rlag))
126 if (rlagmax > rmax) rmax = rlagmax
subroutine, public hecmw_matresid(hecMESH, hecMAT, X, B, R, COMMtime)
subroutine hecmw_innerproduct_r(hecMESH, ndof, X, Y, sum, COMMtime)
integer(kind=kint), parameter hecmw_sum
integer(kind=kint), parameter hecmw_max
integer(kind=4), parameter kreal
subroutine hecmw_allreduce_r1(hecMESH, s, ntag)
Structure for Lagrange multiplier-related part of stiffness matrix (Lagrange multiplier-related matri...