Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating #5

Merged
merged 56 commits into from
Sep 23, 2024
Merged
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
6628dbf
(*)Parenthesize squares of wind stresses for FMAs
Hallberg-NOAA Mar 1, 2024
f0e61f3
(*)Parenthesize continuity_PPM curv_3 expressions
Hallberg-NOAA Feb 29, 2024
4f710ef
(*)Add parentheses for oblique OBCs with FMAs
Hallberg-NOAA Mar 1, 2024
9172cd5
(*)Add parentheses for density_integrals with FMAs
Hallberg-NOAA Mar 1, 2024
24091cc
(*)Add parentheses to 4 EOS int_density routines
Hallberg-NOAA Mar 1, 2024
8066a3d
(*)Simplify density integral parentheses
Hallberg-NOAA Mar 4, 2024
99fd957
(*)Parenthesize PressureForce_Montgomery for FMAs
Hallberg-NOAA Mar 1, 2024
307a4e2
(*)Parenthesize calc_isoneutral_slopes for FMAs
Hallberg-NOAA Mar 1, 2024
ce559ce
(*)Parenthesize MOM_calc_varT for FMAs
Hallberg-NOAA Mar 1, 2024
c344a11
(*)Parenthesize tracer_hordiff for FMAs
Hallberg-NOAA Mar 1, 2024
b2beab2
(*)Parenthesize iceberg_forces for FMAs
Hallberg-NOAA Mar 1, 2024
5398e6f
(*)Parenthesize CoriolisStokes and LA_Stk for FMAs
Hallberg-NOAA Mar 1, 2024
56d053a
+(*)Add and use G%Coriolis2Bu
Hallberg-NOAA Mar 1, 2024
49419f7
(*)Parenthesize thickness_diffuse for FMAs
Hallberg-NOAA Mar 1, 2024
03dc6f9
(*)Parenthesize Zanna_Bolton for FMAs
Hallberg-NOAA Mar 1, 2024
654cd4a
(*)Parenthesize MOM_internal_tides for FMAs
Hallberg-NOAA Mar 1, 2024
ebf02a9
(*)Parenthesize find_uv_at_h for FMAs
Hallberg-NOAA Mar 1, 2024
c0bef18
(*)Parenthesize set_viscous_ML for FMAs
Hallberg-NOAA Mar 1, 2024
0b50a15
(*)Rearrange calc_kappa_shear_vertex for FMAs
Hallberg-NOAA Mar 1, 2024
f0c52dd
(*)Parenthesize MOM_set_diffusivity for FMAs
Hallberg-NOAA Mar 1, 2024
64b851c
(*)Parenthesize CorAdCalc for FMAs
Hallberg-NOAA Mar 1, 2024
46e8b66
(*)Parenthesize MOM_barotropic for FMAs
Hallberg-NOAA Mar 1, 2024
6216fa1
(*)Parenthesize MOM_lateral_mixing_coeffs for FMAs
Hallberg-NOAA Mar 2, 2024
ffef92f
(*)Parenthesize MOM_hor_visc for FMAs
Hallberg-NOAA Apr 18, 2024
fc2af28
(*)Parenthesize initialization squares for FMAs
Hallberg-NOAA Mar 3, 2024
44f1130
(*)Parenthesize parameterization squares for FMAs
Hallberg-NOAA Mar 3, 2024
182223c
(*)Parenthesize diagnostics for FMAs
Hallberg-NOAA Apr 30, 2024
e810ac5
(*)Parenthesize tracer_advect PPM edge values
Hallberg-NOAA May 5, 2024
ffa766b
(*)More parentheses in density_integrals for FMAs
Hallberg-NOAA Jul 31, 2024
fd82861
(*)Add parentheses in end_value_h4 for FMAs
Hallberg-NOAA Aug 2, 2024
ce58a32
Merge pull request #1634 from Hallberg-NOAA/FMA_rotational_symmetry_main
Hallberg-NOAA Aug 24, 2024
a6dd0fd
Makedep output cleanup and PEP8 fixes
marshallward Aug 6, 2024
1eccd28
Merge branch 'main' into dev/gfdl
Hallberg-NOAA Sep 4, 2024
91eee52
Inline harmonic analysis
c2xu Sep 6, 2024
2316ae5
diffusivities from internal tides ray tracing algo (#677)
raphaeldussin Sep 9, 2024
95744a7
Streaming filter (#675)
c2xu Sep 10, 2024
ffff6f3
+Optionally use SSH in calculate density for PGF
Hallberg-NOAA Jul 29, 2024
9b9c165
(*)Refactor p_ave calculation
Hallberg-NOAA Sep 7, 2024
5fc90eb
Rotate ice shelf forcing and initialization
Hallberg-NOAA Aug 17, 2024
70a48e3
+Add MASS_WEIGHT_IN_PRESSURE_GRADIENT_TOP
claireyung Apr 30, 2024
8520c9f
+Add top mass_weight_in_PGF option to 13 integrals
Hallberg-NOAA Jul 24, 2024
e172fe8
+Add CORRECTION_INTXPA
claireyung Apr 30, 2024
15ea628
+Add CORRECTION_INTXPA_5PT
claireyung Apr 30, 2024
1b9bf67
+Add RESET_INTXPA_INTEGRAL
claireyung Apr 30, 2024
7a9545a
Revisions of sub-ice pressure gradient fixes
Hallberg-NOAA Jul 19, 2024
4cf1590
*Refactor CORRECTION_INTX_PA
Hallberg-NOAA Jul 29, 2024
15fd31c
*Non-Boussinesq code for RESET_INTXPA_INTEGRAL
Hallberg-NOAA Aug 5, 2024
5fceecf
+(*)Add 5-point quadrature in RESET_INTXPA_INTEGRAL
Hallberg-NOAA Aug 20, 2024
bdf4b9e
+(*)Eliminate CORRECTION_INTXPA_5PT
Hallberg-NOAA Sep 16, 2024
0363d2b
*Set MASS_WEIGHT_IN_PRESSURE_GRADIENT in .testing
Hallberg-NOAA Sep 16, 2024
1830b8e
Dummy code to suppress errors in posix.F90
marshallward Sep 6, 2024
e05cc01
F2023: Fix argument orders and IO statements
marshallward Sep 9, 2024
b67e93a
Reorder arguments in FMS_cap functions
marshallward Sep 12, 2024
b2db6bf
CI: Fortran 2018 testing
marshallward Sep 12, 2024
b3d7348
Change the default of VISC_REM_CONT_HVEL_FIX
herrwang0 Sep 12, 2024
ba59078
Separate scalar diagnostics for each ice sheet + parameters to contro…
alex-huth Sep 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
(*)Parenthesize Zanna_Bolton for FMAs
  Added parentheses to 2 expressions in the Zanna_Bolton code and rearranged
another line so that the u- and v-discretizations introduce terms in the same
order so that the Zanna_Bolton code will exhibit rotationally consistent
solutions when fused-multiply-adds are enabled.  All answers are bitwise
identical in cases without FMAs, but answers could change with FMAs enabled in
cases that use the Zanna-Bolton parameterization.
Hallberg-NOAA committed Jul 29, 2024
commit 03dc6f9a5b2d24ecc4011cd5ac8319ad0b014c05
36 changes: 16 additions & 20 deletions src/parameterizations/lateral/MOM_Zanna_Bolton.F90
Original file line number Diff line number Diff line change
@@ -484,21 +484,21 @@ subroutine compute_c_diss(G, GV, CS)
if (CS%Klower_shear == 0) then
do j=js-1,je+1 ; do i=is-1,ie+1
shear = sqrt(CS%sh_xx(i,j,k)**2 + 0.25 * ( &
(CS%sh_xy(I-1,J-1,k)**2 + CS%sh_xy(I,J ,k)**2) &
+ (CS%sh_xy(I-1,J ,k)**2 + CS%sh_xy(I,J-1,k)**2) &
))
((CS%sh_xy(I-1,J-1,k)**2) + (CS%sh_xy(I,J ,k)**2)) &
+ ((CS%sh_xy(I-1,J ,k)**2) + (CS%sh_xy(I,J-1,k)**2)) &
))
CS%c_diss(i,j,k) = 1. / (1. + shear * CS%ICoriolis_h(i,j))
enddo; enddo

