a, b, c += src(4:6, s)*exp(-dist^2/eps^2) within r_cut of the point
src(1:3, s), over the global index box box(1:3, s)..box(4:6, s); see
source_index_boxes. Box indices are wrapped across periodic
boundaries and skipped where this rank does not own them. Launch
with blocks (n_src, box extent in z) and threads striding y within
the box; sources overlap, so the adds are atomic.
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.