235 class(MethodCellPollockQuadType),
intent(inout) :: this
236 type(ParticleType),
pointer,
intent(inout) :: particle
237 class(SubcellRectType),
intent(inout) :: subcell
239 real(DP) :: dx, dy, dz, areax, areay, areaz
240 real(DP) :: dxprel, dyprel
241 integer(I4B) :: isc, npolyverts, m1, m2
242 real(DP) :: qextl1, qextl2, qintl1, qintl2
243 real(DP) :: factor, term
245 select type (cell => this%cell)
246 type is (cellrectquadtype)
247 factor = done / cell%defn%retfactor
248 factor = factor / cell%defn%porosity
249 npolyverts = cell%defn%npolyverts
251 isc = particle%itrdomain(level_subfeature)
259 dxprel = particle%x / dx
260 dyprel = particle%y / dy
262 if (dyprel .ge. 5d-1)
then
263 if (dxprel .le. 5d-1)
then
269 if (dxprel .le. 5d-1)
then
276 subcell%isubcell = isc
277 particle%itrdomain(level_subfeature) = isc
281 dz = cell%defn%top - &
286 qintl1 = cell%qintl(isc)
288 qintl2 = cell%qintl(isc + 1)
289 qextl1 = cell%qextl1(isc)
290 qextl2 = cell%qextl2(isc)
295 subcell%sinrot = dzero
296 subcell%cosrot = done
297 subcell%zOrigin = dzero
302 term = factor / areax
303 subcell%vx1 = qintl1 * term
304 subcell%vx2 = -qextl2 * term
305 term = factor / areay
306 subcell%vy1 = -qintl2 * term
307 subcell%vy2 = -qextl1 * term
310 subcell%yOrigin = dzero
311 term = factor / areax
312 subcell%vx1 = -qintl2 * term
313 subcell%vx2 = -qextl1 * term
314 term = factor / areay
315 subcell%vy1 = qextl2 * term
316 subcell%vy2 = -qintl1 * term
318 subcell%xOrigin = dzero
319 subcell%yOrigin = dzero
320 term = factor / areax
321 subcell%vx1 = qextl2 * term
322 subcell%vx2 = -qintl1 * term
323 term = factor / areay
324 subcell%vy1 = qextl1 * term
325 subcell%vy2 = qintl2 * term
327 subcell%xOrigin = dzero
329 term = factor / areax
330 subcell%vx1 = qextl1 * term
331 subcell%vx2 = qintl2 * term
332 term = factor / areay
333 subcell%vy1 = qintl1 * term
334 subcell%vy2 = -qextl2 * term
338 term = factor / areaz
339 subcell%vz1 = 2.5d-1 * cell%defn%faceflow(m1) * term
340 subcell%vz2 = -2.5d-1 * cell%defn%faceflow(m2) * term