19 USE run, only: kt_type_enum
20 USE run, only: ia_2005
41 IF (kt_type_enum == ia_2005)
THEN 105 INTEGER,
INTENT(IN) :: M
110 DOUBLE PRECISION :: STRESS_TERMS, DRAG_TERMS
112 INTEGER :: I, J, JM, K, KM, IJK, IJKE, IPJK, IP, IMJK, IJKN,&
113 IJKNE, IJKS, IJKSE, IPJMK, IJMK, IJKT, IJKTE,&
114 IJKB, IJKBE, IJKM, IPJKM, &
119 DOUBLE PRECISION :: MU_sL_pE, MU_sL_pW, MU_sL_pN, MU_sL_pS, MU_sL_pT
122 DOUBLE PRECISION :: XI_sL_pE, XI_sL_pW, LAMBDA_sL_pE, LAMBDA_sL_pW
124 DOUBLE PRECISION :: M_PM, M_PL, D_PM, D_PL, NU_PM_pE, NU_PM_pW, NU_PM_p
128 DOUBLE PRECISION :: EPSA
130 DOUBLE PRECISION :: ssux, ssuy, ssuz, ssx, ssy, ssz, ssbv
132 DOUBLE PRECISION :: tauzz, DS1, DS2, DS3, DS4, DS1plusDS2
140 IF(wall_at(ijk)) cycle
143 m_pm = (
pi/6d0)*d_pm**3 * ro_s(ijk,m)
147 epsa = avg_x(
ep_s(ijk,m),
ep_s(ijke,m),i)
148 IF ( .NOT.sip_at_e(ijk) .AND. epsa>
dil_ep_s)
THEN 166 ijkne = east_of(ijkn)
167 ijkse = east_of(ijks)
170 ijkb = bottom_of(ijk)
171 ijkte = east_of(ijkt)
172 ijkbe = east_of(ijkb)
190 ssux = mu_sl_pe*(u_s(ipjk,l)-u_s(ijk,l))*
ayz_u(ijk)*
odx 210 lambda_sl_pe = -(2.d0/3.d0)*mu_sl_pe + xi_sl_pe
211 lambda_sl_pw = -(2.d0/3.d0)*mu_sl_pw + xi_sl_pw
212 ssbv = (lambda_sl_pe*
trd_s(ijke,l)-lambda_sl_pw*
trd_s(ijk
216 ssy = mu_sl_pn*(v_s(ipjk,l)-v_s(ijk,l))*
axz_u(ijk)*
odx_e 227 ssz = ssz - (mu_sl_pt*(w_s(ipjk,l)+w_s(ijk,l))*
half 241 tauzz = tauzz + (-2.d0*mu_sl_p*
ox_e(i)*
ox_e(i)*&
242 u_s(ijk,l)*
vol_u(ijk))
253 m_pl = (
pi/6.d0)*d_pl**3 * ro_s(ijk,l)
255 nu_pm_pe = rop_s(ijke,m)/m_pm
256 nu_pm_pw = rop_s(ijk,m)/m_pm
257 nu_pm_p = avg_x(nu_pm_pw,nu_pm_pe,i)
259 nu_pl_pe = rop_s(ijke,l)/m_pl
260 nu_pl_pw = rop_s(ijk,l)/m_pl
261 nu_pl_p = avg_x(nu_pl_pw,nu_pl_pe,i)
287 stress_terms = stress_terms + ssux + ssuy + ssuz + &
288 ssbv + ssx + ssy + ssz + tauzz
289 drag_terms = drag_terms + (ds1plusds2+ds3+ds4)*
vol_u(ijk
294 stress_terms = stress_terms +
zero 295 drag_terms = drag_terms +
zero 300 ktmom_u_s(ijk,m) = stress_terms + drag_terms
352 INTEGER,
INTENT(IN) :: L
353 INTEGER,
INTENT(IN) :: M
360 DOUBLE PRECISION :: D_PM, D_PL
362 DOUBLE PRECISION :: DPSUM
364 DOUBLE PRECISION :: M_PM, M_PL, MPSUM, DPSUMo2, NU_PL, NU_PM
365 DOUBLE PRECISION :: Ap_lm, Dp_lm, Bp_lm
366 DOUBLE PRECISION :: R0p_lm, R3p_lm, R4p_lm, R10p_lm
367 DOUBLE PRECISION :: Fnus_ip, FTsM_ip, FTsL_ip, F_common_term
371 IF (.NOT.wall_at(ijk))
THEN 382 m_pm = (
pi/6.d0) * d_pm**3 *
ro_s(ijk,m)
383 m_pl = (
pi/6.d0) * d_pl**3 *
ro_s(ijk,l)
386 nu_pm =
rop_s(ijk,m)/m_pm
387 nu_pl =
rop_s(ijk,l)/m_pl
419 fnus_ip = f_common_term*(
pi*dpsumo2/12.d0)*r0p_lm*&
424 ftsm_ip = f_common_term*nu_pm*nu_pl*dpsumo2*
pi*&
433 ftsl_ip = f_common_term*nu_pm*nu_pl*dpsumo2*
pi*&
integer, dimension(:), allocatable ip1
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 ox_e
double precision, dimension(:), allocatable odx
double precision, dimension(:,:,:), allocatable ft_sl_ip
double precision, dimension(:,:,:), allocatable ft_sm_ip
double precision, dimension(:,:), allocatable w_s
subroutine calc_ia_momsource_w_s(M)
integer, dimension(:), allocatable im1
subroutine calc_explicit_mom_source_s()
double precision function g_0(IJK, M1, M2)
double precision, dimension(:), allocatable ayz_u
double precision, dimension(:), allocatable ayz
double precision, dimension(:,:), allocatable u_s
double precision, dimension(:), allocatable axz_u
subroutine calc_ia_momsource_u_s(M)
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
integer, dimension(:), allocatable jm1
double precision, dimension(:,:,:), allocatable xi_sl_ip
double precision, dimension(:,:), allocatable ktmom_v_s
double precision, dimension(:), allocatable ox
double precision, dimension(:,:), allocatable theta_m
double precision, dimension(:,:), allocatable ktmom_w_s
double precision, parameter half
double precision, parameter dil_ep_s
double precision, dimension(:,:), allocatable ro_s
integer, dimension(:), allocatable km1
double precision, dimension(:), allocatable odz
double precision function ep_s(IJK, xxM)
double precision, dimension(:), allocatable vol_u
double precision, dimension(:,:), allocatable rop_s
double precision, parameter pi
double precision, dimension(:), allocatable axy_u
double precision, dimension(:), allocatable odz_t
subroutine coll_momentum_coeff_ia(L, M)
double precision, dimension(:,:), allocatable ktmom_u_s
double precision, parameter zero