Friday, August 16, 2019

Wetter or drier?

Will the world become wetter or drier overall? The article https://www.aaas.org/news/drying-atmosphere-spurs-decline-vegetation-growth says: "The findings reveal that atmospheric water vapor is expected to further wane throughout the 21st century due to rising air temperatures and a decline in the evaporation of the world's oceans."
People might find it strange that as air temperatures increase the evaporation from oceans decreases, but here is an explanation: When it comes to evaporation from the sea, most evaporation occurs when the sea is hotter than the air above it. With global warming the land heats up more than the sea and so you might tend to get air that is relatively hotter than the sea blowing to sea. When hotter air is above the sea the sea cools the air above and the relative humidity (RH) of this air increases and less evaporation results into the air because RH is higher. When The sea is warmer than the air above it the sea heats the air above it and the RH of the air decreases and more evaporation occurs because RH is low. When you have cold sea near to hot land you can get "negative evaporation" - the water vapour condenses out of the hot air above the cold sea and fog occurs.
One factor that could increase the evaporation is increased downwelling sky radiation from hotter air, but the effect of increasing RH of hotter air above cold water appears to be a clear winner in certain regions at present.

Solution: A stagnant saturated layer builds up just above the sea surface so a sheet along the coast and above the sea that deflects air downwards and gives turbulence could partially solve the problem and increase evaporation. Also see https://journals.ametsoc.org/doi/full/10.1175/JCLI3519.1 

Friday, July 26, 2019

Cooling cities near the coast

For cities near the coast one could use mirrors to shade the ground and also reflect solar energy to old floating abandoned ships. The old ships will heat up and transfer infrared radiation to the the sea surface. Infrared radiation only penetrates the sea a few mm. This could cause clouds to form to shade and cool and bring rain.  Rising moist hot air from the sea could increase air circulation and reduce air pollution in cities.

Tuesday, July 23, 2019

Carbon dioxide and drowsy accidents

The world is drifting towards drowsiness and accident-proneness: If one calculates, using equations related to the Keeling Curve, one finds that by 2070 the concentration of carbon dioxide in the atmosphere will be about 700 ppm (at present it is around 400 ppm). By 2095 it will be about 1000 ppm. Now when the concentration becomes 1000 ppm people start to feel drowsy and will lose concentration. 
But another problem is that when atmospheric carbon dioxide levels are high and one enters an enclosure (room and so on) the carbon dioxide levels quickly reach dangerous levels because of breathing. So if there are 10 people in a room of volume 100 cubic metres and atmospheric concentration of carbon dioxide is 400 ppm then it will take about 22 minutes for levels to reach 1000 ppm. If you start with atmospheric levels of carbon dioxide at 700 ppm then it takes only about 11 minutes for levels to reach 1000 ppm.
Fires (which produce carbon dioxide) will become far more dangerous regarding breathing.

Wednesday, July 17, 2019

Density of breath and surrounding air

