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

Grid-scale noise in surface vertical tracer diffusion #110

Open
aekiss opened this issue Sep 12, 2018 · 9 comments
Open

Grid-scale noise in surface vertical tracer diffusion #110

aekiss opened this issue Sep 12, 2018 · 9 comments

Comments

@aekiss
Copy link
Contributor

aekiss commented Sep 12, 2018

@ChrisC28 noticed that there is grid-scale noise in monthly averages of these fields for the top 5-10 metres in the Indian Ocean:

	float salt_vdiffuse_impl(time, st_ocean_sub01, yt_ocean_sub01, xt_ocean_sub01) ;
		salt_vdiffuse_impl:long_name = "implicit vert diffusion of Practical Salinity" ;
	float salt_vdiffuse_diff_cbt(time, st_ocean_sub01, yt_ocean_sub01, xt_ocean_sub01) ;
		salt_vdiffuse_diff_cbt:long_name = "vert diffusion due to diff_cbt for Practical Salinity" ;
	float temp_vdiffuse_impl(time, st_ocean_sub01, yt_ocean_sub01, xt_ocean_sub01) ;
		temp_vdiffuse_impl:long_name = "implicit vert diffusion of heat" ;
	float temp_vdiffuse_diff_cbt(time, st_ocean_sub01, yt_ocean_sub01, xt_ocean_sub01) ;
		temp_vdiffuse_diff_cbt:long_name = "vert diffusion of heat due to diff_cbt" ;

e.g. in /g/data3/hh5/tmp/cosima/access-om2-01/01deg_jra55v13_iaf/output090/ocean/rregionindian_ocean_west.nc

