27 DOUBLE PRECISION:: Xe,Ye,Ze,Xn,Yn,Zn,Xt,Yt,Zt
28 INTEGER :: I,J,K,IM,JM,KM,IP,JP,KP,IJK,IMJK,IJMK,IPJK,IJPK,IJKM,IJKP
29 DOUBLE PRECISION :: Xi
30 DOUBLE PRECISION :: Sx,Sy,Sz
31 DOUBLE PRECISION :: Nx,Ny,Nz
32 DOUBLE PRECISION :: DELH_ec , DELH_e
33 DOUBLE PRECISION :: DELH_nc , DELH_n
34 DOUBLE PRECISION :: DELH_tc , DELH_t
35 LOGICAL :: V_NODE_AT_NE,V_NODE_AT_NW
36 LOGICAL :: W_NODE_AT_TE,W_NODE_AT_TW
41 WRITE(*,10)
'COMPUTING INTERPOLATION FACTORS IN U-MOMENTUM CELLS...' 106 IF(v_node_at_nw.AND.v_node_at_ne)
THEN 109 ELSE IF (v_node_at_ne.AND.(.NOT.v_node_at_nw))
THEN 117 ELSE IF ((.NOT.v_node_at_ne).AND.v_node_at_nw)
THEN 145 IF(w_node_at_tw.AND.w_node_at_te)
THEN 149 ELSE IF (w_node_at_te.AND.(.NOT.w_node_at_tw))
THEN 153 ELSE IF ((.NOT.w_node_at_te).AND.w_node_at_tw)
THEN 176 IF(bct ==cg_nsw.OR.bct ==cg_psw)
THEN 181 WRITE(*,*)
'NEGATIVE DELH-U AT XYZ=',
x_u(ijk),
y_u(ijk),
z_u(ijk)
182 WRITE(*,*)
'DELH_U=',
delh_u(ijk)
183 WRITE(*,*)
'AYZ=',
ayz(ijk)
184 WRITE(*,*)
'MFIX WILL EXIT NOW.' 200 CALL get_del_h(ijk,
'U_MOMENTUM',xe,ye,ze,delh_e,nx,ny,nz)
214 WRITE(*,*)
'NEGATIVE ALPHA_Ue_c at IJK=',ijk
215 WRITE(*,*)
'MFIX WILL EXIT NOW.' 227 noc_u_e(ijk) = (sy * ny + sz * nz)/(sx * delh_e)
255 CALL get_del_h(ijk,
'U_MOMENTUM',xn,yn,zn,delh_n,nx,ny,nz)
278 noc_u_n(ijk) = (sx * nx + sz * nz)/(sy * delh_n)
307 CALL get_del_h(ijk,
'U_MOMENTUM',xt,yt,zt,delh_t,nx,ny,nz)
329 noc_u_t(ijk) = (sx * nx + sy * ny)/(sz * delh_t)
365 WRITE(*,*)
'INVALID PRESSURE GRADIENT OPTION:',
pg_option 366 WRITE(*,*)
'PG_OPTION SHOULD BE SET EQUAL TO 0, 1 OR 2.' 367 WRITE(*,*)
'PLEASE VERIFY MFIX.DAT FILE AND TRY AGAIN.' 368 WRITE(*,*)
'MFIX WILL EXIT NOW.' 379 WRITE(*,*)
'WARNING: ONLY ONE PRESSURE NODE DETECTED IN U-MOMENTUM CELL IJK =',ijk
380 WRITE(*,*)
'RESETTING U-MOMENTUM CELL AS U_WALL CELL.' 432 DOUBLE PRECISION:: Xe,Ye,Ze,Xn,Yn,Zn,Xt,Yt,Zt
433 INTEGER :: I,J,K,IM,JM,KM,IP,JP,KP,IJK,IMJK,IJMK,IPJK,IJPK,IJKM,IJKP
434 DOUBLE PRECISION :: Yi
435 DOUBLE PRECISION :: Sx,Sy,Sz
436 DOUBLE PRECISION :: Nx,Ny,Nz
437 DOUBLE PRECISION :: DELH_ec , DELH_e
438 DOUBLE PRECISION :: DELH_nc , DELH_n
439 DOUBLE PRECISION :: DELH_tc , DELH_t
440 LOGICAL :: U_NODE_AT_NE, U_NODE_AT_SE
441 LOGICAL :: W_NODE_AT_NT, W_NODE_AT_ST
446 WRITE(*,10)
'COMPUTING INTERPOLATION FACTORS IN V-MOMENTUM CELLS...' 488 imjk = funijk(im,j,k)
489 ipjk = funijk(ip,j,k)
490 ijmk = funijk(i,jm,k)
491 ijpk = funijk(i,jp,k)
492 ijkm = funijk(i,j,km)
493 ijkp = funijk(i,j,kp)
504 IF(u_node_at_se.AND.u_node_at_ne)
THEN 507 ELSE IF (u_node_at_se.AND.(.NOT.u_node_at_ne))
THEN 515 ELSE IF ((.NOT.u_node_at_se).AND.u_node_at_ne)
THEN 553 IF(w_node_at_st.AND.w_node_at_nt)
THEN 556 ELSE IF (w_node_at_st.AND.(.NOT.w_node_at_nt))
THEN 560 ELSE IF ((.NOT.w_node_at_st).AND.w_node_at_nt)
THEN 583 IF(bct ==cg_nsw.OR.bct ==cg_psw)
THEN 588 WRITE(*,*)
'NEGATIVE DELH-V AT XYZ=',
x_v(ijk),
y_v(ijk),
z_v(ijk)
589 WRITE(*,*)
'DELH_V=',
delh_v(ijk)
590 WRITE(*,*)
'AYZ=',
axz(ijk)
591 WRITE(*,*)
'MFIX WILL EXIT NOW.' 617 CALL get_del_h(ijk,
'V_MOMENTUM',xe,ye,ze,delh_e,nx,ny,nz)
640 noc_v_e(ijk) = (sy * ny + sz * nz)/(sx * delh_e)
659 CALL get_del_h(ijk,
'V_MOMENTUM',xn,yn,zn,delh_n,nx,ny,nz)
672 WRITE(*,*)
'NEGATIVE ALPHA_Vn_c at IJK=',ijk
673 WRITE(*,*)
'MFIX WILL EXIT NOW.' 685 noc_v_n(ijk) = (sx * nx + sz * nz)/(sy * delh_n)
714 CALL get_del_h(ijk,
'V_MOMENTUM',xt,yt,zt,delh_t,nx,ny,nz)
736 noc_v_t(ijk) = (sx * nx + sy * ny)/(sz * delh_t)
771 WRITE(*,*)
'INVALID PRESSURE GRADIENT OPTION:',
pg_option 772 WRITE(*,*)
'PG_OPTION SHOULD BE SET EQUAL TO 0, 1 OR 2.' 773 WRITE(*,*)
'PLEASE VERIFY MFIX.DAT FILE AND TRY AGAIN.' 774 WRITE(*,*)
'MFIX WILL EXIT NOW.' 785 WRITE(*,*)
'WARNING: ONLY ONE PRESSURE NODE DETECTED IN V-MOMENTUM CELL IJK =',ijk
786 WRITE(*,*)
'RESETTING U-MOMENTUM CELL AS V_WALL CELL.' 838 DOUBLE PRECISION:: Xe,Ye,Ze,Xn,Yn,Zn,Xt,Yt,Zt
839 INTEGER :: I,J,K,IM,JM,KM,IP,JP,KP,IJK,IMJK,IJMK,IPJK,IJPK,IJKM,IJKP
840 DOUBLE PRECISION :: Zi
841 DOUBLE PRECISION :: Sx,Sy,Sz
842 DOUBLE PRECISION :: Nx,Ny,Nz
843 DOUBLE PRECISION :: DELH_ec , DELH_e
844 DOUBLE PRECISION :: DELH_nc , DELH_n
845 DOUBLE PRECISION :: DELH_tc , DELH_t
846 LOGICAL :: U_NODE_AT_TE, U_NODE_AT_BE
847 LOGICAL :: V_NODE_AT_TN, V_NODE_AT_BN
852 WRITE(*,10)
'COMPUTING INTERPOLATION FACTORS IN W-MOMENTUM CELLS...' 892 imjk = funijk(im,j,k)
893 ipjk = funijk(ip,j,k)
894 ijmk = funijk(i,jm,k)
895 ijpk = funijk(i,jp,k)
896 ijkm = funijk(i,j,km)
897 ijkp = funijk(i,j,kp)
909 IF(u_node_at_te.AND.u_node_at_be)
THEN 912 ELSE IF (u_node_at_be.AND.(.NOT.u_node_at_te))
THEN 916 ELSE IF ((.NOT.u_node_at_be).AND.u_node_at_te)
THEN 938 IF(v_node_at_tn.AND.v_node_at_bn)
THEN 941 ELSE IF (v_node_at_bn.AND.(.NOT.v_node_at_tn))
THEN 945 ELSE IF ((.NOT.v_node_at_bn).AND.v_node_at_tn)
THEN 978 IF(bct ==cg_nsw.OR.bct ==cg_psw)
THEN 983 WRITE(*,*)
'NEGATIVE DELH-W AT XYZ=',
x_w(ijk),
y_w(ijk),
z_w(ijk)
984 WRITE(*,*)
'DELH_W=',
delh_w(ijk)
985 WRITE(*,*)
'AXY=',
axy(ijk)
986 WRITE(*,*)
'MFIX WILL EXIT NOW.' 1010 CALL get_del_h(ijk,
'W_MOMENTUM',xe,ye,ze,delh_e,nx,ny,nz)
1029 sx =
x_w(ipjk) -
x_w(ijk)
1030 sy =
y_w(ipjk) -
y_w(ijk)
1031 sz =
z_w(ipjk) -
z_w(ijk)
1033 noc_w_e(ijk) = (sy * ny + sz * nz)/(sx * delh_e)
1062 CALL get_del_h(ijk,
'W_MOMENTUM',xn,yn,zn,delh_n,nx,ny,nz)
1080 sx =
x_w(ijpk) -
x_w(ijk)
1081 sy =
y_w(ijpk) -
y_w(ijk)
1082 sz =
z_w(ijpk) -
z_w(ijk)
1084 noc_w_n(ijk) = (sx * nx + sz * nz)/(sy * delh_n)
1103 CALL get_del_h(ijk,
'W_MOMENTUM',xt,yt,zt,delh_t,nx,ny,nz)
1116 WRITE(*,*)
'NEGATIVE ALPHA_Wt_c at IJK=',ijk
1117 WRITE(*,*)
'MFIX WILL EXIT NOW.' 1125 sx =
x_w(ijkp) -
x_w(ijk)
1126 sy =
y_w(ijkp) -
y_w(ijk)
1127 sz =
z_w(ijkp) -
z_w(ijk)
1129 noc_w_t(ijk) = (sx * nx + sy * ny)/(sz * delh_t)
1160 WRITE(*,*)
'INVALID PRESSURE GRADIENT OPTION:',
pg_option 1161 WRITE(*,*)
'PG_OPTION SHOULD BE SET EQUAL TO 0, 1 OR 2.' 1162 WRITE(*,*)
'PLEASE VERIFY MFIX.DAT FILE AND TRY AGAIN.' 1163 WRITE(*,*)
'MFIX WILL EXIT NOW.' 1173 WRITE(*,*)
'WARNING: ONLY ONE PRESSURE NODE DETECTED IN W-MOMENTUM CELL IJK =',ijk
1174 WRITE(*,*)
'RESETTING U-MOMENTUM CELL AS W_WALL CELL.' double precision, dimension(:), allocatable theta_wn
double precision, dimension(:), allocatable delx_we
double precision, dimension(:), allocatable theta_un
double precision, dimension(:), allocatable y_v
double precision, dimension(:), allocatable alpha_ut_c
double precision, dimension(:), allocatable theta_w_tn
double precision, dimension(:), allocatable dely_vn
double precision, dimension(:), allocatable y_v_nc
double precision, dimension(:), allocatable z_u
double precision, dimension(:), allocatable noc_v_t
integer, dimension(:), allocatable i_of
logical, dimension(:), allocatable wall_u_at
logical, dimension(:), allocatable cut_u_cell_at
double precision, dimension(:), allocatable delx_uw
double precision, dimension(:), allocatable alpha_vt_c
double precision, dimension(:), allocatable theta_u_ne
double precision, parameter one
double precision, dimension(:), allocatable dely_ws
double precision alpha_max
double precision, dimension(:), allocatable a_wpg_t
double precision, dimension(:), allocatable x_v_nc
double precision, dimension(:), allocatable a_vpg_s
double precision, dimension(:), allocatable z_v_nc
double precision, dimension(:), allocatable delh_u
double precision, dimension(:), allocatable axy
double precision, dimension(:), allocatable z_u_nc
double precision, dimension(:), allocatable noc_w_n
double precision, dimension(0:15) z_node
double precision, dimension(:), allocatable x_v_ec
double precision, dimension(:), allocatable theta_u_nw
double precision, dimension(:), allocatable x_u
double precision, dimension(:), allocatable noc_v_n
subroutine get_3d_alpha_u_cut_cell
double precision, dimension(:), allocatable alpha_ve_c
double precision, dimension(0:15) y_node
double precision, dimension(:), allocatable theta_w_bn
subroutine get_3d_alpha_v_cut_cell
double precision, dimension(:), allocatable x_w_ec
logical, dimension(:), allocatable wall_v_at
subroutine get_3d_alpha_w_cut_cell
double precision, dimension(:), allocatable delx_ww
double precision, dimension(:), allocatable theta_wn_bar
double precision, dimension(:), allocatable theta_wt
double precision, dimension(:), allocatable delx_ue
double precision, dimension(:), allocatable x_v_tc
double precision, dimension(:), allocatable y_w_ec
double precision, dimension(:), allocatable z_u_ec
integer, dimension(dimension_bc) bc_type_enum
double precision, dimension(:), allocatable noc_u_n
double precision, dimension(:), allocatable ayz_u
double precision, dimension(:), allocatable z_w_nc
double precision, parameter undefined
double precision, dimension(:), allocatable delz_wt
double precision, dimension(:), allocatable y_w
double precision, dimension(:), allocatable ayz
double precision, dimension(:), allocatable z_v
double precision, dimension(:), allocatable delh_v
double precision, dimension(:), allocatable delz_vt
double precision, dimension(:), allocatable alpha_ue_c
double precision, dimension(:), allocatable theta_we_bar
double precision, dimension(:), allocatable dely_vs
double precision, dimension(:), allocatable theta_ut
double precision, dimension(:), allocatable x_w_nc
double precision, dimension(:), allocatable alpha_wt_c
double precision, dimension(:), allocatable theta_wt_bar
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable dely_wn
double precision, dimension(:), allocatable alpha_wn_c
logical, dimension(:), allocatable blocked_w_cell_at
double precision, dimension(:), allocatable theta_u_tw
double precision, dimension(:), allocatable theta_vn_bar
integer, dimension(:), allocatable bc_u_id
double precision, dimension(:), allocatable noc_w_e
double precision, dimension(:), allocatable x_w
double precision, dimension(:), allocatable x_u_tc
subroutine mfix_exit(myID, normal_termination)
double precision, dimension(:), allocatable theta_vt_bar
integer, dimension(:), allocatable j_of
double precision, dimension(:), allocatable dely_us
double precision, dimension(:), allocatable y_u_tc
double precision, dimension(:), allocatable y_v_ec
logical, dimension(:), allocatable wall_w_at
double precision, dimension(:), allocatable theta_v_ne
double precision, dimension(:), allocatable z_v_ec
double precision, dimension(:), allocatable x_w_tc
double precision, dimension(:), allocatable theta_ut_bar
integer, dimension(:), allocatable bc_w_id
double precision, dimension(:), allocatable alpha_un_c
subroutine get_cell_node_coordinates(IJK, TYPE_OF_CELL)
double precision, dimension(:), allocatable noc_u_t
double precision, dimension(:), allocatable delz_wb
double precision, dimension(:), allocatable z_w_tc
double precision, dimension(:), allocatable theta_un_bar
double precision, dimension(:), allocatable y_w_nc
double precision, dimension(:), allocatable theta_vn
double precision, dimension(:), allocatable zt_w_int
logical, dimension(:), allocatable blocked_u_cell_at
double precision, dimension(:), allocatable alpha_we_c
logical, dimension(:), allocatable cut_w_cell_at
double precision, dimension(:), allocatable x_u_ec
double precision, dimension(:), allocatable noc_u_e
double precision, dimension(:), allocatable theta_ue
double precision, dimension(:), allocatable x_v
double precision, parameter half
double precision, dimension(:), allocatable theta_v_nt
double precision, dimension(:), allocatable axz
integer, dimension(:), allocatable bc_v_id
double precision, dimension(:), allocatable delh_w
double precision, dimension(:), allocatable theta_v_se
logical, dimension(:), allocatable cut_v_cell_at
double precision, dimension(:), allocatable delz_ub
logical, dimension(:), allocatable interior_cell_at
double precision, dimension(:), allocatable delx_vw
double precision, dimension(:), allocatable xn_u_int
integer, dimension(:), allocatable flag_e
double precision, dimension(:), allocatable theta_ue_bar
double precision, dimension(:), allocatable noc_w_t
double precision, dimension(:), allocatable axy_w
double precision, dimension(:), allocatable theta_w_te
double precision, dimension(:), allocatable y_w_tc
double precision, dimension(:), allocatable z_w_ec
double precision, dimension(:), allocatable y_u_ec
double precision, dimension(:), allocatable a_upg_w
double precision, dimension(:), allocatable theta_ve_bar
double precision, dimension(:), allocatable y_u_nc
double precision, dimension(:), allocatable theta_w_be
double precision, dimension(:), allocatable delz_vb
double precision, dimension(:), allocatable theta_vt
logical, dimension(:), allocatable blocked_v_cell_at
double precision, dimension(:), allocatable theta_we
subroutine get_del_h(IJK, TYPE_OF_CELL, X0, Y0, Z0, Del_H, Nx, Ny, Nz)
double precision, dimension(:), allocatable a_vpg_n
double precision, dimension(:), allocatable z_v_tc
double precision, dimension(:), allocatable z_w
double precision, dimension(:), allocatable delz_ut
logical, dimension(:), allocatable blocked_cell_at
double precision, dimension(:), allocatable dely_un
double precision, dimension(:), allocatable a_wpg_b
double precision, dimension(:), allocatable theta_v_st
integer, dimension(:), allocatable flag_n
double precision, dimension(:), allocatable theta_u_te
double precision, dimension(:), allocatable noc_v_e
double precision, dimension(:), allocatable theta_ve
double precision, dimension(:), allocatable axz_v
double precision, dimension(:), allocatable y_u
double precision, parameter zero
double precision, dimension(0:15) x_node
double precision, dimension(:), allocatable alpha_vn_c
double precision, dimension(:), allocatable ye_v_int
integer, dimension(:), allocatable flag_t
double precision, dimension(:), allocatable delx_ve
double precision, dimension(:), allocatable z_u_tc
double precision, dimension(:), allocatable a_upg_e
double precision, dimension(:), allocatable x_u_nc
double precision, dimension(:), allocatable y_v_tc