The Delphi 2 code (Pascal) below calculates the density of breath and of the surrounding air. If you enter a hollow or lift or tank and so on and your breath is more dense than the surrounding air it will sink and you could surround yourself with air that has a lot of carbon dioxide in. This could happen during heatwave conditions.
The inputs to the program are: Ts (temperature in deg C of the surrounding air, eg 38), RHs (relative humidity of the surrounding air in %, eg 34), P (the atmospheric air pressure in kPa, eg 100), PercO (the percentage of oxygen used up in breathing, eg 25), Tbr (the temperature of the breath in deg C, eg 37). The Delph1 2 code is below:
label 1;
var
PvBr,Mas,Mvs,Pvs,Psatws,PercO,Ts,Tsk,P,RHs,Tbr,Tbrk,Psatwbr,Denssa,Densbr,a,molDaBr,
MolNBr,MolOBri,MolOBrf,molCO2Bri,molCO2Brf,MolVBr,MolArBr,MolNeBr,MolHeBr,Mol,
MolKrBr,MolXeBr,VN,VO,VCO2,VV,VArg,VNe,VHe,VKr,VXe,MNbr,MOBrf,MCO2brf,MVBr,
MArBr,MNeBr,MHeBr,MKrBr,MXeBr,MBr,VolBr,TDI,Td,RHDI,DI,Pw,Tw,Aw,Bw,RHSw,Psat,
Tdew,Pvd,RH,LCL:extended;
errors1:boolean;
calcstr2,calcstr1,calcstr3,calcstr4,calcstr5,calcstr6,calcstr7,
calcstr8,calcstr9,calcstr10,calcstr11,calcstr12,calcstr13,calcstr14,calcstr15,calcstr16,
calcstr17,calcstr18,calcstr19,calcstr20,calcstr21,calcstr22,calcstr23,calcstr24:string[30];
begin
errors1:=false;
form16.hide;
form16.show;
try
Ts:=strtofloat(form16.edit1.Text);
RHs:=strtofloat(form16.edit2.Text);
P:=strtofloat(form16.edit3.Text);
PercO:=strtofloat(form16.edit4.Text);
Tbr:=strtofloat(form16.edit5.Text);
except
errors1:=true;
end;
if (errors1=true) or
(Ts<0) or (Ts>70) or (RHs<=0) or (RHs>100) or (P<10) or (P>150) or(percO<0) or (percO>90)
or (Tbr<0) or (Tbr>70) then begin
form16.canvas.textout(0,100,'CHECK ENTRIES.');
goto 1
end;
Tsk:=Ts+273.15;
Tbrk:=Tbr+273.15;
Psatws:=0.61121*exp((18.678-Ts/234.5)*Ts/(257.14+Ts));
Psatwbr:=0.61121*exp((18.678-Tbr/234.5)*Tbr/(257.14+Tbr));
Pvs:=Psatws*RHs/100;
Mvs:=Pvs/(0.4615*Tsk);
Mas:=(P-Pvs)/(0.287*Tsk);
PvBr:=Psatwbr;
molDaBr:=100-(PvBr/P)*100;
MolNBr:=78.03/100*moldaBr;
MolOBri:=20.99/100*molDaBr;
MolOBrf:=MolOBri-(percO/100*molObri);
MolCO2bri:=(0.033/100)*moldaBr;
MolCO2Brf:=molCO2bri+(percO/100*molObri);
molVbr:=100*Pvbr/P;
molArBr:=(0.94/100)*moldabr;
molNeBr:=(0.0015/100)*moldabr;
molHeBr:=(0.000524/100)*moldabr;
molKrBr:=(0.00014/100)*moldabr;
molXeBr:=(0.000006/100)*moldabr;
MNbr:=molNbr*0.028013;
MObrf:=molOBrf*0.031999;
MCO2Brf:=molCO2Brf*0.04401;
MVBr:=molVBr*0.018015;
MArBr:=molArBr*0.039948;
MNeBr:=molNeBr*0.020183;
MHeBr:=molHeBr*0.004003;
MKrBr:=molKrBr*0.08380;
MXeBr:=molXeBr*0.13130;
Denssa:=Mvs+Mas;
MBr:=MNbr+MOBrf+MCO2Brf+MVBr+MArBr+MNeBr+MHeBr+MKrBr+MXeBr;
VolBr:=100*0.00831447*Tbrk/P;
DensBr:=MBr/VolBr;
a:=9.80665*((denssa/densbr)-1);
VN:=100*MolNBr*(0.00831447*TBrk/P)/VolBr;
VO:=100*MolOBrf*(0.00831447*TBrk/P)/VolBr;
VCO2:=100*MolCO2Brf*(0.00831447*TBrk/P)/VolBr;
VV:=100*MolVBr*(0.00831447*TBrk/P)/VolBr;
VArg:=100*MolArBr*(0.00831447*TBrk/P)/VolBr;
VNe:=100*MolNeBr*(0.00831447*TBrk/P)/VolBr;
VHe:=100*MolHeBr*(0.00831447*TBrk/P)/VolBr;
VKr:=100*MolKrBr*(0.00831447*TBrk/P)/VolBr;
VXe:=100*MolXeBr*(0.00831447*TBrk/P)/VolBr;
str(Denssa:13:3,calcstr1);
str(DensBr:13:3,calcstr2);
str(a:13:2,calcstr3);
str(VN:13:4,calcstr4);
str(VO:13:4,calcstr5);
str(VCO2:13:4,calcstr6);
str(VV:13:4,calcstr7);
str(VArg:13:4,calcstr8);
str(VNe:13:4,calcstr9);
str(VHe:13:4,calcstr10);
str(VKr:13:4,calcstr11);
str(VXe:13:4,calcstr12);