! sqrt(sh_xx**2 + sh_xy**2 + vort_xy**2)
elseif (CS%Klower_shear == 1) then
do j=js-1,je+1 ; do i=is-1,ie+1
shear = sqrt(CS%sh_xx(i,j,k)**2 + 0.25 * ( &
((CS%sh_xy(I-1,J-1,k)**2 + CS%vort_xy(I-1,J-1,k)**2) &
+ (CS%sh_xy(I,J,k)**2 + CS%vort_xy(I,J,k)**2)) &
+ ((CS%sh_xy(I-1,J,k)**2 + CS%vort_xy(I-1,J,k)**2) &
+ (CS%sh_xy(I,J-1,k)**2 + CS%vort_xy(I,J-1,k)**2)) &
))
((CS%sh_xy(I-1,J-1,k)**2 + CS%vort_xy(I-1,J-1,k)**2) &
+ (CS%sh_xy(I,J,k)**2 + CS%vort_xy(I,J,k)**2)) &
+ ((CS%sh_xy(I-1,J,k)**2 + CS%vort_xy(I-1,J,k)**2) &
+ (CS%sh_xy(I,J-1,k)**2 + CS%vort_xy(I,J-1,k)**2)) &
))
CS%c_diss(i,j,k) = 1. / (1. + shear * CS%ICoriolis_h(i,j))
enddo; enddo
endif
@@ -583,10 +583,10 @@ subroutine compute_stress(G, GV, CS)
if (vort_sh_scheme_1) then
! It is assumed that B.C. is applied to sh_xy and vort_xy
vort_sh = 0.25 * ( &
((G%areaBu(I-1,J-1) * CS%vort_xy(I-1,J-1,k)) * CS%sh_xy(I-1,J-1,k) + &
(G%areaBu(I ,J ) * CS%vort_xy(I ,J ,k)) * CS%sh_xy(I ,J ,k)) + &
((G%areaBu(I-1,J ) * CS%vort_xy(I-1,J ,k)) * CS%sh_xy(I-1,J ,k) + &
(G%areaBu(I ,J-1) * CS%vort_xy(I ,J-1,k)) * CS%sh_xy(I ,J-1,k)) &
(((G%areaBu(I-1,J-1) * CS%vort_xy(I-1,J-1,k)) * CS%sh_xy(I-1,J-1,k)) + &
((G%areaBu(I ,J ) * CS%vort_xy(I ,J ,k)) * CS%sh_xy(I ,J ,k))) + &
(((G%areaBu(I-1,J ) * CS%vort_xy(I-1,J ,k)) * CS%sh_xy(I-1,J ,k)) + &
((G%areaBu(I ,J-1) * CS%vort_xy(I ,J-1,k)) * CS%sh_xy(I ,J-1,k))) &
) * G%IareaT(i,j)
endif

