1. Introduction
The complexity of processes and range of scales in fully nonlinear geophysical flows poses a significant barrier in the understanding of their dynamics. Appropriately constructed idealized linear models can reduce the complexity and reveal valuable insights into the behavior of a flow. However, even with strong simplifying assumptions, the mathematical problems that remain are often substantial and require careful treatment. Such is the case for the problem of calculating linearly unstable wave solutions for stratified parallel shear flows. This problem has important applications in the geophysical setting (Drazin and Reid 1981), and it is of particular relevance in analyzing observations of the onset of turbulence in the atmospheric and oceanic boundary layer (e.g., De Baas and Driedonks 1985; Sun et al. 1998). As we shall see, the wave stability problem is particularly difficult because the combination of stratification and shear leads to a singular eigenvalue problem (the unstratified shear problem is also singular, but to a lesser degree). In this paper we describe a new numerical method for the calculation of these unstable waves.
In the small-amplitude limit, the Taylor–Goldstein (TG) equation models the balance between the destabilizing effects of shear and the (generally) stabilizing effects of stratification for an inviscid Boussinesq fluid. Here we adopt a dimensionless form of the TG equation in two spatial coordinates. Squire’s theorem (Drazin and Reid 1981) justifies the reduction to two spatial coordinates, and the task of analyzing a three-dimensional flow can be treated as a collection of two-dimensional problems (e.g., De Baas and Driedonks 1985). The nondimensionalization is carried out as follows. Using tildes to denote dimensional variables, we introduce dimensionless coordinates

With appropriate boundary conditions (discussed further in section 2), the TG equation is an eigenvalue problem for c with corresponding eigenfunction ϕ(z). The eigenvalues c = cr + ici may be real or complex, and if there exists a solution with ci > 0, then the flow is said to be unstable. Finding the unstable modes of a given flow profile, if there are any, is usually the primary motivation for studying the TG equation and is the sole focus of our numerical method. The unstable modes are of great significance because they grow exponentially in time as exp(αcit) by extracting energy from the background shear profile. The growth of the unstable modes will quickly lead to a violation of the small-amplitude assumption used in the derivation of the TG equation. As a result, the TG equation does not serve as a model for the temporal evolution of unstable waves, merely as a means of predicting their presence and initial growth characteristics.
Since its independent derivations by Taylor (1931) and Goldstein (1931), the TG equation has been used in a range of theoretical, experimental, and numerical investigations. Examples include the numerous analytical studies discussed by Drazin and Reid (1981); a numerical investigation of several idealized but important shear profiles (Hazel 1972); observations and analysis of shear instabilities in the atmospheric boundary layer (e.g., De Baas and Driedonks 1985); the ocean (e.g., Sun et al. 1998; Smyth et al. 2011), and estuarine flows (e.g., Tedford et al. 2009); and distinguishing Kelvin–Helmholtz waves from Holmboe waves (Carpenter et al. 2010). In addition, slightly modified forms of the TG equation have been used in numerical studies of atmospheric wave generation by shear (Lalas and Einaudi 1976; Mastrantonio et al. 1976; Mobbs and Darby 1989). However, with the notable exceptions of Hazel (1972) and Mobbs and Darby (1989), few details on the actual implementation of a numerical method for the inviscid TG equation can be found. Here we attempt to fill that gap by describing a numerical method for the TG equation. Our method, referred to as “TGsolver” and implemented in MATLAB, is designed for the task of calculating the unstable modes of a given shear and stratification profile.

Any point zc where U(zc) − cr = 0 is referred to as a critical point. The small neighborhood around such a point, where the large values of JN2(z)/[U(z) − c]2 and U″(z)/[U(z) − c] provide the dominant influence on the behavior of ϕ(z), is referred to as a critical layer. It is the behavior of solutions within critical layers that make the TG equation a challenge to solve numerically. The singular behavior of an eigenfunction within a critical layer is not physical, but arises from the neglect of viscosity, density (heat) diffusion, and nonlinearity in the equations of motion (see Maslowe 1986 for a discussion). As demonstrated by Smyth et al. (2011), including viscous and diffusive effects in a numerical model is a viable option, but it leads to higher-order equations. In our approach to the TG equation, we treat the singular behavior by approximating eigenfunctions with series expansions across critical layers.
In what follows, we describe our numerical method and illustrate its use on several idealized problems. In section 2 we describe the details of the numerical method and present our treatment of critical layers. In section 3 the method is illustrated on several example problems and compared with existing results where possible. A discussion is given in section 4, and conclusions are drawn in section 5. Finally, appendices are included with details of the series expansions of solutions in the critical layers and notes on the MATLAB implementation.
2. The numerical method
A shooting method is a natural choice for the TG equation, as it reduces the eigenvalue problem to one of optimization and thus allows for control over the search region in the (cr, ci) plane. As we shall discuss, the shooting process also facilitates the task of imposing the relevant boundary conditions, even in the radiating case. Shooting methods are a popular choice for solving boundary value problems in general and are described extensively by Ascher et al. (1988). Hazel (1972) used a shooting method in his analysis of solutions to the TG equation for idealized flows and stratification profiles. The numerical method that follows is inspired by this earlier work.
For the remainder of this section we will assume α and J are given and fixed; finding unstable solutions throughout the (α, J) plane is achieved by iterating over the desired values.
a. The shooting method
We define the computational domain to be the interval −H ≤ z ≤ H. This interval is split into two subdomains about a matching point zm. Typically we set zm = 0; however, if a critical layer approximation is required, this value is modified (as discussed further in section 2d). We use the subscript “




Standard algorithms exist to solve the constrained optimization problem [Eq. (7)]; our implementation uses the MATLAB Optimization Toolbox (appendix A). To facilitate convergence to local minima, initial estimates for cr and ci are required, and Howard’s semicircle theorem [Eq. (3)] provides the necessary guidance. We simply construct a Cartesian grid over the semicircle in the complex c plane, and from each point compute a few iterations in the minimization of |F(cr, ci)|2. Results are then sorted by objective value, and poorly converged solutions are discarded. The remaining iterates are clustered via k-means, and the cluster centers are used as seed points for the full minimization process, where many iterations are allowed. This procedure is intended to reduce computational cost by eliminating iterates that are unlikely to converge and focusing on those that are most likely to succeed.
b. Computing ϕ
(z) and ϕ
(z)




















c. Boundary conditions
The two most physically relevant boundary conditions for the TG problem are rigid-lid and radiation conditions. Mixtures of these conditions (where one boundary is radiating, the other is rigid) are also relevant, but we will not discuss them in detail, as they can be implemented by combining the process for the radiation and rigid-lid conditions in an obvious manner.

When applying radiation boundary conditions (BCs), it is apparent that the computational domain half-width H must be chosen large enough so that the velocity and stratification profiles are well approximated by their far-field values. The appropriate value of H does not depend on the wavenumbers under investigation; it is only necessary that H be large enough for the far-field relationship between ϕ and ϕ′ to hold. It is also noteworthy that condition (18) depends on c in a nonlinear fashion. This poses no extra difficulty in the implementation of our shooting method, as the value of c is known prior to each calculation of F(cr, ci).
d. Treatment of critical layers
Critical layers pose the primary difficulty in the numerical solution of the TG equation. The reason for this is evident in Fig. 1, where an eigenfunction with a critical layer at zc = 0 is depicted. The cusplike structure of the real part of the eigenfunction and steep slope of the imaginary component within the critical layer can be explained from inspection of the asymptotic series expansions detailed in appendix B. For the simplest nondegenerate case, we see that the eigenfunction solution near a critical point zc is, to leading order, a linear combination of the terms
The real and imaginary components of an eigenfunction with a critical layer approximation at zc = 0. The cusplike structure of the real component and the very steep slope of the imaginary component of ϕ(z) are typical of critical layers.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
The purpose of TGsolver is to find unstable eigenvalues (ci > 0), and our casting of the eigenvalue problem as a constrained optimization problem largely allows us to avoid points for which the solution will be exactly singular. Even so, in certain parameter regimes the only unstable eigenvalues may have
To handle these troublesome points, we need a mechanism to decide when to use a critical layer approximation, and a method for determining the width of the critical layer. We accomplish the first task by using a slope threshold. For a candidate critical layer, we estimate the magnitude of the slope contributions at the critical point using the leading-order components of the series solutions (appendix B). If the sum of the slope contributions exceeds a preset cutoff value (which is a tunable parameter in TGsolver), then a critical layer approximation is used. The half-width of the critical layer, referred to as Δcl, is chosen so that







