#wetbulb.cgi by Tim Brice NWS El Paso
#calculate absolute temp for air temperature
if ($wetbulb{airtemp} =~ /-?(\d+)\.?(\d+)|-?(\d+)/) {
if ($wetbulb{corf2} eq Fahrenheit) {
$celsius2 = 5/9*($wetbulb{airtemp} - 32);
$abairtemp = $celsius2 + 273.15;
} else {
$abairtemp = $wetbulb{airtemp} + 273.15;
}
} else {
print "An illegal character was entered.\n";
die
}
#calculate absolute temp for wet-bulb temperature
if ($wetbulb{wettemp} =~ /-?(\d+)\.?(\d+)|-?(\d+)/) {
if ($wetbulb{corf1} eq Fahrenheit) {
$celsius1 = 5/9*($wetbulb{wettemp} - 32);
$abwettemp = $celsius1 + 273.15;
} else {
$abwettemp = $wetbulb{wettemp} + 273.15;
}
} else {
print "An illegal character was entered\n";
die
}
#prepare pressure entry
if ($wetbulb{press} =~ /(\d+)\.?(\d+)/) {
if ($wetbulb{mborin} eq millibars) {
$press = $wetbulb{press};
} else {
$press = $wetbulb{press} * 33.8639;
}
} else {
print "An illegal character was entered\n";
die
}
#start the math
$Xwd = 21.40 - 5351/$abairtemp;
$Xww = 21.40 - 5351/$abwettemp;
$ewd = exp($Xwd);
$eww = exp($Xww);
#calculate the vapor pressure and saturation vapor pressure
$e = $eww - $press*($abairtemp - $abwettemp)/1555;
$es = $ewd;
#calculate the dewpoint and relative humidity
$dewpoint = 5351/(21.40 - log ($e)) - 273.15;
$rh = 100*($e/$es);
#Let's make some pretty output
$~ = WB7;
write;
format WB7 =
With an air temperature of @###.# degrees @<<<<<<<<<< a wet-bulb temperature
$wetbulb{airtemp} $wetbulb{corf2}
of @###.# degrees @<<<<<<<<<< and a station pressure of @###.##
$wetbulb{wettemp} $wetbulb{corf1} $wetbulb{press}
@<<<<<<<<<<<<<<<<:
$wetbulb{mborin}
.
$~ = WETBULB1;
write;
format WETBULB1 =
You have a relative humidity of @##.# percent and a dewpoint of
$rh
.
if ($wetbulb{corf2} eq Fahrenheit) {
$dewpoint1 = (9/5*$dewpoint) + 32;
$~ = WETBULB2;
write;
format WETBULB2 =
@###.# degrees Fahrenheit.
$dewpoint1
.
} else {
$~ = WETBULB3;
write;
format WETBULB3 =
@###.# degrees Celsius.
$dewpoint
.
}
if ($wetbulb{wettemp} > $wetbulb{airtemp}) {
print "
The wet-bulb temperature is greater than the air temperature,
this only rarely occurs in the atmosphere. You may want to
go back and double check your entries.
";
}