screen shot 2018-09-12 at wed 12-9 10 14am
screen shot 2018-09-12 at wed 12-9 10 16am
(these salt fluxes also have blocky features due to the salt restoring used: #74)

screen shot 2018-09-12 at wed 12-9 10 17am 1
screen shot 2018-09-12 at wed 12-9 10 18am

@russfiedler
Copy link

russfiedler commented Sep 12, 2018

The blockiness was an issue that we kind of glossed over yesterday at the start of the TWG meeting. i.e. implement "patch" interpolation for the salt field to be used in restoring.

@aekiss
Copy link
Contributor Author

aekiss commented Sep 15, 2018

Agreed - another reason to smooth this restoring field.

FWIW MLD and vorticity look OK in this region (though MLD has some blockiness from the restoring).

@aekiss
Copy link
Contributor Author

aekiss commented Sep 15, 2018

...however MLD has grid-scale noise in the equatorial Pacific and Atlantic (click to enlarge):

screen shot 2018-09-15 at sat 15-9 6 25pm

@nichannah
Copy link
Contributor

Is this motivation to try again with the 2nd order conservative mapping option for the 0.1 deg? The software we used has had another release since we set up the 1 and 0.25 deg remapping.

@aekiss
Copy link
Contributor Author

aekiss commented Dec 6, 2018

here's the blocky salt restoring issue #74

@StephenGriffies
Copy link

I have two comments, diametrically opposed but nonetheless relevant.

A/ I expect to see a noisy tendency from the diffusion operator in regions of high forcing and eddy activity. The reason is that the diffusion operator is the Laplacian of the tracer field, so that the operator preferentially hits the high wave number (i.e., noisy) portion of the tracer field. The resulting tracer field is smoothed since the diffusion operator acts to dissipate the high wave number power.

A checkerboard or zig-zag example is useful to consider. Namely, let the tracer have structure sin(2pi *k), where k is the vertical grid cell index. This zig-zag vertical pattern will be smoothed by the diffusion operator. But if we look at the tendency arising from the diffusion operator, it will indeed be noisy, which again is what it should be since diffusion is preferentially dissipating the noise.

One way to test the above hypothesis is to look at the tracer field to see if it too is noisy. My guess is that it will be less noisy than the diffusion operator, which means the diffusion is doing what it should do. Namely, it is acting to kill variance that is piling up at the grid scale due to the direct cascade of tracer variance.

B/ Richardson number based vertical mixing schemes, such as KPP, often produce noise in the tracer field and mixed layer depth due to decoupling between adjacent columns. This issue tends to be well seen in the tropics.

It is a well known problem that arises since the 1d vertical mixing schemes allow for columns to partly decouple, especially in regions where Coriolis is small. Hallberg has a proposed fix for MOM6 that seems to work. It is based on a particular choice for grid averaging for computing the Richardson number. He introduced the code just recently into MOM6. Look for

subroutine Calc_kappa_shear_vertex

in

https://github.com/NOAA-GFDL/MOM6/blob/dev/gfdl/src/parameterizations/vertical/MOM_kappa_shear.F90

I believe it could be ported to MOM5 with some effort.

@aekiss
Copy link
Contributor Author

aekiss commented Dec 7, 2018

Thanks @StephenGriffies for your detailed explanation.

SSS is indeed smooth, e.g. this daily average from /g/data3/hh5/tmp/cosima/access-om2-01/01deg_jra55v13_iaf/output090/ice/OUTPUT/iceh.2000-02-01.nc
screen shot 2018-12-07 at fri 7-12 10 58am

Depth profiles of the monthly-mean implicit vertical salt diffusion have opposite extrema at the surface and the first level down at noisy points
screen shot 2018-12-07 at fri 7-12 10 28am

whereas depth profiles at non-noisy points have only the surface extremum
screen shot 2018-12-07 at fri 7-12 10 26am

Monthly mean salinity profiles (from /g/data3/hh5/tmp/cosima/access-om2-01/01deg_jra55v13_iaf/output090/ocean/ocean.nc) look smooth and unremarkable at the noisy points:
screen shot 2018-12-07 at fri 7-12 11 20am
...with no obvious difference from at the non-noisy points:
screen shot 2018-12-07 at fri 7-12 11 30am
(ignore the horizontal lines with no marker points - these are a plotting glitch).

So
A/ I think you're right, diffusion is doing its job well and keeping the salinity field vertically smooth. On the other hand, this could be interpreted as compensating errors, i.e. the diffusion is compensating for spurious generation of grid-scale variance by other terms, so the diffusion is unphysical?

B/ This column decoupling could well be what is producing the variance in the horizontal. Thanks for the link to Bob's MOM6 fix.

We used the KDS75 grid, with surface vertical resolution of about 1.1m. Perhaps there are some tweaks we could adopt from your recent KPP paper (Van Roekel et al 2018)?

It is worth noting that the Indian Ocean figures in the posts above are monthly averages. This animation of two consecutive months from /g/data3/hh5/tmp/cosima/access-om2-01/01deg_jra55v13_iaf/output090/ocean/rregionindian_ocean_west.nc shows there's little persistence in the noise from one monthly average to the next. So I expect there is some cancellation of the noise in the monthly average, i.e. the noise at each timestep is larger (perhaps much larger, depending on the timescale of the processes generating this noise).

screen shot 2018-12-07 at fri 7-12 10 13am

@rmholmes
Copy link
Collaborator

rmholmes commented Sep 8, 2020

I am reviving this old issue because of some spectral analysis discussed in the MOM meeting last week (3/9/20) which show grid-scale SST noise in ACCESS-OM2-025 in the eastern tropical Pacific, (similar to @aekiss's post #110 (comment)). E.g. the following snapshots of SST and SST zonal grid differences:

Eastern-Tropical-Pacific_SSTnoise

I have seen this before in ROMS in similar areas where it was linked to grid-scale noise/checkerboarding in the KPP boundary layer depth HSBL (as mentioned by Steve's B above, #110 (comment)).

The approach used to try to fix this in ROMS was to smooth HSBL. There is a similar option avaiable in the MOM5 KPP implementation which is inactive in ACCESS-OM2 (smooth_blmc, https://github.com/mom-ocean/MOM5/blob/8b9dc09e452de9bb457048235747340e2ccee92d/src/mom5/ocean_param/vertical/ocean_vert_kpp_mom4p1.F90#L121). (Side note: there is a linked issue mom-ocean/MOM5#264 that discusses smoothing the BL depth in the submesoscale routine - but I think this will only affect the submesoscale scheme and hence is not the right place to do it??).

I ran a single year of an ACCESS-OM2-025 simulation with smooth_blmc. Comparison of SST snapshot horizontal wavenumber spectra show that the SST grid-noise is removed (compare red dot-dashed line to other red lines):

Eastern-Tropical-Pacific_SST_Spectra

This figure also suggests that the issue is most a problem at 1/4-degree (red) where there is a peak in variance at the grid-scale that is absent at 1/10-degree (magenta) and 1-degree (blue).

However, the HSBL smoothing seems to have significant impacts on large-scale SST as well. This figure shows the difference between SST and net surface heat flux for the first 2 years of the simulation compared to the corresponding control simulation (without HSBL smoothing):

SST_Qnet_Differences

It looks like the smoothing is leading to a broad SST cooling across most of the mid-latitudes, some dipoles across the WBCs and warming in the Southern Ocean. It's not obvious to me where this is coming from - perhaps there is a non-linearity where smoothing of large lateral HSBL differences leads to a mean deepening of HSBL (stupidly I didn't output hsbl...)?

Note that accompanying these changes are changes in the surface heat flux that drive an overall larger heat flux into the ocean, and that numerical mixing is actually increased overall (and specifically in the eastern tropical Pacific) which is not what I expected...

I am running some more years to see if things change. However, my thinking right now is that the smoothing has unintended consequences and should be avoided. Steve's suggestion to look at Hallberg's fix in the above post is probably the right way to go. But I wanted to write this all down for future reference.

@StephenGriffies
Copy link

Very interesting @rmholmes and thanks for documenting these features. More head scratching for sure. If you wish to consider the Hallberg fix in MOM6, then search for the option vertex_shear inside of MOM_set_diffusivity module. I am not aware of details, so if there is an attempt to make this work in MOM5 then Hallberg should be consulted. I also do not know if the MOM6 fix, done for a C-grid, will work for the B-grid in MOM5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants