49 USE iso_c_binding
, ONLY: c_ptr, c_loc
52 INTEGER,
PARAMETER :: pi4 = 9
53 INTEGER,
PARAMETER ::
i4 = selected_int_kind(pi4)
56 MODULE PROCEDURE xt_redist_s_exchange_i4_1d
57 MODULE PROCEDURE xt_redist_s_exchange_i4_2d
58 MODULE PROCEDURE xt_redist_s_exchange_i4_3d
59 MODULE PROCEDURE xt_redist_s_exchange_i4_4d
60 MODULE PROCEDURE xt_redist_s_exchange_i4_5d
61 MODULE PROCEDURE xt_redist_s_exchange_i4_6d
62 MODULE PROCEDURE xt_redist_s_exchange_i4_7d
68 SUBROUTINE xt_redist_s_exchange_i4_1d_as(redist, src_size, src_data, &
71 INTEGER,
INTENT(in) :: src_size, dst_size
72 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(src_size)
73 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(dst_size)
74 TYPE(c_ptr) :: src_data_cptr, dst_data_cptr
75 src_data_cptr = c_loc(src_data)
76 dst_data_cptr = c_loc(dst_data)
78 END SUBROUTINE xt_redist_s_exchange_i4_1d_as
81 SUBROUTINE xt_redist_s_exchange_i4_1d(redist, src_data, dst_data)
83 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:)
84 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:)
86 INTEGER(i4),
POINTER :: src_p(:), dst_p(:)
87 INTEGER(i4),
TARGET :: dummy(1)
88 INTEGER :: src_size, dst_size
89 src_size =
SIZE(src_data)
90 dst_size =
SIZE(dst_data)
91 IF (src_size > 0)
THEN 97 IF (dst_size > 0)
THEN 103 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
104 END SUBROUTINE xt_redist_s_exchange_i4_1d
107 SUBROUTINE xt_redist_s_exchange_i4_2d(redist, src_data, dst_data)
109 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:)
110 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:)
112 INTEGER(i4),
POINTER :: src_p(:,:), dst_p(:,:)
113 INTEGER(i4),
TARGET :: dummy(1,1)
114 INTEGER :: src_size, dst_size
115 src_size =
SIZE(src_data)
116 dst_size =
SIZE(dst_data)
117 IF (src_size > 0)
THEN 123 IF (dst_size > 0)
THEN 129 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
130 END SUBROUTINE xt_redist_s_exchange_i4_2d
133 SUBROUTINE xt_redist_s_exchange_i4_3d(redist, src_data, dst_data)
135 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:,:)
136 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:,:)
138 INTEGER(i4),
POINTER :: src_p(:,:,:), dst_p(:,:,:)
139 INTEGER(i4),
TARGET :: dummy(1,1,1)
140 INTEGER :: src_size, dst_size
141 src_size =
SIZE(src_data)
142 dst_size =
SIZE(dst_data)
143 IF (src_size > 0)
THEN 149 IF (dst_size > 0)
THEN 155 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
156 END SUBROUTINE xt_redist_s_exchange_i4_3d
159 SUBROUTINE xt_redist_s_exchange_i4_4d(redist, src_data, dst_data)
161 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:,:,:)
162 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:,:,:)
164 INTEGER(i4),
POINTER :: src_p(:,:,:,:), dst_p(:,:,:,:)
165 INTEGER(i4),
TARGET :: dummy(1,1,1,1)
166 INTEGER :: src_size, dst_size
167 src_size =
SIZE(src_data)
168 dst_size =
SIZE(dst_data)
169 IF (src_size > 0)
THEN 175 IF (dst_size > 0)
THEN 181 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
182 END SUBROUTINE xt_redist_s_exchange_i4_4d
185 SUBROUTINE xt_redist_s_exchange_i4_5d(redist, src_data, dst_data)
187 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:,:,:,:)
188 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:,:,:,:)
190 INTEGER(i4),
POINTER :: src_p(:,:,:,:,:), dst_p(:,:,:,:,:)
191 INTEGER(i4),
TARGET :: dummy(1,1,1,1,1)
192 INTEGER :: src_size, dst_size
193 src_size =
SIZE(src_data)
194 dst_size =
SIZE(dst_data)
195 IF (src_size > 0)
THEN 201 IF (dst_size > 0)
THEN 207 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
208 END SUBROUTINE xt_redist_s_exchange_i4_5d
211 SUBROUTINE xt_redist_s_exchange_i4_6d(redist, src_data, dst_data)
213 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:,:,:,:,:)
214 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:,:,:,:,:)
216 INTEGER(i4),
POINTER :: src_p(:,:,:,:,:,:), dst_p(:,:,:,:,:,:)
217 INTEGER(i4),
TARGET :: dummy(1,1,1,1,1,1)
218 INTEGER :: src_size, dst_size
219 src_size =
SIZE(src_data)
220 dst_size =
SIZE(dst_data)
221 IF (src_size > 0)
THEN 227 IF (dst_size > 0)
THEN 233 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
234 END SUBROUTINE xt_redist_s_exchange_i4_6d
237 SUBROUTINE xt_redist_s_exchange_i4_7d(redist, src_data, dst_data)
239 INTEGER(i4),
TARGET,
INTENT(in) :: src_data(:,:,:,:,:,:,:)
240 INTEGER(i4),
TARGET,
INTENT(inout) :: dst_data(:,:,:,:,:,:,:)
242 INTEGER(i4),
POINTER :: src_p(:,:,:,:,:,:,:), dst_p(:,:,:,:,:,:,:)
243 INTEGER(i4),
TARGET :: dummy(1,1,1,1,1,1,1)
244 INTEGER :: src_size, dst_size
245 src_size =
SIZE(src_data)
246 dst_size =
SIZE(dst_data)
247 IF (src_size > 0)
THEN 253 IF (dst_size > 0)
THEN 259 CALL xt_redist_s_exchange_i4_1d_as(redist, src_size, src_p, dst_size, dst_p)
260 END SUBROUTINE xt_redist_s_exchange_i4_7d
integer, parameter, public i4
void xt_redist_s_exchange(Xt_redist redist, int num_arrays, const void **src_data, void **dst_data)
void xt_redist_s_exchange1(Xt_redist redist, const void *src_data, void *dst_data)