Skip to content

Commit a6d27cf

Browse files
Raphael Dussinadcroft
authored andcommitted
adding a constant mixing efficiency to internal tides
1 parent 88ee9dd commit a6d27cf

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/parameterizations/lateral/MOM_internal_tides.F90

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ module MOM_internal_tides
146146
real, allocatable, dimension(:,:,:) :: int_N2w2 !< Depth-integrated Brunt Vaissalla freqency times
147147
!! vertical profile squared, for each mode [H T-2 ~> m s-2 or kg m-2 s-2]
148148
real :: q_itides !< fraction of local dissipation [nondim]
149+
real :: mixing_effic !< mixing efficiency [nondim]
149150
real :: En_sum !< global sum of energy for use in debugging, in MKS units [H Z2 T-2 L2 ~> m5 s-2 or J]
150151
real :: En_underflow !< A minuscule amount of energy [H Z2 T-2 ~> m3 s-2 or J m-2]
151152
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
16531654
! layer diffusivity for processus
16541655
if (h(i,j,k) >= CS%min_thick_layer_Kd) then
16551656
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)
16571658
else
16581659
Kd_leak_lay(k) = 0.
16591660
endif
@@ -1675,7 +1676,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
16751676
! layer diffusivity for processus
16761677
if (h(i,j,k) >= CS%min_thick_layer_Kd) then
16771678
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)
16791680
else
16801681
Kd_Froude_lay(k) = 0.
16811682
endif
@@ -1697,7 +1698,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
16971698
! layer diffusivity for processus
16981699
if (h(i,j,k) >= CS%min_thick_layer_Kd) then
16991700
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)
17011702
else
17021703
Kd_itidal_lay(k) = 0.
17031704
endif
@@ -1719,7 +1720,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
17191720
! layer diffusivity for processus
17201721
if (h(i,j,k) >= CS%min_thick_layer_Kd) then
17211722
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)
17231724
else
17241725
Kd_slope_lay(k) = 0.
17251726
endif
@@ -1741,7 +1742,7 @@ subroutine get_lowmode_diffusivity(G, GV, h, tv, US, h_bot, k_bot, j, N2_lay, N2
17411742
! layer diffusivity for processus
17421743
if (h(i,j,k) >= CS%min_thick_layer_Kd) then
17431744
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)
17451746
else
17461747
Kd_quad_lay(k) = 0.
17471748
endif
@@ -3539,6 +3540,9 @@ subroutine internal_tides_init(Time, G, GV, US, param_file, diag, CS)
35393540
call get_param(param_file, mdl, "MINTHICK_TKE_TO_KD", CS%min_thick_layer_Kd, &
35403541
"The minimum thickness allowed with TKE_to_Kd.", &
35413542
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)
35423546
call get_param(param_file, mdl, "MAX_TKE_TO_KD", CS%max_TKE_to_Kd, &
35433547
"Limiter for TKE_to_Kd.", &
35443548
units="", default=1e9, scale=US%Z_to_m*US%s_to_T**2)

0 commit comments

Comments
 (0)