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

limit Visbeck eddy length to dcEdge (AMOC PR 4/6) #4868

Merged
merged 2 commits into from
Apr 14, 2022

Conversation

mark-petersen
Copy link
Contributor

@mark-petersen mark-petersen commented Apr 4, 2022

When using config_GM_closure='Visbeck' (Visbeck et al 1997), limit the eddy length scale to be no less than dcEdge, the distance between cells. This ensures that gmBolusKappa does not have very small values due to the eddyLength factor.

All E3SM runs use config_GM_closure='constant' or config_GM_closure='EdenGreatbatch', but never Visbeck, so this PR is BFB for all tests. When using config_GM_closure='Visbeck' it is not BFB.

[BFB]

@mark-petersen mark-petersen added mpas-ocean BFB PR leaves answers BFB labels Apr 4, 2022
@mark-petersen mark-petersen requested a review from vanroekel April 4, 2022 21:53
@@ -611,8 +611,8 @@ subroutine ocn_GM_compute_Bolus_velocity(statePool, &
c_Visbeck = sqrt(sumN2*ltsum)
sumRi = sumRi / (ltsum + 1.0E-11_RKIND)

eddyLength(iEdge) = min(c_Visbeck/(1.0E-15_RKIND + abs(fEdge(iEdge))), &
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vanroekel this array was created in the original Visbeck addition. Both eddyLength and eddyTime are used only in these three lines within the iEdge loop, so these arrays could both easily be replaced by scalars. The only reason to keep them is for writing them out. Do you have a preference if these are arrays or scalars?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mark-petersen no real preference on scalar v array. I had them as arrays for diagnostics but I don't think we need them for the duration.

@mark-petersen mark-petersen changed the title limit Visbeck eddy length to dcEdge limit Visbeck eddy length to dcEdge (AMOC PR 4/6) Apr 5, 2022
Copy link
Contributor

@vanroekel vanroekel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving based on visual inspection but think the change of eddyLength and eddyTime to scalars would be a good idea too

@@ -611,8 +611,8 @@ subroutine ocn_GM_compute_Bolus_velocity(statePool, &
c_Visbeck = sqrt(sumN2*ltsum)
sumRi = sumRi / (ltsum + 1.0E-11_RKIND)

eddyLength(iEdge) = min(c_Visbeck/(1.0E-15_RKIND + abs(fEdge(iEdge))), &
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mark-petersen no real preference on scalar v array. I had them as arrays for diagnostics but I don't think we need them for the duration.

@darincomeau
Copy link
Member

darincomeau commented Apr 6, 2022

Ran a 5 year CRYO1850.ne30pg2_ECwISC30to60E2r1 to compare against baseline:

Baseline with config_GM_closure = 'Visbeck'

This branch with config_GM_closure = 'Visbeck'

@milenaveneziani
Copy link
Contributor

@milenaveneziani
Copy link
Contributor

Visbeck baseline test (ran with hash tag b404a46) with SORRM was completed. Complete analysis here: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.milena/20220411.CRYO1850.ne30pg2_SOwISC12to60E2r4.chrysalis.CryoBranchBaselineGMVisbeck/Years1-5/

@milenaveneziani
Copy link
Contributor

In particular, compare Global OHC trends:

Also, compare a Ross Sea SOSE T section:

@milenaveneziani
Copy link
Contributor

milenaveneziani commented Apr 12, 2022

Clearly, the Visbeck eddy length limiter makes a small difference for SORRM.

@milenaveneziani milenaveneziani self-requested a review April 12, 2022 18:28
@darincomeau
Copy link
Member

darincomeau commented Apr 13, 2022

I'll post the analogous plots for the low-res comparison, adding global MOC:

Visbeck baseline:
OHC global trend

Global MOC

Ross Sea T transect

Visbeck limiter (this PR):
OHC global trend

Global MOC

Ross Sea T Transect

jonbob added a commit that referenced this pull request Apr 13, 2022
…ext (PR #4868)

Limit Visbeck eddy length to dcEdge

When using config_GM_closure='Visbeck' (Visbeck et al 1997), limit the
eddy length scale to be no less than dcEdge, the distance between cells.
This ensures that gmBolusKappa does not have very small values due to
the eddyLength factor.

When using config_GM_closure='Visbeck' it is not BFB. However, all E3SM
runs use config_GM_closure='constant' or 'EdenGreatbatch', but never
Visbeck, so this PR is BFB for all current tests.

[BFB]
@jonbob
Copy link
Contributor

jonbob commented Apr 13, 2022

Passed:

  • ERS.ne11_oQU240.WCYCL1850NS.chrysalis_intel
  • SMS_D_Ld3.T62_oQU120.CMPASO-IAF.chrysalis_intel

merged to next

@jonbob jonbob merged commit 8aef31a into master Apr 14, 2022
@jonbob
Copy link
Contributor

jonbob commented Apr 14, 2022

merged to master

@jonbob jonbob deleted the mark-petersen/ocean/eddy-length-limiter-visbeck branch April 14, 2022 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants