20 type (hecmwST_local_mesh) :: hecMESH
21 integer(kind=kint) :: ndof
22 integer(kind=kint) :: X(:), Y(:)
23 integer(kind=kint) :: sum
24 real(kind=
kreal),
optional :: commtime
26 integer(kind=kint) :: i
27 real(kind=
kreal) :: start_time, end_time
30 do i = 1, hecmesh%nn_internal * ndof
37 if (
present(commtime)) commtime = commtime + end_time - start_time
51 type (hecmwST_local_mesh) :: hecMESH
52 integer(kind=kint) :: ndof
53 real(kind=
kreal) :: x(:), y(:)
54 real(kind=
kreal) :: sum
55 real(kind=
kreal),
optional :: commtime
57 integer(kind=kint) :: i
58 real(kind=
kreal) :: start_time, end_time
61 do i = 1, hecmesh%nn_internal * ndof
68 if (
present(commtime)) commtime = commtime + end_time - start_time
82 type (hecmwST_local_mesh) :: hecMESH
83 integer(kind=kint) :: ndof
84 real(kind=
kreal) :: x(:)
85 real(kind=
kreal) :: absmax
86 real(kind=
kreal),
optional :: commtime
88 integer(kind=kint) :: i
89 real(kind=
kreal) :: start_time, end_time
92 do i = 1, hecmesh%nn_internal * ndof
93 absmax = max(absmax, abs(x(i)))
99 if (
present(commtime)) commtime = commtime + end_time - start_time
112 type (hecmwST_local_mesh) :: hecMESH
113 integer(kind=kint) :: ndof
114 real(kind=
kreal) :: x(:), y(:)
115 real(kind=
kreal) :: sum
117 integer(kind=kint) :: i
120 do i = 1, hecmesh%nn_internal * ndof
121 sum = sum + x(i)*y(i)
136 integer(kind=kint) :: n
137 real(kind=
kreal) :: x(:), y(:)
138 real(kind=
kreal) :: alpha
140 integer(kind=kint) :: i
146 y(i) = alpha * x(i) + y(i)
163 integer(kind=kint) :: n
164 real(kind=
kreal) :: x(:), y(:)
165 real(kind=
kreal) :: alpha
167 integer(kind=kint) :: i
172 y(i) = x(i) + alpha * y(i)
189 integer(kind=kint) :: n
190 real(kind=
kreal) :: x(:), y(:)
191 real(kind=
kreal) :: alpha, beta
193 integer(kind=kint) :: i
196 if (beta == 0.d0)
then
208 y(i) = alpha * x(i) + beta * y(i)
226 integer(kind=kint) :: n
227 real(kind=
kreal) :: x(:), y(:), z(:)
228 real(kind=
kreal) :: alpha
230 integer(kind=kint) :: i
236 z(i) = alpha * x(i) + y(i)
252 integer(kind=kint) :: n
253 real(kind=
kreal) :: x(:)
254 real(kind=
kreal) :: alpha
256 integer(kind=kint) :: i
258 if (alpha == 0.d0)
then
288 integer(kind=kint) :: n
289 real(kind=
kreal) :: x(:), y(:)
291 integer(kind=kint) :: i
310 t_max, t_min, t_avg, t_sd)
315 type (hecmwST_local_mesh),
intent(in) :: hecMESH
316 real(kind=
kreal),
intent(in) :: time
317 real(kind=
kreal),
intent(out) :: t_max
318 real(kind=
kreal),
intent(out),
optional :: t_min, t_avg, t_sd
319 real(kind=
kreal) :: t2_avg
320 integer(kind=kint) :: nprocs
327 if (.not.
present(t_min))
return
331 if (.not.
present(t_avg))
return
334 t_avg = t_avg / nprocs
336 if (.not.
present(t_sd))
return
339 t2_avg = t2_avg / nprocs
341 t_sd = dsqrt(t2_avg - t_avg*t_avg)
subroutine hecmw_xpay_r(n, alpha, X, Y)
subroutine hecmw_absmax_r(hecMESH, ndof, X, absMax, COMMtime)
subroutine hecmw_axpyz_r(n, alpha, X, Y, Z)
subroutine hecmw_innerproduct_r_nocomm(hecMESH, ndof, X, Y, sum)
subroutine hecmw_innerproduct_r(hecMESH, ndof, X, Y, sum, COMMtime)
subroutine hecmw_scale_r(n, alpha, X)
subroutine hecmw_axpby_r(n, alpha, beta, X, Y)
subroutine hecmw_axpy_r(n, alpha, X, Y)
subroutine hecmw_copy_r(n, X, Y)
subroutine hecmw_time_statistics(hecMESH, time, t_max, t_min, t_avg, t_sd)
subroutine hecmw_innerproduct_i(hecMESH, ndof, X, Y, sum, COMMtime)
integer(kind=kint), parameter hecmw_sum
integer(kind=kint) function hecmw_comm_get_size()
integer(kind=kint), parameter hecmw_max
integer(kind=4), parameter kreal
integer(kind=kint), parameter hecmw_min
real(kind=kreal) function hecmw_wtime()
subroutine hecmw_allreduce_i1(hecMESH, s, ntag)
subroutine hecmw_allreduce_r1(hecMESH, s, ntag)