In Part Three we saw some results of absorption and emission in the atmosphere but later I commented that the model had some flaws.

Take a look at Part Three for more about the model.

### The Model Flaws and Update

The model (v0.3.1) had poorly defined boundaries and as a result the downward flux through a layer of the atmosphere was affecting the temperature of an adjacent layer.

I noticed the problems when looking at the model stratospheric temperature profile (the upper atmosphere). According to theory, with no ozone the stratospheric temperature shouldn’t increase from the tropopause. Yet in my model it did. So I ran some stability tests:

- different number of layers
- different top of atmosphere height/pressure
- longer runs
- shorter and longer time steps

Flaws kept appearing, including instabilities.

Anyway, the model is now fixed (according to the army of Science of Doom testers). v0.3.3 is logged in the notes.

Because the flaw was in the stratosphere, fixing the flaw (luckily) had minimal effect on the TOA flux results previously reported. Here are the new results:

*Figure 1 – Click on image for a larger view*

Note: ppm concentration in “Summary Results” has an incorrect legend. It is not ppm, but just a mixing ratio. The highest value is just over 3×10^{-3} , i.e., just over 3000 ppm.

If we compare with Figure 2 in Part Three, we see the results are similar.

Here are some stability test results after the model was fixed, trying different time steps for the same total time, and comparing the final temperature profile as well as TOA flux:

*Figure 2 – Click on image for a larger view*

Note: there is an error in the graph title. The model time period was 10,000 hrs (60 weeks).

And trying a fixed time step with different number of timesteps (so the total time is variable):

*Figure 3 – Click on image for a larger view*

So with the earlier mistakes out of the way..

### Why the Lapse Rate Matters

Here are the results from 8 runs with fixed pCO2 concentration (at the highest value from earlier runs) and different lapse rates (note 1). Only 4 of the individual results are shown, and the temperature profile is from the last run:

*Figure 4 – Click on image for a larger view*

The first graph shows that the TOA flux is equal to the surface flux – and the spectrum shows no characteristic “notches” in it. Yet there are 2 highly absorbing gases (pH2O and pCO2) present. How can this be?

The radiatively-active gases absorb and also emit. If the emission is from a location in the atmosphere which is at the same temperature as the source of the original radiation then, in simple terms, “the amount taken out (absorbed)” = “the amount put back in (emitted)”.

The lapse rate increases in each of the following 3 graphs in figure 4, meaning that the atmosphere gets colder at any given height. Therefore, the emitted radiation from a given height will be from a colder gas and therefore will be of a lower intensity.

**Question** – *if the lapse rate in the last scenario run is 10 K/km what do we learn from the 5th graph, which shows temperature vs height*?

What the above model runs show is that changes in the lapse rate affect the inappropriately-named “greenhouse” effect = the difference between the surface radiation and the TOA radiation.

For example, if there is more water vapor in the lower atmosphere the lapse rate will **reduce**. As a result the TOA flux will **increase**. And, as already explained in Part Three (under “Reducing Emission and “The Greenhouse Effect”), this will have the effect of reducing the surface temperature – all other things being equal. Of course, more water vapor will also change the atmospheric absorption so all other things aren’t equal.

### Overlapping Bands

A common area of concern for people trying to understand the effect of absorbing gases in the atmosphere is this:

How can CO2 have any impact when water vapor has a much higher concentration in the lower atmosphere, has such a high absorption and overlaps the CO2 band?

The model results might be interesting here. The model is still very simplistic. Here are the new absorption characteristics:

*Figure 5 *

For no particular reason the absorption coefficients are the same, and the pH2O absorption now completely encompasses the pCO2 band.

As in Part Two, the concentration of pH2O in the lower atmosphere is much higher than pCO2, even for the highest concentration of pCO2 simulated:

*Figure 6*

Here are the results of the simulation runs:

*Figure 7 – Click on the image for a larger view*

This should be of interest. pH2O has a much higher concentration in the lower atmosphere. Yet, as the concentration of pCO2 increases the TOA flux is affected significantly. Of course, not nearly as much as when pCO2 alone affected 600-800 cm^{-1}, and the concentration has to reach a higher value than before to affect the TOA flux.

Notice as well that the DLR, or back radiation, is constant in each of the graphs in the last figure. How can this be?

Plenty of food for thought.

*Last point for reference* – these are fictional molecules, created for the purpose of illustrating the effect of absorption and emission through the atmosphere. They have vaguely similar characteristics to the real molecules H2O and CO2, but are far from identical.

### Conclusion

The simplistic model demonstrates that lapse rate plays an important part in the effect on top of atmosphere fluxes.

The model also demonstrates that even with a higher concentration absorber in the lower atmosphere, an absorber higher up in the atmosphere can have a significant effect.

These kind of results are not easy to calculate in your head. That’s just because the equations of radiative transfer, although well-known, are not linear. And not many people can calculate summations – in their head – across multiple changing variables when one of the key terms is e^{-x}.

The model is still quite simple, not including effects like line width and its dependence on pressure and temperature. And not including the hideous complexity that is stored in the HITRANS database.

*Other articles:*

*Part One – a bit of a re-introduction to the subject
*

*Part Two – introducing a simple model, with molecules pH2O and pCO2 to demonstrate some basic effects in the atmosphere. This part – absorption only*

*Part Three – the simple model extended to emission and absorption, showing what a difference an emitting atmosphere makes. Also very easy to see that the “IPCC logarithmic graph” is not at odds with the Beer-Lambert law.*

*Part Five – a bit of a wrap up so far as well as an explanation of how the stratospheric temperature profile can affect “saturation”*

*Part Six – The Equations – the equations of radiative transfer including the plane parallel assumption and it’s nothing to do with blackbodies*

*Part Seven – changing the shape of the pCO2 band to see how it affects “saturation” – the wings of the band pick up the slack, in a manner of speaking*

*And Also -*

*Theory and Experiment – Atmospheric Radiation – real values of total flux and spectra compared with the theory. *

### Notes

**Note 1**: Lapse rate is the temperature change with altitude – typically a reduction of 6.5K per km. This is primarily governed by “adiabatic expansion” and is affected by the amount of water vapor in the atmosphere. See Venusian Mysteries and the following articles for more.

**Note 2: **The Matlab code, v0.3.3

The code is easiest seen by downloading the word doc, but here it is for reference:

======= v0.3.3 ======================

% RTE = Radiative transfer equations in atmosphere

% Objective – allow progressively more complex applications

% to help people see what happens in practice in the atmosphere

% v0.2 allow iterations of one (or more) parameter to find the TOA flux vs

% changed parameter

% v0.3 add emissivity = absorptivity ; as a function of wavelength. Also

% means that downward and upward radiation must be solved, plus iterations

% to allow temperature to change to find stable solution. Use convective

% adjustment to the lapse rate

% v0.3.1 changes the method of defining the atmosphere layers for radiation

% calculations, to have roughly constant mass for each layer

% v0.3.2 tries changing lapse rates and tropopause heights

% v0.3.3 revises element boundaries as various problems found in testing of

% v0.3.2

clear % empty all the variables, so previous runs can have no effect

disp(‘ ‘);

disp(['---- New Run ---- ' datestr(now) ' ----']);

disp(‘ ‘);

% SI units used unless otherwise stated

% ============= Define standard atmosphere against height ================

% first a “high resolution” atmosphere

% zr = height, pr = pressure, Tr = temperature, rhor = density

Ts=300; % define surface temperature

ps=1.013e5; % define surface pressure

% nmv=2.079e25; % nmv x rho = total number of molecules per m^3, not yet

% used

maxzr=50e3; % height of atmosphere

numzr=5001; % number of points used to define real atmosphere

zr=linspace(0,maxzr,numzr); % height vector from sea level to maxzr

[pr Tr rhor ztropo] = define_atmos_0_2(zr,Ts,ps); % function to determine (or lookup) p, T & rho

% Create “coarser resolution” atmosphere – this reduces computation

% requirements for absorption & emission of radiation

% z, p,Tinit,rho; subset of values used for RTE calcs

numz=30; % number of boundaries to consider (number of layers = numz-1)

minp=1e4; % top of atmosphere to consider in pressure (Pa)

% want to divide the atmosphere into approximately equal pressure changes

dp=(pr(1)-minp)/(numz); % finds the pressure change for each height change

zi=zeros(1,numz); % zi = lookup vector to “select” heights, pressures etc

for i=1:numz % locate each value

zi(i)=find(pr<=(pr(1)-i*dp), 1); % gets the location in the vector where

% pressure is that value

end

% now create the vectors of coarser resolution atmosphere

% z(1) = surface; z(numz) = TOA

% T, p, rho all need to be in the midpoint between the boundaries