form16.canvas.textout(0,100,'SURROUNDING AIR: DENSITY is: '+calcstr1+' kg/m^3.');
form16.canvas.textout(0,130,'BREATH:          DENSITY is: '+calcstr2+' kg/m^3.');
form16.canvas.textout(0,170,'BREATH: ACCELERATION (negative is down and positive is up) is: '+calcstr3+' m/s^2.');
form16.canvas.textout(0,210,'Breath % vol N2: '+calcstr4+'%.');
form16.canvas.textout(0,240,'Breath % vol O2: '+calcstr5+'%.');
form16.canvas.textout(0,270,'Breath % vol CO2: '+calcstr6+'%.');
form16.canvas.textout(0,300,'Breath % vol H20(g): '+calcstr7+'%.');
form16.canvas.textout(0,330,'Breath % vol Ar: '+calcstr8+'%.');
form16.canvas.textout(0,360,'Breath % vol Ne: '+calcstr9+'%.');
form16.canvas.textout(0,390,'Breath % vol He: '+calcstr10+'%.');
form16.canvas.textout(0,420,'Breath % vol Kr: '+calcstr11+'%.');
form16.canvas.textout(0,450,'Breath % vol Xe: '+calcstr12+'%.');
Td:=Ts;
TDI:=Td;
RHDI:=RHs;
DI:= (2*TDI) + (RHDI/100*TDI)+24;
Pw:=P/101.325;
Tw:=Td;
repeat
Tw:=Tw-0.001;
 Aw:=611.2*exp(17.502*Tw/(240.97+Tw))-66.8745*(1+0.00115*Tw)*Pw*(Td-Tw);
Bw:=6.112*exp(17.502*Td/(240.97+Td));
RHSw:=Aw/Bw;
until (RHSw<=rhs);
RH:=RHs;
Tdew:=Td;
Psat:=0.61121*exp((18.678-Td/234.5)*Td/(257.14+Td));
Pvd:=(RH/100)*Psat;
repeat
Tdew:=Tdew-0.001;
Psat:=0.61121*exp((18.678-Tdew/234.5)*Tdew/(257.14+Tdew));
until (Psat<=Pvd);
LCL:=125*(Td-Tdew);
str(DI:13:1,calcstr13);
str(Tw:13:2,calcstr14);
str(Tdew:13:2,calcstr15);
str(LCL:13:2,calcstr16);
form16.canvas.textout(0,490,'Discomfort Index: '+calcstr13+' (90 to 100 very uncomfortable, 100 to 110 extremely uncomfortable, >110 hazardous).');
form16.canvas.textout(0,520,'Wet Bulb T: '+calcstr14+' deg C');
form16.canvas.textout(0,550,'Dew point: '+calcstr15+' deg C.');
form16.canvas.textout(0,580,'LCL: '+calcstr16+' m.');

1: end;

Friday, April 26, 2019

Rain from dry and wet air layers

When wind blows up a mountain the air cools at about 9.8 deg C for every 1000 m rise (the dry adiabatic lapse rate for air that is not saturated). However, if the air is moist, one might have pockets where condensation occurs and this releases heat of condensation, keeping the air warmer. 
What sometimes happens is that one has a layer of moist air under a layer of drier air and as it blows up the mountain the top dry layer cools at 9.8 deg C for every 1000 m rise and the moist layer below might cool at an average of, say, 8 deg C per 1000m m rise.
So the bottom moist layer is continuously getting warmer relative to the top dry layer. This causes the bottom layer to continuously get less dense than the top layer and so the bottom rises by convection as well as by being blown up the mountain. The bottom layer could rise high enough by this method for rain to form, even if the mountains are low.
It does not take much to heat moist air, but it does take a lot of heat to evaporate water to make air moist. So if one could heat the air just above the sea, where it is moist, by infrared radiation (evaporation of spray would also occur), then one could have more rain even with low mountains. One could do this using solar power to heat dark objects on land and then reflect the infrared heat from the dark objects to the air above the sea surface. When the wind blows to land rain could result even with low mountains.
From
https://journals.ametsoc.org/doi/pdf/10.1175/1520-0442%281991%29004<1023%3AHPOTO>2.0.CO%3B2 
it appears that the RH is usually greatest at about 940 mb (about 600 m above the ocean). If one could increase RH to about 90% in the first 500 m or so above the ocean the above method could work well. 


