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
66 do i = 1, hecmesh%nn_internal * ndof
74 if (
present(commtime)) commtime = commtime + end_time - start_time
88 type (hecmwST_local_mesh) :: hecMESH
89 integer(kind=kint) :: ndof
90 real(kind=
kreal) :: x(:)
91 real(kind=
kreal) :: absmax
92 real(kind=
kreal),
optional :: commtime
94 integer(kind=kint) :: i
95 real(kind=
kreal) :: start_time, end_time
98 do i = 1, hecmesh%nn_internal * ndof
99 absmax = max(absmax, abs(x(i)))
105 if (
present(commtime)) commtime = commtime + end_time - start_time
118 type (hecmwST_local_mesh) :: hecMESH
119 integer(kind=kint) :: ndof
120 real(kind=
kreal) :: x(:), y(:)
121 real(kind=
kreal) :: sum
123 integer(kind=kint) :: i
126 do i = 1, hecmesh%nn_internal * ndof
127 sum = sum + x(i)*y(i)
142 integer(kind=kint) :: n
143 real(kind=
kreal) :: x(:), y(:)
144 real(kind=
kreal) :: alpha
146 integer(kind=kint) :: i
157 y(i) = alpha * x(i) + y(i)
178 integer(kind=kint) :: n
179 real(kind=
kreal) :: x(:), y(:)
180 real(kind=
kreal) :: alpha
182 integer(kind=kint) :: i
192 y(i) = x(i) + alpha * y(i)
213 integer(kind=kint) :: n
214 real(kind=
kreal) :: x(:), y(:)
215 real(kind=
kreal) :: alpha, beta
217 integer(kind=kint) :: i
220 if (beta == 0.d0)
then
246 y(i) = alpha * x(i) + beta * y(i)
268 integer(kind=kint) :: n
269 real(kind=
kreal) :: x(:), y(:), z(:)
270 real(kind=
kreal) :: alpha
272 integer(kind=kint) :: i
283 z(i) = alpha * x(i) + y(i)
303 integer(kind=kint) :: n
304 real(kind=
kreal) :: x(:)
305 real(kind=
kreal) :: alpha
307 integer(kind=kint) :: i
309 if (alpha == 0.d0)
then
357 integer(kind=kint) :: n
358 real(kind=
kreal) :: x(:), y(:)
360 integer(kind=kint) :: i
388 t_max, t_min, t_avg, t_sd)
393 type (hecmwST_local_mesh),
intent(in) :: hecMESH
394 real(kind=
kreal),
intent(in) :: time
395 real(kind=
kreal),
intent(out) :: t_max
396 real(kind=
kreal),
intent(out),
optional :: t_min, t_avg, t_sd
397 real(kind=
kreal) :: t2_avg
398 integer(kind=kint) :: nprocs
405 if (.not.
present(t_min))
return
409 if (.not.
present(t_avg))
return
412 t_avg = t_avg / nprocs
414 if (.not.
present(t_sd))
return
417 t2_avg = t2_avg / nprocs
419 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)