137 integer,
intent(in) :: n
138 real(kind=
rp),
intent(inout),
dimension(n) :: x
139 real(kind=
rp),
intent(inout),
dimension(n) :: y
140 real(kind=
rp),
intent(inout),
dimension(n) :: z
141 real(kind=
rp),
intent(inout),
dimension(n) :: u
142 real(kind=
rp),
intent(inout),
dimension(n) :: v
143 real(kind=
rp),
intent(inout),
dimension(n) :: w
144 real(kind=
rp),
intent(in),
optional :: t
145 integer,
intent(in),
optional :: tstep
146 integer :: i, m, k, idx(4), facet
148 associate(c => this%coef)
152 facet = this%facet(i)
156 x(k) = u(k) * c%nx(idx(2), idx(3), facet, idx(4)) &
157 * c%area(idx(2), idx(3), facet, idx(4))
158 y(k) = v(k) * c%ny(idx(2), idx(3), facet, idx(4)) &
159 * c%area(idx(2), idx(3), facet, idx(4))
160 z(k) = w(k) * c%nz(idx(2), idx(3), facet, idx(4)) &
161 * c%area(idx(2), idx(3), facet, idx(4))
163 x(k) = u(k) * c%nx(idx(1), idx(3), facet, idx(4)) &
164 * c%area(idx(1), idx(3), facet, idx(4))
165 y(k) = v(k) * c%ny(idx(1), idx(3), facet, idx(4)) &
166 * c%area(idx(1), idx(3), facet, idx(4))
167 z(k) = w(k) * c%nz(idx(1), idx(3), facet, idx(4)) &
168 * c%area(idx(1), idx(3), facet, idx(4))
170 x(k) = u(k) * c%nx(idx(1), idx(2), facet, idx(4)) &
171 * c%area(idx(1), idx(2), facet, idx(4))
172 y(k) = v(k) * c%ny(idx(1), idx(2), facet, idx(4)) &
173 * c%area(idx(1), idx(2), facet, idx(4))
174 z(k) = w(k) * c%nz(idx(1), idx(2), facet, idx(4)) &
175 * c%area(idx(1), idx(2), facet, idx(4))
184 u_d, v_d, w_d, t, tstep)
186 type(c_ptr) :: x_d, y_d, z_d, u_d, v_d, w_d
187 real(kind=rp),
intent(in),
optional :: t
188 integer,
intent(in),
optional :: tstep
190 associate(c => this%coef)
191 if (this%msk(0) .gt. 0)
then
192 call device_facet_normal_apply_surfvec(this%msk_d, this%facet_d, &
193 x_d, y_d, z_d, u_d, v_d, w_d, c%nx_d, c%ny_d, c%nz_d, c%area_d, &
194 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)