17 use discretelement
, only: pip, max_pip
19 use discretelement
, only: pijk
22 use discretelement
, only: pinc
24 use discretelement
, only: xe, yn, zt
46 use discretelement
, only: des_pos_new
47 use functions, only: is_nonexistent, is_ghost, is_entering_ghost, is_exiting_ghost
74 IF(is_nonexistent(l)) cycle
77 IF(i <= istart3 .OR. i >= iend3)
THEN 79 dimension_i, imin2, imax2)
81 IF((des_pos_new(l,1) >= xe(i-1)) .AND. &
82 (des_pos_new(l,1) < xe(i)))
THEN 84 ELSEIF((des_pos_new(l,1) >= xe(i)) .AND. &
85 (des_pos_new(l,1) < xe(i+1)))
THEN 87 ELSEIF((des_pos_new(l,1) >= xe(i-2)) .AND. &
88 (des_pos_new(l,1) < xe(i-1)))
THEN 92 dimension_i, imin2, imax2)
97 IF(j <= jstart3 .OR. j >= jend3)
THEN 99 dimension_j, jmin2, jmax2)
101 IF((des_pos_new(l,2) >= yn(j-1)) .AND. &
102 (des_pos_new(l,2) < yn(j)))
THEN 104 ELSEIF((des_pos_new(l,2) >= yn(j)) .AND. &
105 (des_pos_new(l,2) < yn(j+1)))
THEN 107 ELSEIF((des_pos_new(l,2) >= yn(j-2)) .AND. &
108 (des_pos_new(l,2) < yn(j-1)))
THEN 112 dimension_j, jmin2, jmax2)
125 IF((des_pos_new(l,3) >= zt(k-1)) .AND. &
126 (des_pos_new(l,3) < zt(k)))
THEN 128 ELSEIF((des_pos_new(l,3) >= zt(k)) .AND. &
129 (des_pos_new(l,3) < zt(k+1)))
THEN 131 ELSEIF((des_pos_new(l,3) >= zt(k-2)) .AND. &
132 (des_pos_new(l,3) < zt(k-1)))
THEN 151 IF(.NOT.is_ghost(l) .AND. .NOT.is_entering_ghost(l) .AND. &
152 .NOT.is_exiting_ghost(l)) pinc(ijk) = pinc(ijk) + 1
166 DO ijk = ijkstart3, ijkend3
171 IF (
ASSOCIATED(
pic(ijk)%p))
THEN 172 IF (npic.NE.
SIZE(
pic(ijk)%p))
THEN 173 DEALLOCATE(
pic(ijk)%p)
174 IF (npic.GT.0)
ALLOCATE(
pic(ijk)%p(npic))
177 IF (npic.GT.0)
ALLOCATE(
pic(ijk)%p(npic))
188 IF(is_nonexistent(l)) cycle
192 IF(is_ghost(l) .OR. is_entering_ghost(l) .OR. is_exiting_ghost(l
220 use discretelement
, only: pijk, pinc
221 USE discretelement
, only: des_pos_new
222 USE discretelement
, only: max_pip
223 USE discretelement
, only: xe, yn, zt
224 USE functions, only: is_nonexistent, is_ghost, is_entering_ghost, is_exiting_ghost
243 INTEGER :: I, J, K, IJK
263 IF(is_nonexistent(l)) cycle
290 IF(.NOT.is_ghost(l) .AND. .NOT.is_entering_ghost(l) .AND. &
291 .NOT.is_exiting_ghost(l)) pinc(ijk) = pinc(ijk) + 1
314 SUBROUTINE pic_search(IDX, lPOS, ENT_POS, lDIMN, lSTART, lEND)
321 INTEGER,
INTENT(OUT) :: IDX
323 DOUBLE PRECISION,
INTENT(IN) :: lPOS
325 INTEGER,
INTENT(IN) :: lDIMN
327 DOUBLE PRECISION,
INTENT(IN) :: ENT_POS(0:ldimn)
329 INTEGER,
INTENT(IN) :: lSTART, lEND
332 IF(lpos >= ent_pos(idx-1) .AND. lpos < ent_pos(idx))
EXIT
subroutine desgrid_pic(plocate)
subroutine des_par_exchange()
subroutine init_err_msg(CALLER)
subroutine check_cell_movement
subroutine particles_in_cell
subroutine init_particles_in_cell
subroutine pic_search(IDX, lPOS, ENT_POS, lDIMN, lSTART, lEND)
double precision, dimension(:), allocatable particle_count
type(iap1), dimension(:), allocatable pic