The approach described above is limited to handling at most one critical layer. For nonmonotonic velocity profiles where multiple critical layers may be present at a value of cr, it is necessary to set δ (the lower bound on ci) to a relatively large value to ensure that the eigenfunctions are well behaved near any critical point. A future version of TGsolver will include expanded functionality for treating multiple critical layers.
3. Examples
We now present examples illustrating the use of TGsolver, providing comparisons with existing results where possible. We will pay particular attention to example profiles for which at least some analytical results are known.
a. The Rayleigh problem of Michalke (1964)
In TGsolver, we do not make use of this simplification, but as can be seen in Table 1, our calculations of ci are in good agreement with Michalke’s over a range of α values (although there is a very small positive bias of the TGsolver estimates). For each unstable eigenvalue reported in the table, we found |cr − 1/2| < 10−7.
Comparison of TGsovler results with results from Michalke (1964, denoted as M64) for the Rayleigh problem [Eq. (22)]. Relative error is defined by |ci(TGSolver) − ci(M64)|/ci(M64).
b. A mixing layer (Hazel 1972)
(left) Mixing layer velocity and (right) buoyancy profiles. The buoyancy profile for the Hazel problem [Eq. (23), solid curve] and for the misaligned stratification and shear profiles [Eq. (24) with d = 0.25, dashed curve] are shown.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
In Fig. 3 we plot contours of the imaginary part of the phase speed (logarithmically scaled) in the (α, J) plane, with the dashed line representing the known stability boundary. The calculations were performed with a radiating boundary condition at H = 16 to approximate an unbounded domain. All unstable modes are found to lie within the expected region in the (α, J) plane. This calculation extends Hazel’s earlier results by also providing the phase speeds of the instabilities. The ci values of unstable modes tend to increase with decreasing α and J, so that in the bottom left-hand part of the domain, the ci values are large enough that critical layer approximations are unnecessary. As can be seen in the figure, however, ci values are greatly reduced near the upper and right portions of the stability boundary, and critical layer approximations are necessary for accurate estimates of those eigenvalues.
A contour map of log10 (ci) for the mixing layer example [Eq. (23)]. Radiation BCs were used to approximate an unbounded domain. The dashed line represents the analytical stability boundary, and no unstable modes are visible outside of the predicted unstable region. The jaggedness of the contours near the stability boundary is an artifact of the resolution in α and J used for this calculation.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
It is interesting to consider how the domain height affects the stability characteristics of this problem. To that end, we imposed rigid-lid conditions and computed the locus of maximal instability in the (α, J) plane for several values of H (Fig. 4). Recall that the growth rate of an unstable mode is defined by ωi = αci. To our knowledge, the case H → ∞ is the only available value for comparison, and our results agree with those reported by Hazel (1972) to three or four significant digits. These curves, along with the stability boundary for H → ∞ shown in Fig. 3, demonstrate the known phenomenon of longwave destabilization due to boundaries. We see that when H → ∞ and α is near zero, instability is only possible for weak stratifications J < α(1 − α). From the curves of maximum instability, however, it is apparent that decreasing H tends to shift the most unstable modes to longer wavelengths. In fact, for H ≈ 2.7 longwave instability is possible even for strong stratifications with J near one-quarter.
The locus of maximum instability at different domain half-widths. At each value of J, a bound-constraint optimization problem was solved to determine the most unstable wavenumber α.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
Another interesting observation from Fig. 4 is the change in character of the curves of maximum instability for large and small H values. For H ≥ 5, we observe that these curves are nearly vertical, with a slight rightward bend. However, as H decreases below 4, they veer sharply to the longer wavelength regime.
In Fig. 5 we plot the growth rates ωi of the most unstable modes as a function of J and observe the expected trend toward weaker instability with increasing stratification strength. The maximal growth rates at large J values are very similar for each observed value of H ≥ 2.7.
The growth rate ωi = αci of the most unstable wave as a function of J for different domain half-widths.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
The longwave destabilization effect is especially pronounced when we compute the largest J value for which instability can be found at α = 0 (Fig. 6, solid curve). Denoting these critical J values by J*, we see from the figure that J* initially increases as H is decreased from ∞, attaining a maximum near H ≈ 2.7, after which J* rapidly decreases. For H ≤ 1.2, no unstable modes for the problem can be found. These results are in agreement with those reported by Hazel (1972), who compared the longwave stability of the shear layer to that of a two-layer fluid to explain the critical value H = 2.7.
Longwave destabilization as a function of the domain half-width H at various offset values d. The critical value J* is the largest value of J for which instability can be found at α = 0.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
From a physical perspective, the destabilization of long waves by boundaries is of some importance in the geophysical setting. Even in atmospheric models with only one rigid boundary, the phenomenon is observed. Varying the proximity of a velocity inflection point to the boundary can cause substantial changes in the stability characteristics of long waves (see Lalas and Einaudi 1976 for a discussion).
c. Asymmetric mixing layers
We note that the stability characteristics for the flow are identical for misalignments of +d and −d. To understand this, first note that for any velocity and buoyancy profile with an eigenvalue c, the complex conjugate c* is also an eigenvalue. Next, with N2(z) an even function about d and U(z) an odd function about zero, we also see that any eigenvalue c for the offset +d corresponds to an eigenvalue −c at an offset of −d. Naturally, it follows that if c is an unstable eigenvalue for the offset +d, then −c* is an unstable eigenvalue for the problem with an offset of −d. The sign of d changes only the direction of propagation of an unstable mode, not the growth rate. This argument is valid for flows on unbounded domains and finite domains with rigid boundaries. However, on finite domains with radiating boundary conditions, the coupling of an eigenvalue c with its complex conjugate c* is broken (Sun et al. 1998), so the stability characteristics of flows with offsets +d and −d may differ.
As a rough first estimate of the effects of a misalignment (d ≠ 0), we can use the Richardson number criterion (2) to predict that as |d| increases, the flow will become susceptible to instability at larger J values. This is confirmed by the structure of the contours of log10 (ci) for the case d = 0.5 (Fig. 7). These contours are qualitatively similar to those in the d = 0 case, with the largest ci values found near the origin in the (α, J) plane, but unstable modes exist for J values outside of the d = 0 stability boundary.
Contours of log10 (ci) for the asymmetric mixing layer profile with d = 0.5. Misalignment of the velocity and buoyancy profiles introduces unstable modes at larger values of J, and beyond the stability boundary for the aligned case d = 0 (dashed line).
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
We now return to Fig. 6 and consider the largest value of J for which longwave instability can be found as rigid-lid boundaries are moved in from infinity. Curves are displayed at offset values of d = 0, 0.1, 0.25, 0.5. We observe that while the critical value of H* ≈ 2.7 at d = 0 is reduced to H* ≈ 2.5 when d = 0.5, the overall shape of the curve is unchanged by the offset. The longwave destabilization effect appears to be qualitatively robust to the misalignment of the buoyancy and velocity profiles.
This example serves as a step toward justifying the use of the symmetric mixing layer as a model of real geophysical flows. Though nature will seldom offer a flow with perfect symmetry, the qualitative similarity in stability characteristics with the asymmetric model supports the choice of the symmetric model to approximate flow profiles. A much more thorough investigation of the effects of various perturbations to the flow symmetry is necessary for a detailed quantitative understanding of their qualitative implications.
d. An approximately layered flow
Contours of the log10 (ci) for this smoothed profile with n = 5 and β = 0.05 are presented in Fig. 8 (solid lines). The phase speeds of the idealized problem [Eqs. (25) and (26)] were computed as solutions to Eq. (27) and included in the figure as dashed lines, also logarithmically scaled. The analytical stability boundaries [Eq. (28)] are displayed as thin solid lines. We see that the unstable modes of the smoothed problem are confined to the same region as those of the idealized problem. The eigenvalues for the two problems are also very similar, as is evident from the minor differences in the contour lines. The ci values obtained via TGsolver agree with those of the smoothed problem to within a relative error of roughly 10−3 within the core of the unstable region.
Contours of log10 (ci) for the smoothed multilayer problem [Eq. (29); solid lines] and its idealized counterpart (dashed lines). Stability boundaries for the idealized problem are marked with thin black lines. At fixed α the stratification is observed to destabilize the flow through a band of J values. The eigenvalues of the idealized and smooth profiles are in good agreement within the core of the unstable region, with larger differences evident near the boundaries.
Citation: Journal of Atmospheric and Oceanic Technology 31, 12; 10.1175/JTECH-D-14-00034.1
4. Discussion
The examples presented above provide a small sample of the types of problems that can be explored with TGsolver. The ability to compute unstable modes for given flow profiles will enable researchers to pursue many interesting questions about flow stability. It must be noted, however, that TGsolver does have limitations and will perform best under certain conditions, as we now discuss.
Currently, TGsolver is capable of handling at most one critical layer in a stability calculation. This suggests that TGsolver is ideal for monotonic velocity profiles, so that multiple approximations are not required. Our approach of solving the minimization problem [Eq. (7)] does allow us to circumvent this limitation to some extent. By simply setting the minimum imaginary phase speed cutoff δ to be appropriately large, the problems associated with critical layers can be completely removed. In fact, we recommend that for any calculations on a new flow profile, a large value of δ be used initially. This will enable a relatively fast initial exploration of the parameter space. For many purposes, such as where only the largest ci values are of interest, such an analysis should provide adequate results.
Another issue that TGsolver cannot handle is the presence of critical layers at, or very near, a domain boundary. Studies on flows where this is possible can still be conducted; our use of a constrained minimization approach allows us to restrain iterates away from the boundaries. Numerically, this is implemented by simply adding bound constraints on cr.
The performance of TGsolver is affected by the number of points used in the initial discretization of Howard’s semicircle. Increasing the density of points within the semicircle generally improves the method’s ability to detect unstable modes (as better initial guesses for the optimization procedure will be available). However, this improvement must be balanced against the additional computational time that is required.
TGsolver’s performance for a particular problem will also depend on the choice of the critical layer slope threshold. The value used for the examples included here led to robust results for the problems considered, but there is no guarantee that it will be suitable for other flow profiles. The value is left as a user-defined parameter. It is important to note that, by increasing the threshold value, fewer critical layer approximations will be used, and in some cases this will lead to spurious solutions. Some experimentation may be required for best results. Additional experiments comparing Legendre, finite-difference, and other differentiation techniques with the Chebyshev approach may also prove fruitful.
5. Conclusions
We have presented a numerical method for finding unstable modes of the Taylor–Goldstein equation. Our approach uses a shooting method and reduces the eigenvalue problem to a constrained optimization problem (7). The description presented here is implemented in a set of MATLAB programs known as TGsolver, and can be downloaded (web.uvic.ca/~monahana/TGsolver/TGsolver.html). Updates to the program will also be available from this site.
The purpose of TGsolver is to provide a useful tool for researchers to study the stability characteristics of inviscid, stratified parallel shear flows. The singular nature of the TG equation makes it difficult to build a robust solution for all flows of interest, and some of the limitations of our approach are highlighted in section 4. Our constrained optimization approach does allow us to overcome some of the limitations when only large ci values are of interest. Where possible, TGsolver calculations were compared with existing results and were found to be in good agreement.
In future work, we will extend TGsolver functionality to handle multiple critical layers. We shall also apply the approach to the analysis of the stability of observed geophysical flows.
Acknowledgments
We thank the NSERC CREATE Program in Interdisciplinary Climate Science for funding this research. A. M. also acknowledges support from the NSERC Discovery Grants program. We would also like to thank Norm McFarlane for the many useful discussions.
APPENDIX A
Implementation of TGsolver in MATLAB
TGsolver is implemented in the MATLAB programming language, and the majority of the necessary support functions are custom made and included with the code. The exceptions are presented in Table A1.
Special MATLAB functions required by TGsolver.
Initial experiments were conducted using Muller interpolation (a generalization of the secant method to root finding in the complex plane), but the constrained optimization approach was adopted, as it allows for control over the singularity of the equation. The MATLAB function fmincon is set to use the interior point algorithm. Essentially, this algorithm works by attempting Newton steps to minimize a merit function. The merit function incorporates equality and inequality constraint satisfaction in a manner that steers the solution toward feasibility. A detailed description of the method can be found on MathWorks’s documentation page for constrained nonlinear optimization algorithms.
The k-means algorithm is a classic data clustering technique where data points are assigned to a preset number of clusters. In k-means, data points are assigned to the nearest cluster based on the Euclidean distance to the cluster centers. The process is by necessity iterative, as the assignment of points alters the locations of the cluster centers. The clustering of partially converged iterates is done to reduce run time for TGsolver. Starting from each grid point within Howard’s semicircle and allowing the constrained optimization solver to execute a large number of iterations is excessively time consuming. Experience dictates that after just a few iterations, the poorly converged iterates can be discarded. Using k-means enables us to lump together many of the remaining iterates and reduce the number of times that the solver finds the same solution.
APPENDIX B
Expansions for Critical Layers
Here we present Frobenius series expansions that capture the behavior of eigenfunctions near a critical point for the TG equation. Two linearly independent series solutions are required for matching boundary conditions across a critical layer. Within TGsolver we typically use just the leading-order component of each series approximation, but the number of terms used in each approximation can be modified.
Throughout this analysis we assume that U′(zc) ≠ 0. The Rayleigh problem is treated separately, as the solutions are qualitatively different. The analysis here closely follows the framework presented by Bender and Orszag (1999).
a. General notation




