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 type (hecmwST_local_mesh) :: hecMESH
137 integer(kind=kint) :: ndof
138 real(kind=
kreal) :: x(:), y(:)
139 real(kind=
kreal) :: alpha
141 integer(kind=kint) :: i
146 do i = 1, hecmesh%nn_internal * ndof
147 y(i) = alpha * x(i) + y(i)
164 type (hecmwST_local_mesh) :: hecMESH
165 integer(kind=kint) :: ndof
166 real(kind=
kreal) :: x(:), y(:)
167 real(kind=
kreal) :: alpha
169 integer(kind=kint) :: i
173 do i = 1, hecmesh%nn_internal * ndof
174 y(i) = x(i) + alpha * y(i)
191 type (hecmwST_local_mesh) :: hecMESH
192 integer(kind=kint) :: ndof
193 real(kind=
kreal) :: x(:), y(:), z(:)
194 real(kind=
kreal) :: alpha
196 integer(kind=kint) :: i
201 do i = 1, hecmesh%nn_internal * ndof
202 z(i) = alpha * x(i) + y(i)
218 type (hecmwST_local_mesh) :: hecMESH
219 integer(kind=kint) :: ndof
220 real(kind=
kreal) :: x(:)
221 real(kind=
kreal) :: alpha
223 integer(kind=kint) :: i
227 do i = 1, hecmesh%nn_internal * ndof
245 type (hecmwST_local_mesh) :: hecMESH
246 integer(kind=kint) :: ndof
247 real(kind=
kreal) :: x(:), y(:)
249 integer(kind=kint) :: i
254 do i = 1, hecmesh%nn_internal * ndof
268 t_max, t_min, t_avg, t_sd)
273 type (hecmwST_local_mesh),
intent(in) :: hecMESH
274 real(kind=
kreal),
intent(in) :: time
275 real(kind=
kreal),
intent(out) :: t_max
276 real(kind=
kreal),
intent(out),
optional :: t_min, t_avg, t_sd
277 real(kind=
kreal) :: t2_avg
278 integer(kind=kint) :: nprocs
285 if (.not.
present(t_min))
return
289 if (.not.
present(t_avg))
return
292 t_avg = t_avg / nprocs
294 if (.not.
present(t_sd))
return
297 t2_avg = t2_avg / nprocs
299 t_sd = dsqrt(t2_avg - t_avg*t_avg)