Friday, March 1, 2019

Delphi Code Example

START
form5.canvas.font.size:=10;
form5.canvas.font.style:=[fsbold];
form5.canvas.font.color:=clblack;
form5.edit1.text:='';
form5.edit2.text:='';
form5.edit3.text:='';
form5.show;

PROCEDURE
label 1;
var
TdewC,T1C,T2C,Ht,LCL,RHd,Tdew,td,T1,T2,densair,m,T,Rh,Rh1,Rh2,P,V,Tsat,Pa,Pv,
Pvd,Psat,omega,tdp,pdp,Va,Vv,Pvs,Pas,omegas,Mv,Ma,Psat1,Psat2,
relh,Tw,LCLC,HTC,LCLT1:extended;
errors1:boolean;
calcstr8,calcstr2,calcstr1,calcstr3,calcstr4,calcstr5,calcstr6,calcstr7:string[30];
begin
errors1:=false;
form5.hide;
form5.show;
Memo1.clear;
Memo1.font.size:=12;
Memo1.font.style:=[fsbold];
Memo1.font.color:=clblack;
try
T1:=strtofloat(form5.edit1.Text);
Rh1:=strtofloat(form5.edit2.Text);
T2:=strtofloat(form5.edit3.Text);
except
errors1:=true;
end;
if (errors1=true) or
(t1<0.01) or (t1>69) or (rh1<0) or (rh1>100) or
(t2<0.1) or (t2>70) or (T2<T1+0.02)
then begin
form5.Memo1.Lines.Add('CHECK ENTRIES.');
goto 1
end;
T1C:=T1;
ht:=1000*(T2-T1)/3.3;
RH1:=RH1/100;
Psat1:=0.61121*exp((18.678-T1/234.5)*T1/(257.14+T1));
Pv:=Psat1*RH1;
Psat2:=0.61121*exp((18.678-T2/234.5)*T2/(257.14+T2));
Rh2:=Pv/Psat2;  {ie partial pressure of water vapour/psat2}
str(rh2*100:9:2,calcstr1);
form5.Memo1.lines.Add('Final relative humidity (at T2) is: '+calcstr1+'%.');
Tdew:=T1;
repeat
Tdew:=Tdew-0.001;
Psat:=0.61121*exp((18.678-Tdew/234.5)*Tdew/(257.14+Tdew));
until (Psat<=Pv);
str(Tdew:12:2,calcstr2);
form5.Memo1.Lines.Add('Dew point is: '+calcstr2+' deg C.');
1: end;

Monday, February 25, 2019

Shortened Water from Air code

T1 is the temperature of the surrounding air in deg C, RH is the relative humidity in percent, P1 is theatmospheric pressure in kPa (at sea level it is about 101.325 kPa), T2 is the temperature to which the air will be cooled, V1 is the volume of air you are going to cool. Code below:

label 1;
var
EnthV1MWh,EnthV1kWh,EnthV1,NokgdaV1,Enthd,Psatw1,Psatw2,Tk1,Tk2,Mvpa1,Enth1,Enth2,Ma1,Mv1,HR1,HR2,
Pv1,PV2,T1,RH1,P1,P2,T2,V1,kgDryAir,EdpkgDA,EnthDV,HR1mHR2,HR1mHR2V,kgpkWh,Td,RH,Psat,Pv,Tdew:extended;
errors1:boolean;
calcstr2,calcstr1,calcstr3,calcstr4,calcstr5,calcstr6,calcstr7,
calcstr8,calcstr9,calcstr10,calcstr11,calcstr12,calcstr13,calcstr14,
calcstr15,calcstr16,calcstr17,calcstr18:string[30];
begin
errors1:=false;
form3.hide;
form3.show;
try
T1:=strtofloat(form3.edit1.Text);
RH1:=strtofloat(form3.edit2.Text);
P1:=strtofloat(form3.edit3.Text);
T2:=strtofloat(form3.edit4.Text);
V1:=strtofloat(form3.edit5.Text);
except
errors1:=true;
end;
if (errors1=true) or
(T1<1) or (T1>60) or (RH1<=0) or (RH1>100) or (P1<20) or (P1>120) or (T2<1) or
(T2>60) or (V1<0)
then begin
form3.canvas.textout(0,100,'CHECK ENTRIES.');
goto 1
end;
Tk1:=T1+273.15;
Tk2:=T2+273.15;

