Skip to content

Commit efe41e2

Browse files
Raphael DussinRaphael Dussin
authored andcommitted
add call to turning latitude in propagate_x
This should satisfy the rotational symmetry. As expected, this has no impact on global case since reflected energy from propagate_x then does not need to be reflected in propagate_y.
1 parent 30c2c3a commit efe41e2

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/parameterizations/lateral/MOM_internal_tides.F90

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2193,7 +2193,7 @@ subroutine propagate(En, cn, freq, dt, G, GV, US, CS, NAngle, test, halo_size, r
21932193
! Apply propagation in the first direction (reflection included)
21942194
LB%jsh = jsh ; LB%jeh = jeh ; LB%ish = ish ; LB%ieh = ieh
21952195
if (x_first) then
2196-
call propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, CS%nAngle, CS, LB, residual_loss)
2196+
call propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, CS%nAngle, CS, LB, residual_loss, freq2)
21972197
else
21982198
call propagate_y(En, speed_y, Cgy_av, dCgy, dt, G, US, CS%nAngle, CS, LB, residual_loss, freq2)
21992199
endif
@@ -2226,7 +2226,7 @@ subroutine propagate(En, cn, freq, dt, G, GV, US, CS, NAngle, test, halo_size, r
22262226
if (x_first) then
22272227
call propagate_y(En, speed_y, Cgy_av, dCgy, dt, G, US, CS%nAngle, CS, LB, residual_loss, freq2)
22282228
else
2229-
call propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, CS%nAngle, CS, LB, residual_loss)
2229+
call propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, CS%nAngle, CS, LB, residual_loss, freq2)
22302230
endif
22312231

22322232
! fix underflows
@@ -2248,7 +2248,7 @@ end subroutine propagate
22482248

22492249

22502250
!> Propagates the internal wave energy in the logical x-direction.
2251-
subroutine propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, Nangle, CS, LB, residual_loss)
2251+
subroutine propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, Nangle, CS, LB, residual_loss, freq2)
22522252
type(ocean_grid_type), intent(in) :: G !< The ocean's grid structure.
22532253
integer, intent(in) :: NAngle !< The number of wave orientations in the
22542254
!! discretized wave energy spectrum.
@@ -2268,6 +2268,8 @@ subroutine propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, Nangle, CS, LB, res
22682268
real, dimension(G%isd:G%ied,G%jsd:G%jed,Nangle), &
22692269
intent(inout) :: residual_loss !< internal tide energy loss due
22702270
!! to the residual at slopes [H Z2 T-3 ~> m3 s-3 or W m-2].
2271+
real, intent(in) :: freq2 !< The square of internal tides frequency [T-2 ~> s-2].
2272+
22712273
! Local variables
22722274
real, dimension(SZI_(G),SZJ_(G)) :: &
22732275
EnL, EnR ! Left and right face energy densities [H Z2 T-2 ~> m3 s-2 or J m-2].
@@ -2327,6 +2329,11 @@ subroutine propagate_x(En, speed_x, Cgx_av, dCgx, dt, G, US, Nangle, CS, LB, res
23272329
En(i,j,a) = En(i,j,a) + (G%IareaT(i,j)*(Fdt_m(i,j,a) + Fdt_p(i,j,a)))
23282330
enddo ; enddo ; enddo
23292331

2332+
! existing energy at turning latitude should reflect away
2333+
if (CS%turn_critical_lat ) then
2334+
call turning_latitude(En, NAngle, freq2, CS, G, LB)
2335+
endif
2336+
23302337
end subroutine propagate_x
23312338

23322339
!> Propagates the internal wave energy in the logical y-direction.

0 commit comments

Comments
 (0)