32 IF (.NOT.momentum_x_eq(0))
RETURN 41 IF (discretize(3) == 0)
THEN 74 USE fun_avg, only: avg_x_e, avg_x
91 INTEGER :: IJK, I, IP, IPJK
93 DOUBLE PRECISION :: AW, HW, VELW
102 IF(cut_u_treatment_at(ijk))
THEN 105 u(ijk) = (theta_ue_bar(ijk) *
u_g(ijk) + &
106 theta_ue(ijk) *
u_g(ipjk))
112 v(ijk) = (theta_u_nw(ijk) *
v_g(ijk) + &
113 theta_u_ne(ijk) *
v_g(ipjk))
120 ww(ijk) = (theta_u_tw(ijk) *
w_g(ijk) + &
121 theta_u_te(ijk) *
w_g(ipjk))
124 ww(ijk) = ww(ijk) * aw
128 u(ijk) = avg_x_e(
u_g(ijk),
u_g(ipjk),ip)
129 v(ijk) = avg_x(
v_g(ijk),
v_g(ipjk),i)
130 IF (
do_k) ww(ijk) = avg_x(
w_g(ijk),
w_g(ipjk),i)
147 flux_s, flux_t, flux_b, ijk)
156 USE functions, only: ip_of, im_of, jm_of, km_of
166 DOUBLE PRECISION,
INTENT(OUT) :: flux_e, flux_w
167 DOUBLE PRECISION,
INTENT(OUT) :: flux_n, flux_s
168 DOUBLE PRECISION,
INTENT(OUT) :: flux_t, flux_b
170 INTEGER,
INTENT(IN) :: ijk
175 INTEGER :: imjk, ijmk, ijkm
176 INTEGER :: ipjk, ipjmk, ipjkm
179 DOUBLE PRECISION :: AW, HW, VELW
191 IF(cut_u_treatment_at(ijk))
THEN 193 flux_e = (theta_ue_bar(ijk) *
flux_ge(ijk) + &
199 flux_w = (theta_ue_bar(imjk) *
flux_ge(imjk) + &
207 flux_n = (theta_u_nw(ijk) *
flux_gn(ijk) + &
208 theta_u_ne(ijk) *
flux_gn(ipjk))
213 flux_s = (theta_u_nw(ijmk) *
flux_gn(ijmk) + &
214 theta_u_ne(ijmk) *
flux_gn(ipjmk))
221 flux_t = (theta_u_tw(ijk) *
flux_gt(ijk) + &
222 theta_u_te(ijk) *
flux_gt(ipjk))
227 flux_b = (theta_u_tw(ijkm) *
flux_gt(ijkm) + &
228 theta_u_te(ijkm) *
flux_gt(ipjkm))
267 USE functions, only: east_of, north_of, top_of
287 DOUBLE PRECISION,
INTENT(OUT) :: d_fe, d_fw
288 DOUBLE PRECISION,
INTENT(OUT) :: d_fn, d_fs
289 DOUBLE PRECISION,
INTENT(OUT) :: d_ft, d_fb
291 INTEGER,
INTENT(IN) :: ijk
296 INTEGER :: imjk, ijmk, ijkm
297 INTEGER :: i, j, k, ip, jm, km
298 INTEGER :: ijkc, ijke, ijkn, ijkne, ijks, ijkse
299 INTEGER :: ijkt, ijkte, ijkb, ijkbe
301 DOUBLE PRECISION :: C_AE, C_AW, C_AN, C_AS, C_AT, C_AB
303 DOUBLE PRECISION :: EPGA
318 IF (wall_at(ijk))
THEN 324 ijkne = east_of(ijkn)
326 ijkse = east_of(ijks)
328 IF(cut_u_treatment_at(ijk))
THEN 363 ijkte = east_of(ijkt)
364 ijkb = bottom_of(ijk)
365 ijkbe = east_of(ijkb)
370 ox_e(i)*c_at*
axy_u(ijk)
374 ox_e(i)*c_ab*
axy_u(ijkm)
398 include
'fun_avg.inc' 444 INTEGER :: IMJK, IPJK, IJMK, IJPK, IJKM, IJKP
446 DOUBLE PRECISION :: flux_e, flux_w, flux_n, flux_s
447 DOUBLE PRECISION :: flux_t, flux_b
449 DOUBLE PRECISION :: D_fe, d_fw, d_fn, d_fs, d_ft, d_fb
461 IF (flow_at_e(ijk))
THEN 465 flux_s, flux_t, flux_b, ijk)
475 IF (flux_e >=
zero)
THEN 476 a_u_g(ijk,
east,0) = d_fe
477 a_u_g(ipjk,
west,0) = d_fe + flux_e
479 a_u_g(ijk,
east,0) = d_fe - flux_e
480 a_u_g(ipjk,
west,0) = d_fe
483 IF (.NOT.flow_at_e(imjk))
THEN 484 IF (flux_w >=
zero)
THEN 485 a_u_g(ijk,
west,0) = d_fw + flux_w
487 a_u_g(ijk,
west,0) = d_fw
493 IF (flux_n >=
zero)
THEN 494 a_u_g(ijk,
north,0) = d_fn
495 a_u_g(ijpk,
south,0) = d_fn + flux_n
497 a_u_g(ijk,
north,0) = d_fn - flux_n
498 a_u_g(ijpk,
south,0) = d_fn
501 IF (.NOT.flow_at_e(ijmk))
THEN 502 IF (flux_s >=
zero)
THEN 503 a_u_g(ijk,
south,0) = d_fs + flux_s
505 a_u_g(ijk,
south,0) = d_fs
515 IF (flux_t >=
zero)
THEN 516 a_u_g(ijk,
top,0) = d_ft
517 a_u_g(ijkp,
bottom,0) = d_ft + flux_t
519 a_u_g(ijk,
top,0) = d_ft - flux_t
520 a_u_g(ijkp,
bottom,0) = d_ft
523 IF (.NOT.flow_at_e(ijkm))
THEN 524 IF (flux_b >=
zero)
THEN 525 a_u_g(ijk,
bottom,0) = d_fb + flux_b
527 a_u_g(ijk,
bottom,0) = d_fb
586 DOUBLE PRECISION,
INTENT(INOUT) :: B_m(
dimension_3)
591 INTEGER :: I, J, K, IJK
592 INTEGER :: IMJK, IPJK, IJMK, IJPK, IJKM, IJKP
593 INTEGER :: IJK4, IPPP, IPPP4, JPPP, JPPP4, KPPP, KPPP4
594 INTEGER :: IMMM, IMMM4, JMMM, JMMM4, KMMM, KMMM4
598 DOUBLE PRECISION :: MOM_HO
600 DOUBLE PRECISION :: MOM_LO
602 DOUBLE PRECISION :: flux_e, flux_w, flux_n, flux_s
603 DOUBLE PRECISION :: flux_t, flux_b
605 DOUBLE PRECISION :: EAST_DC
606 DOUBLE PRECISION :: WEST_DC
607 DOUBLE PRECISION :: NORTH_DC
608 DOUBLE PRECISION :: SOUTH_DC
609 DOUBLE PRECISION :: TOP_DC
610 DOUBLE PRECISION :: BOTTOM_DC
621 DOUBLE PRECISION,
DIMENSION(DIMENSION_3) :: XSI_e, XSI_n, XSI_t
632 tmp4(ijk4) =
u_g(ijk)
650 IF (flow_at_e(ijk))
THEN 654 flux_s, flux_t, flux_b, ijk)
664 ippp = ip_of(ip_of(ipjk))
666 immm = im_of(im_of(imjk))
668 jppp = jp_of(jp_of(ijpk))
670 jmmm = jm_of(jm_of(ijmk))
672 kppp = kp_of(kp_of(ijkp))
674 kmmm = km_of(km_of(ijkm))
679 IF(u(ijk) >=
zero)
THEN 682 u_g(imjk),
u_g(im_of(imjk)))
686 u_g(ip_of(ipjk)), tmp4(ippp4))
688 IF (.NOT.
fpfoi) mom_ho = xsi_e(ijk)*
u_g(ipjk)+ &
689 (1.0-xsi_e(ijk))*
u_g(ijk)
690 east_dc = flux_e *(mom_lo - mom_ho)
693 IF(u(imjk) >=
zero)
THEN 696 u_g(im_of(imjk)), tmp4(immm4))
700 u_g(ipjk),
u_g(ip_of(ipjk)))
702 IF (.NOT.
fpfoi) mom_ho = xsi_e(imjk)*
u_g(ijk)+ &
703 (1.0-xsi_e(imjk))*
u_g(imjk)
704 west_dc = flux_w * (mom_lo - mom_ho)
708 IF(v(ijk) >=
zero)
THEN 711 u_g(ijmk),
u_g(jm_of(ijmk)))
715 u_g(jp_of(ijpk)), tmp4(jppp4))
717 IF (.NOT.
fpfoi) mom_ho = xsi_n(ijk)*
u_g(ijpk)+ &
718 (1.0-xsi_n(ijk))*
u_g(ijk)
719 north_dc = flux_n *(mom_lo - mom_ho)
722 IF(v(ijmk) >=
zero)
THEN 725 u_g(jm_of(ijmk)), tmp4(jmmm4))
729 u_g(ijpk),
u_g(jp_of(ijpk)))
731 IF (.NOT.
fpfoi) mom_ho = xsi_n(ijmk)*
u_g(ijk)+ &
732 (1.0-xsi_n(ijmk))*
u_g(ijmk)
733 south_dc = flux_s *(mom_lo - mom_ho)
738 IF(ww(ijk) >=
zero)
THEN 741 u_g(ijkm),
u_g(km_of(ijkm)))
745 u_g(kp_of(ijkp)), tmp4(kppp4))
747 IF (.NOT.
fpfoi) mom_ho = xsi_t(ijk)*
u_g(ijkp)+ &
748 (1.0-xsi_t(ijk))*
u_g(ijk)
749 top_dc = flux_t *(mom_lo - mom_ho)
752 IF(ww(ijk) >=
zero)
THEN 755 u_g(km_of(ijkm)), tmp4(kmmm4))
759 u_g(ijkp),
u_g(kp_of(ijkp)))
761 IF (.NOT.
fpfoi) mom_ho = xsi_t(ijkm)*
u_g(ijk)+ &
762 (1.0-xsi_t(ijkm))*
u_g(ijkm)
763 bottom_dc = flux_b * (mom_lo - mom_ho)
771 b_m(ijk) = b_m(ijk)+west_dc-east_dc+south_dc-north_dc+&
827 INTEGER :: IJK, IPJK, IMJK, IJPK, IJMK, IJKP, IJKM
831 DOUBLE PRECISION :: d_fe, d_fw, d_fn, d_fs, d_ft, d_fb
833 DOUBLE PRECISION :: Flux_e, flux_w, flux_n, flux_s
834 DOUBLE PRECISION :: flux_t, flux_b
844 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: TMP4
845 DOUBLE PRECISION,
DIMENSION(DIMENSION_3) :: XSI_e, XSI_n, XSI_t
860 IF (flow_at_e(ijk))
THEN 864 flux_s, flux_t, flux_b, ijk)
874 a_u_g(ijk,
east,0) = d_fe - xsi_e(ijk) * flux_e
875 a_u_g(ipjk,
west,0) = d_fe + (
one - xsi_e(ijk)) * flux_e
877 IF (.NOT.flow_at_e(imjk))
THEN 878 a_u_g(ijk,
west,0) = d_fw + (
one - xsi_e(imjk)) * flux_w
883 a_u_g(ijk,
north,0) = d_fn - xsi_n(ijk) * flux_n
884 a_u_g(ijpk,
south,0) = d_fn + (
one - xsi_n(ijk)) * flux_n
886 IF (.NOT.flow_at_e(ijmk))
THEN 887 a_u_g(ijk,
south,0) = d_fs + (
one - xsi_n(ijmk)) * flux_s
895 a_u_g(ijk,
top,0) = d_ft - xsi_t(ijk) * flux_t
896 a_u_g(ijkp,
bottom,0) = d_ft + (
one - xsi_t(ijk)) * flux_t
898 IF (.NOT.flow_at_e(ijkm))
THEN 899 a_u_g(ijk,
bottom,0) = d_fb + (
one - xsi_t(ijkm)) * flux_b
integer, dimension(:), allocatable ip1
double precision, dimension(:), allocatable flux_ge
double precision, dimension(:), allocatable alpha_ut_c
integer, dimension(:), allocatable i_of
double precision, dimension(:), allocatable theta_u_ne
double precision, dimension(:), allocatable ox_e
double precision, dimension(:), allocatable odx
double precision, parameter one
subroutine get_interpolation_terms_g(IJK, TYPE_OF_CELL, ALPHA_CUT, AW, HW, VELW)
double precision, dimension(:), allocatable theta_u_nw
logical, dimension(0:dim_m) momentum_x_eq
double precision, dimension(:), allocatable epg_jfac
subroutine dif_u_is(DIF, A_M, M)
subroutine calc_xsi(DISCR, PHI, U, V, W, XSI_E, XSI_N, XSI_T, incr)
double precision, dimension(:), allocatable ayz_u
logical, dimension(:), allocatable cut_u_treatment_at
double precision, dimension(:), allocatable oneody_n_u
double precision, dimension(:), allocatable alpha_ue_c
double precision, dimension(:), allocatable axz_u
double precision, dimension(:), allocatable oneodx_e_u
integer, dimension(:), allocatable k_of
double precision function fpfoi_of(PHI_D, PHI_C, PHI_U, PHI_UU)
double precision, dimension(:), allocatable ody_n
double precision, dimension(:), allocatable theta_u_tw
integer, dimension(:), allocatable j_of
integer, dimension(:), allocatable jm1
double precision, dimension(:), allocatable flux_gn
double precision, dimension(:), allocatable alpha_un_c
double precision, dimension(:), allocatable epmu_gt
double precision, dimension(:), allocatable v_g
double precision, dimension(:), allocatable theta_ue
double precision, dimension(:), allocatable w_g
double precision, parameter half
double precision, dimension(:), allocatable oneodz_t_u
subroutine get_ucell_gdiff_terms(D_FE, D_FW, D_FN, D_FS, D_FT, D_FB, IJK)
double precision, dimension(:), allocatable flux_gt
subroutine conv_dif_u_g(A_M, B_M)
subroutine store_a_u_gdc(B_M)
integer, dimension(:), allocatable km1
double precision, dimension(:), allocatable theta_ue_bar
subroutine store_a_u_g0(A_U_G)
double precision, dimension(:,:), allocatable df_gu
double precision, dimension(:), allocatable u_g
integer, dimension(dim_eqs) discretize
double precision, dimension(:), allocatable axy_u
subroutine store_a_u_g1(A_U_G)
double precision, dimension(:), allocatable theta_u_te
double precision, dimension(:), allocatable odz_t
subroutine get_ucell_gcflux_terms(FLUX_E, FLUX_W, FLUX_N, FLUX_S, FLUX_T, FLUX_B, IJK)
integer function funijk3(LI3, LJ3, LK3)
subroutine get_ucell_gvterms(U, V, WW)
double precision, parameter zero