% T(1) is the temperature between z(1) and z(2), etc.

z=zr(zi); % height

pb=pr(zi); % pressure at boundaries

Tb=Tr(zi); % starting temperature at boundaries

rhob=rhor(zi); % density at boundaries

% now calculate density, pressure and temperature within each layer

for i=1:numz-1

dz(i)=z(i+1)-z(i); % precalculate thickness of each layer

Tinit(i)=(Tb(i+1)+Tb(i))/2; % temperature in midpoint of boundary

p(i)=(pb(i+1)+pb(i))/2; % pressure in midpoint of boundary

rho(i)=(rhob(i+1)+rhob(i))/2; % density in midpoint of boundary

end

% ============ Set various values =========================

lapse=6.5e-3; % environmental lapse rate in K/m ** note potential conflict with temp profile already determined

% currently = max lapse rate for convective adjustment, but not used to

% define initial temperature profile

ems=0.98; % emissivity of surface

cp=1000; % specific heat capacity of atmosphere, J/K.kg

convadj=true; % === SET TO true === for convective adjustment to lapse rate = lapse

emission=true; % ==== SET TO true ==== for the atmosphere to emit radiation

tstep=3600*12; % fixed timestep of 1hr

nt=1000; % number of timesteps

% work in wavenumber, cm^-1

dv=5;

v=100:dv:2500; % wavenumber (=50um – 4um)

numv=length(v);

rads=ems.*planckmv(v,Ts); % surface emissive spectral power vs wavenumber, v

disp(['Tstep= ' num2str(tstep/3600) 'hrs , No of steps= ' num2str(nt) ', numz= ' num2str(numz) ', minp= ' num2str(minp) 'Pa, lapse= ' num2str(lapse*1000) ' K/km']);

% ============== Introducing the molecules ==============================

% need % mixing in the atmosphere vs height, % capture cross section per

% number per frequency, pressure & temperature broadening function

nummol=2; % number of radiatively-active gases

mz=ones(nummol,numz-1); % initialize mixing ratios of the gases

% specific concentrations

% pH2O = pretend H2O

emax=17e-3; % max mixing ratio (surface) of 17g/kg

mz(1,:)=(ztropo-z(1:numz-1)).*emax./ztropo; % straight line reduction from surface to tropopause

mz(1,(mz(1,:)<0))=5e-6; % replace negative values with 5ppm, ie, for heights above tropopause

% pCO2 = pretend CO2

mz(2,:)=3e-3; % a fixed mixing ratio for pCO2

% absorption coefficients

k1=0.3; % arbitrary pick – in m2/kg while we use rho

k2=0.3; % likewise

a=zeros(nummol,length(v)); % initialize absorption coefficients

a(1,(v>=1250 & v<=1500))=k1; % wavelength dependent absorption

a(2,(v>=600 & v<=800))=k2; % ” “

% ========== Scenario loop to change key parameter =======================

% for which we want to see the effect

%

nres=10; % number of results to calculate ******

flux=zeros(1,nres); % TOA flux for each change in parameter

fluxd=zeros(1,nres); % DLR for each change in parameter, not really used yet

par=zeros(1,nres); % parameter we will alter

% this section has to be changed depending on the parameter being changed

% now = CO2 concentration

par=logspace(-5,-2.5,nres); % values vary from 10^-5 (10ppm) to 10^-2.5 (3200ppm)

% par=1; % kept for when only one value needed

% ================== Define plots required =======================

% last plot = summary but only if nres>1, ie if more than one scenario

% plot before (or last) = temperature profile, if plottemp=true

% plot before then = surface downward radiation

plottemp=true; % === SET TO true === if plot temperature profile at the end

plotdown=false; % ====SET TO true ==== if downward surface radiation required

if nres==1 % if only one scenario

plotix=1; % only one scenario graph to plot

nplot=plottemp+plotdown+1; % number of plots depends on what options chosen

else % if more than one scenario, user needs to put values below for graphs to plot

plotix=[1 4 7 nres]; % graphs to plot – “user” selectable

nplot=length(plotix)+plottemp+plotdown+1; % plot the “plotix” graphs plus the summary

% plus the temperature profile plus downward radiation, if required

end

% work out the location of subplots

if nplot==1

subr=1;subc=1; % 1 row, 1 column

elseif nplot==2

subr=1;subc=2; % 1 row, 2 columns

elseif nplot==3 || nplot==4