Td:=T1;
RH:=RH1;
Psat:=0.61121*exp((18.678-Td/234.5)*Td/(257.14+Td));
Pv:=(RH/100)*Psat;
Tdew:=Td;
repeat
Tdew:=Tdew-0.001;
Psat:=0.61121*exp((18.678-Tdew/234.5)*Tdew/(257.14+Tdew));
until (Psat<=Pv);
str(Tdew:12:2,calcstr18);


Psatw1:=0.61121*exp((18.678-T1/234.5)*T1/(257.14+T1));
Pv1:=Psatw1*RH1/100;
HR1:=0.622*Pv1/(P1-Pv1);
Ma1:=(P1-Pv1)/(0.287*Tk1);
Enth1:=(1.005*T1)+HR1*(2501.3+1.82*T1);
Psatw2:=0.61121*exp((18.678-T2/234.5)*T2/(257.14+T2));
HR2:=Hr1;
P2:=P1;
if (Psatw2<PV1) then begin
Pv2:=Psatw2;
HR2:=0.622*Pv2/(P2-Pv2);
form3.canvas.textout(0,120,'Water condenses out. Dew point is:'+calcstr18+' deg C');
end;
Enth2:=(1.005*T2)+HR2*(2501.3+1.82*T2);
kgDryAir:=V1*Ma1;
EdpkgDA:=(Enth2-Enth1);
EnthDV:=kgDryAir*EdpkgDA;
HR1mHR2:=HR1-HR2;
HR1mHR2V:=kgDryAir*HR1mHR2;
kgpkWh:=(-1)*HR1mHR2V/(EnthDV/3600);
str((EnthDV/3600),calcstr7);
str(HR1mHR2V,calcstr10);
str(kgpkWh:13:4,calcstr17);
form3.canvas.textout(0,150,'Total mass of water condensing out of the air is: '+calcstr10+' kg.');
form3.canvas.textout(0,180,'Total heat added to the air is: '+calcstr7+' kWh.');
form3.canvas.textout(0,210,'Number of kg of water produced per kWh of heat removed from air: '+calcstr17+' kg/kWh.');
form3.canvas.textout(0,240,'Dew point temperature is: '+calcstr18+' deg C.');
1: end;

Thursday, February 21, 2019

Water from pipe from sea to land

Sometimes, in dry areas, the sea nearby is warmer than the land at night. If one has a pipe with inlet over the sea and outlet over the land it is possible the warmer less dense sea air will rise in the pipe and water will condense out on the land side. At the same temperature moist air has a lower density than dry air. Here is computer code that will help one determine whether water will condense out (RH becomes greater than 100% - if that were possible).
T is in deg C, P is in kPa, RH is a percentage.
The inputs are initial temperature Ti above sea surface, initial relative humidity (RH) above sea surface, initial atmospheric pressure just above the sea surface (P1) and final temperature Tf (above land of desert), and P2 (at altitude of land of desert). Delphi computer code below:

label 1;
var
Tdewi,Tdewf,Pvf,LCL1,LCL2,Pvi,Psatwi,Psatwf,RHf,HR,RH,p1,p2,Ti,Tf,Hinc,q,lnx,x,
Psat,h,p:extended;
errors1:boolean;
calcstr6,calcstr5,calcstr4,calcstr2,calcstr1,calcstr3:string[30];
begin
errors1:=false;
form47.hide;
form47.show;
try
Ti:=strtofloat(form47.edit1.Text);
RH:=strtofloat(form47.edit2.Text);
P1:=strtofloat(form47.edit3.Text);
Tf:=strtofloat(form47.edit4.Text);
P2:=strtofloat(form47.edit5.Text);
except
errors1:=true;
end;
if (errors1=true) or (Ti<0) or (Ti>100) or (RH>100) or (RH<0) or (P1<2) or (P1>500) or (Tf<0)
or (Tf>100) or (P2<2) or (P2>500)
then begin
form47.canvas.textout(0,100,'CHECK ENTRIES.');
goto 1
end;
Psatwi:=0.61121*exp((18.678-Ti/234.5)*Ti/(257.14+Ti));
Pvi:=Psatwi*(RH/100);
HR:=0.622*Pvi/(P1-Pvi);
Psatwf:=0.61121*exp((18.678-Tf/234.5)*Tf/(257.14+Tf));
RHf:=(HR*P2)/((0.622+HR)*Psatwf);
Pvf:=RHf*Psatwf;

