36 use,
intrinsic :: iso_c_binding
45 type(c_ptr) :: gather_event = c_null_ptr
46 type(c_ptr) :: scatter_event = c_null_ptr
47 type(c_ptr) :: gs_stream = c_null_ptr
51 procedure(
gs_gather), pass(this),
deferred :: gather
60 integer,
intent(in) :: nlocal
61 integer,
intent(in) :: nshared
62 integer,
intent(in) :: nlcl_blks
63 integer,
intent(in) :: nshrd_blks
78 subroutine gs_gather(this, v, m, o, dg, u, n, gd, nb, b, op, shrd)
81 integer,
intent(in) :: m
82 integer,
intent(in) :: n
83 integer,
intent(in) :: nb
85 real(kind=
rp),
dimension(m),
intent(inout) :: v
86 integer,
dimension(m),
intent(inout) :: dg
87 real(kind=
rp),
dimension(n),
intent(inout) :: u
88 integer,
dimension(m),
intent(inout) :: gd
89 integer,
dimension(nb),
intent(inout) :: b
90 integer,
intent(in) :: o
91 integer,
intent(in) :: op
92 logical,
intent(in) :: shrd
99 subroutine gs_scatter(this, v, m, dg, u, n, gd, nb, b, shrd, event)
103 integer,
intent(in) :: m
104 integer,
intent(in) :: n
105 integer,
intent(in) :: nb
107 real(kind=
rp),
dimension(m),
intent(inout) :: v
108 integer,
dimension(m),
intent(inout) :: dg
109 real(kind=
rp),
dimension(n),
intent(inout) :: u
110 integer,
dimension(m),
intent(inout) :: gd
111 integer,
dimension(nb),
intent(inout) :: b
112 logical,
intent(in) :: shrd
Abstract interface for deallocating a Gather-Scatter backend.
Abstract interface for initialising a Gather-Scatter backend.
Abstract interface for the Gather kernel .
Abstract interface for the Scatter kernel .
Defines a gather-scatter backend.
integer, parameter, public gs_bcknd_cpu
integer, parameter, public gs_bcknd_sx
integer, parameter, public gs_bcknd_dev
integer, parameter, public rp
Global precision used in computations.