34 LOGICAL,
parameter :: setDBG = .false.
37 INTEGER :: MAX_CELLS, BND1, BND2
39 INTEGER,
ALLOCATABLE :: LOC_PIC_BCMO_IJK(:)
42 INTEGER :: I_w, I_e, J_s, J_n, K_b, K_t
47 if(dflag)
write(*,
"(2/,2x,'PIC outlet count: ',I4)") pic_bcmo
52 DO bcv_i = 1, pic_bcmo
53 bcv = pic_bcmo_map(bcv_i)
56 if(dflag)
WRITE(*,
"(/2x,'Adding cells for BCV: ',I3)") bcv
57 SELECT CASE (bc_plane(bcv))
71 max_cells = max_cells + &
72 2*(bnd1+1)*(bnd2+1) + 2*(bnd1+2) + 2*(bnd2+2)
74 if(dflag)
WRITE(*,
"(4x,'Plane: ',A)") bc_plane(bcv)
75 if(dflag)
WRITE(*,
"(4x,'Cells: ', I8)") (bnd1+1)*(bnd2+1)
78 if(dflag)
write(*,
"(2x,'Max Cells: ',I8)") max_cells
82 allocate( loc_pic_bcmo_ijk(max_cells) )
87 DO bcv_i = 1, pic_bcmo
90 bcv = pic_bcmo_map(bcv_i)
92 if(dflag)
write(*,
"(/2x,'Searching for fluid cells:',I3)") bcv
100 SELECT CASE (bc_plane(bcv))
101 CASE(
'N'); j_s = j_s+1; j_n = j_s
102 CASE(
'S'); j_s = j_s-1; j_n = j_s
103 CASE(
'E'); i_w = i_w+1; i_e = i_w
104 CASE(
'W'); i_w = i_w-1; i_e = i_w
105 CASE(
'T'); k_b = k_b+1; k_t = k_b
106 CASE(
'B'); k_b = k_b-1; k_t = k_b
110 write(*,
"(4x,'Search bounds: ')")
111 write(*,
"(6x,'I_w/I_e:',2(2x,I6))") i_w, i_e
112 write(*,
"(6x,'J_s/J_n:',2(2x,I6))") j_s, j_n
113 write(*,
"(6x,'K_b/K_t:',2(2x,I6))") k_b, k_t
122 IF(.NOT.is_on_mype_wobnd(i,j,k)) cycle
125 IF(.NOT.fluid_at(ijk)) cycle
127 loc_pic_bcmo_ijk(lc) = ijk
135 if(dflag)
write(*,1111) bcv, bcv_i, &
140 1111
FORMAT(/2x,
'PIC Mass Outflow:',/4x,
'BC:',i4,3x,
'MAP:',i4,&
141 /4x,
'IJKSTART:',i6,/4x,
'IJKEND: ',i6)
145 allocate( pic_bcmo_ijk(lc-1) )
146 pic_bcmo_ijk(1:lc-1) = loc_pic_bcmo_ijk(1:lc-1)
148 allocate( pic_bcmo_ijk(1) )
149 pic_bcmo_ijk(1) = loc_pic_bcmo_ijk(1)
152 deallocate(loc_pic_bcmo_ijk)
integer, dimension(dimension_bc) bc_k_b
integer, dimension(dimension_bc) bc_i_w
integer, dimension(dimension_bc) bc_j_n
integer, dimension(:), allocatable pic_bcmo_ijkstart
character, dimension(dimension_bc) bc_plane
subroutine init_err_msg(CALLER)
integer, dimension(dimension_bc) bc_k_t
integer, dimension(dimension_bc) bc_j_s
integer, dimension(dimension_bc) pic_bcmo_map
integer, dimension(:), allocatable pic_bcmo_ijk
integer, dimension(dimension_bc) bc_i_e
integer, dimension(:), allocatable pic_bcmo_ijkend