28 real(kind=
kreal),
intent(in) :: x(:)
29 real(kind=
kreal),
intent(out) :: y(:)
30 real(kind=
kreal),
intent(inout) :: time_ax
31 real(kind=
kreal),
intent(inout),
optional :: commtime
33 real(kind=
kreal) :: start_time, end_time
34 integer(kind=kint) :: i, j, js, je, in
35 real(kind=
kreal) :: yv
40 if (
present(commtime)) commtime = commtime + end_time - start_time
48 js= hecmat%indexA(i) + 1
49 je= hecmat%indexA(i+1)
52 yv= yv + hecmat%A(j) * x(in)
59 yv= hecmat%D(i) * x(i)
60 js= hecmat%indexL(i-1) + 1
64 yv= yv + hecmat%AL(j) * x(in)
66 js= hecmat%indexU(i-1) + 1
70 yv= yv + hecmat%AU(j) * x(in)
76 time_ax = time_ax + end_time - start_time
89 real(kind=
kreal) :: x(:), b(:), r(:)
92 real(kind=
kreal) :: time_ax
93 real(kind=
kreal),
optional :: commtime
95 integer(kind=kint) :: i
96 real(kind=
kreal) :: tcomm
100 if (
present(commtime)) commtime = commtime + tcomm
124 real(kind=
kreal) :: time_ax
125 real(kind=
kreal),
optional :: commtime
127 real(kind=
kreal) :: r(hecmat%NDOF*hecmat%NP)
128 real(kind=
kreal) :: bnorm2, rnorm2
129 real(kind=
kreal) :: tcomm
133 if (bnorm2 == 0.d0)
then
138 if (
present(commtime)) commtime = commtime + tcomm
real(kind=kreal) function, public hecmw_rel_resid_l2_11(hecMESH, hecMAT, time_Ax, COMMtime)
subroutine, public hecmw_matresid_11(hecMESH, hecMAT, X, B, R, time_Ax, COMMtime)
subroutine, public hecmw_matvec_11(hecMESH, hecMAT, X, Y, time_Ax, COMMtime)
subroutine hecmw_innerproduct_r(hecMESH, ndof, X, Y, sum, COMMtime)
integer(kind=4), parameter kreal
real(kind=kreal) function hecmw_wtime()
subroutine hecmw_update_r(hecMESH, val, n, m)