47 bind(c, name =
'cuda_masked_copy_0')
48 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
49 type(c_ptr),
value :: a_d, b_d, mask_d, strm
50 integer(c_int) :: n, n_mask
54 bind(c, name =
'cuda_masked_copy_aligned')
55 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
56 type(c_ptr),
value :: a_d, b_d, mask_d, strm
57 integer(c_int) :: n, n_mask
61 bind(c, name =
'cuda_masked_gather_copy')
62 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
63 type(c_ptr),
value :: a_d, b_d, mask_d, strm
64 integer(c_int) :: n, n_mask
68 strm) bind(c, name = 'cuda_masked_gather_copy_aligned')
69 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
70 type(c_ptr),
value :: a_d, b_d, mask_d, strm
71 integer(c_int) :: n, n_mask
75 n2, lx, ly, lz, n_mask, strm) &
76 bind(c, name =
'cuda_face_masked_gather_copy')
77 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
78 type(c_ptr),
value :: a_d, b_d, mask_d, facet_d, strm
79 integer(c_int) :: n1, n2, lx, ly, lz, n_mask
83 bind(c, name =
'cuda_masked_scatter_copy')
84 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
85 type(c_ptr),
value :: a_d, b_d, mask_d, strm
86 integer(c_int) :: n, n_mask
90 bind(c, name =
'cuda_masked_scatter_copy_aligned')
91 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
92 type(c_ptr),
value :: a_d, b_d, mask_d, strm
93 integer(c_int) :: n, n_mask
97 bind(c, name =
'cuda_masked_atomic_reduction')
98 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
99 type(c_ptr),
value :: a_d, b_d, mask_d, strm
100 integer(c_int) :: n, m
104 bind(c, name =
'cuda_cfill_mask')
105 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
107 type(c_ptr),
value :: a_d, strm
110 type(c_ptr),
value :: mask_d
111 integer(c_int) :: n_mask
206 bind(c, name =
'cuda_add4')
207 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
209 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
241 bind(c, name =
'cuda_add3s2')
242 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
244 type(c_ptr),
value :: a_d, b_d, c_d, strm
250 bind(c, name =
'cuda_add4s3')
251 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
253 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
254 real(c_rp) :: c1, c2, c3
258 subroutine cuda_add5s4(a_d, b_d, c_d, d_d, e_d, c1, c2, c3, c4, n, strm) &
259 bind(c, name =
'cuda_add5s4')
260 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
262 type(c_ptr),
value :: a_d, b_d, c_d, d_d, e_d, strm
263 real(c_rp) :: c1, c2, c3, c4
338 bind(c, name =
'cuda_addcol4')
339 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
340 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
353 subroutine cuda_vdot3(dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, n, strm) &
354 bind(c, name =
'cuda_vdot3')
355 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
356 type(c_ptr),
value :: dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, strm
361 w1_d, w2_d, w3_d, n, strm) &
362 bind(c, name =
'cuda_vcross')
363 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
364 type(c_ptr),
value :: u1_d, u2_d, u3_d
365 type(c_ptr),
value :: v1_d, v2_d, v3_d
366 type(c_ptr),
value :: w1_d, w2_d, w3_d
367 type(c_ptr),
value :: strm
396 bind(c, name =
'cuda_glsc3_many')
397 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
399 type(c_ptr),
value :: w_d, v_d_d, mult_d, strm
400 integer(c_int) :: j, n