Assignment 4

Question 1:

In class we analyzed the grey gas "leaky greenhouse" model with 2 atmospheric layers and 1 surface layer and a constant atmospheric absorptivity / emissivity \(\epsilon\). In particular we worked out the following results:

\(OLR = (1-\epsilon)^2 \sigma T_s^4 + \epsilon (1-\epsilon) \sigma T_1^4 + \epsilon \sigma T_2^4\)

where the three terms represent contributions to the outgoing longwave radiation from (respectively) the surface, the lower atmospheric layer, and the upper atmospheric layer.

and the radiative equilibrium solution for this model is

\(T_s = \bigg(\frac{2+\epsilon}{2-\epsilon}\bigg)^\frac{1}{4} T_e\)

\(T_1 = \bigg(\frac{1+\epsilon}{2-\epsilon}\bigg)^\frac{1}{4} T_e\)

\(T_2 = \bigg(\frac{1}{2-\epsilon}\bigg)^\frac{1}{4} T_e\)

with \(T_e\) the planetary emission temperature.

Suppose the column is initially in radiative equilibrium with \(\epsilon = 0.48\). We then abruptly add extra greenhouse gases to the atmosphere, causing a 10% increase in \(\epsilon\). Calculate using pencil and paper

  1. the change in the components of the OLR coming from each level (surface, lower atmosphere, upper atmosphere), immediately after increasing \(\epsilon\)
  2. the same change after the column adjusts to its new radiative equilibrium temperature profile. i.e. compare the three components of the OLR in the new equilibrium state to the old equilibrium state.
  3. Describe in words why/how the column emits the same total radiation to space in the new equilibrium while keeping the surface warmer.

Show your work throughout (i.e. don't just write down some numbers).

IMPORTANT: Work out your answers analytically, i.e. using pencil and paper! You may wish to verify your answers using ColumnModel.py with 2 levels, but this is not necessary.

Question 2:

  1. Using a column model object from ColumnModel.py with a large number of levels in the atmosphere (your choice), make a plot showing (on the same graph) the temperature profile as a function of pressure at two different radiative equilibrium states: before and after a 10% increase in eps (representing an increase in greenhouse gases). Before plotting the temperatures, verify that the column is very close to energy balance in both states.

  2. You will find that your column object contains a variable called OLR_sfc, which keeps track of the contribution to the total OLR from the surface. Using this, repeat the calculation from Question 1 with your numerical column model. Specifically, calculate the changes in the OLR contributions coming from the surface
    1. from the intial equilibrium to immediately after adding the greenhouse gases, and
    2. from the intial equilibrium to the new, warmer equilibrium.
  3. The column object also contains an array called OLR_atm which (you guessed it!) keeps track of the contributions to the total OLR from each atmospheric layer. Use this to calculate the changes in the atmospheric contributions to the total OLR, just like you did above. But this time, present your results as a graph of OLR changes versus pressure (plot both curves on the same figure).

  4. Verify that your answers from parts 2 and 3 are qualitatively consistent with what you found in Question 1 (the number will not be identical). To compare the atmospheric contributions to what you found in the 2-layer atmosphere, sum up all the elements of OLR_atm above and below 500 hpa.

Include all your code.

Hints for Question 2

In [1]:
#  create an array of 6 random numbers
joe = np.random.random(6)
print joe  # the whole array
print joe[0:3]  # just the first 3 elements
print joe[3:6]   # just the last 3 elements
print joe[3:]  # a shortcut that means "start at element [3] and go to the end"
[ 0.98306262  0.21680308  0.51102448  0.8768126   0.68383232  0.66468872]
[ 0.98306262  0.21680308  0.51102448]
[ 0.8768126   0.68383232  0.66468872]
[ 0.8768126   0.68383232  0.66468872]

Here is some example code making a nice graph of temperature versus pressure, and adding the surface temperature as a single point.

Note that the column in this example is not at radiative equilibrium!

In [3]:
#  Create a column object
import ClimateUtils as clim
import ColumnModel
col1 = ColumnModel.column( params={'num_levels':100} )

# Make the plot
fig = figure( figsize=(10,8) )  # you can fiddle with the figure dimensions
ax = fig.add_subplot(111)   #  creates an axis object inside the figure window
ax.plot( col1.Tatm, col1.p , 'b-' )  # plots atmospheric temperature
ax.plot( col1.Ts, clim.ps, 'bo', markersize=16 ) # adds a big blue dot for surface temperature
#   The color is specified by the letter 'b' above... 
# you can also use 'r' (red), 'y' (yellow), 'g' (green), 'k' (black) and others
ax.invert_yaxis()  # this line flips the graph upside down so low pressure is above high pressure!
ax.set_xlabel('Temperature (K)', fontsize=16)
ax.set_ylabel('Pressure (hPa)', fontsize=16 )
ax.grid()  #  this just draws nice grid lines

Question 3

Repeat all of Question 2, but this time use convective adjustment to put the column into radiative-convective equilibrium rather than simple radiative equilibrium. Use a critical lapse rate of 6 K / km.

Follow the examples on this page: http://www.atmos.albany.edu/facstaff/brose/classes/ENV480_Spring2014/styled-5/code-3/index.html

In particular, to create your column, do something like this:

In [5]:
rce_col = ColumnModel.column( params = {'adj_lapse_rate':6, 'abs_coeff':1.7E-4, 'num_levels':50} )

This will set up a 50-atmospheric-layer column that adjusts to 6 K / km, and also changes the default value of \(\epsilon\) in order to get a surface temperature of 288 K (compensating for the cooling effect of the convection).

Just as in Question 2, you will have to first make sure your column is in energy balance, and then apply a greenhouse gas forcing by increasing eps by 10%.

Repeat steps 1-3 from Question 2. Include all your code.

Comment on the differences in greenhouse warming between Radiative Equilibrium and Radiative-Convective Equilibrium.