37 use,
intrinsic :: iso_c_binding
43 bla_x, bla_y, bla_z, m, strm) &
44 bind(c, name =
'hip_inhom_dirichlet_apply_vector')
45 use,
intrinsic :: iso_c_binding
49 type(c_ptr),
value :: msk, x, y, z, bla_x, bla_y, bla_z, strm
55 bla_x, bla_y, bla_z, m, strm) &
56 bind(c, name =
'cuda_inhom_dirichlet_apply_vector')
57 use,
intrinsic :: iso_c_binding
61 type(c_ptr),
value :: msk, x, y, z, bla_x, bla_y, bla_z, strm
67 bla_x, bla_y, bla_z, m, strm) &
68 bind(c, name =
'opencl_inhom_dirichlet_apply_vector')
69 use,
intrinsic :: iso_c_binding
73 type(c_ptr),
value :: msk, x, y, z, bla_x, bla_y, bla_z, strm
79 subroutine metal_inhom_dirichlet_apply_vector(msk, x, y, z, &
80 bla_x, bla_y, bla_z, m, strm) &
81 bind(c, name =
'metal_inhom_dirichlet_apply_vector')
82 use,
intrinsic :: iso_c_binding
86 type(c_ptr),
value :: msk, x, y, z, bla_x, bla_y, bla_z, strm
87 end subroutine metal_inhom_dirichlet_apply_vector
95 bind(c, name =
'hip_inhom_dirichlet_apply_scalar')
96 use,
intrinsic :: iso_c_binding
100 type(c_ptr),
value :: msk, x, bla_x, strm
106 bind(c, name =
'cuda_inhom_dirichlet_apply_scalar')
107 use,
intrinsic :: iso_c_binding
111 type(c_ptr),
value :: msk, x, bla_x, strm
117 bind(c, name =
'opencl_inhom_dirichlet_apply_scalar')
118 use,
intrinsic :: iso_c_binding
122 type(c_ptr),
value :: msk, x, bla_x, strm
127 subroutine metal_inhom_dirichlet_apply_scalar(msk, x, bla_x, m, strm) &
128 bind(c, name =
'metal_inhom_dirichlet_apply_scalar')
129 use,
intrinsic :: iso_c_binding
133 type(c_ptr),
value :: msk, x, bla_x, strm
134 end subroutine metal_inhom_dirichlet_apply_scalar
151 bla_x, bla_y, bla_z, m, strm)
152 integer,
intent(in) :: m
153 type(c_ptr) :: msk, x, y, z, bla_x, bla_y, bla_z, strm
158 bla_x, bla_y, bla_z, m, strm)
161 bla_x, bla_y, bla_z, m, strm)
164 bla_x, bla_y, bla_z, m, strm)
166 call metal_inhom_dirichlet_apply_vector(msk, x, y, z, &
167 bla_x, bla_y, bla_z, m, strm)
169 call neko_error(
'No device backend configured')
181 integer,
intent(in) :: m
182 type(c_ptr) :: msk, x, bla_x, strm
192 call metal_inhom_dirichlet_apply_scalar(msk, x, bla_x, m, strm)
194 call neko_error(
'No device backend configured')
void opencl_inhom_dirichlet_apply_scalar(void *msk, void *x, void *bla_x, int *m, cl_command_queue cmd_queue)
void opencl_inhom_dirichlet_apply_vector(void *msk, void *x, void *y, void *z, void *bla_x, void *bla_y, void *bla_z, int *m, cl_command_queue cmd_queue)
void cuda_inhom_dirichlet_apply_scalar(void *msk, void *x, void *bla_x, int *m, cudaStream_t strm)
void cuda_inhom_dirichlet_apply_vector(void *msk, void *x, void *y, void *z, void *bla_x, void *bla_y, void *bla_z, int *m, cudaStream_t strm)
Device backend wrappers for inhomogeneous Dirichlet boundary conditions.
subroutine device_inhom_dirichlet_apply_scalar(msk, x, bla_x, m, strm)
Apply an inhomogeneous Dirichlet condition to a scalar field on the device.
subroutine device_inhom_dirichlet_apply_vector(msk, x, y, z, bla_x, bla_y, bla_z, m, strm)
Apply an inhomogeneous Dirichlet condition to a vector field on the device.
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.