54 INTEGER,
INTENT(IN) :: M
59 DOUBLE PRECISION :: STRESS_TERMS, DRAG_TERMS
61 INTEGER :: IJK, J, I, IM, IJKP, IMJK, IJKN, IJKNT, IJKS,&
62 IJKST, IJMKP, IJMK, IJKE, IJKTE, IJKW, IJKTW,&
63 IMJKP, K, IJKT, JM, KP, IJKM, IPJK,&
68 DOUBLE PRECISION :: MU_sL_pE, MU_sL_pW, MU_sL_pN, MU_sL_pS, MU_sL_pT
71 DOUBLE PRECISION :: XI_sL_pT, XI_sL_pB, LAMBDA_sL_pT, LAMBDA_sL_pB
73 DOUBLE PRECISION :: M_PM, M_PL, D_PM, D_PL, NU_PM_pT, NU_PM_pB, NU_PM_p
77 DOUBLE PRECISION :: duodz
79 DOUBLE PRECISION :: EPSA
81 DOUBLE PRECISION :: sswx, sswy, sswz, ssx, ssy, ssz, ssbv, tauxz_x
83 DOUBLE PRECISION :: tauxz_ox, DS1, DS2, DS3, DS4, DS1plusDS2
91 IF(wall_at(ijk)) cycle
94 m_pm = (
pi/6d0)*(d_pm**3.)*ro_s(ijk,m)
98 epsa = avg_z(
ep_s(ijk,m),
ep_s(ijkt,m),k)
99 IF ( .NOT.sip_at_t(ijk) .AND. epsa>
dil_ep_s)
THEN 120 ijkte = east_of(ijkt)
121 ijktw = west_of(ijkt)
159 lambda_sl_pt = -(2d0/3d0)*mu_sl_pt + xi_sl_pt
160 lambda_sl_pb = -(2d0/3d0)*mu_sl_pb + xi_sl_pb
161 ssbv = (lambda_sl_pt*
trd_s(ijkt,l)-lambda_sl_pb
164 ssx = mu_sl_pe*(u_s(ijkp,l)-u_s(ijk,l))*
ox_e(i)
169 ssy = mu_sl_pn*(v_s(ijkp,l)-v_s(ijk,l))*
axz_w(ijk
180 (mu_sl_pt*(u_s(ijkp,l)+u_s(imjkp,l))*
ox 188 duodz = (u_s(imjkp,l)-u_s(imjk,l))*
ox_e 193 tauxz_ox = mu_sl_p*
ox(i)*
half*(&
199 tauxz_ox = tauxz_ox + (mu_sl_p*
ox(i)*
half*
205 tauxz_ox = tauxz_ox - (
ox(i)*
ox(i)*mu_sl_p
208 tauxz_ox = tauxz_ox*
vol_w(ijk)
213 tauxz_x = -( ( mu_sl_pe*
ox_e(i)*
half*(w_s(ipjk
229 m_pl = (
pi/6d0)*(d_pl**3.)*ro_s(ijk,l)
231 nu_pm_pt = rop_s(ijkt,m)/m_pm
232 nu_pm_pb = rop_s(ijk,m)/m_pm
233 nu_pm_p = avg_z(nu_pm_pb,nu_pm_pt,k)
235 nu_pl_pt = rop_s(ijkt,l)/m_pl
236 nu_pl_pb = rop_s(ijk,l)/m_pl
237 nu_pl_p = avg_z(nu_pl_pb,nu_pl_pt,k)
263 stress_terms = stress_terms + sswx + sswy + sswz + &
264 ssbv + ssx + ssy + ssz + tauxz_ox + tauxz_x
265 drag_terms = drag_terms + (ds1plusds2+ds3+ds4)*
vol_w 270 stress_terms = stress_terms +
zero 271 drag_terms = drag_terms +
zero 275 ktmom_w_s(ijk,m) = stress_terms + drag_terms
double precision, dimension(:,:), allocatable trd_s
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:), allocatable vol_w
double precision, dimension(:,:,:), allocatable fnu_s_ip
integer, dimension(:), allocatable i_of
double precision, dimension(:,:,:), allocatable mu_sl_ip
double precision, dimension(:), allocatable ox_e
double precision, dimension(:,:,:), allocatable ft_sl_ip
double precision, dimension(:,:,:), allocatable ft_sm_ip
double precision, dimension(:), allocatable axy
double precision, dimension(:,:), allocatable w_s
subroutine calc_ia_momsource_w_s(M)
integer, dimension(:), allocatable im1
double precision, dimension(0:dim_j) dy
double precision, parameter undefined
double precision, dimension(0:dim_k) dz
double precision, dimension(:,:), allocatable u_s
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable ody_n
double precision, dimension(:,:), allocatable d_p
integer, dimension(:), allocatable j_of
double precision, dimension(:), allocatable odx_e
integer, dimension(:), allocatable jm1
double precision, dimension(:,:,:), allocatable xi_sl_ip
double precision, dimension(:), allocatable ox
double precision, dimension(:,:), allocatable theta_m
double precision, dimension(:,:), allocatable ktmom_w_s
integer, dimension(:), allocatable kp1
double precision, parameter half
double precision, dimension(:), allocatable ayz_w
double precision, parameter dil_ep_s
double precision, dimension(:,:), allocatable ro_s
double precision, dimension(:), allocatable axz_w
double precision, dimension(:), allocatable odz
double precision, dimension(:), allocatable axy_w
double precision function ep_s(IJK, xxM)
double precision, dimension(:,:), allocatable rop_s
double precision, parameter pi
double precision, dimension(:), allocatable odz_t
double precision, parameter zero