#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.

"; }