GreyGasFlux.py
: Computes net flux profile for an all-troposphere grey-gas model, with T(p) on the dry adiabat, compared to optically thick limiting case. This is used in the discussion of heating rate profiles in the text. It also plots OLR as a function of optical depth of the atmosphere, or as a function of ground temperature.GreyGasRunaway.py
: Computes OLR(Ts) for a saturated condensible grey gas atmosphere, showing the limiting OLR at large temperatures (the Kombayashi-Ingersoll limit). It is the grey-gas version of the runaway greenhouse computation.OneBandSpectrum.py
: Computes the spectrum of OLR for an atmosphere with T(p) on the dry adiabat, containing a greenhouse gas whose absorption coefficient is a specified smooth function of wavenumber. Also computes the net OLR as a function of greenhouse gas concentration. This is used to illustrate the basic way that a non-gray greenhouse gas affects the OLR.readMarsTES.py
: Reads and plots spectra of Mars observed by the Mars Global Surveyor TES instrument. The plots overlay the Planck curve corresponding to the radiatively inferred surface temperature included in the dataset.PyTran.py
: This is the Python interface to the HITRAN spectral database. It was used to make the summary plots of absorption spectra. It reads the line properties from the database, and synthesizes the spectra usiing a specified line shape (currently just a simple Lorentz pressure-broadened line shape). From there, it can do various other calculations, including making the statistical summaries for the spectral survey plots in the text, and computing exponential sum tables for use with routines to compute the exponential sum transmission function. Routines in PyTran.py were also used to compute the example line-by-line transmission functions in the text. condensiblePath.py
: Computes pressure-weighted equivalent path for an atmosphere with a condensible greenhouse gasminiClimt.py
: Implements the basic Schwartzschild non-scattering radiative transfer solution for a real gas with arbitrary transmission function. This is the homebrew model. Usually, it is used with the exponential sums version of the transmission function, but by changing the specification of the transmission function it can use semigrey, Malkmus or other forms.
miniClimtFancy.py
: This adds a few features to miniClimt.py, to allow it to handle gases which are not well-mixed in the vertical. It also implements a simple form of temperature-scaling of the absorption.
MalkmusData.py
: This script contains Malkmus parameters for selected bands. It is meant to be imported into a script making use of the homebrew code, if you want to use the Malkmus transmisson function.
homebrewOLR.py
: Uses the homebrew exponential sums radiation code to compute OLR for an atmosphere consisting of a well-mixed greenhouse gas in a transparent background atmosphere. This script also contains a section that compares the OLR for CO2 vs. CH4; this can be modified to do a similar computation for any pair of well-mixed greenhouse gases for which exponential sum tables have been provided. The script is set up for a well mixed greenhouse gas, but it uses miniClimtFancy, and so it could easily be modified to deal with a greenhouse gas with vertically varying concentration. PureCO2OLR.py
: Computes the OLR vs surface pressure for a pure CO2 atmosphere. It has an option to include the effect of CO2 condensation on T(p). The script is used in the discussion of Early Mars climate but is applicable to any planet with a CO2-dominate atmosphere, so long as it is not much hotter than Earth.SimpleVenusOLR.py
: A slight modification of PureCO2OLR.py, designed to deal with the near-IR regions which are transparent in the HITRAN database, but are important to accounting for the surface temperature of Venus. In this script the near-IR part of the spectrum is treated as a grey gas. CO2RealGasFluxSpectrum.py
: Uses the homebrew code to compute the spectra of outgoing flux and surface back-radiation for CO2. It can be used for an arbitrary well-mixed gas by just changing the gas specification, and loading the appropriate exponential sum table. WaterVaporRealGasFluxSpectrum.py
: Uses the homebrew code to compute the spectra of outgoing flux and surface back-radiation for an atmosphere containing a mixture of water vapor with a transparent noncondensable background gas. RealGasRunaway.py
: Uses the homebrew exponential sum radiation code to compute OLR vs. surface temperature for a saturated atmosphere which is a mix of a condensible gas and a non-condensible background gas. In this calculation, the background gas is assumed transparent to infrared.RadConvEq.py
: A time-stepping code to compute the pure-radiative equilibrium, or (optionally) the radiative-convective equilibrium for an atmosphere which is transparent to shortwave radiation, and is in infrared equilibrium with a lower boundary (the ground) having a specified temperature. This is used to compute the vertical structure plots in the section of the text dealing with real gas pure radiative equilibrium, and radiative-convective equilibrium. To use this script to determine a planetary temperature, one specifies a ground temperature Tg, computes the corresponding OLR, and then varies Tg until the OLR matches the absorbed stellar radiation. This script uses the homebrew exponential sums code to compute real-gas radiation fluxes. ccmradFunctions.py
: A collection of functions for computing OLR, surface back-radiation, linearized OLR(T) coefficients, and other useful things, using the ccm radiation code. It makes use of climt_lite, and is meant as an easy interface to the ccm code for users who don't want to deal with the full generality provided by climt_lite.OLRPoly.py
: This script computes OLR using the polynomial fit to ccm radiation code output, as given by the tables in the text. It is meant to be imported into other scripts for use in OLR computations. The fit is for Earthlike conditions, and for such conditions it can be used in most of the Workbook problems in place of running the ccm radiation code itself.
That speeds up and simplifies such calculations, and can also be handy if you have had some problems getting climt_lite
working on your system. ccmCanonicalOLR.py
: Uses the ccm code to compute and plot the OLR vs. greenhouse gas concentration for the "canonical" case consisting of a well-mixed greenhouse gas in a transparent background atmosphere with T(p) on the dry adiabat. This script also compares OLR computations with the ccm code with those using the homebrew exponential sums code. ccmOLR.py
: Uses the ccm code to compute and plot OLR vs temperature or CO2 concentration, for a moist atmosphere on the moist adiabat, having specified relative humidity. This code can deal with multiple greenhouse gases, and even clouds, and could be easily be modified to do the computation for other greenhouse gases indstead of CO2.ccmCO2vsCH4.py
: Makes contour plots of OLR as a function of CO2 and CH4, for a moist atmosphere on the moist adiabat having fixed water vapor relative humidity. Not used in the text, but it provides a more comprehensive comparison of the radiative effect of CO2 vs. CH4 than that given in the text. ccmRadFromSounding.py
: Uses the ccm radiation code to compute the OLR and surface back-radiation for an atmosphere with T and humidity specified as lists of values, such as one would get from an atmospheric sounding. Not used in Chapter 4, but used somewhat in Chapter 6 in the discussion of the surface budget fallacy. Generally useful to have. ccmSurfrad.py
: This script really belongs with the Chapter 6 collection, but it is convenient to keep it here together with the other scripts that use ccmradFunctions.py. It computes surface radiative cooling and effective emissivities for the surface radiation plots shown near the beginning of Chapter 6 (Surface Energy Balance).