54 INTEGER,
INTENT(IN) :: M
59 DOUBLE PRECISION :: STRESS_TERMS, DRAG_TERMS
61 INTEGER :: I, J, K, IJK, IJKN, JP, IM, KM, IJPK, IJMK,&
62 IJKE, IJKNE, IJKW, IJKNW, IMJPK, IMJK, IJKT,&
63 IJKTN, IJKB, IJKBN, IJKM, IJPKM,&
68 DOUBLE PRECISION :: MU_sL_pE, MU_sL_pW, MU_sL_pN, MU_sL_pS, MU_sL_pT
71 DOUBLE PRECISION :: XI_sL_pN, XI_sL_pS, LAMBDA_sL_pN, LAMBDA_sL_pS
73 DOUBLE PRECISION :: M_PM, M_PL, D_PM, D_PL, NU_PM_pN, NU_PM_pS, NU_PM_p
77 DOUBLE PRECISION :: EPSA
79 DOUBLE PRECISION :: ssvx, ssvy, ssvz, ssx, ssy, ssz, ssbv
81 DOUBLE PRECISION :: DS1, DS2, DS3, DS4, DS1plusDS2
89 IF(wall_at(ijk)) cycle
92 m_pm = (
pi/6d0) * d_pm**3 *ro_s(ijk,m)
96 epsa = avg_y(
ep_s(ijk,m),
ep_s(ijkn,m),j)
97 IF ( .NOT.sip_at_n(ijk) .AND. epsa>
dil_ep_s)
THEN 113 ijkne = east_of(ijkn)
114 ijknw = north_of(ijkw)
116 ijkb = bottom_of(ijk)
118 ijktn = north_of(ijkt)
119 ijkbn = north_of(ijkb)
157 lambda_sl_pn = -(2.d0/3.d0)*mu_sl_pn + xi_sl_pn
158 lambda_sl_ps = -(2.d0/3.d0)*mu_sl_ps + xi_sl_ps
159 ssbv = (lambda_sl_pn*
trd_s(ijkn,l)-lambda_sl_ps
162 ssx = mu_sl_pe*(u_s(ijpk,l)-u_s(ijk,l))*
ody_n(j
174 m_pl = (
pi/6d0)* d_pl**3 *ro_s(ijk,l)
176 nu_pm_pn = rop_s(ijkn,m)/m_pm
177 nu_pm_ps = rop_s(ijk,m)/m_pm
178 nu_pm_p = avg_y(nu_pm_ps,nu_pm_pn,j)
180 nu_pl_pn = rop_s(ijkn,l)/m_pl
181 nu_pl_ps = rop_s(ijk,l)/m_pl
182 nu_pl_p = avg_y(nu_pl_ps,nu_pl_pn,j)
208 stress_terms = stress_terms + ssvx + ssvy + ssvz
215 stress_terms = stress_terms +
zero 216 drag_terms = drag_terms +
zero 221 ktmom_v_s(ijk,m) = stress_terms + drag_terms
double precision, dimension(:,:), allocatable trd_s
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:,:,:), allocatable fnu_s_ip
integer, dimension(:), allocatable i_of
double precision, dimension(:,:,:), allocatable mu_sl_ip
double precision, dimension(:), allocatable ody
double precision, dimension(:,:,:), allocatable ft_sl_ip
double precision, dimension(:,:,:), allocatable ft_sm_ip
double precision, dimension(:,:), allocatable w_s
integer, dimension(:), allocatable im1
double precision, dimension(:,:), allocatable u_s
double precision, dimension(:), allocatable ayz_v
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable ody_n
double precision, dimension(:,:), allocatable d_p
subroutine calc_ia_momsource_v_s(M)
integer, dimension(:), allocatable j_of
double precision, dimension(:), allocatable odx_e
double precision, dimension(:), allocatable axy_v
double precision, dimension(:,:,:), allocatable xi_sl_ip
double precision, dimension(:,:), allocatable ktmom_v_s
double precision, dimension(:), allocatable ox
integer, dimension(:), allocatable jp1
double precision, dimension(:,:), allocatable theta_m
double precision, dimension(:), allocatable axz
double precision, parameter dil_ep_s
double precision, dimension(:,:), allocatable ro_s
integer, dimension(:), allocatable km1
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, dimension(:), allocatable axz_v
double precision, parameter zero
double precision, dimension(:), allocatable vol_v