49 use functions, only: im_of, ip_of, jm_of, jp_of, km_of, kp_of
51 use functions, only: is_on_mype_plus2layers
62 INTEGER,
INTENT(IN) :: BCV
78 DO k = bc_k_b(bcv), bc_k_t(bcv)
79 DO j = bc_j_s(bcv), bc_j_n(bcv)
82 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
88 IF (fluid_at(im_of(ijk)))
THEN 95 IF (bc_type_enum(bcv)==p_inflow) &
108 IF (rop_g(ijk) >
zero)
THEN 109 u_g(ijk) = rop_g(fijk)*u_g(fijk)/rop_g(ijk)
136 IF (fluid_at(ip_of(ijk)))
THEN 145 IF (bc_type_enum(bcv)==p_inflow) &
154 IF (rop_g(ijk) >
zero)
THEN 155 u_g(ijk) = rop_g(fijk)*u_g(fijk)/rop_g(ijk)
165 IF (rop_s(ijk,m) >
zero)
THEN 166 u_s(ijk,m) = rop_s(fijk,m)*&
167 u_s(fijk,m)/rop_s(ijk,m)
182 IF (fluid_at(jm_of(ijk)))
THEN 189 IF (bc_type_enum(bcv)==p_inflow) &
192 IF (rop_g(ijk) >
zero)
THEN 193 v_g(ijk) = rop_g(fijk)*v_g(fijk)/rop_g(ijk)
217 IF (fluid_at(jp_of(ijk)))
THEN 224 IF (bc_type_enum(bcv)==p_inflow) &
228 IF (rop_g(ijk) >
zero)
THEN 229 v_g(ijk) = rop_g(fijk)*v_g(fijk)/rop_g(ijk)
239 IF (rop_s(ijk,m) >
zero)
THEN 240 v_s(ijk,m) = rop_s(fijk,m)*&
241 v_s(fijk,m)/rop_s(ijk,m)
256 IF (fluid_at(km_of(ijk)))
THEN 263 IF (bc_type_enum(bcv)==p_inflow) &
266 IF (rop_g(ijk) >
zero)
THEN 267 w_g(ijk) = rop_g(fijk)*w_g(fijk)/rop_g(ijk)
291 IF (fluid_at(kp_of(ijk)))
THEN 298 IF (bc_type_enum(bcv)==p_inflow) &
302 IF (rop_g(ijk) >
zero)
THEN 303 w_g(ijk) = rop_g(fijk)*w_g(fijk)/rop_g(ijk)
313 IF (rop_s(ijk,m) >
zero)
THEN 314 w_s(ijk,m) = rop_s(fijk,m)*&
315 w_s(fijk,m)/rop_s(ijk,m)
360 use run, only: kt_type_enum, ghd_2007
375 INTEGER,
INTENT(IN) :: BCV
377 INTEGER,
INTENT(IN) :: IJK
379 INTEGER,
INTENT(IN) :: FIJK
394 p_s(ijk,:smax) =
p_s(fijk,:smax)
397 IF (kt_type_enum == ghd_2007 .AND. mmax>0) &
398 p_s(ijk,mmax) =
p_s(fijk,mmax)
418 use run, only: kt_type_enum, ghd_2007
422 use discretelement
, only: discrete_element, des_mmax
432 INTEGER,
INTENT(IN) :: BCV
434 INTEGER,
INTENT(IN) :: IJK
436 INTEGER,
INTENT(IN) :: FIJK
444 DOUBLE PRECISION,
INTENT(IN) :: RVEL_G
445 DOUBLE PRECISION,
INTENT(IN),
DIMENSION(DIMENSION_M) :: RVEL_S
452 DOUBLE PRECISION :: SUM_EPs
454 DOUBLE PRECISION :: SUM_ROPS
455 LOGICAL,
SAVE :: FIRST_PASS = .true.
469 IF (rvel_s(m) >=
zero)
THEN 483 sum_rops = sum_rops +
rop_s(ijk,m)
484 sum_eps = sum_eps +
ep_s(ijk,m)
487 IF (kt_type_enum == ghd_2007)
rop_s(ijk,
mmax) = sum_rops
492 IF (discrete_element .AND. .NOT.first_pass)
THEN 500 sum_rops = sum_rops +
rop_s(ijk,m)
501 sum_eps = sum_eps +
ep_s(ijk,m)
512 rop_g(ijk) = ro_g(ijk)*ep_g(ijk)
538 use run, only: kt_type_enum, ghd_2007
549 INTEGER,
INTENT(IN) :: IJK
551 INTEGER,
INTENT(IN) :: FIJK
554 flux_ge(ijk) = flux_ge(fijk)
555 flux_gn(ijk) = flux_gn(fijk)
556 flux_gt(ijk) = flux_gt(fijk)
558 flux_se(ijk,:
mmax) = flux_se(fijk,:
mmax)
559 flux_sn(ijk,:
mmax) = flux_sn(fijk,:
mmax)
560 flux_st(ijk,:
mmax) = flux_st(fijk,:
mmax)
564 flux_gse(ijk) = flux_gse(fijk)
565 flux_gsn(ijk) = flux_gsn(fijk)
566 flux_gst(ijk) = flux_gst(fijk)
574 IF (kt_type_enum == ghd_2007)
THEN 575 flux_ne(ijk) = flux_ne(fijk)
576 flux_nn(ijk) = flux_nn(fijk)
577 flux_nt(ijk) = flux_nt(fijk)
610 use run, only: kt_type_enum, ghd_2007
625 INTEGER,
INTENT(IN) :: BCV
627 INTEGER,
INTENT(IN) :: IJK
629 INTEGER,
INTENT(IN) :: FIJK
632 DOUBLE PRECISION,
INTENT(IN) :: RVEL_G, RVEL_S(
dimension_m)
637 DOUBLE PRECISION :: Nm, NTot
644 t_g(ijk) = bc_t_g(bcv)
646 x_g(ijk,:
nmax(0)) = bc_x_g(bcv,:
nmax(0))
648 k_turb_g(ijk) = bc_k_turb_g(bcv)
649 e_turb_g(ijk) = bc_e_turb_g(bcv)
655 scalar(ijk, n) = bc_scalar(bcv,n)
661 x_g(ijk,:
nmax(0)) = x_g(fijk,:
nmax(0))
663 k_turb_g(ijk) = k_turb_g(fijk)
664 e_turb_g(ijk) = e_turb_g(fijk)
670 scalar(ijk, n) = scalar(fijk, n)
677 IF (rvel_s(m) < 0)
THEN 678 t_s(ijk,m) =
bc_t_s(bcv,m)
686 scalar(ijk, n) = bc_scalar(bcv,n)
690 t_s(ijk,m) = t_s(fijk,m)
691 theta_m(ijk,m) = theta_m(fijk,m)
693 x_s(ijk,m,:
nmax(m)) = x_s(fijk,m,:
nmax(m))
698 scalar(ijk, n) = scalar(fijk,n)
706 IF(kt_type_enum == ghd_2007)
THEN 709 nm =
rop_s(ijk,m)*6d0/ &
712 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) + &
716 theta_m(ijk,
mmax) = theta_m(ijk,
mmax) / ntot
integer, dimension(dimension_bc) bc_k_b
double precision, dimension(:), allocatable flux_ge
double precision, dimension(:), allocatable flux_ne
double precision, dimension(:,:), allocatable v_s
subroutine set_outflow_misc(BCV, IJK, FIJK)
double precision, dimension(:), allocatable ep_g
double precision, dimension(:), allocatable flux_gst
double precision, dimension(dimension_bc) bc_t_g
double precision, dimension(:,:), allocatable flux_st
double precision, dimension(:), allocatable k_turb_g
double precision, parameter one
integer, dimension(dimension_bc) bc_i_w
double precision, dimension(:,:), allocatable w_s
integer, dimension(dimension_bc) bc_j_n
double precision, dimension(dimension_bc, dim_m, dim_n_s) bc_x_s
double precision, dimension(:), allocatable t_g
double precision, dimension(:), allocatable flux_ssn
double precision, dimension(:,:), allocatable scalar
subroutine set_outflow_ep(BCV, IJK, FIJK, RVEL_G, RVEL_S)
double precision, dimension(:), allocatable p_g
integer, dimension(dimension_bc) bc_type_enum
double precision, parameter undefined
double precision, dimension(:,:), allocatable u_s
double precision, dimension(:), allocatable flux_gse
double precision, dimension(:,:), allocatable d_p
double precision function eosg(MW, PG, TG)
integer, dimension(dimension_bc) bc_k_t
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:,:,:), allocatable x_s
double precision, dimension(dimension_bc, dim_m) bc_t_s
double precision, dimension(:), allocatable flux_gn
double precision, dimension(:,:), allocatable t_s
double precision, dimension(:,:), allocatable x_g
subroutine set_outflow_fluxes(IJK, FIJK)
integer, dimension(dimension_bc) bc_j_s
double precision, dimension(dimension_bc, dim_scalar) bc_scalar
double precision, dimension(:,:), allocatable theta_m
double precision, dimension(:), allocatable v_g
double precision, dimension(:), allocatable w_g
double precision, dimension(:,:), allocatable ro_s
double precision, dimension(:), allocatable flux_gt
double precision, dimension(:), allocatable mw_mix_g
integer, dimension(0:dim_m) nmax
double precision, dimension(:,:), allocatable p_s
double precision, dimension(:), allocatable flux_nt
double precision, dimension(:), allocatable p_star
double precision, dimension(dimension_bc) bc_e_turb_g
double precision, dimension(:), allocatable u_g
double precision function ep_s(IJK, xxM)
double precision, dimension(dimension_bc, dim_m) bc_theta_m
double precision, dimension(dimension_bc, dim_n_g) bc_x_g
double precision, dimension(dimension_bc) bc_ep_g
double precision, dimension(dimension_bc) bc_k_turb_g
subroutine set_pinoutflow(BCV, IJK, FIJK, RVEL_G, RVEL_S)
double precision, dimension(:,:), allocatable rop_s
double precision, dimension(:,:), allocatable flux_se
double precision, dimension(:), allocatable flux_gsn
integer, dimension(1:dim_scalar) phase4scalar
double precision, parameter pi
double precision, dimension(:), allocatable flux_nn
double precision, dimension(:), allocatable e_turb_g
subroutine set_outflow(BCV)
double precision, dimension(:), allocatable ro_g
double precision, dimension(:), allocatable rop_g
double precision, dimension(:,:), allocatable flux_sn
integer, dimension(dimension_bc) bc_i_e
double precision, parameter zero
double precision, dimension(:), allocatable flux_sst
double precision, dimension(dimension_bc, dim_m) bc_rop_s
double precision, dimension(:), allocatable flux_sse