# eady_growth_rate

Compute the maximum Eady growth rate.

*Available in version 6.4.0 and later.*

## Prototype

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; This library isautomatically loaded; from NCL V6.2.0 onward. ; No need for user to explicitly load. function eady_growth_rate ( th : numeric, ; float, double, integer only u : numeric, z : numeric, lat : numeric, opt [1] : integer, dim [1] : integer ) return_val [dimsizes(z)] : float or double

## Arguments

*th*

Potential temperature (K).

*u*

Zonal wind (m/s). Same dimensionality as *th*.

*z*

Geometric height (m). Same dimensionality as *th* or one-dimensional: say *z*(lev). See the description
of *dim*.

*lat*

Latitudes (degrees). Same dimensionality as *th*.
**NOTE:** This may require the user to use ** conform** or

**prior to using the function.**

**conform_dims***opt*

- opt=0, Return the Eady growth rate
- opt=1, Return the Eady growth rate and the vertical gradient of the zonal wind (du/dz)
- opt=2, Return the Eady growth rate and the vertical gradient of the zonal wind (du/dz) and the Brunt-Vaisala frequency

*dim*

If the dimensionality of variable *z* conforms to the dimensionality of *th*, this argument is ignored.
However, if *z* is one-dimensional: *z*(**lev**), this is the dimension number of *th* to
which *z* matches.

th(lev) .....dim=0 th(lev,:) .....dim=0 th(lev,:,:) .....dim=0 th(:,lev,:,:) .....dim=1

## Return value

A multi-dimensional array of the same size and shape as *th*.
The output will be double if *th* is of type double.

## Description

The maximum Eady growth rate (EGR) is a measure of baroclinic instability.

eady_growth_rate = 0.3098*g*whereabs(f)*abs(du/dz)/brunt_vaisala_atm

*f*is the Coriolis parameter (1/s) and

*g*is gravity (m/s).

The **Eady Model** is based on many assumptions.
The scale analysis that allowed the simplification of the equations was based on a mid-latitude assumption.
Hence, calculated values "near" the equator may/may-not be useful.
As they say: Beauty, is in the eyes of the beholder. [See the discussion below.]

Typically, this function is applied to (say) 00Z, 03Z, ... or daily mean variables.
**EGR is a non-linear quantity**.
Hence, eady_growth_rate should not be directly applied to (say) monthly means variables.
If a monthly climatology of EGR is desired, the EGR values at the high frequency temporal time steps should be calculated;
then, use ** calculate_monthly_values**.
Other, time averages could also be calculated: eg: daily means or (say) pentad averages could be calculated via:

**or**

**calculate_daily_values****.**

**calculate_segment_values**References:E. Eady (1949): Long waves and cyclone waves Tellus, 1, 33-52http://dx.doi.org/10.1111/j.2153-3490.1949.tb01265.xR. S. Lindzen and Brian Farrell, 1980: A Simple Approximate Result for the Maximum Growth Rate of Baroclinic Instabilities. J. Atmos. Sci., 37, 1648-1654.http://dx.doi.org/10.1175/1520-0469(1980)037<1648:ASARFT>2.0.CO;2Simmonds, I., and E.-P. Lim (2009): Biases in the calculation of Southern Hemisphere mean baroclinic eady growth rate Geophys. Res. Lett., 36, L01707http://dx.doi.org/10.1029/2008GL036320An application to the ocean:Sloyan, B. M., and T. J. O'Kane, 2015 Drivers of decadal variability in the Tasman Sea J. Geophys. Res. Oceans, 120, 3193-3210http://dx.doi.org/10.1002/2014JC010550

**---------------------------------------------------------------------**

Several posts to ncl-talk@ucar.edu (Feb 2018) were made about the subject of Eady growth rate. The following posts have been slightly edited:

