Zero (MEAN), -huge (MAX), or +huge (MIN) the accumulator —
so the first accumulate step seeds correctly. Runs on device
via the flat-impl shim because v%accumulator is reached
through the vars(:) array-of-derived-types indirection that
NVHPC can’t follow inside a do concurrent.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
real(kind=wp),
private
::
seed
Source Code
pure subroutine reset_accumulator(v)!! Zero (MEAN), -huge (MAX), or +huge (MIN) the accumulator —!! so the first accumulate step seeds correctly. Runs on device!! via the flat-impl shim because `v%accumulator` is reached!! through the `vars(:)` array-of-derived-types indirection that!! NVHPC can't follow inside a `do concurrent`.type(diag_var_t),intent(inout)::vreal(wp)::seedif(.not.allocated(v%accumulator))return select case(v%time_op)case(DIAG_OP_MAX)seed=-huge(0.0_wp)case(DIAG_OP_MIN)seed=huge(0.0_wp)case defaultseed=0.0_wpend select call fill_buffer_impl(v%accumulator,seed)end subroutine reset_accumulator