18 USE discretelement
, only : gener_part_config
20 USE discretelement
, only: dimn
22 USE discretelement
, only: des_mmax
48 INTEGER :: ICV, ICV2, M, IDIM
49 INTEGER :: COUNT_IC, COUNT_IC_WITH_SOLS
50 INTEGER :: FIRST_DEF_IC
51 DOUBLE PRECISION :: IC_ORIG(3), IC_END(3), IC2_ORIG(3) , IC2_END(3)
52 DOUBLE PRECISION :: IC_MIN, IC_MAX, IC2_MIN, IC2_MAX , TOL_IC_REG
53 LOGICAL :: SEP_AXIS, first_ic_ok
56 IF (.NOT.gener_part_config)
RETURN 67 count_ic_with_sols = 0
71 IF (ic_defined(icv))
THEN 72 count_ic = count_ic + 1
73 first_def_ic = min(first_def_ic, icv)
75 IF(ic_ep_g(icv).LT.
one) count_ic_with_sols &
76 = count_ic_with_sols + 1
81 IF(count_ic_with_sols >= 1 .AND. &
82 count_ic > count_ic_with_sols+1)
THEN 89 IF(ic_ep_g(icv).EQ.
one &
94 IF (first_ic_ok .AND.
ic_z_b(icv) <=
zero .AND. &
97 IF(.NOT.first_ic_ok)
THEN 102 1003
FORMAT(
' Error 1003: Particle seeding with more than one IC ', &
103 'region requires',/
'that IC 1 span the entire domain and ', &
104 'have IC_EP_g(1) = 1.0.',/
'Please correct the mfix.dat file.')
112 IF(.NOT.ic_defined(icv)) cycle icvloop
113 IF(ic_ep_g(icv) == 1.d0) cycle icvloop
122 IF(.NOT.ic_defined(icv2)) cycle icvtwoloop
123 IF(ic_ep_g(icv2) == 1.0d0) cycle icvtwoloop
125 ic2_orig(1) =
ic_x_w(icv2)
126 ic2_orig(2) =
ic_y_s(icv2)
127 ic2_orig(3) =
ic_z_b(icv2)
135 ic_min = ic_orig(idim)
136 ic_max = ic_end(idim)
137 ic2_min = ic2_orig(idim)
138 ic2_max = ic2_end(idim)
146 if ((ic_min .ge. ic2_max) .or. (ic_max .le. ic2_min) )
then 154 IF(.NOT.sep_axis)
THEN 159 1004
FORMAT(
'Error 1004: Overlapping IC regions with nonzero solids ',&
160 'volume',/
'fraction detected. This is not supported for ', &
161 'discrete solids.',2/
'Overlapping ICs: ',2(2x,i4),2/, &
162 'Please correct the mfix.dat file.')
172 IF (ic_defined(icv).and.ic_ep_g(icv).LT.
one)
THEN 175 IF(ic_ep_s(icv,m).gt.
zero)
THEN 176 WRITE(
err_msg, 1000) trim(
ivar(
'IC_THETA_M',icv,m))
179 ic_theta_m(icv,m) =
zero 190 1000
FORMAT(
'Error 1000: Required input not specified: ',a,/
'Please ',&
191 'correct the mfix.dat file.')
integer, parameter dimension_ic
character(len=32) function ivar(VAR, i1, i2, i3)
double precision, dimension(dimension_ic, dim_m) ic_theta_m
double precision, parameter one
subroutine check_ic_common_discrete
logical, dimension(dimension_ic) ic_defined
double precision, dimension(dimension_ic) ic_z_b
double precision, dimension(dimension_ic) ic_x_w
double precision, parameter undefined
subroutine init_err_msg(CALLER)
double precision, dimension(dimension_ic) ic_z_t
double precision, dimension(dimension_ic) ic_y_n
double precision, dimension(dimension_ic) ic_x_e
integer, parameter undefined_i
character(len=line_length), dimension(line_count) err_msg
double precision, dimension(dimension_ic) ic_ep_g
double precision, dimension(dimension_ic) ic_y_s
double precision, dimension(dimension_ic, dim_m) ic_ep_s
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)