public subroutine exchange_mirror_100(self, c_dev)
Fills c_mirror_dev and c_plane_recv_dev with the dim2 mirror of the
local spectral slab, so that the 100 paired split can read its
partner mode without going looking for it in another rank's memory.
Slab index r of P owns global dim2 modes [rm + 1, (r + 1)m], with
m = ny_spec. Local mode j pairs with global mode
(P - r)*m - j + 2, which is local mode m - j + 2 of slab P - 1 - r
for j >= 2, and the first mode of slab P - r for j = 1. One slab
sized exchange plus one plane sized exchange therefore covers the
whole pairing, and both partners are symmetric so the rank that
sends is the rank that receives.
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.