Fall Quarter 2013

Video of my Astrobiology Institute lecture from Monday is available here The recording of the Thursday, Oct 17 make-up lecture can be viewed here

- Synopsis: This class will teach the basic physical principles of thermodynamics and radiative transfer needed to build simple models of the climates of Earth and other planets. Examples will be drawn from Earth's climate evolution over the past four billion years, the near and distant future climate of Earth (including global warming), the climates of Solar System planets, and conjectured climates of the newly discovered extrasolar planets.
- Textbook: The textbook for this course is my book,
*Principles of Planetary Climate*. I will be following this book quite closely (primarily Chapters 1-3). Problems will be taken from the problems and projects in the book. See the PlanetaryClimateBook link for information and additional course resources - Course resources (software, useful links, datasets) are found at the PlanetaryClimateBook link.
- TA and office hours: Feng Ding (fding.dfdfdf (at) gmail.com). Office hours will be arranged based on demand.
- About Python: The computational exercises in this course will be carried out using the programming language Python, which is free and can be installed on Mac OS, Linux or Windows. No prior programming experience is assumed, and Python will be taught as part of the course. Indeed, this course serves as an introduction to scientific programming. For information on installing and using Python, click on the Python link at PlanetaryClimateBook
- Labs, problem sessions and Python clinic: Approximately once per week, time and day to be arranged. The primary purpose of these is to help people get used to solving problems using Python. Some of the problem assignments are referred to as "labs," but they can be done on your own computer or over the network whenever it is convenient for you (so long as you meet the due date).
- Problem sets: Approximately once every 10 days (one per three lectures)
- Midterm: None
- Final exam: Take-home
- Prerequisites: Classical mechanics, including energy concepts (kinetic and potential energy, Newton's Joules, Watts and all that). It would be helpful if you have seen some thermodynamics previously, but not strictly necessary. Single-variable calculus, including simple first-order differential equations.

- Current Assignment (Assigned 12/3/2013, due 12/13/2013) Note-- this problem set covers material from the last week of lectures that will not be extensively covered in the exam
- Problem 2012S3.2: This problem makes use of the dataset ADLEOrev.txt , which gives the spectrum of the flux from the star AD Leo as observed from Earth. The spectrum is given in units of W/m**2/micron, so notice this is the flux density expressed in wavelength space, not frequency space. Answer the following questions:
- (a) Why does this measurement yield a "flux per wavelength" rather than a "flux per wavelength per steradian"?
- (b) Do a crude estimate of the temperature of this star, based on using the Wien Displacement Law on the wavelength where the emission peaks. Remember to take into account the fact that this is the spectrum in wavelength space, so you have to use the proportionality constant appropriate to the wavelength rather than frequency spectrum. (The number you need is given in the text).
- Write a function Bw(w,T) expressing the Planck density in wavelength space, with wavelength w measured in microns. Find values A and T such that A*Bw(w,T) is a good approximation to the observed spectrum. (It is acceptable to do this by just trial and error and looking at the graphs, but if you can think of a systematic way to determine the best fit, that is even better). Discuss where the deviations from blackbody emission are greatest. How does the ultraviolet emission compare with the blackbody flux? (You'll need to plot the results on a log scale in order to see the details of the weak UV emission).
- AD Leo is 4.9 parsecs from Earth. Use the coefficient A in your fit above to estimate the luminosity of the star, in units of Solar luminosity. Compare your result with the reported luminosity of AD Leo.
- Compute the cumulative flux spectrum of AD-Leo from the dataset, and display it in both wavenumber and wavelength space.

- 3.24 (Freeze-out time of a magma ocean)
- 3.34 (Snowball Earth bifurcation)
- 3.29

- Problem 2012S3.2: This problem makes use of the dataset ADLEOrev.txt , which gives the spectrum of the flux from the star AD Leo as observed from Earth. The spectrum is given in units of W/m**2/micron, so notice this is the flux density expressed in wavelength space, not frequency space. Answer the following questions:
- (Assigned 11/19/2013 . Due 11/27/2013)
- Comparison of moist adiabat with data: 2.55 (see 2.22 for description of the dataset).
*Python tips*: (1) The dilute moist adiabat is adequate for this problem, so you may use your own calculation of the moist adiabat from the previous problem set, if you like. Alternatively, you can use the`phys.MoistAdiabat(...)`

class to create an object that computes the general moist adiabat given a pair of input gases. Type`help(phys.MoistAdiabat)`

for instructions. (2) In order to compare the sounding data with your calculated moist adiabat, it is necessary to be able to plot two data sets with different numbers of points on the same graph. One way to do this is to interpolate the computed adiabat to the pressure levels given in the soundings, using interp(...), but I have extended the`plot(...)`

command in`ClimateUtilities`

to make this process easier.`plot(...)`

can now take arbitrary numbers of`Curve`

objects as arguments, and each`Curve`

object can have a different resolution (number of points). The plot appearance data (axes, titles, etc.) is taken from the first argument. For example, to plot a sounding in curve`cSounding`

and corresponding adiabat in curve`cAdiabat`

, just do`plot(cSounding,cAdiabat).`

Note that the sounding data includes some data columns (relative humidity) you don't want to plot on the same plot, so use the`extract`

method in the`Curve`

object to extract the data columns you want (pressure and temperature). To use the updated plot function, you need to download the current version of`ClimateGraphicsMPL`

from the courseware web site. The updated version also implements Jonah's trick for putting the legend on the side so it doesn't cover any data curves. - Basic blackbody radiation problems: 3.7,3.8,3.12,3.13,3.20

- Comparison of moist adiabat with data: 2.55 (see 2.22 for description of the dataset).
- (Assigned 11/8/2013 . Due 11/18/2013)
- Latent heat problems: 2.32,2.33
- Clausius-Clapeyron: 2.37,2.45
- Moist adiabat: 2.46, 2.49,2.50,2.52 (You may use the
`integrator`

class instead of rolling your own, if you want)

- (Assigned 10/30/2013 . Due 11/7/2013)
- Suppose that above some distance rs from the center of the planet, the mass of the atmosphere is low enough that it has negligible effect on gravity. You can think of rs as the radius of the "surface" of the planet, especially in cases where the planet has a real surface like Earth, Venus or Mars. In that case, the acceleration of gravity at higher altitudes can be written g(r) = gs*(rs/r)**2 , where gs = g(rs), i.e. the "surface gravity". Use the hydrostatic relation to determine rho(r) for r>rs, assuming the ideal gas equation of state. Show that rho does not go to zero as r goes to infinity, and give an expression for the limiting value of rho. Calculate this limiting value assuming gs = 10 m/s**2 and rs is the radius of Earth, for the case of N2 and H2. To get a feel for whether these densities are high enough to worry about, figure out how large an r you have to go to before the mass in this constant-density region becomes comparable to the mass of the Earth. What do you think really happens to the atmospheric gas as you go to very high altitudes?
- Do the problems on the Van der Waals equation of state and the corresponding mass-radius relation here. If you want to see a derivation of this equation of state, there is a good write-up in Wikipedia. The ideal gas mass-radius Python script is here . The expressions for the reference temperature pressure and density for H2 and CO2 are given in the Wikipedia article, and you can get the gas-dependent constants you need from the table here, though you'll need to convert the units to mks.

- (Assigned 10/18/2013 . Due 10/28/2013)
- 2.16 ,2.19
- Introduction to numerical integration of differential equations: 1.7 (Read description of midpoint method in Wikipedia or Numerical Recipes)
- 2.13,2.20
- Hydrostatics: 2.24,2.25,2.27

- (Assigned 10/8/2013 . Due 10/17/2013) Send in problems to Feng by email, or leave a printout in Feng's mailbox.
- Basic physics warm-up problems: 1.9, 1.14, 1.15
- 2.6, 2.11, 2.12, 2.14
- Python practice exercises. As a prelude to doing these exercises, make a directory for your work, and download ClimateUtilities.py, ClimateGraphicsMPL.py and phys.py and put in your working directory. Later I will show you how you can set up Python so it will find generally useful modules like these regardless of which directory you are working in. For now, just put the scripts you write yourself in the same directory as these utility modules, and when you run your script Python will find what it needs.
- As an introduction to simple data analysis and data plotting, do Problem 1.3. The GISS temperature dataset can be downloaded directly from the link under Chapter 1 Data on the Data page of the PlanetaryClimateBook site. See the section on "The Curve() Object and its Uses" in the Python tutorial, and also the Python Tips part of Problem 1.2. (You don't need to do Problem 1.2). Note that the disk icon in the MatPlotLib window allows you to save your graphics as a png file, for inclusion in your write-up. An alternative approach to saving graphics, if you have some problem with that, is to do a screen shot (e.g. using Preview on a Mac).
- 1.3 (Arithmetic on columns)
- 1.5 (Root finding). Just do Newton's method, and not bisection. (Look in Wikipedia or Numerical Recipes if you don't know Newton's method). First write your own Python script to do the Newton's method root finding. Then do the problem by using the newtSolve object in ClimateUtilities. If you imported ClimateUtilities using from ClimateUtilities import * , then just type help(newtSolve) to get instructions. if you used import ClimateUtilities, you 'd type help(ClimateUtilities.newtSolve) instead

- (Assigned 9/30/2013 . Due 10/7/2013): Install Python on your computer if you need to. Read my quick-start Python tutorial found here, Sections 2.1 through 2.2. Try out the basic features of the language, through lists, functions, conditionals and use of the numpy array package. Turn in a copy of your interpreter session(s) as a text file, showing what you have tried out (email it to feng ding). Learn how to use
`idle`to edit, save and run a Python script. To see if your graphics is working properly try the following in the interpreter: first import the graphics by typing:`import pylab`

. If this works and you don't get an error message, create a graph by typing:`pylab.plot(range(10));pylab.show()`

. You should see a window with a graph of a straight line appear on your screen. Read Chapter 1 of textbook through Section 1.6 .

- Monday, 12 November. In part of the middle of the lecture my stylus stopped working and I had to move over to the blackboard. You still have audio, but it's probably best to just fast-forward past this section. The missing part of the lecture is covered on pages 146-150 of the text, and discusses the basic way the greenhouse effect works.
- Wednesday, 14 November. (Sorry I dropped my microphone a few times, so the audio may drop out sometimest).
- Thursday, 15 November. Working with the angular distribution of blackbody radiation, Lambert's law, and the projected area rule. Applications to infrared photometry of extrasolar planetary systems.
- Monday, 19 November
- Wednesday, 21 November

- Lecture 2
- Lecture 3
- Lecture 4; Sorry, but I forgot to start recording until about a half hour into the lecture. You missed some material on Martian river networks, and on exoplanets with eccentric orbits and the implications of illumination by dim, red stars, but you can pick that up from the relevant sections of Chapter 1. I did manage to record essentially all of my lecture on stable isotope proxies. Note that there is a misprint in the textbook regarding the deuterium concentration in Jupiter and the outer portions of the Sun (should be about 1 in 50,000 molecules , rather than 1 in 1700 as stated. Jupiter is thought to be representative of the primordial composition, and Earth's oceans are very enriched in Deuterium relative to that. Nuclear fusion in stars destroys deuterium, so there should be very little in the deep Sun).
- Video tutorial on where to put modules you want Python to be able to import. You should understand this before downloading the courseware modules.
- Lecture 5
- Lecture 6
- Lecture 7 Correction: The discussion of dry static energy should have pointed out that the dry static energy is not a general exact differential of the First Law. The derivation of dry static energy conservation given in the lecture only works if the motion is adiabatic (delta-Q = 0) so that density can be written as a function of pressure alone. See the Errata/Updates document on the PlanetaryClimateBook web site for a corrected discussion.
- Lecture 8
- Lecture 9
- Lecture 10
- Lecture 11 (Finished moist thermodynamics and started blackbody radiation)
- Lecture 12
- Lecture 13
- Lecture 14
- Lecture 15
- Lecture 16
- Part A: Snowball
- Part B: Angular distribution and exoplanet observations Note that in my haste to finish, I left out a small but critical step towards the end, in my derivation of the emission from a disk, as seen by a distant observer. I wrote the flux from the disk as sigma*T^4, but that already incorporates the angular integral, so you get an extra factor of pi if you try to do it this way. The right way is to use the Planck function B. The disk emission is (pi r^2) B where r is the radius of the disk, and the flux seen by the observer is reduced by 1/ro^2 to account for dOmega, where r0 is the distance to the observer. Then, when you integrate pi*B you get sigma T^4 as desired.

- Lecture 17 (Kirchhoff's law. Optically thin atmospheres. Tropopause height. Skin temperature)
- Lecture 18

Course Evaluations: Course evaluations are now done electronically, not on paper. Please take the time to fill out a course evaluation here . At the end of the quarter, please login to your cMore account, go to your course schedule, and click on the evaluation prompt. I appreciate the time you put into filling out these evaluations. If you liked the course, they help me attract more students. If there are aspects that didn't work for you, I want to know about them so I can figure out how to improve things

There are 20 lectures. The following is a target for what we hope to cover, but the flight plan is likely to change once the wheels are off the ground.

*Lecture 1:* What the course is about. Organizational housekeeping. Introduction to Python

*Lab sessions 1,2* : Introduction to the Python programming language.

*Lectures 2-3: * (Chapter 1.1 - 1.6) Planetary energy balance and temperature. Earth history in deep time, with emphasis on the questions we will address in this course. Earth/Mars/Venus and habitable zones. Extrasolar planets.

*Lectures 4: * (Chapter 1.1 - 1.6) Stable isotope proxies, and survey of Cenozoic climate variations

*Lecture 5: *Observations of atmospheric structure. Basics of dry atmospheric thermodynamics. Pressure, temperature, density and ideal gas law. Partial pressures and atmospheric composition. Lots of in-class illustrations, many showing how to use Python as a calculator.

*Lecture 6:* Dry entropy and potential temperature.

*Lecture 7:* Hydrostatics

*Lecture 8:* Phase change. Latent heat. Clausius-Clapeyron

*Lectures 9,10:* The moist adiabat, including an introduction to numerical solution of ordinary differential equations. Application to Earth,Titan and Early Mars

*Lecture 11: *Electromagnetic radiation basics. Planck's constant and quantization. Working with spectra.

*Lecture 12: *Blackbody radiation. The Planck function.

*Lecture 13: *Basic planetary energy balance for planets with an infrared-transparent atmosphere

*Lectures 14: *How the greenhouse effect works. Concept of the "radiating level" and how it affects surface temperature. A survey of spectra of CO2 and H2O absorption, and the corresponding spectra of outgoing infrared radiation

*Lectures 15: *Ice-albedo feedback and Snowball Earth

*Lecture 16: *Partially absorbing atmospheres. Emissivity and Kirchoff's Law

*Lecture 17: *Radiative equilibrium for optically thin atmospheres. Skin temperature. Basic theory of the stratosphere. Effect of solar absorption on stratospheric temperature

*Lectures 18: *Water vapor feedback. Presentation of numerical simulations of outgoing infrared radiation vs. T for an atmosphere with CO2 and water vapor.

*Lectures 19-20: *Introduction to real-gas radiative transfer. Logarithmic behavior of radiative forcing. Calculations involving polynomial fits of OLR to real-gas radiation codes. (Global warming, PETM, Faint Young Sun)

Course Evaluations: Please take the time to fill out a course evaluation here . Login to your cMore account, go to your course schedule, and click on the evaluation prompt. I appreciate the time you put into filling out these evaluations. If you liked the course, they help me attract more students. If there are aspects that didn't work for you, I want to know about them so I can figure out how to improve things. One thing I will definitely do differently next year is to set aside the entire first week as a Python clinic, with a required lab session; the object will be that everybody is up and running with the language installation by the end of the week. This year, there was also a problem finding a time for the weekly problem/lab session that would fit into people's schedule. I am thinking of scheduling an official lab/section meeting as part of the course, though I am a bit afraid that if I add a required scheduled session it will increase the chance of conflict with other courses and inhibit people from enrolling. Suggestions as to how to handle this are welcome.

- (Assigned 11/28/2012, due 12/5/2012)
- Using real-gas OLR curves: 4.18,4.19,4.22
- Kirchhoff's Law: 3.36,3.37,3.38

- (Assigned 11/16/2012, due 11/28/2012: (There will be one more assignment after this, before the take-home final))
- 3.21, 3.22,3.24
- Problem S3.1: Since the energy in a photon with frequency nu is h*nu, the blackbody spectrum of photon flux in any give direction is B(nu,T)/(h*nu). Using this formula, compute the net flux of photons of all frequencies through the surface of a blackbody with temperature T. Show that the flux, in numbers of photons per unit area of the body's surface, has the form b*(T**3), and compute the coefficient b. Use this formula to estimate the number of photons per second that a 2m diameter telescope in Earth orbit would receive from an Earth-sized planet having uniform radiating temperature 300K, located at a distancd of 20 parsecs from Earth.
- Problem S3.2: This problem makes use of the dataset ADLEOrev.txt , which gives the spectrum of the flux from the star AD Leo as observed from Earth. The spectrum is given in units of W/m**2/micron, so notice this is the flux density expressed in wavelength space, not frequency space. Answer the following questions:
- (a) Why does this measurement yield a "flux per wavelength" rather than a "flux per wavelength per steradian"?
- (b) Do a crude estimate of the temperature of this star, based on using the Wien Displacement Law on the wavelength where the emission peaks. Remember to take into account the fact that this is the spectrum in wavelength space, so you have to use the proportionality constant appropriate to the wavelength rather than frequency spectrum. (The number you need is given in the text).
- Write a function Bw(w,T) expressing the Planck density in wavelength space, with wavelength w measured in microns. Find values A and T such that A*Bw(w,T) is a good approximation to the observed spectrum. (It is acceptable to do this by just trial and error and looking at the graphs, but if you can think of a systematic way to determine the best fit, that is even better). Discuss where the deviations from blackbody emission are greatest. How does the ultraviolet emission compare with the blackbody flux? (You'll need to plot the results on a log scale in order to see the details of the weak UV emission).
- AD Leo is 4.9 parsecs from Earth. Use the coefficient A in your fit above to estimate the luminosity of the star, in units of Solar luminosity. Compare your result with the reported luminosity of AD Leo.
- Compute the cumulative flux spectrum of AD-Leo from the dataset, and display it in both wavenumber and wavelength space.

- Problem S3.3: Consider a tide-locked planet in a circular orbit about its star, for which the dayside has uniform temperature T1 and the nightside has uniform temperature T2<T1. The system is located at a distance d from the Earth, and the plane of the orbit is such that the planet transits (i.e. the planet passes directly in front of the star and directly behind it). Compute and plot the time variations of net flux that a a space telescope in Earth orbit would receive when pointed at this system. How would your result change if the observation were carried out on the Jeans tail of the spectrum (h*nu/kT << 1) instead of over the entire emission spectrum of the planet?
- 3.30, 3.32
- 3.35 (Daisyworld)

- (Assigned 11/7/2012, due 11/16/2012)
- More on moist adiabats: 2.54 , 2.56
- Planck function problems: 3.12, 3.13
- Radiation balance problems: 3.14, 3.18, 3.19, 3.20
- Greenhouse effect: 3.27, 3.29

- (Assigned 10/29/2012 . Due 11/7/2012):
- 2.37, 2.42, 2.45, 2.47, 2.50, 2.52; For Problem 2.52, you need not program up your own integrator using midpoint or Euler. Feel free to just use the integrator class in ClimateUtilities, if you find that more convenient.
- 3.2, 3.6, 3.10

- (Assigned 10/19/2012 . Due 10/29/2012):
- Dry thermodynamics and hydrostatics problems: 2.16,2.20,2.24,2.28
- Data analysis (atmospheric temperature profiles): 2.22, 2.23. (Read the instructions for 2.21, to get some useful Python tips for data analysis)
- Introductory problems with phase change (moist thermodynamics): 2.31, 2.34

- (Assigned 10/10/2012 . Due 10/19/2012): Send in problems to Feng by email, or leave a printout in Feng's mailbox. The next problem set will be posted 10/19, so check the web that afternoon.
- Basic physics warm-up problems: 1.9, 1.15, 1.18
- Some data analysis and numerical toolkit warmups. Before doing these problems, you should create a working directory, download the courseware modules
`ClimateUtilities.py`

,`ClimateGraphicsMPL.py`

and put them in that directory. You might as well also download`phys.py`

, and`planets.py`

, since they have physical constants you might find useful in doing the thermodynamics problems. In order for Python to be able to import these scripts, (e.g. using from ClimateUtilities import * in the interpreter or at the start of your script) you must either start up the interpreter while this is your working directory (if you are running interactively), or save your script into this directory before running it. Next week I will show you how to set up Python so you can put these scripts in a central place and have Python find them from wherever you are (if you are already an expert, you probably know how to do this by setting the`PYTHONPATH`

environment variable.- As an introduction to simple data analysis and data plotting, do Problem 1.3. The GISS temperature dataset can be downloaded directly from the link under Chapter 1 Data on the Data page of the PlanetaryClimateBook site. See the section on "The Curve() Object and its Uses" in the Python tutorial, and also the Python Tips part of Problem 1.2. (You don't need to do Problem 1.2). Note that the disk icon in the MatPlotLib window allows you to save your graphics as a png file, for inclusion in your write-up. An alternative approach to saving graphics, if you have some problem with that, is to do a screen shot (e.g. using Preview on a Mac).
- As an introduction to numerical integration of ordinary differential equations, do Problem 1.7 . You should read about the midpoint method in the Numerical Recipes reference available free online (Any of the older free versions will do), and implement it yourself as a loop. The Wikipedia description of the midpoint method is also good. You don't need to implement your own version of Runge-Kutta; you should just learn how to use the
`integrator`

class in`ClimateUtilities`

. After doing`from ClimateUilities import *`

, just type`help(integrator)`

for instructions.

- Atmospheric thermodynamics problems: 2.4, 2.6, 2.8, 2.11, 2.14

- (Assigned 10/1/2012 . Due 10/10/2012): Install Python on your computer if you need to. Read my quick-start Python tutorial found here, Sections 2.1 through 2.2. Try out the basic features of the language, through lists, functions, conditionals and use of the numpy array package. Turn in a copy of your interpreter session(s) as a text file, showing what you have tried out (email it to feng ding). Learn how to use
`idle`to edit, save and run a Python script. To see if your graphics is working properly try the following in the interpreter: first import the graphics by typing:`import pylab`

. If this works and you don't get an error message, create a graph by typing:`pylab.plot(range(10));pylab.show()`

. You should see a window with a graph of a straight line appear on your screen. Read Chapter 1 of textbook through Section 1.6 .

- Current Assignment (Assigned , due 11/30/2011):
- 3.13
- 3.NEW1: The exoplanet Corot 7b orbits a G star with photospheric temperature 5250K and radius 0.82 times the radius of the Sun. It is believed to be a rocky planet, and is likely to be tide-locked to its star. It orbits at a distance of 0.0172 AU (Astronomical Units = mean distance of Earth orbit) from its star. Assuming the planet to have zero albedo, what is the temperature of the substellar point? Noting that the melting point of sand (SiO2) is 1900K, and its boiling point (at Earth sea level) is 2500K, what do you think this planet is like, and what might be in its atmosphere?
- 3.NEW2: You are trying to observe the infrared emission coming from a planet having twice the radius of Earth, located at a distance of 20 light years from your space telescope, which is in Earth orbit. Specifically, you wish to observe the emission in the band ranging from 10 to 11 microns wavelength (you may approximate the Planck function as being constant within this band). The planet is isothermal, and has a radiating surface temperature of 300K. Your telescope is pointed directly at the object, and has an aperture which collects light over an area of 130 square meters (similar to the James Webb Space Telescope). What is the energy flux in the stated band, measured at the location of the telescope? What is the net power (in Watts) collected by the telescope from the object you are observing? How many photons per day do you collect?
- 3.18,3.22,3.23
- 3.24
- Greenhouse effect: 3.31,3.32
- Extra credit problem (mandatory for grad students): 3.29

- Snowball Earth: 3.34
- Extra credit problem (mandatory for grad students):
- 3.NEW3: Consider a tide-locked extrasolar planet in a circular orbit about its star. Suppose that the dayside is isothermal at temperature Td and the night side is isothermal at temperature Tn. The planet is in a transiting orbit as observed from Earth, so an Earth-based observer sees the orbit edge-on. The planet has radius Rp. The star has radius R* and radiates like a blackbody with temperature T*. Find an expression for the fluctuation in infrared emission from the system, as seen from Earth; express your results as a fraction of the stellar luminosity. Look up the characteristics of Gliese 581c, Corot 7b and Kepler 10b and make estimates of this ratio, assuming the planets to have no atmosphere, zero albedo, and a nightside temperature cold enough that the nightside emission is essentially zero. (Note that with these assumptions the dayside will not actually be isothermal, but you may approximate it as being isothermal so as to use the formula you derived in the previous part of the problem).

- Kirchoff's law and emissivity: 3.37

- (Assigned 11/8/2011, due 11/16/2011):
- Suppose all the oxygen were removed from the Earth's atmosphere. What would the surface pressure be? Suppose instead all the oxygen were used to burn coal, with the result that the oxygen is replaced, molecule for molecule, by carbon dioxide. What happens to the surface pressure then?
- Clausius Clapeyron and Hydrogen Oceans on gas giants: Use the ChapterScript satvp_graph.py to make a plot of the liquid-gas phase boundary for H2 (the dominant component of gas giant atmospheres). You'll need to restrict attention to temperatures above the triple point, since the thermodynamics database does not have latent heat of sublimation for solid H2 (if anybody finds that please let me know). Use the constant latent heat approximation (use a log pressure axis). Indicate the critical point for H2 on your graph, and sketch in what you think the true phase boundary looks like, taking into account the variations of latent heat with temperature. Finally, assume that a gas giant planet has a temperature T0 at the 1 bar pressure level. Plot a series of dry adiabats on the graph and discuss the question of whether there is any range of T0 for which the planet has a liquid H2 ocean with a density discontinuity at its surface. (Note: you can find the critical point data for H2 in phys.H2).
- Basic Clausius-Clapeyron: 2.38
- Single-component moist adiabat: 2.46
- Dilute moist adiabat: 2.52 (with the modification that you are free to use the ODE integrator in ClimateUtilities, rather than writing your own)
- Basic blackbody radiation: 3.7,3.10,3.12

- (Assigned 10/26/2011, Due 11/7/2011):
- As an introduction to numerical solutions of ordinary differential equations, do Problem 1.7 . You will need this technique elsewhere in this problem set, and in many future calculations done in the course. As an introduction, read the basic material at the beginning of Chapter 16 of Numerical Recipes (available online for free here ).Most of what you need is in Section 16.1, pages 710 and 711. You don't need to implement your own Runge-Kutta algorithm yourself. After doing the reading, try integrating the equation using the simple (but inaccurate) Euler algorithm. If you are ambitious, learn about and try the midpoint algorithm. Then, learn to use the integrator class in ClimateUtilities , which does the solution using the more accurate Runge-Kutta method. You will find a useful sample script here, showing you how to use the integrator class in ClimateUtilities.
- 2.11,2.12,2.14,2.17,2.19,2.20 (To do the last two of these, you will find it useful to download a PioneerVenus temperature sounding from the dataset collection), 2.23 (Jupiter and Venus part only; you will essentially already have done most of the Venus part in 2.19 and 2.20, except for plotting profiles).
- 2.27,2.28
- 2.31,2.32

- (Assigned 10/17/2011, Due 10/26/2011): View the video tutorial on where to put add-on modules, and read the corresponding section of the Python page (including links explaining about shells and paths). Install the courseware modules from the Courseware page. Read about ClimateUtilities in Section 2.4.1of the Python tutorial found here. (I have not yet completed documentation for phys.py and planets.py, but will do that sometime this week). Then do the following problems:
- [1.2,1.3,1.22,1.26 (oxygen isotope part only),2.3,2.4,2.5,2.6]. Some of these problems require data sets. You do not need to download the complete set of datasets. For now, just download the files you need using your web browser. They are located in the Chapter 1 data section here.

- (Assigned 10/10/2011 . Due 10/17/2011): A few warm-up problems from the textbook. Do problems 1.12,1.13, 1.14,1.17,1.19,1.21 . The last two of these are simple stable isotope problems, which you should be able to do after Wednesday's lecture. The rest of the problems exercise some basic physical and chemical concepts (various forms of energy; calculations involving molecular weight).
- (Assigned 10/3/2011 . Due 10/10/2011): Install Python on your computer if you need to. Read my quick-start Python tutorial found here, Sections 2.1 through 2.2. Try out the basic features of the language. Learn how to use
`idle`to edit, save and run a Python script.

*Old Material:*

- Old version of Course Notes
- Computer Labs (Old versions, including some Matlab labs)
- Models
- Prior year class web site is here.