b. Expansions for the TG equation
In the context of the TG equation,

c. Expansions for the Rayleigh equation
Now we fix q0 = 0 in (B1), and again seek a Frobenius series of the form (B2). The indicial equation becomes r(r − 1) = 0, and we label the two roots r1 = 1, r2 = 0. Coefficients satisfy the recurrence (B3) with q0 = 0. The Frobenius solution (B2) is valid for r = r1, and we label it ϕ1(z) with a0 = 1. However, since r1 − r0 = 1 is a positive integer, a more elaborate analysis is needed to find the second solution.



d. Estimating critical layer width
Our analysis thus far has been restricted to finding series approximations for (B1), which is itself an approximation of the TG equation. We now argue that when |z − zc| is sufficiently small, the idealized Eq. (B1) does adequately represent the behavior of eigenfunction solutions near critical layers, and it does use our analysis to heuristically determine an appropriate width of the critical layer.



Within TGsolver we typically select a critical layer half-width of
Taking ϵ too small can also have a negative impact, as for small ci values the slope of the solution near the critical layer will grow dramatically. Experience has shown that with ϵ too small, or without using a critical layer at all, unstable modes may be found in regions of stability purely due to numerical error. The choice of ϵ = 0.01 may not work for all problems, especially where critical layers lie very close to boundaries, and some experimentation may be required.
REFERENCES
Ascher, U. M., Mattheij R. M. , and Russell R. D. , 1988: Numerical Solution of Boundary Value Problems for Ordinary Differential Equations. Prentice-Hall, 619 pp.
Bender, C. M., and Orszag S. A. , 1999: Advanced Mathematical Methods for Scientists and Engineers: Asymptotic Methods and Perturbation Theory. Springer-Verlag, 593 pp.
Carpenter, J. R., Balmforth N. J. , and Lawrence G. A. , 2010: Identifying unstable modes in stratified shear layers. Phys. Fluids,22, 054104, doi:10.1063/1.3379845.
De Baas, A. F., and Driedonks A. G. M. , 1985: Internal gravity waves in a stably stratified boundary layer. Bound.-Layer Meteor., 31, 303–323, doi:10.1007/BF00120898.
Drazin, P. G., and Reid W. H. , 1981: Hydrodynamic Stability. Cambridge University Press, 525 pp.
Goldstein, S., 1931: On the stability of superposed streams of fluids of different densities. Proc. Roy. Soc. London, 132A, 524–548, doi:10.1098/rspa.1931.0116.
Hazel, P., 1972: Numerical studies of the stability of inviscid stratified shear flows. J. Fluid Mech., 51, 39–61, doi:10.1017/S0022112072001065.
Howard, L. N., and Maslowe S. A. , 1973: Stability of stratified shear flows. Bound.-Layer Meteor., 4, 511–523, doi:10.1007/BF02265252.
Kundu, P. K., and Cohen I. M. , 2004: Fluid Mechanics. 3rd ed. Elsevier Academic Press, 759 pp.
Lalas, D. P., and Einaudi F. , 1976: On the characteristics of gravity waves generated by atmospheric shear layers. J. Atmos. Sci., 33, 1248–1259, doi:10.1175/1520-0469(1976)033<1248:OTCOGW>2.0.CO;2.
Maslowe, S. A., 1986: Critical layers in shear flows. Annu. Rev. Fluid Mech., 18, 405–432, doi:10.1146/annurev.fl.18.010186.002201.
Mastrantonio, G., Einaudi F. , Fua D. , and Lalas D. P. , 1976: Generation of gravity waves by jet streams in the atmosphere. J. Atmos. Sci., 33, 1730–1738, doi:10.1175/1520-0469(1976)033<1730:GOGWBJ>2.0.CO;2.
Michalke, A., 1964: On the inviscid instability of the hyperbolic-tangent velocity profile. J. Fluid Mech., 19, 543–556, doi:10.1017/S0022112064000908.
Mobbs, S. D., and Darby M. S. , 1989: A general method for the linear stability analysis of stratified shear flows. Quart. J. Roy. Meteor. Soc., 115, 915–939, doi:10.1002/qj.49711548808.
Smyth, W. D., Moum J. N. , and Nash J. D. , 2011: Narrowband oscillations in the upper equatorial ocean. Part II: Properties of shear instabilities. J. Phys. Oceanogr., 41, 412–428, doi:10.1175/2010JPO4451.1.
Sun, C., Smyth W. D. , and Moum J. N. , 1998: Dynamic instability of stratified shear flow in the upper equatorial Pacific. J. Geophys. Res., 103, 10 323–10 337, doi:10.1029/98JC00191.
Taylor, G. I., 1931: Effect of variation in density on the stability of superposed streams of fluid. Proc. Roy. Soc. London, 132A, 499–523, doi:10.1098/rspa.1931.0115.
Tedford, E. W., Carpenter J. R. , Pawlowicz R. , Pieters R. , and Lawrence G. A. , 2009: Observation and analysis of shear instability in the Fraser River estuary. J. Geophys. Res.,114, C11006, doi:10.1029/2009JC005313.
Trefethen, L. N., 2000: Spectral Methods in MATLAB. Software, Environments, and Tools, Vol. 10, SIAM, 165 pp.