Tdewi:=Ti;
repeat
Tdewi:=Tdewi-0.001;
Psat:=0.61121*exp((18.678-Tdewi/234.5)*Tdewi/(257.14+Tdewi));
until (Psat<=Pvi);
str(Tdewi:12:2,calcstr3);

Tdewf:=Tf;
repeat
Tdewf:=Tdewf-0.001;
Psat:=0.61121*exp((18.678-Tdewf/234.5)*Tdewf/(257.14+Tdewf));
until (Psat<=Pvf);
str(Tdewf:12:2,calcstr4);

LCL1:=125*(Ti-Tdewi);
LCL2:=125*(Tf-Tdewf);
str(LCL1:15:2,calcstr5);
str(LCL2:15:2,calcstr6);

str((100*RHf):15:2,calcstr1);
str(HR:15:5,calcstr2);
If(RHf<1) then form47.canvas.textout(0,120,'Relative humidity (RH) AFTER PARCEL HAS MOVED is: '+calcstr1+'%.');
If (RHf<1) then form47.canvas.textout(0,150,'Humidity ratio (HR) remains the same as the air parcel moves: '+calcstr2+' kg/kg.');
If(RHf>1) then form47.canvas.textout(0,120,'Air has become SATURATED and FICTITIOUS relative humidity (RH) AFTER PARCEL HAS MOVED is: '+calcstr1+'%.');
form47.canvas.textout(0,190,'Dew point for initial Ti and P1 situation is: '+calcstr3+' deg C.');
if (RHf<1) then form47.canvas.textout(0,220,'Dew point for final Tf and P2 situation is '+calcstr4+' deg C.');
form47.canvas.textout(0,260,'LCL1 for initial Ti and P1 situation is: '+calcstr5+' m.');
if (RHf<1) then form47.canvas.textout(0,290,'LCL2 for final Tf and P2 situation is '+calcstr6+' m.');

1: end;

Monday, February 18, 2019

To get some plants to cover dry ground and reduce dust one could use a dew drip system and grow rows of plants, say with 20 m between rows. Some plants could absorb toxic matter. 
When cold or warmth needs to be transported a long way secondary refrigerants are used. Water is often used as a secondary refrigerant as it holds a lot of heat per kg. So why not cool water using the usual sort of refrigerant and run the cold water through long pipes with spikes on pointing downwards? Dew will form and run down the spikes giving drip irrigation. One could also use bends in the pipe to allow dew to drip down. To prevent frost run hot water through the pipes. The system could be powered by a wind turbine.
To get an idea of how much water one could get from the air you can use my Delphi computer code at 

https://www.facebook.com/groups/WaterFromAir/  or from
 https://airartist.blogspot.com/2019/02/i-have-finished-delphi-computer-program.html

Saturday, February 9, 2019

Delphi code for water from air.

I have finished a Delphi computer program that will tell people if water will condense out of the air when the air is cooled. One could use wind power. Anyone or any institution may use it in any legal context. It also tells how much water will condense out and it tells one how much heat (in kJ and kWh) must be extracted from the air and so one can get an idea of the power requirements.
One could use an air conditioning unit to cool the air to the best temperature and there are do-it-yourself (DIY) sites that tell one how to do this -see https://www.instructables.com/id/DIY-Atmospheric-Water-Generator/
 Inputs are T1 (temperature of atmospheric air in deg C before cooling), RH1 (relative humidity in % of atmospheric air before cooling), P1 (atmospheric pressure in kPa which is assumed to remain the same during cooling), T2 (temperature in deg C to which air will be cooled), V1 (the volume in cubic metres  of air at T1 and RH1 and P1 that is to be cooled).
Note: It is a convention to say "enthalpy per kg of dry air," meaning the enthalpy related to the kg of dry air and the water vapour associated with that kg of dry air.
See code below:


label 1;
var
EnthV1MWh,EnthV1kWh,EnthV1,NokgdaV1,Enthd,Psatw1,Psatw2,Tk1,Tk2,Mvpa1,Enth1,Enth2,Ma1,Mv1,HR1,HR2,
Pv1,PV2,T1,RH1,P1,P2,T2,V1,kgDryAir,EdpkgDA,EnthDV,HR1mHR2,HR1mHR2V,kgpkWh,Td,RH,Psat,Pv,Tdew:extended;
errors1:boolean;
calcstr2,calcstr1,calcstr3,calcstr4,calcstr5,calcstr6,calcstr7,
calcstr8,calcstr9,calcstr10,calcstr11,calcstr12,calcstr13,calcstr14,
calcstr15,calcstr16,calcstr17,calcstr18:string[30];
begin
errors1:=false;
form2.hide;
form2.show;
try
T1:=strtofloat(form2.edit1.Text);
RH1:=strtofloat(form2.edit2.Text);
P1:=strtofloat(form2.edit3.Text);
T2:=strtofloat(form2.edit4.Text);
V1:=strtofloat(form2.edit5.Text);
except
errors1:=true;
end;
if (errors1=true) or
(T1<0.1) or (T1>100) or (RH1<0.1) or (RH1>99) or (P1<50) or (P1>150) or (T2<0.1) or
(T2>100) or (V1<0) or (T2>=T1)
then begin
form2.canvas.textout(0,100,'CHECK ENTRIES.');
goto 1
end;
Tk1:=T1+273.15;
Tk2:=T2+273.15;

Td:=T1;
RH:=RH1;
Psat:=0.61121*exp((18.678-Td/234.5)*Td/(257.14+Td));
Pv:=(RH/100)*Psat;
Tdew:=Td;
repeat
Tdew:=Tdew-0.001;
Psat:=0.61121*exp((18.678-Tdew/234.5)*Tdew/(257.14+Tdew));
until (Psat<=Pv);
str(Tdew:12:2,calcstr18);


Psatw1:=0.61121*exp((18.678-T1/234.5)*T1/(257.14+T1));
Pv1:=Psatw1*RH1/100;
HR1:=0.622*Pv1/(P1-Pv1);
Ma1:=(P1-Pv1)/(0.287*Tk1);
Enth1:=(1.005*T1)+HR1*(2501.3+1.88*T1);
Psatw2:=0.61121*exp((18.678-T2/234.5)*T2/(257.14+T2));
HR2:=Hr1;
P2:=P1;
if (Psatw2<PV1) then begin
Pv2:=Psatw2;
HR2:=0.622*Pv2/(P2-Pv2);
form2.canvas.textout(0,90,'Water condenses out. Dew point is:'+calcstr18+' deg C');
end;
Enth2:=(1.005*T2)+HR2*(2501.3+1.88*T2);
kgDryAir:=V1*Ma1;
EdpkgDA:=(Enth2-Enth1);
EnthDV:=kgDryAir*EdpkgDA;
HR1mHR2:=HR1-HR2;
HR1mHR2V:=kgDryAir*HR1mHR2;
kgpkWh:=(-1)*HR1mHR2V/(EnthDV/3600);
str(Enth1:13:4,calcstr1);
str(Enth2:13:4,calcstr2);
str(EdpkgDA:13:6,calcstr3);
str(Ma1:13:4,calcstr4);
str(kgDryAir,calcstr5);
str(EnthDV,calcstr6);
str((EnthDV/3600),calcstr7);
str((EnthDV/3600000),calcstr8);
str((HR1mHR2*1000):13:4,calcstr9);
str(HR1mHR2V,calcstr10);
str((HR1*1000):13:4,calcstr11);
str((HR2*1000):13:4,calcstr12);
str(EnthV1MWh,calcstr16);
str(kgpkWh:13:4,calcstr17);
form2.canvas.textout(0,120,'Enthalpy1 per kg dry air is: '+calcstr1+' kJ/kg dry air.');
form2.canvas.textout(0,150,'Enthalpy2 per kg dry air is: '+calcstr2+' kJ/kg dry air.');
form2.canvas.textout(0,180,'Enthalpy difference per kg dry air is: '+calcstr3+' kJ/kg dry air.');
form2.canvas.textout(0,210,'Mass of DRY air in one cubic metre of original air is: '+calcstr4+' kg.');
form2.canvas.textout(0,240,'Number of kg of dry air in V1 is: '+calcstr5+' kg.');
form2.canvas.textout(0,270,'FOR VOLUME V1: Heat added to volume V1 of air (Enthalpy difference for volume V1) is: '+calcstr6+' kJ.');
form2.canvas.textout(0,300,'FOR VOLUME V1: Heat added to volume V1 of air is: '+calcstr7+' kWh.');
form2.canvas.textout(0,330,'FOR VOLUME V1: Heat added to volume V1 of air is: '+calcstr8+' MWh.');
form2.canvas.textout(0,370,'HR1 - HR2 g/kg is: '+calcstr9+' grams of water vapour per kg dry air (CONDENSES OUT).');
form2.canvas.textout(0,400,'(HR1 - HR2 kg/kg)x(number of kg dry air in volume V1) is: '+calcstr10+' kg of water (CONDENSES OUT).');
form2.canvas.textout(0,440,'HR1 is: '+calcstr11+' g/kg.');
form2.canvas.textout(0,470,'HR2 is: '+calcstr12+' g/kg.');
form2.canvas.textout(0,520,'SUMMARY. Total mass of water condensing out of the air is: '+calcstr10+' kg.');
form2.canvas.textout(0,550,'SUMMARY: Total heat added to the air is: '+calcstr7+' kWh.');
form2.canvas.textout(0,580,'SUMMARY: kg of water produced per kWh of heat removed from air: '+calcstr17+' kg/kWh.');
form2.canvas.textout(0,610,'SUMMARY: Dew point temperature is: '+calcstr18+' deg C.');
1: end;