subr=2;subc=2; % 2 rows, 2 columns

elseif nplot==5 || nplot==6

subr=2;subc=3; % 2 rows, 3 columns

else

subr=3;subc=3; % 3 rows, 3 columns

end

for n=1:nres % each complete run with a new parameter to try

% — the line below has to change depending on parameter chosen

% to find what the stability problem is we need to store all of the

% values of T, to check the maths when it goes unstable

mz(2,:)=par(n);

disp(['Run = ' num2str(n)]);

T=zeros(nt,numz-1); % define array to store T for each level and time step

T(1,:)=Tinit; % load temperature profile for start of scenario

% remove??? T(:,1)=repmat(Ts,nt,1); % set surface temperature as constant for each time step

% First pre-calculate the transmissivity and absorptivity of each layer

% for each wavenumber. This doesn’t change now that depth of each

% layer, number of each absorber and absorption characteristics are

% fixed.

% n = scenario, i = layer, j = wavenumber, k = absorber

trans=zeros(numz-1,numv); abso=zeros(numz-1,numv); % pre-allocate space

for i=1:numz-1 % each layer

for j=1:numv % each wavenumber interval

trans=1; % initialize the amount of transmission within the wavenumber interval

for k=1:nummol % each absorbing molecule

% for each absorber: exp(-density x mixing ratio x

% absorption coefficient x thickness of layer)

trans=trans*exp(-rho(i)*mz(k,i)*a(k,j)*dz(i)); % calculate transmission, = 1- absorption

end

tran(i,j)=trans; % transmissivity = 0 – 1

abso(i,j)=(1-trans)*emission; % absorptivity = emissivity = 1-transmissivity

% if emission=false, absorptivity=emissivity=0

end

end

% === Main loops to calculate TOA spectrum & flux =====

% now (v3) considering emission as well, have to find temperature stability

% first, we cycle around to confirm equilibrium temperature is reached

% second, we work through each layer

% third, through each wavenumber

% fourth, through each absorbing molecule

% currently calculating surface radiation absorption up to TOA AND

% downward radiation from TOA (at TOA = 0)

for h=2:nt % main iterations to achieve equilibrium

radu=zeros(numz,numv); % initialize upward intensity at each boundary and wavenumber

radd=zeros(numz,numv); % initialize downward intensity at each boundary and wavenumber

radu(1,:)=rads; % upward surface radiation vs wavenumber

radd(end,:)=zeros(1,numv); % downward radiation at TOA vs wavenumber

% units of radu, radd are W/m^2.cm^-1, i.e., flux per wavenumber

% h = timestep, i = layer, j = wavenumber

% Upward (have to do upward, then downward)

Eabs=zeros(numz-1); % zero the absorbed energy before we start

for i=1:numz-1 % each layer

for j=1:numv % each wavenumber interval

% first calculate how much of each monochromatic ray is

% transmitted to the next layer

radu(i+1,j)=radu(i,j)*tran(i,j);

% second, add emission at this wavelength:

% planck function at T(i) x emissivity (=absorptivity)

% this function is spectral emissive power (pi x intensity)

radu(i+1,j)=radu(i+1,j)+abso(i,j)*3.7418e-8.*v(j)^3/(exp(v(j)*1.4388/T(h-1,i))-1);

% Change in energy = dI(v) * dv (per second)

% accumulate through each wavenumber

% if the upwards radiation entering the layer is more than

% the upwards radiation leaving the layer, then a heating

Eabs(i)=Eabs(i)+(radu(i,j)-radu(i+1,j))*dv;

end % each wavenumber interval

end % each layer

% Downwards (have to do upward, then downward)

for i=numz-1:-1:1 % each layer from the top down

for j=1:numv % each wavenumber interval

% first, calculate how much of each monochromatic ray is

% transmitted to the next layer, note that the TOA value

% is set to zero at the start

radd(i,j)=radd(i+1,j)*tran(i,j); % attentuation..

% second, calculate how much is emitted at this wavelength,

radd(i,j)=radd(i,j)+abso(i,j)*3.7418e-8.*v(j)^3/(exp(v(j)*1.4388/T(h-1,i))-1); % addition..

% accumulate energy change per second

Eabs(i)=Eabs(i)+(radd(i+1,j)-radd(i,j))*dv;

end % each wavenumber interval

dT=Eabs(i)*tstep/(cp*rho(i)*dz(i)); % change in temperature = dQ/heat capacity

