This PR fixes some bugs in Leith+E, changes the code so that it preserves rotational symmetry, re-orders some computations to improve efficiency, and introduces some new features.
Bugs:
Indexing errors
Computes vert_vort_mag when using Leith+E
Fixes some logic in the smoothing code
Fixes application of upper bounds on Ah
Features:
Smoothing subroutine (smooth_x9) has been re-written to preserve rotational symmetry.
Computations re-arranged to improve efficiency (fewer blocking halo updates)
A new parameter SMOOTH_AH added. Default is True. When False, no smoothing is applied to the backscatter and biharmonic coefficients, which significantly reduces the number of blocking halo updates.
Added some code to make Leith+E work with open boundaries.
This PR fixes some bugs in Leith+E, changes the code so that it preserves rotational symmetry, re-orders some computations to improve efficiency, and introduces some new features.
vert_vort_mag
when using Leith+EAh
smooth_x9
) has been re-written to preserve rotational symmetry.SMOOTH_AH
added. Default is True. When False, no smoothing is applied to the backscatter and biharmonic coefficients, which significantly reduces the number of blocking halo updates.