@@ -717,10 +717,8 @@ subroutine compute_stress_divergence(u, v, h, diffu, diffv, dx2h, dy2h, dx2q, dy
! but here is the discretization of div(S)
do j=js,je ; do I=Isq,Ieq
h_u = 0.5 * (G%mask2dT(i,j)*h(i,j,k) + G%mask2dT(i+1,j)*h(i+1,j,k)) + h_neglect
fx = -((G%IdyCu(I,j)*(Mxx(i,j) - &
Mxx(i+1,j)) + &
G%IdxCu(I,j)*(dx2q(I,J-1)*Mxy(I,J-1) - &
dx2q(I,J) *Mxy(I,J))) * &
fx = -((G%IdyCu(I,j)*(Mxx(i,j) - Mxx(i+1,j)) + &
G%IdxCu(I,j)*(dx2q(I,J-1)*Mxy(I,J-1) - dx2q(I,J)*Mxy(I,J))) * &
G%IareaCu(I,j)) / h_u
diffu(I,j,k) = diffu(I,j,k) + fx
if (save_ZB2020u) &
@@ -730,10 +728,8 @@ subroutine compute_stress_divergence(u, v, h, diffu, diffv, dx2h, dy2h, dx2q, dy
! Evaluate 1/h y.Div(h S) (Line 1517 of MOM_hor_visc.F90)
do J=Jsq,Jeq ; do i=is,ie
h_v = 0.5 * (G%mask2dT(i,j)*h(i,j,k) + G%mask2dT(i,j+1)*h(i,j+1,k)) + h_neglect
fy = -((G%IdyCv(i,J)*(dy2q(I-1,J)*Mxy(I-1,J) - &
dy2q(I,J) *Mxy(I,J)) + & ! NOTE this plus
G%IdxCv(i,J)*(Myy(i,j) - &
Myy(i,j+1))) * &
fy = -((G%IdxCv(i,J)*(Myy(i,j) - Myy(i,j+1)) + &
G%IdyCv(i,J)*(dy2q(I-1,J)*Mxy(I-1,J) - dy2q(I,J)*Mxy(I,J))) * &
G%IareaCv(i,J)) / h_v
diffv(i,J,k) = diffv(i,J,k) + fy
if (save_ZB2020v) &