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) ‘ —-‘]);
[…] « Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Two Understanding Atmospheric Radiation and the “Greenhouse” Effect – Part Four […]
Perhaps 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.
I 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?
The 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.
SOD, 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 🙂
No 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 unstable and movement of air will rapidly take place until the atmospheric temperature profile matches the 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 colder than 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 warmer than 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.
Of 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.
[…] the results shown in Figure 7 of Part Four, here is the last TOA spectrum and below, the corresponding DLR […]
SoD
……..”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.
Bryan:
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?
A 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.
Say 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.
DeWitt 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.
[…] 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 […]
[…] […]
Thank 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 ?
You 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 ===========
ScienceOfDoom: 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.
I 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 fixed values of the pressure, and the question is asked, what vertical temperature profile maximizes the total entropy of the column? Using an elementary variational calculation, it is shown how the result depends on what is kept fixed 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 profile is obtained in accordance with classical thermodynamics and the kinetic theory of gases”
Click to access 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.
The 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.
DeWitt 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.
At 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.
Yes, 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.
tempterrain,
Can you explain this in more detail or do you have a link that might explain it?