Well, I wouldn't say it's messed up, maybe just a tad redundant though. However, your script is lacking options that his has.
Adlibbed & untested.
$therm(N,KFC,KFC)
ALIAS Therm {
var %n = $$1, %in = $$2, %out = $$3
if ( %in == F ) var %in = C, %n = $calc((%n - 32) * 0.555556
if ( %in == C ) var %n = $calc(%n - 273.15)
if ( %out == K) return %n
var %n = $calc(%n + 273.15)
if ( %out == C ) return %n
var %n = $calc(%n * 1.8 + 32)
return %n
}
Basically, I convert from F to C and C to K, then convert from K to C and C to F... starting/stopping on whichever unit specified. This method may convert from temp to temp to temp (C to K to F), meaning more steps than Jerk's method... yet, I feel the reduced code speeds up the process enough to make up for it. You can also use C or F as the base unit, instead of K.
You'll also note that
9 / 5 was replaced with
1.8, and
5 / 9 was replaced with
0.555556 for speed.
Someone test this and tell me if it actually works.

(Yes, I'm such an arrogant sob today)
- Raccoon
PS. People who paste [
[/b]code] snippets that cause a scrollbar on 1024x786 resolution, need to be shot. $&
[b]Break your code into multiple lines!!! $&(we rather scroll vertically, NOT horizontally!)