Thursday, September 16, 2010

Zero-Dimensional Energy-Balance Model

As many of you have probably noticed (at least if I judge from my gradually reducing traffic over the last few days) I have been a little lighter on number of blog posts than the torrent pace that I started at over the weekend. While this is partly that I have a job during the day and will likely do more posting on the weekend, I have also been spending a bit of time studying the GISS ModelE code and planning the next steps for GoGCM.

While I'll continue for the next week or two with this studying and planning, Barton Paul Levenson (regular commenter at RealClimate) has graciously passed me a tutorial that he's worked on himself while trying to understand radiative/convective models. I've added these models to the github repository for GoGCM. At the end of each tutorial, I'll describe the example(s) that I've put on the  code repository.

Zero-Dimensional Energy-Balance Model
Written by Barton Paul Levenson

We begin with the simplest possible model. The sunlight absorbed by the climate system is:

F = (S / 4) (1 - A)                                                (Eq. 1)

where F is flux density in watts per square meter, S the solar constant in the same units, and A the Earth's bolometric Russell-Bond spherical albedo. The factor of 1/4 is there because the Earth absorbs sunlight on its cross-sectional area, π R2, but has a total surface area four times as great, 4 π R2.

We find the Earth's radiative equilibrium temperature--also called "emission temperature" and "effective temperature"--by assuming perfect emissivity and inverting the Stefan-Boltzmann law:

Te = (F / σ)0.25                                                  (Eq. 2)

In the SI, the Stefan-Boltzmann constant σ (sigma) has the value 5.6704 x 10-8 W m-2 K-4. The 1951-2000 mean of Judith Lean's TSI reconstruction is S = 1366.1 watts per square meter, and NASA gives A = 0.306 for the Earth. That means F = 237 W m-2 and Te = 254 K. Water freezes at 273 K, so this would leave the Earth frozen over. Earth's actual surface temperature is Ts = 288 K, 34 K higher than the emission temperature. The difference is due to the greenhouse effect. If we took Ts = Te, we'd be too low by 12%. We need to improve our model.

Go Code

I've added an examples directory with model 001. This model is the go code of the zero-dimension model described by tutorial here. While I used all the same values, I changed the solar constant for each time step (using a random value) in order to have a time series as output that varies. With the value set in the code, I had a temperature variation of approximately 1 deg K. This of course will change with each run since it depends on the random values. I encourage everyone to download the source code and try it out. Let me know what you think.

Once again, thanks to Barton for letting me use the tutorial for these series of posts.


  1. Dear sir,

    I have downloaded the code of GoGCM , but I dont know to how to compile it.... README file also doesnt give any info... Please help me built it

    Thank you in advance!


  2. Hi Kishore,

    Check out

    That post gives more detail about how to download and compile the code. Essentially you need to download the Go compiler first before you can compile GoGCM.

    Just a quick word of caution, I haven't been maintaining this code for about a year now. The go compiler has continued to evolve and may not be compatible anymore (although I think it should be ok). Also, if you're on a windows PC it will be a bit more difficult, but I'm certain you can manage it.

    Let me know what your setup is or if you have any questions.



  3. Thanks arrow , Your helped me a lot with the link .