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