lördag 28 september 2013

Reclaiming the Neanderthal Effect

As I have described previously on this blog there appears to be a group of people, here denoted the Lukewarmers, whose mission is to convince people that the Greenhouse Effect is not the Greenhouse Effect. Or perhaps it should be rephrased as follows: The Greenhouse Effect does not refer to the Greenhouse Effect. Why would they do that? Because the Greenhouse Effect™ is now so deeply ingrained into the public consciousness that it would be simply inadmissible to let people know what it actually refers to. What it refers to in the climatology literature is a heat pump composed of so called greenhouse gases that act so as to cool the stratosphere and warm the surface at the same time, and it does so with an astonishing efficiency. The absurdity of this is obvious, especially since it can be so easily disproven by simply looking at the planetary data. For this reason the Lukwarmers have devised at least two strategies to deal with this dilemma, one intended for gullible ordinary citizens and another one for gullible scientists. In short they go as this

1. The Greenhouse Effect is the Tyndall Effect

2. The Greenhouse Effect is the Neanderthal Effect

We will deal with these in the proper order:

1. The strategy to re-define the Greenhouse Effect as the Tyndall Effect is common in many videos available online, often intended for defenseless school children. By shining light from some particular lamp on two different containers of gas one can apparently detect a difference in the heating rate between the two containers. One of the things you could object to is the use of a lamp in the first place. Why can't you do anything unplugged? The answer would probably be: Because in the lab we don't have access to the sun. I could accept that answer if it hadn't been that according to the canonical description of the Greenhouse Effect the greenhouse gases are supposed to let the sunshine through, it is the terrestrial radiation that is supposedly being trapped. Moreover, if we are to believe the radiation intensities used in standard climatology there ought to be an abundance of terrestrial radiation in the lab, hence I do not understand the use of the lamp. 

2. I guess the Lukewarmers have somewhat sensed the above inconsistencies, hence the need for another strategy intended for deniers with scientific training. This one is much more cunning and deceitful, that is probably the reason why so many people have difficulties dealing with the following argument. The argument is: The Greenhouse Effect is the Neanderthal Effect. The Neanderthal Effect is simply the obstruction of radiative cooling caused by blankets, furs, aluminium foil on light bulbs, most probably the atmosphere, in other words a very ordinary effect known even by the Neanderthalians. A common reply by skeptics is something like the following:

-Yes, the obstruction to cooling is real but it is not caused by "back-radiation".

Oh, no no no no no.......

You went into the trap. Now you have, for free, given the Lukewarmers an extra degree of confusion:

3. The Greenhouse Effect is whatever effect is caused by "back-radiation"

The problem is that we don't know exactly what causes the Neanderthal Effect. Hence, you cannot say anything about the role of back-radiation in this case. All we know is that it is very ordinary and is caused by virtually any material, including CO2. And since it is caused by any material there is no justification picking out some particular "greenhouse gases" responsible for some particular "Greenhouse Effect". The latter is simply an illegitimate scientific concept.

In summary:

What the Lukewarmers want you to believe is that:

Radiative heat transfer is special
CO2 is a special gas (as regards thermodynamics)

Whereas the truth reads:

Radiative heat transfer is ordinary
CO2 is an ordinary gas (as regards thermodynamics)

onsdag 18 september 2013

A Discrete Model Atmosphere, UV-updated

I have updated my Discrete Model Atmosphere so that it now includes UV-forcing of the upper layers giving rise to a thermosphere. I have also included a "troposphere" where the heat absorption is uniform leading to a constant lapse rate in that region. I stress that these kind of toy models may very well become superfluous after a more complete simulation using the Navier-Stokes equations. Maybe Claes has some update on this. Anyway, regardless of its usefulness it gives rise to some questions of pure academic interest. Here is what it looks like now:

The thing I wanted to point out is the annoying jump discontinuity at the surface. Numerical experiments suggest that this jump can not be made smaller than F/(2k) regardless of the meshsize and other factors. I would very much like in input from some clever mathematician about the significance of this and how it could perhaps be circumvented in a more developed model. As a side remark, I think that Miskolczi discusses the topic of jump discontinuities at the surface in his paper. The problem is that I don't understand his paper (nor find it on the internet anymore). Input is very welcome.

Updated script:

import numpy as np
import matplotlib.pyplot as plt

interval = 6
trop = 1        ## height of the "troposphere"
meshsize = 0.1

N = int (interval/meshsize)

weight = np.zeros(N)

## Please note that the "weight" is not the actual weight but a positive
## function taking values between 0 and 1 which increases monotonically on the
## actual weight (mass), meant to quantify the "heat-absorption"

weight[0] = 1   ## The surface is given complete heat absoption

for idx in range(1,N):

    if idx*meshsize < trop:
        weight[idx] = 1*meshsize    ## Troposheric weight put to 1 (times meshsize)
        weight[idx] =  np.exp(-(idx*meshsize - trop))*meshsize

A = np.zeros([N,N])
for idx1 in range(N):
    for idx2 in range(N):
        if idx1 == idx2:
            if idx1 == 0:
                A[idx1,idx2] = -1
                A[idx1,idx2] = -2
            A[idx1,idx2] = weight[idx2]

            if idx2>idx1:

                for idx3 in range(idx1+1, idx2):
                    A[idx1,idx2] = A[idx1,idx2]*(1-weight[idx3])

                for idx3 in range(idx2+1, idx1):
                    A[idx1,idx2] = A[idx1,idx2]*(1-weight[idx3])    

k = 1           ## Conductivity
uv = 1          ## UV-factor
screen = 0.5    ## Screening of UV-light (not rigorous, just toy model)

F = np.zeros(N)

F[0] = 1.0    ## Solar radiation incident on surface

for idx in range(N):
    F[idx] = F[idx] + uv*screen**(N-idx)    ## adding UV-forcing


temp = np.linalg.solve(A,-F/k)  ## Forcing vector divided by the "conductivity"
                                ## or perhaps more accurately, the diffusion parameter

x = np.arange(0,interval,meshsize)

plt.plot(x, temp)