T(h,i)=T(h-1,i)+dT; % calculate new temperature

if T(h,i)>500 % Finite Element analysis problem

disp(['Terminated at n= ' num2str(n) ', h= ' num2str(h) ', z(i)= ' num2str(z(i)) ', i = ' num2str(i)]);

disp(['time = ' num2str(h*tstep/3600) ' hrs; = ' num2str(h*tstep/3600/24) ' days']);

disp(datestr(now));

return

end

% need a step to see how close to an equilibrium we are getting

% not yet implemented

end % each layer

% now need convective adjustment

if convadj==true % if convective adjustment chosen..

for i=2:numz-1 % go through each layer

if (T(h,i-1)-T(h,i))/dz(i)>lapse % too cold, convection will readjust

T(h,i)=T(h,i-1)-(dz(i)*lapse); % adjust temperature

end

end

end

end % iterations to find equilibrium temperature

flux(n)=sum(radu(end,:))*dv; % calculate the TOA flux

fluxd(n)=sum(radd(1,:))*dv; % calculate the DLR total

% === Plotting specific results =======

% Decide if and where to plot

ploc=find(plotix==n); % is this one of the results we want to plot?

if not(isempty(ploc)) % then plot. “Ploc” is the location within all the plots

subplot(subr,subc,ploc),plot(v,radu(end,:)) % plot wavenumber against TOA emissive power

xlabel(‘Wavenumber, cm^-^1′,’FontSize’,8)

ylabel(‘W/m^2.cm^-^1′,’FontSize’,8)

title(['pCO2 conc= ' num2str(round(par(n)*1e6)) 'ppm, TOA flux= ' num2str(round(flux(n)))...

' W/m^2, DLR= ' num2str(round(fluxd(n)))])

% —

% subplot(subr,subc,ploc),plot(T(end,:),z(2:numz)/1000)

% title(['No of time steps = ' num2str(par(n)) ', Total TOA flux= ' num2str(round(flux(n))) ' W/m^2'])

% xlabel(‘Temperature, K’,’FontSize’,8)

% ylabel(‘Height, km’,’FontSize’,8)

grid on

end

end % end of each run with changed parameter to see TOA effect

if plotdown==1 % plot downward surface radiation, if requested

plotloc=nplot-plottemp-(nres>1); % get subplot location

subplot(subr,subc,plotloc),plot(v,radd(2,:)) % plot wavenumber against downward emissive power

title(['Surface Downward, W/m^2.cm^-^1, Total DLR flux= ' num2str(round(fluxd(n))) ' W/m^2'])

xlabel(‘Wavenumber, cm^-^1′,’FontSize’,8)

ylabel(‘W/m^2.cm^-^1′,’FontSize’,8)

grid on

end

if plottemp==1 % plot temperature profile vs height, if requested

plotloc=nplot-(nres>1); % get subplot location

subplot(subr,subc,plotloc),plot(T(end,:),z(2:numz)/1000)

title(‘Temperature vs Height’)

xlabel(‘Temperature, K’,’FontSize’,8)

ylabel(‘Height, km’,’FontSize’,8)

grid on

end

if nres>1 % produce summary plot – TOA flux vs changed parameter

subplot(subr,subc,nplot),plot(par,flux)

title(‘Summary Results’,’FontWeight’,’Bold’)

ylabel(‘TOA Flux, W/m^2′,’FontSize’,8)

xlabel(‘pCO2 concentration, ppm’,’FontSize’,8) % ==== change label for different scenarios =========

grid on

end

disp(['---- Complete End ---- ' datestr(now) ' ----']);

on February 3, 2011 at 1:16 pm |Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Three « The Science of Doom[...] « Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Two Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Four [...]

on February 3, 2011 at 2:59 pm |mkellyPerhaps this might assist you. This is a paper on radiative heat transfer in the atmosphere. Please note page 23 on the resultant flux caused by CO2 “vanishing in the chart”. Also he has a formula F= F1-F2 which then goes to

(Cp*(deltaT)*(p1-p2))/g = F1-F2.

I hope this helps.

on February 3, 2011 at 9:14 pm |Tom CurtisI notice that in figure 1 pCO2 is scaled from 0 to 0.004 ppm in the summary results, while in figure 7 it is scaled from 0 to 4000 ppm. That is a million fold difference. Is it correct?

