45       n_x, n_y, n_z, h, tau_x, tau_y, tau_z, n_nodes, lx, nelv, &
 
   47    integer, 
intent(in) :: n_nodes, lx, nelv, tstep
 
   48    real(kind=
rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, v, w
 
   49    integer, 
intent(in), 
dimension(n_nodes) :: ind_r, ind_s, ind_t, ind_e
 
   50    real(kind=
rp), 
dimension(n_nodes), 
intent(in) :: n_x, n_y, n_z, h
 
   51    real(kind=
rp), 
intent(in) :: kappa, b, z0
 
   52    real(kind=
rp), 
dimension(n_nodes), 
intent(inout) :: tau_x, tau_y, tau_z
 
   54    real(kind=
rp) :: ui, vi, wi, magu, utau, normu
 
   58       ui = u(ind_r(i), ind_s(i), ind_t(i), ind_e(i))
 
   59       vi = v(ind_r(i), ind_s(i), ind_t(i), ind_e(i))
 
   60       wi = w(ind_r(i), ind_s(i), ind_t(i), ind_e(i))
 
   63       normu = ui * n_x(i) + vi * n_y(i) + wi * n_z(i)
 
   65       ui = ui - normu * n_x(i)
 
   66       vi = vi - normu * n_y(i)
 
   67       wi = wi - normu * n_z(i)
 
   69       magu = sqrt(ui**2 + vi**2 + wi**2)
 
   73          utau = (magu - b) * kappa / log(h(i) / z0)
 
   79       tau_x(i) = -utau**2 * ui / magu
 
   80       tau_y(i) = -utau**2 * vi / magu
 
   81       tau_z(i) = -utau**2 * wi / magu
 
 
subroutine, public rough_log_law_compute_cpu(u, v, w, ind_r, ind_s, ind_t, ind_e, n_x, n_y, n_z, h, tau_x, tau_y, tau_z, n_nodes, lx, nelv, kappa, b, z0, tstep)
Compute the wall shear stress on CPU using the rough log-law model.