ResearchMethodsVolume 2, Issue 3, Spring 2026
A Greenhouse Model You Can Check by Hand, and Where It Stops Being Honest
The layer model of the greenhouse effect needs 0.622 of a layer to reach Earth's surface temperature, which is not a number of layers. We solved it for arbitrary N, found the emissivity that works, and then measured exactly how much the grey assumption is lying about.
Written jointly by the Science Journaling Club
- Study
- Computational study
- Review
- Peer-edited by the club review board
- Length
- 12 sectionsabout 35 min
- Files
- LaTeX source27 kB
- Analysis code57 kB
- Raw output36 kB
- Interactive model
Abstract
The layer model is how almost everybody first meets the greenhouse effect, and it is a good model. We asked it a question it is rarely asked: how many layers does Earth need? The instrument was a Python file the club wrote and ran on a laptop, and nothing was measured by us at any point, because here the computation is the experiment. Solving the -layer grey radiative-equilibrium system as a linear system for every from 0 to 10 reproduced the exact analytic answer to a largest discrepancy of 5.7 × 10−14 K, a relative error of 1.22 × 10−16, which is 0.55 of one double-precision epsilon. The zero-layer case returned 255.212 K against the textbook's 255 K. The answer to our question is that Earth needs 0.622 of a layer, which is not a number of layers at all: one perfectly absorbing layer gives 303.500 K, overshooting the real surface by 15.50 K, or 47% of the entire 32.8 K greenhouse effect the model exists to explain. Replacing the perfect absorber with a tunable emissivity fixes this and yields from 200,000 Monte Carlo trials over published uncertainties in the solar constant, the albedo and the surface temperature. Then we measured what grey costs. Against a two-band model that separates the 8 to 12 µm window from the rest of the spectrum, the grey assumption overstates the warming from a doubling of absorber by a factor of 2.02 ± 0.01, and hides a saturation ceiling: a hundredfold increase in band opacity is worth 2.64 K and nothing more. Worse, a single-layer two-band model can reproduce the observed surface temperature or the observed 22 W/m² of surface emission that escapes directly through the window, and not both. Forced to match the escape, it runs 12.0 K too hot. Seed 20260321.
Thirty-Three Degrees, and a Model That Cannot Reach Them
The layer model of the greenhouse effect is the best piece of physics teaching in the whole of climate science. It needs no calculus and no computer. A single line of algebra turns sunlight into a surface temperature, and the line is short enough to write on the back of a receipt. Generations of students have met the greenhouse effect this way [10][12][17].
We set it a task. Earth's surface averages about 288 K. Strip the atmosphere away in the infrared and the same sunlight supports only 255 K. How many layers of the model does it take to cover the difference?
Nought point six two two.
Zero layers is 32.79 K too cold. One layer is 15.50 K too hot. There is no third option, since layers come in whole numbers, and the number the planet wants is between them and closer to one than to zero. That gap is not a rounding problem. Fifteen and a half kelvin is nearly half of everything the model was built to account for, and it is roughly five times the warming the world has argued about for thirty years.
This article does three things. It builds the model carefully and checks it against its own exact solution. It repairs the overshoot by letting the layer be an imperfect absorber, which is the standard fix and works. Then it spends its second half finding out precisely which physical facts the repaired model is still getting wrong, and by how much, in kelvin and in watts per square metre. We like this model. We would teach it tomorrow. That is exactly why the second half matters.
Building It From One Sentence
Start with a sphere in sunlight. The Sun delivers W/m² to a disc of the planet's cross-section [12]. The planet reflects a fraction of that straight back [19], and it spreads what it keeps over a sphere four times the area of the disc. So the absorbed flux, averaged over the whole planet, is
In equilibrium the planet must radiate that back. If it radiates as a blackbody at a single temperature , then and K. That is the whole zero-layer model.
Now add the atmosphere, in the crudest form that captures anything. Take slabs stacked above the surface. Each slab is perfectly transparent to sunlight, so the ground still absorbs all of . Each slab is a perfect absorber and therefore a perfect emitter in the infrared, which is Kirchhoff's law doing the work. The idea of treating an atmosphere as a stack of grey emitting layers in radiative balance goes back to Schwarzschild's 1906 work on the solar atmosphere [2], which is where the two-stream picture underneath all of this began. Each slab has one temperature and radiates upward and the same amount downward. Space, above the top slab, sends nothing back.
Write for the surface () and each slab ( to ). Then the energy balance at every level is a linear equation in the :
That is a tridiagonal system, and the club's code assembles it and hands it to numpy.linalg.solve for any you like. The reason for solving numerically something with a known closed form is the next section.
The closed form, for the record, is that . Every level differs from the one below it by exactly in units of flux. The surface sits steps above the top, so
Figure 2 draws the column that comes out of that. Look at what the five stacks have in common. Whatever is, the top layer always sits at , because the top layer is the thing space actually sees and space is owed exactly . Adding layers does not change the top of the atmosphere. It changes how far below the top the ground has been pushed.
all five stacks share the same top temperature and the same step size in sigma T^4
That is the physical content of the model, and it is genuinely correct physics: the greenhouse effect works by raising the altitude from which the planet radiates to space, and then letting the lapse rate do the rest [11][17]. The slabs are a caricature of a lapse rate. A bad one, as we will see. But the mechanism they caricature is the real one.
The Arithmetic
Everything above reduces to numbers. Here they are, done slowly.
Absorbed sunlight. , divided by 4 is W/m².
Effective temperature. . The fourth root of that is K. In Celsius, −17.94.
One layer. . Times 255.212 is 303.500 K, or 30.35 °C. The real planet is 15.00 °C.
The fraction. We want , so . The ratio is 1.128473. Squared, 1.273451. Squared again, 1.621676. Subtract one: .
The greenhouse effect in flux rather than temperature. W/m² leaving the ground, against 240.557 W/m² leaving the top, a difference of 149.55 W/m². Observation puts the same quantity at W/m² [16]. We are 9.65 W/m² low, or 6.1%. That discrepancy is real and we come back to it.
Venus, for scale. Its fact sheet gives W/m² and , so K, and its mean temperature is 737 K [23]. Then . Venus needs a hundred and eleven layers. Mars, on the same arithmetic, needs 0.082.
Checking It Against Itself
A model with an exact solution is a gift, because it lets you find out whether your code is computing the thing you think it is computing before you ask it anything you do not already know. We ran three checks and printed all three.
Check one, against the textbook. The zero-layer case should give the famous 255 K. Ours gives 255.212 K with the CERES albedo of 0.293 [19], and 254.578 K with the round 0.30 that most textbooks use. Both round to 255. Notice that the spread between the two albedo choices, 0.634 K, is bigger than either one's distance from the quoted value, which is a small warning about how much precision the famous number can carry.
Check two, against the analytic solution. For every from 0 to 10 the code prints the numerically solved surface temperature beside . Nine of the eleven rows agree bit for bit. The worst row, , differs by K out of 464.78, a relative error of . Double precision has an epsilon of , so the largest disagreement anywhere in the table is 0.55 of one representable step. There is no physics in that number. It is the last bit of a floating-point division.
We pushed it further than the article needs, to , where the condition number of the matrix has climbed to and the relative error with it, to . Still eleven orders of magnitude below anything physical. We print it because that is where "exact" turns into "exact enough", and a reader deserves to be shown the boundary rather than told it is far away.
Check three, against a closed-form series. The two-band work later needs the fraction of a blackbody's emission that falls between two wavelengths, which we get by Simpson's rule. The blackbody fraction function also has an exact series solution, so we computed both. Across the five bands the model actually uses, the largest disagreement is . Then, because a 401-point grid that is generous for a 4 µm interval is not generous for a 96 µm one, we printed the refinement table for a deliberately wide band and watched the error fall by a factor of about 256 per fourfold refinement, which is the fourth-order convergence Simpson's rule promises. Nothing in the study integrates a range wider than 5.5 µm.
Working Notes From the Club Table
Meeting 1
Wrote the -layer solver. Someone asked why we were bothering with a matrix when the answer is one line. Answer: so that when we change the physics later and the line stops working, the matrix will still be there. Also so the analytic answer has something to be checked against.
Meeting 1, later
First run of the table. Long silence. Nobody had noticed before that one layer gives 303 K. The room had been carrying "one layer, 33 degrees" around as a single unit for years.
Meeting 2
Two hours arguing about whether is a result or a category error. Half the table said a fractional layer is meaningless. The other half said a fractional layer is exactly what emissivity is for. Both were right, which is why §7 exists.
Meeting 2
Checked the fact sheet numbers against our own formula for practice. Venus agreed to 0.03 K. Mars agreed to 0.03 K. Earth was off by 1.1 K and we assumed we had a bug. Spent forty minutes on it. No bug. See the margin note in §3.
Meeting 3
Built the two-band model expecting it to be a footnote. It ate the second half of the article. The moment was computing the window escape, getting 91 W/m², and looking up the measured value of 22.
Meeting 3, later
Tried to fix it by closing the window. Surface went to 300 K. Tried to fix that by opening the window. Escape went back to 91. Somebody drew the two constraints on the board as a pair of lines that do not cross. That drawing is §9.
Meeting 4
Monte Carlo on the emissivity was fast enough that we could have run ten million trials. Ran 200,000. The standard error is already against a standard deviation of 0.0122, so more trials would buy a fifth decimal place on a quantity whose second decimal place is controlled by which albedo you picked.
Meeting 4
Seed fixed at 20260321 and not touched again. Whole file runs in 8.82 seconds.
Half a Layer Short
Figure 1 is the answer to the question in the title, and it is a slightly awkward picture. The measured planet sits between the first two points on the curve.
Read the table underneath it and the awkwardness gets worse rather than better. The fourth-root law means the steps shrink fast. Going from zero layers to one buys 48.29 K. Going from one to two buys 32.38 K. From nine to ten, 10.94 K. So the model's resolution is coarsest exactly where Earth lives, and the single interval a reader most wants to subdivide is the widest one in the whole table.
| N | Ts analytic (K) | Ts numeric (K) | difference (K) | Ts − 288 (K) | step from N−1 (K) | equivalent ε |
|---|---|---|---|---|---|---|
| 0 | 255.212213 | 255.212213 | +0.000e+00 | −32.7878 | n/a | 0.0000 |
| the observed planet, 288.000 K, falls here at N* = 0.6217 | ||||||
| 1 | 303.500179 | 303.500179 | +0.000e+00 | +15.5002 | +48.2880 | 1.0000 |
| 2 | 335.878161 | 335.878161 | +0.000e+00 | +47.8782 | +32.3780 | 1.3333 |
| 3 | 360.924572 | 360.924572 | +0.000e+00 | +72.9246 | +25.0464 | 1.5000 |
| 4 | 381.631271 | 381.631271 | +0.000e+00 | +93.6313 | +20.7067 | 1.6000 |
| 5 | 399.428699 | 399.428699 | +0.000e+00 | +111.4287 | +17.7974 | 1.6667 |
| 6 | 415.122203 | 415.122203 | +0.000e+00 | +127.1222 | +15.6935 | 1.7143 |
| 7 | 429.214069 | 429.214069 | +0.000e+00 | +141.2141 | +14.0919 | 1.7500 |
| 8 | 442.040519 | 442.040519 | +0.000e+00 | +154.0405 | +12.8264 | 1.7778 |
| 9 | 453.838623 | 453.838623 | +0.000e+00 | +165.8386 | +11.7981 | 1.8000 |
| 10 | 464.782346 | 464.782346 | +5.684e-14 | +176.7823 | +10.9437 | 1.8182 |
The last column is the punchline of the next section, written early. It asks what single-layer emissivity would give the same surface temperature as each . For the answer is 1, as it must be. For every beyond that the answer is greater than 1, which is physically impossible for one layer, and the numbers march sedately towards 2 without ever getting there. A stack of layers is not equivalent to a thicker single layer. It is a different object.
Letting the Layer Be Imperfect
The repair is old and standard [5][14][17]. Keep one layer. Stop insisting it absorbs everything. Give it a longwave emissivity between 0 and 1, which by Kirchhoff is also its absorptivity, and redo the two balances. The layer's own balance is
and the cancels. That deserves a pause. The temperature of the layer does not depend on how absorbing it is. A gauzy veil and an opaque slab sit at exactly the same temperature, . They differ only in how much of the ground they can see, and therefore in how much they send back down. Put that into the surface balance and
Set and invert. We did it twice, once by algebra and once by bisection on the forward function, and the two agreed to :
The number is satisfying. It is comfortably below 1, so the fix is not straining. It sits where the curve is steep enough to be informative: at the surface moves 58.4 K per unit of emissivity, so one percentage point of emissivity is worth 0.58 K. And the layer temperature it implies, 242.18 K, corresponds to an emission altitude of about 7.0 km at a standard lapse rate, which is the right order for the real effective emission level of around 5 km and about 41% too high.
How well is determined? We ran 200,000 Monte Carlo trials, drawing the solar constant from Normal(1361.0, 0.5) [12], the albedo from Normal(0.293, 0.005) [19] and the observed surface temperature from Normal(288.0, 0.5). Figure 5 shows the running mean settling.
seed 20260321; 200,000 trials; SE falls 48-fold across the range, sqrt(2000) = 44.7
The answer is with a standard deviation of 0.0122 and a standard error of , a 95% interval of 0.743 to 0.790. The albedo and the surface temperature contribute almost equally, moving by 0.0087 and 0.0085 per standard deviation, while the solar constant is worth only 0.0005 and might as well be exact. The Monte Carlo mean sits below the point estimate, which is 1.53 standard errors, and is nonlinearity rather than error: the mean of a nonlinear function of the inputs is not the function of the mean of the inputs. We print it instead of rounding it away.
Where It Starts Lying: Two Constraints That Do Not Cross
Now the second half. Everything so far assumed the atmosphere is grey, meaning it absorbs equally at every infrared wavelength. It does not. Water vapour and carbon dioxide absorb in bands, and between roughly 8 and 12 µm there is a region where the clear atmosphere is comparatively transparent. This is the atmospheric window, and it is not a minor feature.
Integrating the Planck function, a 288 K surface puts 25.28% of its emission into that 8 to 12 µm interval. The Wien peak at 288 K is at 10.06 µm. The window sits directly on top of the emission maximum, not out in a tail where it could be ignored.
So we built the two-band version. Same single layer, same geometry, but the spectrum is split. The window has optical depth and the rest has , with emissivity in each, and the band fractions come from Planck integration at whatever temperature the surface has reached, so the whole thing is solved by fixed-point iteration.
The first result is a disappointment dressed as a success. Collapse the algebra and the two-band model presents the surface with an effective grey absorptivity , where is the window fraction, and then the surface temperature obeys exactly the same formula as before with in place of . Calibrate and solve for , and the two models agree on to the last printed digit. For the present-day state, splitting the spectrum bought us nothing at all. That is worth knowing, and it is the reason the grey model survives in textbooks.
The second result is not a disappointment.
Two constraints that do not cross
Ask the calibrated two-band model how much surface emission reaches space without ever being absorbed. In the window it is W/m², plus another 17.94 through the leaky absorbing band, for 91.01 W/m² in total.
The measured value is 22 W/m² [13].
Costa and Shine did this calculation properly, with line-by-line radiative transfer and real atmospheric profiles, and found that about 22 W/m² of the outgoing longwave radiation is surface emission that made it to space untouched, roughly 9% of the total. Our model says 91. It is over by a factor of 4.1.
So close the window. We solved for the window optical depth that reproduces 22 W/m² exactly, with the absorbing band made fully opaque, and got . The escape is then 22.000 W/m² by construction. The surface temperature is 299.97 K.
Twelve kelvin too hot.
There is a sharper way to put the same thing, and it took us a meeting to see it. Rerun the calibration at several window opacities, re-solving each time so the surface still lands on 288 K. The window escape falls from 73.07 W/m² at to 22.01 at , a factor of 3.3. The total escape reads 91.008 W/m² in every single row. It cannot do anything else: once the model is pinned to 288 K its effective absorptivity is fixed at , so the untouched fraction leaving the top is W/m² however you divide the opacity between the bands. Close the window and the absorbing band is forced open by exactly the compensating amount. You can put the right number in the window column and the model is still leaking four times too much radiation in total.
A single-layer model can match the surface temperature or it can match the window escape. It cannot do both, and the gap between the two is not small in either currency. The reason is structural and no amount of parameter fitting will touch it. One layer has one temperature. In the real atmosphere the window radiation that does get absorbed is absorbed low down, by the water vapour continuum where the air is warm, and re-emitted at nearly the surface temperature, so it costs the planet almost nothing. The band-centre radiation is absorbed and re-emitted high up where the air is cold, which is where the greenhouse effect actually comes from [11][21]. A single slab has to pick one altitude for both. Whichever it picks, the other quantity is wrong.
Stacking more layers fixes this, because a stack has a lapse rate and can put different wavelengths at different heights. Making the layers grey does not fix it, no matter how many you use. The failure here is spectral, not vertical, and it is the one the classroom version never mentions.
What Grey Actually Costs
The present-day state is not where the grey assumption fails, because we forced both models through the same point. It fails in the derivative. Multiply the optical depth by a factor and ask what the surface does.
both models forced through 288 K at multiplier 1; horizontal axis is logarithmic
Double the absorber. The grey model warms by 11.51 K. The two-band model warms by 5.44 K. The grey model overstates the response by a factor of 2.11 on the central settings, and by across 3,677 usable Monte Carlo trials that sampled the window's low edge from 7.5 to 8.5 µm, its high edge from 11.5 to 13.0 µm, and from 0.15 to 0.60. The 2.5th percentile of that distribution is 1.27, so even the most forgiving window we sampled leaves the grey model overstating by a quarter. Another 323 trials were dropped because a wide, clear window made 288 K unreachable, and those were precisely the cases where grey would have looked worst, so 2.02 is conservative.
The reason is visible in the two calibrations. The grey atmosphere at is only 76.7% opaque, so it can always absorb more. The two-band model's absorbing band is already 93.84% opaque, so doubling it accomplishes very little and the warming has to come out of the window instead.
Push that harder, in the direction carbon dioxide actually pushes. CO2 works in the band and does almost nothing to the 8 to 12 µm window, so scale alone:
There is a ceiling, and one doubling gets you 94% of the way to it. A hundredfold increase in band opacity is worth 2.64 K and then the band is finished, because a saturated band radiates from its own top and cannot be made to radiate from any higher. The grey model has no ceiling at all. It cannot have one, because a single band with a single optical depth can always be made more opaque. This is the single most important thing the grey assumption hides, and it is part of why real CO2 forcing goes as the logarithm of concentration rather than linearly [1][9][21].
We should say plainly what this two-band number is not. It is not a climate sensitivity. There are no feedbacks here, no water vapour response [7], no clouds, no lapse-rate adjustment, and the real answer to a CO2 doubling is around 3 K for reasons this model contains almost none of [22]. Our 5.44 K and our 2.64 K are statements about two toy models compared against each other under identical rules. The comparison is the result. Neither number is a prediction about the planet.
The Strongest Objection We Could Make
Here is the best case against this entire article, and we think it is a good one.
You have not tested the grey assumption. You have tested a single layer. Every failure in §9 and §10 follows from having exactly one temperature available, and you said so yourself. A grey model with fifty layers has a lapse rate, puts its emission at a range of altitudes, and would not show the window pathology at all. So the headline, that grey overstates the doubling response by a factor of two, is really the claim that one-layer grey overstates it relative to one-layer two-band, which is a comparison between two caricatures rather than a measurement of anything.
That objection is largely correct, and we want to grant its correct part fully before arguing with the rest.
It is right that the double bind in §9 is a single-layer failure. A multi-layer grey model would put the window escape and the band emission at different effective altitudes and could match both. We could have built that model. We did not, and a reader is entitled to treat §9 as a statement about single-layer models only, which is how we have labelled it.
It is wrong about the saturation result, and that is the part we would defend. The ceiling in §10 does not come from having one layer. It comes from having a finite band. Add a hundred grey layers and increasing still buys warming without limit, because in a grey atmosphere every wavelength gets more opaque together and the emission level rises everywhere. Add a hundred two-band layers and the absorbing band's emission level eventually rises out of the troposphere into the stratosphere, where the temperature stops falling with height, and the forcing per doubling flattens for exactly the reason our toy version flattens. Manabe and Wetherald found this with a real radiative-convective column in 1967 [4], and the modern analytic treatment of CO2 forcing turns on the same mechanism [21]. Our ceiling is a cartoon of a real ceiling. Grey has no ceiling to cartoon.
There is also a second objection we would raise against ourselves, which nobody has yet raised against us: the whole study is in pure radiative equilibrium, and pure radiative equilibrium is not a description of the troposphere. Manabe and Strickler showed in 1964 that a radiative-only column with realistic absorbers produces a lapse rate steeper than the atmosphere can mechanically sustain, and that you must add convective adjustment by hand before anything Earth-like appears [3][5]. Roughly 100 W/m² leaves the real surface as latent and sensible heat rather than radiation [6][8][15]. None of that is in our file. The layer model happens to land on a defensible surface temperature partly because two large omissions point in opposite directions, which is luck dressed as agreement.
Why We Would Still Teach It
A model that overshoots by 15 K with one layer, cannot represent a fractional layer, leaks four times too much radiation through its window, has no convection, no clouds, no water vapour feedback and no spectrum, and whose central parameter depends more on your choice of albedo than on anything anybody measured, sounds like a model to throw away.
We would keep it, and not out of sentiment. It gets the mechanism right. Adding absorber raises the altitude from which the planet radiates to space; the ground, sitting further below that altitude, must be warmer. That sentence is true of the real atmosphere and it is the sentence the layer model teaches, in arithmetic a student can do in their head. Every correct account of the greenhouse effect is a refinement of it [10][11][20]. No amount of spectroscopy replaces it.
What we would change is the framing. The model is usually presented as an explanation that happens to be approximate. It is better understood as an argument that happens to produce numbers, and the numbers are the least reliable thing about it. A student who leaves with "one layer gives 33 degrees" has learned something false. A student who leaves with "raising the emission level warms the ground, and here is the smallest calculation that shows why, and here are four things it is lying about" has learned the physics and learned what a model is, which is two lessons for the price of one afternoon.
We would also teach the checking. The reason this study can say anything at all is that the -layer system has an exact solution to be checked against, and we checked, and the agreement was 0.55 of one floating-point epsilon. That agreement proves nothing whatsoever about the atmosphere. It proves the code computes the model. Only then is it worth asking whether the model computes the planet, and the honest answer to that second question, for this model, is partly yes and partly no, in amounts we have now measured.
Where a different choice would have changed the answer
Several decisions in this study could have gone otherwise. Saying which ones move the numbers seems the least we owe a reader.
The albedo. This is the largest single lever and it is not a measurement uncertainty, it is a choice of source. With CERES's 0.293 we get . With the round textbook 0.30 we get 0.7789. With Stephens and colleagues' 0.29 [15] we get 0.7615. Across the set of defensible choices in the code, including two different baseline periods for the surface temperature, runs from 0.7494 to 0.7918, a range of 0.0423. The Monte Carlo standard deviation is 0.0122. So the modelling choices are worth about three and a half times the measurement uncertainty, and anyone quoting to three decimals without naming their albedo is quoting noise.
What "no atmosphere" means. The famous 33 K assumes you can delete the greenhouse effect and leave the albedo alone. You cannot: most of Earth's albedo is cloud, and clouds go with the air. Redo it with a surface-only albedo of 0.15 and the airless Earth sits at 267.24 K, making the greenhouse effect 20.76 K rather than 32.79 K. That is a 37% change in the headline number, produced by a modelling decision and not by any new measurement.
Treating the planet as one temperature. Our model radiates . The planet radiates , and Jensen's inequality says the second is larger. At 288 K mean with a spatial and seasonal spread of , the excess is . The measured 398.2 W/m² of surface emission [16] is recovered at K, which is an entirely ordinary value. So the 6.1% shortfall we found back in §3 is mostly this, not a broken model. The planet radiates like a 289.48 K surface while averaging 288.00 K.
The Moon makes the same point with the sign reversed and much more violence. Its effective temperature, computed from its own fact-sheet albedo of 0.11, is 270.33 K, and NASA's sheet prints 270.4, so we are using their inputs the way they do [23]. But a body with no atmosphere and no thermal inertia would average 152.92 K over its surface, 117.4 K below the effective temperature that supposedly describes it. No greenhouse gas is involved anywhere in that gap. It is entirely Jensen's inequality, acting on a surface whose equatorial temperature runs from 95 K to 390 K across a lunation [18][23]. The real Moon has thermal inertia and sits between the two figures. Which means the 33 K we all quote for Earth is the gap to a fictitious uniform-temperature airless Earth, not to any airless planet that could exist.
Doubling both bands together. In §10 we scaled and by the same factor, which is the neutral choice and not the realistic one. Scaling the band alone, which is closer to what CO2 does, gives 2.47 K instead of 5.44 K and makes grey look worse by another factor of two. Scaling the window alone would make grey look better. We reported the neutral choice as the headline and both extremes in the output, because picking the one that flatters your conclusion is the easiest dishonesty available in work like this.
The window's optical depth. The softest number in the study. At the grey model overstates the doubling response by 7.75; at it overstates it by 1.08. The direction of the conclusion holds everywhere in that range. Its magnitude does not, and a reader should carry the factor of two as an estimate with the window's uncertainty attached rather than as a measured constant.
Reproducing this
Everything in this article comes from one file and one command. You need Python 3.12 and numpy, and nothing else is imported.
python layered-greenhouse.py > layered-greenhouse-output.txtExpect about nine seconds on a modern laptop. Ours took 8.82 s, on numpy 2.4.2 and Python 3.12.3. Memory never exceeds a few tens of megabytes; the largest array in the file is the 200,000-trial Monte Carlo and the 2,000,001-point grid used for the lunar integral in §11. The master seed is 20260321, hard-coded at the top, and the two Monte Carlo streams are spawned from it through numpy's SeedSequence.spawn, so the output is deterministic to the last digit. The three validation blocks print PASSES or an explicit failure banner, so a broken run announces itself rather than producing plausible nonsense. Numbers differing from ours by more than the printed standard errors mean something is wrong and we would like to hear about it. The interactive model runs both models in your browser, with the same constants, and its default settings reproduce the headline numbers above.
References
Reproduce these numbers
From the analysis folder, run:
python layered-greenhouse.py > layered-greenhouse-output.txt- Seed
- 20260321
- Analysis code
- layered-greenhouse.py57 kB
- Raw output
- layered-greenhouse-output.txt36 kB
Arrhenius, S. (1896). XXXI. On the influence of carbonic acid in the air upon the temperature of the ground. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science 41(251), 237–276. doi:10.1080/14786449608620846
Schwarzschild, K. (1906). Über das Gleichgewicht der Sonnenatmosphäre. Nachrichten von der Königlichen Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse. The origin of the two-stream grey atmosphere; it predates the DOI system and has none.
Manabe, S. & Strickler, R. F. (1964). Thermal Equilibrium of the Atmosphere with a Convective Adjustment. Journal of the Atmospheric Sciences 21(4), 361–385. doi:10.1175/1520-0469(1964)021<0361:TEOTAW>2.0.CO;2
Manabe, S. & Wetherald, R. T. (1967). Thermal Equilibrium of the Atmosphere with a Given Distribution of Relative Humidity. Journal of the Atmospheric Sciences 24(3), 241–259. doi:10.1175/1520-0469(1967)024<0241:TEOTAW>2.0.CO;2
Ramanathan, V. & Coakley, J. A. Jr. (1978). Climate modeling through radiative-convective models. Reviews of Geophysics 16(4), 465–489. doi:10.1029/RG016i004p00465
Kiehl, J. T. & Trenberth, K. E. (1997). Earth's Annual Global Mean Energy Budget. Bulletin of the American Meteorological Society 78(2), 197–208. doi:10.1175/1520-0477(1997)078<0197:EAGMEB>2.0.CO;2
Held, I. M. & Soden, B. J. (2000). Water Vapor Feedback and Global Warming. Annual Review of Energy and the Environment 25, 441–475. doi:10.1146/annurev.energy.25.1.441
Trenberth, K. E., Fasullo, J. T. & Kiehl, J. (2009). Earth's Global Energy Budget. Bulletin of the American Meteorological Society 90(3), 311–324. doi:10.1175/2008BAMS2634.1
Lacis, A. A., Schmidt, G. A., Rind, D. & Ruedy, R. A. (2010). Atmospheric CO₂: Principal Control Knob Governing Earth's Temperature. Science 330(6002), 356–359. doi:10.1126/science.1190653
Pierrehumbert, R. T. (2010). Principles of Planetary Climate. Cambridge University Press. doi:10.1017/CBO9780511780783
Pierrehumbert, R. T. (2011). Infrared radiation and planetary temperature. Physics Today 64(1), 33–38. doi:10.1063/1.3541943
Kopp, G. & Lean, J. L. (2011). A new, lower value of total solar irradiance: Evidence and climate significance. Geophysical Research Letters 38(1). doi:10.1029/2010GL045777
Costa, S. M. S. & Shine, K. P. (2012). Outgoing Longwave Radiation due to Directly Transmitted Surface Emission. Journal of the Atmospheric Sciences 69(6), 1865–1870. doi:10.1175/JAS-D-11-0248.1
Wilson, D. J. & Gea-Banacloche, J. (2012). Simple model to estimate the contribution of atmospheric CO₂ to the Earth's greenhouse effect. American Journal of Physics 80(4), 306–315. doi:10.1119/1.3681188
Stephens, G. L., Li, J., Wild, M., Clayson, C. A., Loeb, N., Kato, S., L'Ecuyer, T., Stackhouse, P. W. Jr., Lebsock, M. & Andrews, T. (2012). An update on Earth's energy balance in light of the latest global observations. Nature Geoscience 5(10), 691–696. doi:10.1038/ngeo1580
Wild, M., Folini, D., Schär, C., Loeb, N., Dutton, E. G. & König-Langlo, G. (2013). The global energy balance from a surface perspective. Climate Dynamics 40(11–12), 3107–3134. doi:10.1007/s00382-012-1569-8
Zhong, W. & Haigh, J. D. (2013). The greenhouse effect and carbon dioxide. Weather 68(4), 100–105. doi:10.1002/wea.2072
Williams, J.-P., Paige, D. A., Greenhagen, B. T. & Sefton-Nash, E. (2017). The global surface temperatures of the Moon as measured by the Diviner Lunar Radiometer Experiment. Icarus 283, 300–325. doi:10.1016/j.icarus.2016.08.012
Loeb, N. G., Doelling, D. R., Wang, H., Su, W., Nguyen, C., Corbett, J. G., Liang, L., Mitrescu, C., Rose, F. G. & Kato, S. (2018). Clouds and the Earth's Radiant Energy System (CERES) Energy Balanced and Filled (EBAF) Top-of-Atmosphere (TOA) Edition-4.0 Data Product. Journal of Climate 31(2), 895–918. doi:10.1175/JCLI-D-17-0208.1
Koll, D. D. B. & Cronin, T. W. (2018). Earth's outgoing longwave radiation linear due to H₂O greenhouse effect. Proceedings of the National Academy of Sciences 115(41), 10293–10298. doi:10.1073/pnas.1809868115
Jeevanjee, N., Seeley, J. T., Paynter, D. & Fueglistaler, S. (2021). An Analytical Model for Spatially Varying Clear-Sky CO₂ Forcing. Journal of Climate. doi:10.1175/JCLI-D-19-0756.1
Forster, P. et al. (2021). The Earth's Energy Budget, Climate Feedbacks and Climate Sensitivity. In Climate Change 2021: The Physical Science Basis (IPCC AR6 WGI), 923–1054. Cambridge University Press. doi:10.1017/9781009157896.009
NASA Goddard Space Flight Center, NSSDC Planetary Fact Sheets (Earth, Mars, Venus, Moon). Solar irradiance, Bond albedo and blackbody temperature values used in §3 and §11. https://nssdc.gsfc.nasa.gov/planetary/factsheet/