Skip to content

Commit 15d78e4

Browse files
committed
Fix up some logic for turns = 2 or 3.
- Note that this is still not supported, as specificed in MOM.F90.
1 parent 6a7458b commit 15d78e4

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

src/core/MOM_open_boundary.F90

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6157,58 +6157,58 @@ subroutine rotate_OBC_segment_data(segment_in, segment, turns)
61576157
enddo
61586158

61596159
if (allocated(segment_in%SSH)) &
6160-
call rotate_array(segment_in%SSH, turns, segment%SSH)
6160+
call rotate_array(segment_in%SSH, turns, segment%SSH)
61616161
if (allocated(segment_in%cg)) &
6162-
call rotate_array(segment_in%cg, turns, segment%cg)
6162+
call rotate_array(segment_in%cg, turns, segment%cg)
61636163
if (allocated(segment_in%htot)) &
6164-
call rotate_array(segment_in%htot, turns, segment%htot)
6164+
call rotate_array(segment_in%htot, turns, segment%htot)
61656165
if (allocated(segment_in%dztot)) &
6166-
call rotate_array(segment_in%dztot, turns, segment%dztot)
6166+
call rotate_array(segment_in%dztot, turns, segment%dztot)
61676167
if (allocated(segment_in%h)) &
6168-
call rotate_array(segment_in%h, turns, segment%h)
6168+
call rotate_array(segment_in%h, turns, segment%h)
61696169
if (allocated(segment_in%normal_vel)) &
6170-
call rotate_array(segment_in%normal_vel, turns, segment%normal_vel)
6170+
call rotate_array(segment_in%normal_vel, turns, segment%normal_vel)
61716171
if (allocated(segment_in%normal_trans)) &
6172-
call rotate_array(segment_in%normal_trans, turns, segment%normal_trans)
6172+
call rotate_array(segment_in%normal_trans, turns, segment%normal_trans)
61736173
if (allocated(segment_in%normal_vel_bt)) &
6174-
call rotate_array(segment_in%normal_vel_bt, turns, segment%normal_vel_bt)
6174+
call rotate_array(segment_in%normal_vel_bt, turns, segment%normal_vel_bt)
61756175
if (allocated(segment_in%tangential_vel)) &
6176-
call rotate_array(segment_in%tangential_vel, turns, segment%tangential_vel)
6176+
call rotate_array(segment_in%tangential_vel, turns, segment%tangential_vel)
61776177
if (allocated(segment_in%tangential_grad)) &
6178-
call rotate_array(segment_in%tangential_grad, turns, segment%tangential_grad)
6178+
call rotate_array(segment_in%tangential_grad, turns, segment%tangential_grad)
61796179
if (allocated(segment_in%grad_normal)) &
6180-
call rotate_array(segment_in%grad_normal, turns, segment%grad_normal)
6180+
call rotate_array(segment_in%grad_normal, turns, segment%grad_normal)
61816181
if (allocated(segment_in%grad_tan)) &
6182-
call rotate_array(segment_in%grad_tan, turns, segment%grad_tan)
6182+
call rotate_array(segment_in%grad_tan, turns, segment%grad_tan)
61836183
if (allocated(segment_in%grad_gradient)) &
6184-
call rotate_array(segment_in%grad_gradient, turns, segment%grad_gradient)
6184+
call rotate_array(segment_in%grad_gradient, turns, segment%grad_gradient)
61856185
if (modulo(turns, 2) /= 0) then
61866186
if (allocated(segment_in%rx_norm_rad)) &
6187-
call rotate_array(segment_in%rx_norm_rad, turns, segment%ry_norm_rad)
6187+
call rotate_array(segment_in%rx_norm_rad, turns, segment%ry_norm_rad)
61886188
if (allocated(segment_in%ry_norm_rad)) &
6189-
call rotate_array(segment_in%ry_norm_rad, turns, segment%rx_norm_rad)
6189+
call rotate_array(segment_in%ry_norm_rad, turns, segment%rx_norm_rad)
61906190
if (allocated(segment_in%rx_norm_obl)) &
6191-
call rotate_array(segment_in%rx_norm_obl, turns, segment%ry_norm_obl)
6191+
call rotate_array(segment_in%rx_norm_obl, turns, segment%ry_norm_obl)
61926192
if (allocated(segment_in%ry_norm_obl)) &
6193-
call rotate_array(segment_in%ry_norm_obl, turns, segment%rx_norm_obl)
6193+
call rotate_array(segment_in%ry_norm_obl, turns, segment%rx_norm_obl)
61946194
else
61956195
if (allocated(segment_in%rx_norm_rad)) &
6196-
call rotate_array(segment_in%rx_norm_rad, turns, segment%rx_norm_rad)
6196+
call rotate_array(segment_in%rx_norm_rad, turns, segment%rx_norm_rad)
61976197
if (allocated(segment_in%ry_norm_rad)) &
6198-
call rotate_array(segment_in%ry_norm_rad, turns, segment%ry_norm_rad)
6198+
call rotate_array(segment_in%ry_norm_rad, turns, segment%ry_norm_rad)
61996199
if (allocated(segment_in%rx_norm_obl)) &
6200-
call rotate_array(segment_in%rx_norm_obl, turns, segment%rx_norm_obl)
6200+
call rotate_array(segment_in%rx_norm_obl, turns, segment%rx_norm_obl)
62016201
if (allocated(segment_in%ry_norm_obl)) &
6202-
call rotate_array(segment_in%ry_norm_obl, turns, segment%ry_norm_obl)
6202+
call rotate_array(segment_in%ry_norm_obl, turns, segment%ry_norm_obl)
62036203
endif
62046204
if (allocated(segment_in%cff_normal)) &
6205-
call rotate_array(segment_in%cff_normal, turns, segment%cff_normal)
6205+
call rotate_array(segment_in%cff_normal, turns, segment%cff_normal)
62066206
if (allocated(segment_in%nudged_normal_vel)) &
6207-
call rotate_array(segment_in%nudged_normal_vel, turns, segment%nudged_normal_vel)
6207+
call rotate_array(segment_in%nudged_normal_vel, turns, segment%nudged_normal_vel)
62086208
if (allocated(segment_in%nudged_tangential_vel)) &
6209-
call rotate_array(segment_in%nudged_tangential_vel, turns, segment%nudged_tangential_vel)
6209+
call rotate_array(segment_in%nudged_tangential_vel, turns, segment%nudged_tangential_vel)
62106210
if (allocated(segment_in%nudged_tangential_grad)) &
6211-
call rotate_array(segment_in%nudged_tangential_grad, turns, segment%nudged_tangential_grad)
6211+
call rotate_array(segment_in%nudged_tangential_grad, turns, segment%nudged_tangential_grad)
62126212
if (associated(segment_in%tr_Reg)) then
62136213
do n = 1, segment_in%tr_Reg%ntseg
62146214
call rotate_array(segment_in%tr_Reg%tr(n)%t, turns, segment%tr_Reg%tr(n)%t)
@@ -6220,7 +6220,7 @@ subroutine rotate_OBC_segment_data(segment_in, segment, turns)
62206220

