17 USE discretelement
, only: dimn
54 INTEGER,
INTENT(in) :: M_TOT
59 INTEGER :: BCV, M, BCV_I, IDIM
60 INTEGER :: BCV2, BCV2_I
63 LOGICAL :: CONST_NPC, CONST_STATWT
65 DOUBLE PRECISION :: BC_ORIG(3), BC_END(3), BC2_ORIG(3) , BC2_END(3)
66 DOUBLE PRECISION :: BC_MIN, BC_MAX, BC2_MIN, BC2_MAX
83 SELECT CASE (bc_type_enum(bcv))
89 bc_ep_s(bcv,m) >
zero)
THEN 90 pic_bcmi = pic_bcmi + 1
91 pic_bcmi_map(pic_bcmi) = bcv
98 IF(bc_po_apply_to_des(bcv))
then 99 pic_bcmo = pic_bcmo + 1
108 bc_ep_s(bcv,m) >
zero)
THEN 117 WRITE(
err_msg,1000) trim(
ivar(
'BC_TYPE',bcv)),
'GC_PO' 120 CASE (mass_outflow, outflow, p_inflow)
133 1000
FORMAT(
'Error 1000: Unsupported boundary condition specified ', &
134 'with',/
'PIC simulation: ',a,
' = ',a,/
'Please correct the ',&
139 DO bcv_i = 1, pic_bcmi
142 bcv = pic_bcmi_map(bcv_i)
146 bc_ep_s(bcv,m) >
zero)
THEN 147 const_npc = (bc_pic_mi_const_npc (bcv, m) .ne. 0)
148 const_statwt = (bc_pic_mi_const_statwt(bcv, m) .ne.
zero 149 IF(const_npc.and.const_statwt)
then 154 IF(.not.const_npc.and.(.not.const_statwt))
then 163 1100
FORMAT(
'Error 1100: In PIC model for BC # ',i5, &
164 ' and solid phase # ', i5, /, &
165 'Non zero Values specified for both ', &
166 'BC_PIC_MI_CONST_NPC and BC_PIC_MI_CONST_STATWT.', /, &
167 'Choose between constant number of parcels per cell or ',
168 'constant statistical weight', /, &
169 'See MFIX readme',/
'Please correct the data file.')
172 1101
FORMAT(
'Error 1101: In PIC model for BC # ',i5, &
173 ' and solid phase # ', i5, /, &
174 'A non-zero value not specified for ', &
175 'BC_PIC_MI_CONST_NPC or BC_PIC_MI_CONST_STATWT. ', /, &
176 'Choose between constant number of parcels per cell or ',
177 'constant statistical weight', /, &
178 'See MFIX readme',/
'Please correct the data file.')
187 bcvtwoloop:
DO bcv2_i = bcv_i+1, pic_bcmi
190 bcv2 = pic_bcmi_map(bcv2_i)
193 bc2_orig(1) =
bc_x_w(bcv2)
194 bc2_orig(2) =
bc_y_s(bcv2)
195 bc2_orig(3) =
bc_z_b(bcv2)
203 bc_min = bc_orig(idim)
204 bc_max = bc_end(idim)
205 bc2_min = bc2_orig(idim)
206 bc2_max = bc2_end(idim)
209 if(bc_min.eq.bc_max.and.bc_min.eq.bc2_min.and.bc_min.eq.bc2_max
220 if ((bc_min .ge. bc2_max) .or. (bc_max .le. bc2_min) )
then 227 if(.not.sep_axis)
then 236 write(
err_msg, 1005)
'BC1', idim, bc_orig(idim), bc_end
239 write(
err_msg, 1005)
'BC2', idim, bc2_orig(idim), bc2_end
253 1004
FORMAT(
'Error # 1004 for PIC Solids MI BC:',/5x, &
254 'Overlapping MI BC regions with non zero', /, &
255 'solids volume fraction not allowed.', /, &
256 'Overlapping BCs are', 2(2x, i4))
258 1005
FORMAT(
'Spans of ', a,
' in dir ', i2, /5x, 2(2x, g17.8))
261 1006
Format(
'Please correct the data file. Exiting.')
double precision, dimension(dimension_bc) bc_y_n
character(len=32) function ivar(VAR, i1, i2, i3)
integer, parameter dimension_bc
double precision, dimension(dimension_bc) bc_x_e
character(len=3), dimension(dim_m) solids_model
double precision, parameter undefined
integer, dimension(dimension_bc, dim_m) bc_pic_mi_const_npc
double precision, dimension(dimension_bc) bc_y_s
subroutine init_err_msg(CALLER)
subroutine check_bc_pic(M_TOT)
integer, dimension(dimension_bc) pic_bcmo_map
double precision, dimension(dimension_bc) bc_z_b
double precision, dimension(dimension_bc, dim_m) bc_pic_mi_const_statwt
character(len=line_length), dimension(line_count) err_msg
double precision, dimension(dimension_bc) bc_z_t
logical, dimension(dimension_bc) bc_po_apply_to_des
double precision, dimension(dimension_bc, dim_m) bc_ep_s
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
double precision, dimension(dimension_bc) bc_x_w
integer, dimension(dimension_bc) pic_bcmi_map