Wednesday, January 9, 2019

Rain by infrared ocean heating

If you have a dark surface with a film of water over it and you let sunlight fall on it you have a greenhouse. This is because the sunlight is absorbed by the dark surface and it heats up releasing significant infrared radiation which is absorbed within a mm or so of the film of water. Sunlight can pass through the film of water to the dark surface, but the infrared radiation released by the dark surface cannot exit the water film (it is absorbed too quickly).
So one could cool off cities by reflecting solar radiation, that would have heated the ground, onto a dark wall in the sea that has water pumped over it (creating a film of water over the dark wall). This will cause evaporation and enhance rainfall.
I must add this: One could have a huge matt black foam rubber sheet with holes in to let seawater onto the top and place it into the sea when needed. It could be attached to other sheets to make a huge artificial wet black floating island. It could be rolled up and stored on a ship.

Wednesday, July 4, 2018

Heat waves and decreasing air density by increasing RH

If there is a heat wave and you are near the sea there is something one could do. During heat waves relative humidity (RH) is usually low and this gives an ideal opportunity to add water to the atmosphere. If you add water by evaporative cooling you cool the air and then the air cannot hold so much moisture. If you add moisture by heating a part of the sea surface the air stays hot and the RH and water content of the air can increase a lot. You can heat a part of the sea surface by having floating black mats in the sea. Now when you add water vapour to the air the air becomes less dense. When the air is hot and dry you can add so much water vapour to the air that it becomes a lot less dense than the surrounding air and will rise, probably punching its way through the heat wave dome and creating clouds and possibly causing convectional rain. Example: Assume P=1 atmosphere (101.325 kPa). Assume the air temperature is T=38 deg C and RH=20%. Then the density of the air is1129.0 grams per cubic metre. Now increase humidity so that RH=80% with T still at 38 deg C.The density of the air is now 1112.2 grams per cubic metre. If you heated the original air with T=38 deg C and RH=20% to 42.71 deg C its RH would fall to 15.56% and it would have density of 1112.2 grams per cubic metre. This is the same density as the air with T=38 deg C and RH=80%. So increasing the humidity from 20% to 80% has the same effect on density as heating the air from 38 deg C to 42.71 deg C.

Thursday, March 29, 2018

Heat sea and air to bring rain

Cape farmers were having trouble with frost and now there are problems with drought.
There are two things needed for convectional rain and those are 1) Moisture in the air 2) Upward convection of air. As to moisture you can place black sheeting in the sea off Cape Town to heat the sea and supply moisture - see
https://airartist.blogspot.co.za/2018/03/could-we-create-small-el-nino-close-to.html

As to convection, you could have tall poles with rigid black plastic "roofs" on to shade crops and heat up the air above the black plastic (which will get hot in the sun). The black plastic will work in an opposite way to "cool roofs" which reduce rainfall - see https://www.scientificamerican.com/article/cool-roofs-may-have-side-effects-on-regional-rainfall/

As to frost (winter is coming), have sheets of plastic, on the poles mentioned, that deflect wind downwards and keep mixing warm air into the cold air near the ground.