15 SUBROUTINE calc_d_n(A_M, VXF_GS, VXF_SS, D_N, 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(OUT) :: IER
60 DOUBLE PRECISION,
dimension(:,:),
allocatable :: AM0
62 LOGICAL :: ANY_SOLIDS_Y_MOMENTUM
75 IF(des_continuum_coupled)
THEN 76 am0(:,0) = am0(:,0) - vxf_gds(:)
77 IF (des_continuum_hybrid) &
84 IF(any_solids_y_momentum)
THEN 90 ELSEIF(any_solids_y_momentum)
THEN 157 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
165 INTEGER :: LM, M, L, LPL, LP
166 INTEGER :: J, IJK, IJKN
168 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
209 IF (ip_at_n(ijk) .OR. mflow_at_n(ijk))
THEN 217 epga = avg_y(
ep_g(ijk),
ep_g(ijkn),j)
221 epsa(m) = avg_y(
ep_s(ijk,m),
ep_s(ijkn,m),j)
223 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
229 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
238 IF(momentum_y_eq(m))
THEN 239 num_mgas = num_mgas + (epsa(m)*vxf_gs(ijk,m) / &
240 ((-am0(ijk,m)) + vxf_gs(ijk,m) + sum_vxf_ss(m) + &
242 den_mgas = den_mgas + (vxf_gs(ijk,m)* &
243 ((-am0(ijk,m)) + sum_vxf_ss(m)) / &
244 ((-am0(ijk,m)) + vxf_gs(ijk,m) + sum_vxf_ss(m) + &
247 den_mgas = den_mgas + vxf_gs(ijk,m)
255 tmpdp = -am0(ijk,0) + den_mgas
257 d_n(ijk,0) =
p_scale*area_face/tmpdp
263 IF(momentum_y_eq(m))
THEN 264 tmpdp = -am0(ijk,m) + vxf_gs(ijk,m)
266 d_n(ijk,m) = d_n(ijk,0)*vxf_gs(ijk,m) / tmpdp
280 tmpdp = -am0(ijk,0) + den_mgas
282 d_n(ijk,0) =
p_scale*area_face*(epga+num_mgas) / tmpdp
289 num_msol_lgas = vxf_gs(ijk,m)*epga/ &
291 den_msol_lgas = vxf_gs(ijk,m)*( &
292 ((-am0(ijk,0))+(sum_vxf_gs - vxf_gs(ijk,m))) / &
296 num_msol_lsol(m) =
zero 297 den_msol_lsol(m) =
zero 301 sum_vxf_ss_wt_m =
zero 303 IF((lp /= l) .AND. (lp /= m))
THEN 306 sum_vxf_ss_wt_m = sum_vxf_ss_wt_m + &
311 IF(momentum_y_eq(l))
THEN 312 num_msol_lsol(m) = num_msol_lsol(m) + &
313 (vxf_ss(ijk,lm)*epsa(l) / &
314 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+ &
317 den_msol_lsol(m) = den_msol_lsol(m) + &
318 vxf_ss(ijk,lm)*(((-am0(ijk,l)) + &
319 vxf_gs(ijk,l) + sum_vxf_ss_wt_m ) / &
320 ((-am0(ijk,l)) + vxf_gs(ijk,l)+ &
323 den_msol_lsol(m) = den_msol_lsol(m) + &
330 IF(momentum_y_eq(m))
THEN 331 tmpdp = -am0(ijk,m) + den_msol_lgas + den_msol_lsol(m)
334 d_n(ijk,m) =
p_scale*area_face*(epsa(m) + &
335 num_msol_lsol(m) + num_msol_lgas) / tmpdp
388 use functions, only: ip_at_n, mflow_at_n, north_of
419 INTEGER :: J, IJK, IJKN
421 DOUBLE PRECISION :: EPGA
423 DOUBLE PRECISION :: AREA_FACE
425 DOUBLE PRECISION :: SUM_VXF_GS
427 DOUBLE PRECISION :: TMPdp
437 IF (ip_at_n(ijk) .OR. mflow_at_n(ijk))
THEN 445 epga = avg_y(
ep_g(ijk),
ep_g(ijkn),j)
448 IF (.NOT. qmomk)
THEN 451 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
456 sum_vxf_gs = sum_vxf_gs +
vol_v(ijk)*avg_y( &
462 tmpdp = -am0(ijk,0) + sum_vxf_gs
465 d_n(ijk,0) =
p_scale*area_face/tmpdp
467 d_n(ijk,0) =
p_scale*area_face*epga/tmpdp
538 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
546 INTEGER :: LM, M, L, LPL, LP
547 INTEGER :: J, IJK, IJKN
551 DOUBLE PRECISION :: AREA_FACE
555 DOUBLE PRECISION :: SUM_VXF_SS_wt_M
565 DOUBLE PRECISION :: TMPdp
574 IF (ip_at_n(ijk) .OR. mflow_at_n(ijk) .OR.
model_b)
THEN 584 epsa(m) = avg_y(
ep_s(ijk,m),
ep_s(ijkn,m),j)
590 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
597 num_msol_lsol(m) =
zero 598 den_msol_lsol(m) =
zero 602 sum_vxf_ss_wt_m =
zero 604 IF((lp /= l) .AND. (lp /= m))
THEN 607 sum_vxf_ss_wt_m=sum_vxf_ss_wt_m+vxf_ss(ijk,lpl)
610 IF(momentum_y_eq(l))
THEN 611 num_msol_lsol(m) = num_msol_lsol(m) + &
612 (vxf_ss(ijk,lm)*epsa(l)/((-am0(ijk,l)) + &
614 den_msol_lsol(m) = den_msol_lsol(m) + &
615 vxf_ss(ijk,lm)*(((-am0(ijk,l)) + vxf_gs(ijk,l)+&
616 sum_vxf_ss_wt_m )/((-am0(ijk,l))+vxf_gs(ijk,l)+&
619 den_msol_lsol(m) = den_msol_lsol(m)+vxf_ss(ijk,lm)
625 IF (momentum_y_eq(m))
THEN 626 tmpdp = -am0(ijk,m) + vxf_gs(ijk,m) + den_msol_lsol(m)
628 d_n(ijk,m) =
p_scale*area_face* (epsa(m) + &
629 num_msol_lsol(m))/tmpdp
logical, dimension(0:dim_m) momentum_y_eq
double precision, dimension(:), allocatable ep_g
double precision, parameter one
subroutine calc_d_n(A_M, VXF_GS, VXF_SS, D_N, IER)
subroutine calc_d_n_gas_and_solids(AM0, VXF_GS, VXF_SS, D_N)
subroutine calc_d_n_gas_only(AM0, VXF_GS, D_N)
integer, dimension(:), allocatable j_of
double precision, parameter small_number
subroutine calc_d_n_solids_only(AM0, VXF_GS, VXF_SS, D_N)
double precision, dimension(:), allocatable axz
double precision function ep_s(IJK, xxM)
double precision, parameter zero
double precision, dimension(:,:,:), allocatable qmomk_f_gs
double precision, dimension(:), allocatable vol_v