36 use,
intrinsic :: iso_c_binding, only : c_ptr
44 tau_field_d, msk_d, m) &
45 bind(c, name =
'hip_wall_model_compute_mag_field')
46 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
48 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d, tau_field_d, msk_d
55 tau_field_d, msk_d, m) &
56 bind(c, name =
'cuda_wall_model_compute_mag_field')
57 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
59 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d, tau_field_d, msk_d
66 tau_field_d, msk_d, m) &
67 bind(c, name =
'opencl_wall_model_compute_mag_field')
68 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
70 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d, tau_field_d, msk_d
76 subroutine metal_wall_model_compute_mag_field(tau_x_d, tau_y_d, tau_z_d, &
77 tau_field_d, msk_d, m) &
78 bind(c, name =
'metal_wall_model_compute_mag_field')
79 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
81 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d, tau_field_d, msk_d
83 end subroutine metal_wall_model_compute_mag_field
93 tau_field_d, msk_d, m)
94 type(c_ptr),
intent(in) :: tau_x_d, tau_y_d, tau_z_d
95 type(c_ptr),
intent(in) :: msk_d
96 type(c_ptr),
intent(inout) :: tau_field_d
97 integer,
intent(in) :: m
101 tau_field_d, msk_d, m)
104 tau_field_d, msk_d, m)
107 tau_field_d, msk_d, m)
109 call metal_wall_model_compute_mag_field(tau_x_d, tau_y_d, tau_z_d, &
110 tau_field_d, msk_d, m)
112 call neko_error(
'No device backend configured')
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.
Implements the device kernel for the wall_model_t type.
subroutine, public wall_model_compute_mag_field_device(tau_x_d, tau_y_d, tau_z_d, tau_field_d, msk_d, m)
Compute the wall shear stress's magnitude on device.
void opencl_wall_model_compute_mag_field(void *tau_x_d, void *tau_y_d, void *tau_z_d, void *tau_field_d, void *msk_d, int *m)
void cuda_wall_model_compute_mag_field(void *tau_x_d, void *tau_y_d, void *tau_z_d, void *tau_field_d, void *msk_d, int *m)