Here is the second tutorial as provided by Barton Paul Levenson. Again, I'll present the tutorial, followed by an explanation of the code added to the github repository. I'll continue to use these simple models to demonstrate some of the key concepts we'll be using to build GoGCM (as I did with the sharing post).
Here's the tutorial.
A "Glass Slab" Model
Written by Barton Paul Levenson
Now we add an atmosphere to create a "glass slab" model. Model 1 just had two factors affecting the Earth's surface temperature: sunlight and reflection. Model 2 adds IR back-radiation.
The Earth's albedo is assumed to apply to the very top of the atmosphere, giving F = 237 W m-2 from the 342 W m-2 which actually comes from the sun.
The surface absorbs all sunlight and all IR that falls on it. The atmosphere absorbs all IR, but no sunlight. Energy balances for atmosphere and surface, respectively, are:
Atmosphere:
\begin{equation}F_s=2F_a\end{equation}
Surface:
\begin{equation}F+F_a=F_s\end{equation}
Here, F is the incoming sunlight, as defined in model 1 from the Earth's albedo and solar constant. Fa is the amount radiated from the atmosphere--since it has both a top and a bottom, it radiates Fa in each direction. Fs is the amount radiated from the Earth, which only goes up. The atmosphere has Fs from the ground as its only energy input; its output is 2 Fa. The Earth gets both F from the sun and Fa from the atmosphere; its output is Fs.
Assuming perfect emissivity, we can substitute in the Stefan-Boltzmann law to rephrase these equations in terms of temperature:
\begin{equation}\sigma T_s^4=2\sigma T_a^4\end{equation}
\begin{equation}F+\sigma T_a^4=\sigma T_s^4\end{equation}
Dividing through all terms by σ to simplify, we get
\begin{equation}T_s^4=2T_a^4\end{equation}
\begin{equation}\frac{F}{\sigma}+T_a^4=T_s^4\end{equation}
Ts4 occurs on the left-hand side (LHS) of the top equation and the right-hand side (RHS) of the second. We can therefore eliminate Ts between the two equations and find that
\begin{equation}T_{a}=\left(\frac{F}{\sigma}\right)^{0.25}\end{equation}
And, with more algebra:
\begin{equation}T_{s}=2^{0.25}T_a\end{equation}
yielding Ta = 254 K. Do you recognize the Earth's radiative equilibrium temperature, Te? And Ts = 303 K. The latter figure is 15 K over the actual figure--5% too high--but that's closer than last time.
But Earth's atmosphere isn't equivalent to one blackbody layer in IR-absorbing ability. It's closer to two. We would then have, with layer 1 on top and layer 2 on bottom, and the ground underneath both, T1 = 254 K, T2 = 303 K, and Ts = 335 K, which is too high by 47 K, or 16%. This is worse than model 1! Clearly we're leaving out something important.
Go Code
Arrow
I've added the code to the github repository, under the examples directory as model 002. I've reused the code from model 001, including the improvements as described in the sharing post. I'll keep working on model 002. Let me know if you'd like to see anything in particular.
Showing posts with label Radiative Model. Show all posts
Showing posts with label Radiative Model. Show all posts
Tuesday, September 28, 2010
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
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:
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
Arrow
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.
Go Code
Arrow
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.
Subscribe to:
Posts (Atom)