on February 3, 2011 at 9:24 pm |scienceofdoomThe legend is incorrect, thanks for pointing it out.

I have to change which info appears in some plots manually.

In fig 1, I forgot to do my usual of multiplying the value in the x-axis plot by 1×10^6, but kept the legend.

I will add a note to the figure.

on February 4, 2011 at 9:41 am |David ReeveSOD, that was truly illuminating. The impact of the lapse rate both surprised and delighted me…… yet now I see it, it’s kind of obvious :-)

on February 4, 2011 at 12:04 pm |scienceofdoomNo one has answered this:

I suspect some think it is so obvious they don’t want to get in the way of the beginners, and others don’t want to answer in case they are wrong..

What is the lapse rate all about?If the lapse rate is 10K/km – what it means in simple terms is that if we move a parcel of gas quickly 1km upwards it will cool by 10K (10’C).

Let’s say the surface is at 300K and we move a parcel of gas upwards by 1km. As a result, the parcel of gas expands “adiabatically” and therefore cools by 10K. So the parcel of gas will now be at 290K.

If the temperature 1km off the ground is 280K then this newly arrived parcel will be at a higher temperature and therefore less dense and therefore it will keep rising.

This is commonly called “convective overturning”.

It means that if the atmospheric temperature is too cold as we increase in height then the natural effect of convection is to reduce this.

The situation is unstableand movement of air will rapidly take place until the atmospheric temperature profile matchesthe lapse rate.The reason is this.

Adiabatic expansion of atmospheric gas causes cooling at a certain rate. If the atmosphere has a temperature gradient which makes it

colderthan this adiabatic expansion, then convection will naturally take place and make the atmosphere warmer higher up.Convection moves heat very effectively.

But if the atmosphere has a temperature gradient which makes it

warmerthan the adiabatic expansion, then convection cannot make it any warmer.And as the atmosphere becomes

optically thin– that is, as radiation can travel easily through the atmosphere – radiation moves heat more effectively than convection.In this artificial example, as the lapse rate becomes progressively “less effective” (a higher number), we reach a point where radiation can transfer heat more effectively than convection.

This isn’t normally what we find in the lower atmosphere, but it is what we find in the stratosphere, which is why the temperature profile changes from a slope going colder as height increases, to a constant temperature as height increases. And then finally the effect of ozone actually makes the stratosphere warmer.

on February 4, 2011 at 5:35 pm |DeWitt PayneOf course there’s more to the lapse rate than just overturning. As pointed out on the Venus threads, an isothermal atmosphere is theoretically stable, but only for a one dimensional atmosphere. As soon as you add a second dimension with a surface temperature gradient you get what amounts to Hadley circulation which will force an isothermal atmosphere, even a non-radiative atmosphere, back towards an adiabatic lapse rate.

A one dimensional, radiatively active, isothermal atmosphere isn’t stable either. The top layer will absorb less energy than it emits and cool. When it cools enough it’s denser than the layer below, which is also now absorbing less than it emits and you get overturning from the top.

on February 6, 2011 at 1:31 am |Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Five « The Science of Doom[...] the results shown in Figure 7 of Part Four, here is the last TOA spectrum and below, the corresponding DLR [...]

on February 9, 2011 at 12:10 am |BryanSoD

……..”What is the lapse rate all about?

If the lapse rate is 10K/km – what it means in simple terms is that if we move a parcel of gas quickly 1km upwards it will cool by 10K (10′C).”……

Not true.

The reason for the drop is gravity and the gaining of PE of any mass, even gas particles.(PE=mgh)

dT/dh = – g/Cp =9.8K/km.

Would be true for a fairly still atmosphere.

In fact for highly mobile parcel of air the temperature within the parcel will not drop by 10K in one km.

on February 9, 2011 at 12:34 am |scienceofdoomBryan:

If you move a parcel of air “very slowly” upwards it will exchange energy with the surrounding atmosphere and the expansion will no longer be adiabatic.

Then the derivation can no longer be used.

“Very slowly” and “quickly” are shorthand ways of saying “diabatic” and “adiabatic”.

The derivation of adiabatic cooling is incorrect?

The pressure drops, the gas expands and somehow this work has been done without a loss of heat?

Because the parcel is mobile?

Did you mean to write this?

on February 10, 2011 at 7:17 pm |BryanA helium filled balloon will rise because of density considerations.

The temperature of the balloon will not have had time to change to measure exactly the outside temperature.

