103 integer,
intent(in) :: n
104 real(kind=
rp),
intent(inout),
dimension(n) :: x
105 real(kind=
rp),
intent(inout),
dimension(n) :: y
106 real(kind=
rp),
intent(inout),
dimension(n) :: z
107 real(kind=
rp),
intent(inout),
dimension(n) :: u
108 real(kind=
rp),
intent(inout),
dimension(n) :: v
109 real(kind=
rp),
intent(inout),
dimension(n) :: w
110 real(kind=
rp),
intent(in),
optional :: t
111 integer,
intent(in),
optional :: tstep
112 integer :: i, m, k, idx(4), facet
114 associate(c => this%coef)
118 facet = this%facet(i)
122 x(k) = u(k) * c%nx(idx(2), idx(3), facet, idx(4)) &
123 * c%area(idx(2), idx(3), facet, idx(4))
124 y(k) = v(k) * c%ny(idx(2), idx(3), facet, idx(4)) &
125 * c%area(idx(2), idx(3), facet, idx(4))
126 z(k) = w(k) * c%nz(idx(2), idx(3), facet, idx(4)) &
127 * c%area(idx(2), idx(3), facet, idx(4))
129 x(k) = u(k) * c%nx(idx(1), idx(3), facet, idx(4)) &
130 * c%area(idx(1), idx(3), facet, idx(4))
131 y(k) = v(k) * c%ny(idx(1), idx(3), facet, idx(4)) &
132 * c%area(idx(1), idx(3), facet, idx(4))
133 z(k) = w(k) * c%nz(idx(1), idx(3), facet, idx(4)) &
134 * c%area(idx(1), idx(3), facet, idx(4))
136 x(k) = u(k) * c%nx(idx(1), idx(2), facet, idx(4)) &
137 * c%area(idx(1), idx(2), facet, idx(4))
138 y(k) = v(k) * c%ny(idx(1), idx(2), facet, idx(4)) &
139 * c%area(idx(1), idx(2), facet, idx(4))
140 z(k) = w(k) * c%nz(idx(1), idx(2), facet, idx(4)) &
141 * c%area(idx(1), idx(2), facet, idx(4))
150 u_d, v_d, w_d, t, tstep)
152 type(c_ptr) :: x_d, y_d, z_d, u_d, v_d, w_d
153 real(kind=rp),
intent(in),
optional :: t
154 integer,
intent(in),
optional :: tstep
156 associate(c => this%coef)
157 call device_facet_normal_apply_surfvec(this%msk_d, this%facet_d, &
158 x_d, y_d, z_d, u_d, v_d, w_d, &
159 c%nx_d, c%ny_d, c%nz_d, c%area_d, &
160 c%Xh%lx,
size(this%msk))
subroutine facet_normal_apply_surfvec_dev(this, x_d, y_d, z_d, u_d, v_d, w_d, t, tstep)
Apply in facet normal direction (vector valued, device version)
subroutine facet_normal_apply_surfvec(this, x, y, z, u, v, w, n, t, tstep)
Apply in facet normal direction (vector valued)