13.07.2015 Views

Advanced Ocean Modelling: Using Open-Source Software

Advanced Ocean Modelling: Using Open-Source Software

Advanced Ocean Modelling: Using Open-Source Software

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

38 3 Basics of Nonhydrostatic <strong>Modelling</strong>plus the addition of a higher-order term according to:B e+ = Bk n + 0.5Ψ ( r + )( )(k 1 − C+e Bnk+1 − Bk n )Be− = Bk+1 n − 0.5Ψ ( r − )( )(k 1 + C−e Bnk+1 − Bk n )B w + = Bn k−1 + 0.5Ψ ( rk−1)( + )(1 − C+w Bnk − Bk−1n )Bw − = Bn k − 0.5Ψ ( rk−1)( − )(1 + C−w Bnk − Bk−1n )where the r parameters are defined by:r + k= Bn k − Bn k−1B n k+1 − Bn kand r − k= Bn k+2 − Bn k+1B n k+1 − Bn kHere, we use the so-called Superbee scheme in which the limiting function Ψ isdefined by:Ψ(r) = max {0, min(2r, 1), min(r, 2)}Kämpf (2009) shows performance tests of other limiting functions. Verticaladvection is discretised via fluxes of B through vertical faces of the control volumein a similar fashion (not shown here). The last term in (3.41), although it shouldbe zero in theory, is included in this scheme to avoid accumulation of small butpersistent round-off errors that could lead to artificial and unwanted internal sourcesor sinks of B.3.6.3 Stability Criterion for the Advection EquationThe stability criterion for the above explicit form of the advection equation isgiven by:( ΔxΔt ≤ minu , Δz )(3.43)wknown as Courant-Friedrichs-Lewy condition or CFL condition for explicit advectionschemes (Courant et al., 1928).3.6.4 Implementation of Density DiffusionFor uniform grid spacings, the explicit finite-difference versions of the density diffusionterms in Eq. (3.38) are given by:( )∂ ∂ρK h = [ Khe ( ) ( )]ρi,k+1 − ρ i,k − Kwh ρi,k − ρ i,k−1 / (Δx)2∂x∂∂z(K z∂ρ∂z∂x)= [ K z+ ( ) ( )]ρi−1,k − ρ i,k − K−z ρi,k − ρ i+1,k / (Δz)2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!