However because of the pressure drop outside the balloon expands.

Now back to the air parcel

We often focus on the obvious thing we see such as a bubble rising through water rather than the falling water taking up the space left behind by the bubble.

Convection also moves down.

In a way it would be quite nice to simply to say KE lost by gas particles in rising parcel of air is exactly equal to the gain in PE.

However the sums do not work out – try it for yourself.

The temperature drops but the simple 3kt/2 calculation is not near the PE gain.

on February 13, 2011 at 4:06 pmDeWitt PayneSay what? Expansion and temperature reduction are simultaneous. Or are you assuming an instantaneous translation of the balloon from one altitude to another and expansion hasn’t happened yet?

You’re leaving out the PV work done by the expansion. Add that in and it all balances. Either that or you’re not doing the calculation correctly. For adiabatic expansion PV

^{γ}; is a constant. γ; is ~1.67 for a monatomic gas and ~1.4 for dry air.on February 14, 2011 at 12:03 pmBryanDeWitt Payne

The point about the helium balloon was to underline the effects of buoyancy.

A theoretical rigid insulated weightless balloon will rise several thousand feet by buoyancy.

Back to SoDs air parcel .

If the rise is too rapid (turbulent) then local thermal equilibrium will not hold.

Apart from this the numbers dont add up for a simple adiabatic expansion.

Take a mole of air at STP for convenience.

For it to rise 1000m the lapse rate tells us temperature drops about 10K.

PE gained by air mass = 282.5J

KE lost by temperature drop = 124.6J

PV work done by expanding gas;

Using formula

Work done = (p1v1-p2v2)1/(γ-1) = 210J

If my calculation is correct the numbers dont agree with a simple theory.

on February 9, 2011 at 9:40 pm |Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Seven « The Science of Doom[...] than CO2 in the lower troposphere, therefore there is nothing more for CO2 to affect. We saw in Part Four that even making the absorption coefficient of pH2O the same as pCO2 – so that the DLR (back [...]

on July 7, 2011 at 6:34 am |Anonymous[...] [...]

on August 11, 2011 at 6:40 pm |Andrejs VanagsThank you, thank you! for building the case from first principles, testing increasingly complex models with code, and more than that: making the code available. Thank you

I am trying to run your scripts, but I am missing an updated version of define_atmos

where could I get: define_atmos_0_2 ?

on August 11, 2011 at 8:20 pm |scienceofdoomYou are very welcome, it’s great that you are trying the models out.

Here is the code for define_atmos_0_2 – as a word doc, just rename the file .m.

=======define_atmos_0_2.m =========

function [pr Tr rhor ztropo] = define_atmos_0_2(zr, Ts, ps)

% Calculate pressure, pr; temperature, Tr; density, rhor; from height, zr;

% surface temperature, Ts; and surface pressure, ps

% By assuming a standard temperature profile to a fixed tropopause temp

% zr is a linear vector and starts at the surface

pr=zeros(1,length(zr)); % allocate space

Tr=zeros(1,length(zr)); % allocate space

rhor=zeros(1,length(zr)); % allocate space

% first calculate temperature profile

lapset=6.5/1000; % lapse rate in K/m

Ttropo=215; % temperature of tropopause

htropo=10000; % height of tropopause

% Tstrato=270; % temperature of stratopause

Tstrato=215; % temperature of stratopause – making stratosphere isothermal

zstrato=50000; % height of stratopause

ztropo=((Ts-Ttropo)/lapset); % height of bottom of tropopause in m

for i=1:length(zr)

if zr(i)=ztropo && zr(i)(ztropo+htropo) && zr(i)<zstrato)

Tr(i)=Ttropo+(zr(i)-(ztropo+htropo))*(Tstrato-Ttropo)/(zstrato-(ztropo+htropo)); % stratosphere

else

Tr(i)=Tstrato; % haven't yet defined temperature above stratopause

% but this prevents an error condition

end

end

% pressure, p = ps * exp(-mg/R*integral(1/T)dz) from 0-z

mr=28.57e-3; % molar mass of air

R=8.31; % gas constant

g=9.8; % gravity constant

intzt=0; % sum the integral of dz/T in each iteration

dzr=zr(2)-zr(1); % dzr is linear so delta z is constant

pr(1)=ps; % surface condition

for i=2:length(zr)

intzt=intzt+(dzr/Tr(i));

pr(i)=ps*exp(-mr*g*intzt/R);

end