62216221
do n = 1, num_fields
62226222
if ((segment%field(n)%name == 'U' .or. segment%field(n)%name == 'Uamp') .and. &
6223-
modulo(turns, 2) /= 0) then
6223+
(modulo(turns, 4) == 1 .or. modulo(turns, 4) == 2)) then
62246224
segment%field(n)%buffer_dst(:,:,:) = -segment%field(n)%buffer_dst(:,:,:)
62256225
if (segment%is_E_or_W) then
62266226
segment%normal_trans(:,:,:) = -segment%normal_trans(:,:,:)
@@ -6235,7 +6235,7 @@ subroutine rotate_OBC_segment_data(segment_in, segment, turns)
62356235
segment%nudged_tangential_vel(:,:,:) = -segment%nudged_tangential_vel(:,:,:)
62366236
endif
62376237
elseif ((segment%field(n)%name == 'V' .or. segment%field(n)%name == 'Vamp') .and. &
6238-
modulo(turns, 4) == 3) then
6238+
(modulo(turns, 4) == 3 .or. modulo(turns, 4) == 2)) then
62396239
segment%field(n)%buffer_dst(:,:,:) = -segment%field(n)%buffer_dst(:,:,:)
62406240
if (segment%is_N_or_S) then
62416241
segment%normal_trans(:,:,:) = -segment%normal_trans(:,:,:)

0 commit comments

Comments
 (0)