- Initial post (University student): I want to compare the baroclinity of two tropical cyclone environments. What is the best way to do this using NCL?
- Second post (NOAA person): Okay this is tangential to the topic but VERY INTERESTING in its own right.
**(a)**How well do the observed growth rates or (presumably large scale because small length scale damps) compare with the theoretical Eady growth rates and (something I should know but don't)**(b)**do Eady growth rates incorporate the effect of moisture on stratification?

A response:

[1] I don't think the Eady model is intended to tell you something about tropical cyclone environments. It's really intended to describe the growth of mid-latitude eddies. Since it's formulated on an f-plane, I don't think it's really appropriate for use in tropical environments. That being said, the eady growth rate really is just a measure of baroclinicity so it might be fine to determine what the baroclinicity is in their tropical cyclone environments.

For [2b] "No" I think you'd have to include a diabatic heating term in the thermodynamic equation that's being solved to account for the release of heat associated with the convergence of moisture and precipitation that accompanies the growing wave. With my expert googling skils, I came across this...

For [2a] I don't really know the answer. But I'm also not sure how you would measure the real world growth rates. The eady model is intended to describe the growth of the normal modes and I think you could compare the predictions with a normal mode calculation using the real world basic state but I'm not sure how you would actually measure the growth rates of the real world. I also think it might give you a dimensionless growth rate which tells you what scales dominate by growing fastest, but I'm not sure to what extent it is something that can be compared with the real world. In short, I don't really know.https://iri.columbia.edu/~tippett/pubs/moist.pdf

Slightly edited followups by the original posters to the above response:

- NOAA person: Where the concept is relevant (with an enormous number of caveats, yes) is to answer the fundamental question, will TC interaction with baroclinicity, induce transition to a growing or stable baroclinic system (often observed) or will the TC perturbation just damp out (also often observed) with a theoretically expected but hard to actually point out, increase in baroclinic available potential energy for some future perturbation to extract. I think it is a tractable forecast and theoretical modeling problem, again with the caveats mentioned.
Casually plugging this into a program without understanding the concepts is worrisome, also agreed. Thanks everyone for the response!

- University student: Thank you. As mentioned, casually using the function without completely understanding what it was intended for and whether it is applicable, would mislead interpretations. That is exactly what I wanted to avoid. The above emails have certainly pointed me in a direction where I can learn more about the topic and its applicability to the problem I am trying to address.

Additional references:

The very last part of the following discusses the "shortcomings" of simple baroclinic models.http://www.atmosp.physics.utoronto.ca/~isla/8_baroclinic.pdfhttp://kestrel.nmt.edu/~raymond/classes/ph589/notes/baroclinic/baroclinic.pdf

**NOTE:** About 5 years prior to the release of this function,
Carl Schreck [ North Carolina Institute for Climate Studies ] developed an NCL script that calculates the Eady growth rate.
It is **here**

## See Also

**coriolis_param**,
**brunt_vaisala_atm**,
**pot_temp**,
**rigrad_bruntv_atm**,
**static_stability**

## Examples

**Example 1**: Read data from a WRF file and calculate assorted quantities.

;---------------------------------------------------------- ; WRF DATA ;---------------------------------------------------------- a =The (edited) output is:addfile("wrfout_d01_2013-05-17_12","r") ;[Time|1]x[bottom_top|40]x[south_north|324]x[west_east|414] ; 0 1 2 3 th =wrf_user_getvar(a,"theta",-1) ; potential temperature (degK) z =wrf_user_getvar(a,"z",-1) ; model height ua =wrf_user_getvar(a,"ua" ,-1) ; u at mass grid points ;--- Read latitudes ; The 'eady_growth_rate' function requires that 'lat' and 'th' agree ; Use 'conform' the propogate the lat values xlat = a->XLAT ; [Time|1]x[south_north|324]x[west_east|414]printVarSummary(xlat) XLAT =conform(th, xlat, (/0,2,3/)) ; (1,40,324,414) egr =eady_growth_rate(th, ua, z, XLAT, 0, 1)printVarSummary(egr)printMinMax(egr, 0) ; print all vertical values at an arbitrarily chosen grid point nt = 0 ; print 1st time step ix = 20 ; arbitrary jy = 21 pr =wrf_user_getvar(a,"pressure" ,-1) ; for printingsprint("%7.1f" , pr(nt,:,jy,ix)) \ + sprintf("%7.1f" , z(nt,:,jy,ix)) \ + sprintf("%15.5e", egr(nt,:,jy,ix)) \ + sprintf("%7.2f", egr(nt,:,jy,ix)*86400) )

Variable: egr Type: float Total Size: 20925216 bytes 5231304 values Number of Dimensions: 4 Dimensions and sizes: [Time | 1] x [bottom_top | 39] x [south_north | 324] x [west_east | 414] Coordinates: Number Of Attributes: 3 _FillValue : 1e+20 long_name : maximum eady growth rate units : (0) maximum eady growth rate: min=6.5775e-13 max=0.00406928 P Z EGR (1/s) EGR (1/day) (0) 1009.1 29.2 -6.51605e-06 -0.56 (1) 1001.0 99.1 -4.83609e-06 -0.42 (2) 990.3 192.9 -2.27035e-06 -0.20 (3) 976.8 313.0 -9.32204e-07 -0.08 (4) 960.0 463.0 3.49967e-06 0.30 (5) 939.6 647.4 1.24992e-05 1.08 (6) 915.3 872.0 1.05712e-05 0.91 (7) 886.7 1142.9 2.63051e-06 0.23 (8) 853.8 1463.4 3.39886e-06 0.29 (9) 817.2 1835.1 4.34887e-06 0.38 (10) 777.3 2258.8 2.34866e-06 0.20 (11) 734.6 2733.7 5.76828e-07 0.05 (12) 689.6 3259.3 3.18521e-06 0.28 (13) 642.9 3835.0 4.51157e-06 0.39 (14) 596.3 4442.5 2.02051e-06 0.17 (15) 552.0 5057.9 9.44995e-07 0.08 (16) 510.4 5674.7 1.08149e-06 0.09 (17) 471.4 6292.0 5.79138e-06 0.50 (18) 434.8 6907.9 1.05950e-05 0.92 (19) 400.5 7523.3 5.64395e-06 0.49 (20) 368.4 8139.1 3.27011e-07 0.03 (21) 338.4 8755.4 8.26907e-07 0.07 (22) 310.3 9372.1 3.56708e-06 0.31 (23) 284.1 9988.7 7.66039e-06 0.66 (24) 259.7 10606.4 1.39343e-05 1.20 (25) 236.9 11225.7 1.61388e-05 1.39 (26) 215.7 11845.9 1.17152e-05 1.01 (27) 195.9 12465.8 4.51332e-06 0.39 (28) 177.6 13085.9 5.23316e-06 0.45 (29) 160.6 13707.9 1.15163e-05 1.00 (30) 144.8 14335.0 7.09510e-06 0.61 (31) 130.2 14971.9 5.89672e-06 0.51 (32) 116.7 15621.2 6.78411e-06 0.59 (33) 104.3 16288.0 4.65560e-06 0.40 (34) 92.8 16976.2 4.16494e-06 0.36 (35) 82.2 17686.4 4.20652e-06 0.36 (36) 72.6 18420.1 2.95023e-06 0.25 (37) 63.7 19185.4 2.68033e-06 0.23 (38) 54.7 20094.5 3.04996e-06 0.26