% density, rhor = mr.p/RT

rhor=mr.*pr./(R.*Tr);

end

==== end of code ===========

on August 13, 2011 at 2:49 am |CarrickScienceOfDoom: Just a small suggestion.

You might get yourself an account on e.g. dropbox (you can get 2GB storage per month free).

It lets you upload any type of file and create a url pointing to them, which you can then insert into your blog..

For example here’s an AWK program that does anomalization. The urls are even relatively human readable.

Google does something similar.

on August 24, 2011 at 12:40 pm |tempterrainI think this topic needs more consideration. For instance this paper by Verkley and Gerkema is relevant:

“”A column of dry air in hydrostatic equilibrium ….. bounded by two ﬁxed values of the pressure, and the question is asked, what vertical temperature proﬁle maximizes the total entropy of the column? Using an elementary variational calculation, it is shown how the result depends on what is kept ﬁxed in the maximization process. If one assumes that there is no net heat exchange between the column and its surroundings—implying that the vertical integral of the absolute temperature remains constant—an ISOTHERMAL proﬁle is obtained in accordance with classical thermodynamics and the kinetic theory of gases”

http://www.nioz.nl/public/fys/staff/theo_gerkema/jas04.pdf

If that would not be the case, it would be possible to build a machine that makes mechanical energy from a single source of heat. This goes against the 2nd law of thermodynamics.

The natural intuition that the temperature must be warmer at the bottom, because molecules gain energy, when falling, is wrong because it’s exactly compensated by another phenomenon: Those molecules that have little energy cannot go up as well as those with more energy.

This is not to deny that the sudden imposition of a gravitational field on a column of gas would

indeed set up a temperature gradient. It would – but it wouldn’t persist. It would

quickly be homogenized and the column would become isothermal.

So if a column of gas behaves this way would a GH free atmosphere behave the same way too? I think it might. Without the driving force of IR radiation from the upper reaches of the atmosphere there would be very little net heat flux in our column of air. There would be no re-radiation of course and very little convection. A GH free atmosphere would be very different from our present one and approximately much more closely to an isothermal state.

on August 24, 2011 at 3:34 pm |DeWitt PayneThe key phrase is ‘more closely’. A one dimensional transparent atmosphere should indeed eventually become isothermal. But a planet’s surface isn’t isothermal and the atmosphere has three dimensions. The equator will be warmer than the poles. That’s going to cause circulation between the equator and higher latitudes. That circulation will prevent the atmosphere from becoming isothermal everywhere. On average, temperature will decrease with altitude, although there may be regions that are close to isothermal.

on August 26, 2011 at 3:13 amwillbDeWitt Payne,

In your one-dimensional transparent isothermal atmosphere, what happens to the top of the atmosphere? I was wondering if it might disappear:

1) If it existed, there would be an abrupt boundary transition from the isothermal temperature of the atmosphere to the absolute zero temperature of deep space. This seems contrary to to the idea of maximum entropy.

2) If the molecules at the top of the atmosphere are just as kinetically active as those on the surface, then there is nothing really stopping them from moving further out beyond any supposed top of the atmosphere.

This seems to imply that there is no top to the atmosphere. However if that were so then I think it would mean the atmosphere has actually dispersed throughout deep space.

on August 26, 2011 at 4:16 pmDeWitt PayneAt very low pressures local thermodynamic equilibrium no longer applies. That doesn’t matter all that much, though, if the only form of energy transfer is by collision. The average kinetic energy of the molecules could still be the same as at lower pressure, but it gets a lot harder to measure. Heat transfer also slows down considerably. Conceptually, an isothermal atmosphere at low pressure isn’t a problem. The more interesting question is what happens to the adiabatic lapse rate at very low pressure. The temperature can’t go below 0 K.

on August 26, 2011 at 4:21 pmDeWitt PayneYes, there is no sharp line delineating the top of the atmosphere. Other effects like solar wind dominate. Some molecules at the upper end of the kinetic energy distribution do achieve escape velocity. That’s especially true of lighter atoms and molecules like helium and hydrogen. The lifetime of a helium atom in the atmosphere is on the order of 100 years before it escapes the atmosphere into interplanetary space.

It was once suggested that photodissociation of water followed by the escape of hydrogen was a significant source of oxygen in the atmosphere.

on August 25, 2011 at 1:34 am |willbtempterrain,

Can you explain this in more detail or do you have a link that might explain it?