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.