4 use,
intrinsic :: iso_c_binding, only : c_ptr
12 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
13 n_x_d, n_y_d, n_z_d, h_d, &
14 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, &
15 kappa, B, z0, tstep) &
16 bind(c, name =
'hip_rough_log_law_compute')
17 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
20 type(c_ptr),
value :: u_d, v_d, w_d
21 type(c_ptr),
value :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
22 type(c_ptr),
value :: n_x_d, n_y_d, n_z_d, h_d
23 real(c_rp) :: kappa, B, z0
24 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d
25 integer(c_int) :: n_nodes, lx, tstep
31 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
32 n_x_d, n_y_d, n_z_d, h_d, &
33 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, &
34 kappa, B, z0, tstep) &
35 bind(c, name =
'cuda_rough_log_law_compute')
36 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
39 type(c_ptr),
value :: u_d, v_d, w_d
40 type(c_ptr),
value :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
41 type(c_ptr),
value :: n_x_d, n_y_d, n_z_d, h_d
42 real(c_rp) :: kappa, B, z0
43 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d
44 integer(c_int) :: n_nodes, lx, tstep
56 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
57 n_x_d, n_y_d, n_z_d, h_d, tau_x_d, tau_y_d, tau_z_d, &
58 n_nodes, lx, kappa, B, z0, tstep)
59 integer,
intent(in) :: n_nodes, lx, tstep
60 type(c_ptr),
intent(in) :: u_d, v_d, w_d
61 type(c_ptr),
intent(in) :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
62 type(c_ptr),
intent(in) :: n_x_d, n_y_d, n_z_d, h_d
63 type(c_ptr),
intent(inout) :: tau_x_d, tau_y_d, tau_z_d
64 real(kind=rp),
intent(in) :: kappa, b, z0
68 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
69 n_x_d, n_y_d, n_z_d, h_d, &
70 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, z0, tstep)
73 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
74 n_x_d, n_y_d, n_z_d, h_d, &
75 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, z0, tstep)
77 call neko_error(
"OPENCL is not implemented for the rough log-law model")
79 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 rough_log_law_t type.
subroutine, public rough_log_law_compute_device(u_d, v_d, w_d, ind_r_d, ind_s_d, ind_t_d, ind_e_d, n_x_d, n_y_d, n_z_d, h_d, tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, z0, tstep)
Compute the wall shear stress on device using the rough log-law model.
void cuda_rough_log_law_compute(void *u_d, void *v_d, void *w_d, void *ind_r_d, void *ind_s_d, void *ind_t_d, void *ind_e_d, void *n_x_d, void *n_y_d, void *n_z_d, void *h_d, void *tau_x_d, void *tau_y_d, void *tau_z_d, int *n_nodes, int *lx, real *kappa, real *B, real *z0, int *tstep)