@@ -146,6 +146,7 @@ module MOM_internal_tides
146
146
real , allocatable , dimension (:,:,:) :: int_N2w2 ! < Depth-integrated Brunt Vaissalla freqency times
147
147
! ! vertical profile squared, for each mode [H T-2 ~> m s-2 or kg m-2 s-2]
148
148
real :: q_itides ! < fraction of local dissipation [nondim]
149
+ real :: mixing_effic ! < mixing efficiency [nondim]
149
150
real :: En_sum ! < global sum of energy for use in debugging, in MKS units [H Z2 T-2 L2 ~> m5 s-2 or J]
150
151
real :: En_underflow ! < A minuscule amount of energy [H Z2 T-2 ~> m3 s-2 or J m-2]
151
152
integer :: En_restart_power ! < A power factor of 2 by which to multiply the energy in restart [nondim]
@@ -1653,7 +1654,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
1653
1654
! layer diffusivity for processus
1654
1655
if (h(i,j,k) >= CS% min_thick_layer_Kd) then
1655
1656
TKE_to_Kd_lim = min (TKE_to_Kd(i,k), CS% max_TKE_to_Kd)
1656
- Kd_leak_lay(k) = TKE_loss * TKE_to_Kd_lim * profile_leak(i,k) * h(i,j,k)
1657
+ Kd_leak_lay(k) = CS % mixing_effic * TKE_loss * TKE_to_Kd_lim * profile_leak(i,k) * h(i,j,k)
1657
1658
else
1658
1659
Kd_leak_lay(k) = 0 .
1659
1660
endif
@@ -1675,7 +1676,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
1675
1676
! layer diffusivity for processus
1676
1677
if (h(i,j,k) >= CS% min_thick_layer_Kd) then
1677
1678
TKE_to_Kd_lim = min (TKE_to_Kd(i,k), CS% max_TKE_to_Kd)
1678
- Kd_Froude_lay(k) = TKE_loss * TKE_to_Kd_lim * profile_Froude(i,k) * h(i,j,k)
1679
+ Kd_Froude_lay(k) = CS % mixing_effic * TKE_loss * TKE_to_Kd_lim * profile_Froude(i,k) * h(i,j,k)
1679
1680
else
1680
1681
Kd_Froude_lay(k) = 0 .
1681
1682
endif
@@ -1697,7 +1698,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
1697
1698
! layer diffusivity for processus
1698
1699
if (h(i,j,k) >= CS% min_thick_layer_Kd) then
1699
1700
TKE_to_Kd_lim = min (TKE_to_Kd(i,k), CS% max_TKE_to_Kd)
1700
- Kd_itidal_lay(k) = TKE_loss * TKE_to_Kd_lim * profile_itidal(i,k) * h(i,j,k)
1701
+ Kd_itidal_lay(k) = CS % mixing_effic * TKE_loss * TKE_to_Kd_lim * profile_itidal(i,k) * h(i,j,k)
1701
1702
else
1702
1703
Kd_itidal_lay(k) = 0 .
1703
1704
endif
@@ -1719,7 +1720,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
1719
1720
! layer diffusivity for processus
1720
1721
if (h(i,j,k) >= CS% min_thick_layer_Kd) then
1721
1722
TKE_to_Kd_lim = min (TKE_to_Kd(i,k), CS% max_TKE_to_Kd)
1722
- Kd_slope_lay(k) = TKE_loss * TKE_to_Kd_lim * profile_slope(i,k) * h(i,j,k)
1723
+ Kd_slope_lay(k) = CS % mixing_effic * TKE_loss * TKE_to_Kd_lim * profile_slope(i,k) * h(i,j,k)
1723
1724
else
1724
1725
Kd_slope_lay(k) = 0 .
1725
1726
endif
@@ -1741,7 +1742,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
1741
1742
! layer diffusivity for processus
1742
1743
if (h(i,j,k) >= CS% min_thick_layer_Kd) then
1743
1744
TKE_to_Kd_lim = min (TKE_to_Kd(i,k), CS% max_TKE_to_Kd)
1744
- Kd_quad_lay(k) = TKE_loss * TKE_to_Kd_lim * profile_quad(i,k) * h(i,j,k)
1745
+ Kd_quad_lay(k) = CS % mixing_effic * TKE_loss * TKE_to_Kd_lim * profile_quad(i,k) * h(i,j,k)
1745
1746
else
1746
1747
Kd_quad_lay(k) = 0 .
1747
1748
endif
@@ -3539,6 +3540,9 @@ subroutine internal_tides_init(Time, G, GV, US, param_file, diag, CS)
3539
3540
call get_param(param_file, mdl, " MINTHICK_TKE_TO_KD" , CS% min_thick_layer_Kd, &
3540
3541
" The minimum thickness allowed with TKE_to_Kd." , &
3541
3542
units= " m" , default= 1e-6 , scale= GV% m_to_H)
3543
+ call get_param(param_file, mdl, " ITIDES_MIXING_EFFIC" , CS% mixing_effic, &
3544
+ " Mixing efficiency for internal tides raytracing" , &
3545
+ units= " nondim" , default= 0.2 )
3542
3546
call get_param(param_file, mdl, " MAX_TKE_TO_KD" , CS% max_TKE_to_Kd, &
3543
3547
" Limiter for TKE_to_Kd." , &
3544
3548
units= " " , default= 1e9 , scale= US% Z_to_m* US% s_to_T** 2 )
0 commit comments