15 SUBROUTINE calc_d_t(A_M, VXF_GS, VXF_SS, D_T, IER)
24 use discretelement
, only: des_continuum_coupled
26 use discretelement
, only: des_continuum_hybrid
28 use discretelement
, only: vxf_gds, vxf_sds
53 INTEGER,
INTENT(INOUT) :: IER
60 DOUBLE PRECISION,
dimension(:,:),
allocatable :: AM0
62 LOGICAL :: ANY_SOLIDS_Z_MOMENTUM
75 IF(des_continuum_coupled)
THEN 76 am0(:,0) = am0(:,0) - vxf_gds(:)
77 IF (des_continuum_hybrid) &
85 IF(any_solids_z_momentum)
THEN 90 ELSEIF (any_solids_z_momentum)
THEN 157 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
165 INTEGER :: LM, M, L, LPL, LP
166 INTEGER :: IJK, IJKT, K
170 DOUBLE PRECISION :: EPGA
172 DOUBLE PRECISION :: AREA_FACE
174 DOUBLE PRECISION :: SUM_VXF_GS
178 DOUBLE PRECISION :: SUM_VXF_SS_wt_M
181 DOUBLE PRECISION :: DEN_MGas, NUM_MGas
193 DOUBLE PRECISION :: NUM_MSol_LGas
197 DOUBLE PRECISION :: DEN_MSol_LGas
199 DOUBLE PRECISION :: TMPdp
211 IF (ip_at_t(ijk) .OR. mflow_at_t(ijk))
THEN 221 epga = avg_z(
ep_g(ijk),
ep_g(ijkt),k)
225 epsa(m) = avg_z(
ep_s(ijk,m),
ep_s(ijkt,m),k)
227 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
233 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
242 IF(momentum_z_eq(m))
THEN 243 num_mgas = num_mgas + (epsa(m)*vxf_gs(ijk,m)/ &
244 ((-am0(ijk,m))+vxf_gs(ijk,m)+sum_vxf_ss(m) + &
246 den_mgas = den_mgas + (vxf_gs(ijk,m)* &
247 ((-am0(ijk,m))+sum_vxf_ss(m))/ &
248 ((-am0(ijk,m))+vxf_gs(ijk,m)+sum_vxf_ss(m)+ &
251 den_mgas = den_mgas + vxf_gs(ijk,m)
259 tmpdp = -am0(ijk,0) + den_mgas
261 d_t(ijk,0) =
p_scale*area_face/tmpdp
267 IF(momentum_z_eq(m))
THEN 268 tmpdp = -am0(ijk,m) + vxf_gs(ijk,m)
270 d_t(ijk,m) = d_t(ijk,0)*vxf_gs(ijk,m)/tmpdp
284 tmpdp = -am0(ijk,0)+den_mgas
286 d_t(ijk,0) =
p_scale*area_face*(epga+num_mgas)/tmpdp
293 num_msol_lgas = vxf_gs(ijk,m)*epga/ &
295 den_msol_lgas = vxf_gs(ijk,m)*( &
296 ((-am0(ijk,0)) + (sum_vxf_gs - vxf_gs(ijk,m)))/ &
299 num_msol_lsol(m) =
zero 300 den_msol_lsol(m) =
zero 304 sum_vxf_ss_wt_m =
zero 306 IF( (lp /= l) .AND. (lp /= m) )
THEN 310 sum_vxf_ss_wt_m + vxf_ss(ijk,lpl)
314 IF(momentum_z_eq(l))
THEN 315 num_msol_lsol(m) = num_msol_lsol(m) + &
316 (vxf_ss(ijk,lm)*epsa(l)/((-am0(ijk,l)) + &
319 den_msol_lsol(m) = den_msol_lsol(m) + &
320 vxf_ss(ijk,lm)*(((-am0(ijk,l)) + &
321 vxf_gs(ijk,l)+sum_vxf_ss_wt_m )/ &
322 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+ &
326 den_msol_lsol(m) + vxf_ss(ijk,lm)
332 IF(momentum_z_eq(m))
THEN 333 tmpdp = -am0(ijk,m) + den_msol_lgas + den_msol_lsol(m)
335 d_t(ijk,m) =
p_scale*area_face*(epsa(m) + &
336 num_msol_lsol(m) + num_msol_lgas)/tmpdp
390 use functions, only: ip_at_t, mflow_at_t, top_of
422 INTEGER :: IJK, IJKT, K
424 DOUBLE PRECISION :: EPGA
426 DOUBLE PRECISION :: AREA_FACE
428 DOUBLE PRECISION :: SUM_VXF_GS
430 DOUBLE PRECISION :: TMPdp
439 IF (ip_at_t(ijk) .OR. mflow_at_t(ijk))
THEN 447 epga = avg_z(
ep_g(ijk),
ep_g(ijkt),k)
450 IF (.NOT. qmomk)
THEN 452 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
457 sum_vxf_gs = sum_vxf_gs +
vol_w(ijk)*avg_z( &
463 tmpdp = -am0(ijk,0)+sum_vxf_gs
466 d_t(ijk,0) =
p_scale*area_face/tmpdp
468 d_t(ijk,0) =
p_scale*area_face*epga/tmpdp
539 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
547 INTEGER :: LM, M, L, LPL, LP
548 INTEGER :: IJK, IJKT, K
552 DOUBLE PRECISION :: AREA_FACE
556 DOUBLE PRECISION :: SUM_VXF_SS_wt_M
566 DOUBLE PRECISION :: TMPdp
575 IF (ip_at_t(ijk) .OR. mflow_at_t(ijk) .OR.
model_b)
THEN 587 epsa(m) = avg_z(
ep_s(ijk,m),
ep_s(ijkt,m),k)
593 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
600 num_msol_lsol(m) =
zero 601 den_msol_lsol(m) =
zero 605 sum_vxf_ss_wt_m =
zero 607 IF ( (lp .NE. l) .AND. (lp .NE. m) )
THEN 610 sum_vxf_ss_wt_m = sum_vxf_ss_wt_m + vxf_ss(ijk,lpl)
613 IF (momentum_z_eq(l))
THEN 614 num_msol_lsol(m) = num_msol_lsol(m) + &
615 (vxf_ss(ijk,lm)*epsa(l)/&
616 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+&
618 den_msol_lsol(m) = den_msol_lsol(m) +vxf_ss(ijk,lm)*(&
619 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss_wt_m )/&
620 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+&
623 den_msol_lsol(m) = den_msol_lsol(m) + vxf_ss(ijk,lm)
629 IF(momentum_z_eq(m))
THEN 630 tmpdp = (-am0(ijk,m))+vxf_gs(ijk,m)+den_msol_lsol(m)
633 d_t(ijk,m) =
p_scale*area_face*&
634 (epsa(m) + num_msol_lsol(m))/tmpdp
double precision, dimension(:), allocatable vol_w
double precision, dimension(:), allocatable ep_g
double precision, parameter one
double precision, dimension(:), allocatable axy
logical, dimension(0:dim_m) momentum_z_eq
subroutine calc_d_t_solids_only(AM0, VXF_GS, VXF_SS, D_T)
subroutine calc_d_t(A_M, VXF_GS, VXF_SS, D_T, IER)
integer, dimension(:), allocatable k_of
subroutine calc_d_t_gas_and_solids(AM0, VXF_GS, VXF_SS, D_T)
double precision, parameter small_number
subroutine calc_d_t_gas_only(AM0, VXF_GS, D_T)
double precision function ep_s(IJK, xxM)
double precision, parameter zero
double precision, dimension(:,:,:), allocatable qmomk_f_gs