48 grav_mag = sqrt(dot_product(grav,grav))
79 USE discretelement
, only: des_mmax, dtsolid
89 INTEGER :: M, MMAX_TOT
94 mmax_tot = des_mmax+
mmax 95 DO m =
mmax+1, mmax_tot
98 WRITE(
err_msg,
'(/A,I2,A,G17.8)') &
99 'TAU_P FOR ', m,
'th SOLID PHASE= ', des_tau_p(m)
104 dtsolid = minval(des_tau_p(
mmax+1:mmax_tot))
111 1000
format(
'MPPIC: Point-particle ',&
112 'approximation for particle-particle and ', /, &
113 'particle-wall collisions', /, &
114 'DTSOLID based on particle time response Taup', /, &
115 'DTSOLID = ', 2x, e17.10)
205 integer :: ijk, iraw, jraw, kraw
208 INTEGER :: I, J, K, ip, jp, kp
209 integer :: ipjk, ijpk, ipjpk, ijkp, ipjkp, ijpkp, ipjpkp
211 double precision :: vol_ijk, vol_ipjk, vol_ijpk, vol_ipjpk
212 double precision :: vol_ijkp, vol_ipjkp, vol_ijpkp, vol_ipjpkp
213 double precision :: vol_node_count, vol_node_actual_count
215 double precision :: avg_factor
217 double precision :: vol_node_uncorr
220 avg_factor = merge(0.25d0, 0.125d0,
no_k)
224 vol_node_count = merge(4., 8.,
no_k)
227 des_vol_node(ijk) =
zero 260 ipjk = funijk(ip,j,k)
261 ijpk = funijk(i,jp,k)
262 ipjpk = funijk(ip,jp,k)
266 vol_ijk =
dx(i) *
dy(j) *
dz(k)
267 vol_ipjk =
dx(ip)*
dy(j) *
dz(k)
268 vol_ijpk =
dx(i) *
dy(jp)*
dz(k)
269 vol_ipjpk =
dx(ip)*
dy(jp)*
dz(k)
271 vol_node_uncorr = avg_factor*(vol_ijk + vol_ipjk + vol_ijpk + vol_ipjpk
274 IF(.NOT.fluid_at(ijk))
THEN 275 vol_node_actual_count = vol_node_actual_count - 1
279 IF(.NOT.fluid_at(ipjk))
THEN 280 vol_node_actual_count = vol_node_actual_count - 1
284 IF(.NOT.fluid_at(ijpk))
THEN 285 vol_node_actual_count = vol_node_actual_count - 1
289 IF(.NOT.fluid_at(ipjpk))
THEN 290 vol_node_actual_count = vol_node_actual_count - 1
296 des_vol_node(ijk) = avg_factor*(vol_ijk + vol_ipjk + &
297 vol_ijpk + vol_ipjpk)
301 ijkp = funijk(i, j, kp)
302 ipjkp = funijk(ip,j, kp)
303 ijpkp = funijk(i, jp,kp)
304 ipjpkp = funijk(ip,jp,kp)
306 vol_ijkp =
dx(i) *
dy(j) *
dz(kp)
307 vol_ipjkp =
dx(ip)*
dy(j) *
dz(kp)
308 vol_ijpkp =
dx(i) *
dy(jp)*
dz(kp)
309 vol_ipjpkp =
dx(ip)*
dy(jp)*
dz(kp)
311 vol_node_uncorr = avg_factor*(vol_node_uncorr + vol_ijkp + &
312 vol_ipjkp + vol_ijpkp + vol_ipjpkp)
314 IF(.NOT.fluid_at(ijkp))
THEN 315 vol_node_actual_count = vol_node_actual_count - 1
319 IF(.NOT.fluid_at(ipjkp))
THEN 320 vol_node_actual_count = vol_node_actual_count - 1
324 IF(.NOT.fluid_at(ijpkp))
THEN 325 vol_node_actual_count = vol_node_actual_count - 1
329 IF(.NOT.fluid_at(ipjpkp))
THEN 330 vol_node_actual_count = vol_node_actual_count - 1
334 des_vol_node(ijk) = des_vol_node(ijk) + avg_factor*&
335 (vol_ijkp + vol_ipjpkp + vol_ijpkp + vol_ipjkp)
integer, dimension(:), allocatable jmap_c
integer, dimension(:), allocatable i_of
integer, dimension(:), allocatable kmap_c
double precision, dimension(dim_m) d_p0
double precision gravity_z
logical mppic_pdrag_implicit
double precision gravity_y
double precision, dimension(0:dim_j) dy
double precision, dimension(0:dim_k) dz
subroutine init_err_msg(CALLER)
integer, dimension(:), allocatable k_of
integer, dimension(:), allocatable j_of
double precision, dimension(0:dim_i) dx
integer, dimension(:), allocatable imap_c
double precision, parameter large_number
double precision dtpic_taup
double precision, dimension(dim_m) des_tau_p
character(len=line_length), dimension(line_count) err_msg
double precision, dimension(dim_m) ro_s0
double precision gravity_x
subroutine compute_volume_of_nodes
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)