#!/usr/bin/perl # by Niklas Nordin (nordin@tfd.chalmers.se) # January 12 2000 use CGI; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # common variables # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $title = "Liquid Fuel Thermal Database"; $script = "chem.cgi"; $bgcolor = "#000033"; $textcolor = "#ffffff"; $textcolor2 = "#000000"; $prop[0] = "Liquid density"; $prop[1] = "Vapour pressure"; $prop[2] = "Heat of vapourisation"; $prop[3] = "Liquid heat capacity"; $prop[4] = "Gas heat capacity"; $prop[5] = "Liquid dynamic viscosity"; $prop[6] = "Vapour dynamic viscosity"; $prop[7] = "Liquid thermal conductivity"; $prop[8] = "Vapour thermal conductivity"; $prop[9] = "Surface tension"; $nproperties = 10; $prop[$nproperties + 0] = "Boiling temperature"; $npproperties = 1; $unit[0] = "kg/m^3"; $unit[1] = "Pa"; $unit[2] = "J/kg"; $unit[3] = "J/(kg K)"; $unit[4] = "J/(kg K)"; $unit[5] = "Pa s"; $unit[6] = "Pa s"; $unit[7] = "W/(m K)"; $unit[8] = "W/(m K)"; $unit[9] = "N/m"; $unit[10] = "K"; $fuel[0] = "n-Neptane"; $fuel[1] = "Diesel"; $fuel[2] = "n-Dodecane"; $fuel[3] = "n-Decane"; $fuel[4] = "Water"; $fuel[5] = "DME"; $nfuels = 6; $name_temp = "Temperature"; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Data base # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # fuel 0 - nHeptane # $ifuel = 0; $eq[$ifuel][0] = 5; $eq[$ifuel][1] = 1; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 3; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 0; $eq[$ifuel][9] = 6; $mw[$ifuel] = 100.203; $tcrit[$ifuel] = 540.26; $pcrit[$ifuel] = 2.7358e+6; $iprop = 0; $a[$ifuel][$iprop] = 5.5506e-1; $b[$ifuel][$iprop] = 2.4946e-1; $c[$ifuel][$iprop] = 5.4026e+2; $d[$ifuel][$iprop] = 2.7128e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = 1.6683e+2; $b[$ifuel][$iprop] = -9.1555e+3; $c[$ifuel][$iprop] = -2.3762e+1; $d[$ifuel][$iprop] = 2.6787e-2; $e[$ifuel][$iprop] = 1.0; $f[$ifuel][$iprop] = 0; $iprop = 2; $a[$ifuel][$iprop] = 4.973e+7; $b[$ifuel][$iprop] = 3.86e-1; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 7.322e+5; $b[$ifuel][$iprop] = -7.072e+3; $c[$ifuel][$iprop] = 3.3259e+1; $d[$ifuel][$iprop] = -6.5526e-2; $e[$ifuel][$iprop] = 4.8345e-5; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 1.0466e+5; $b[$ifuel][$iprop] = 5.1351e+5; $c[$ifuel][$iprop] = 7.152e+2; $d[$ifuel][$iprop] = 1.0212; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -2.4451e+1; $b[$ifuel][$iprop] = 1.5331e+3; $c[$ifuel][$iprop] = 2.0087; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 1.083e-6; $b[$ifuel][$iprop] = 4.665e-1; $c[$ifuel][$iprop] = 5.02e+2; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = 2.18e-1; $b[$ifuel][$iprop] = -3.17e-4; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = -1.5003e-2; $b[$ifuel][$iprop] = 5.4647e-5; $c[$ifuel][$iprop] = 1.1114e-7; $d[$ifuel][$iprop] = -4.7941e-11; $e[$ifuel][$iprop] = 9.6036e-15; $f[$ifuel][$iprop] = -7.2476e-19; $iprop = 9; $a[$ifuel][$iprop] = 5.364e-2; $b[$ifuel][$iprop] = 1.2431; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # # fuel 1 - Diesel # $ifuel = 1; $eq[$ifuel][0] = 10; $eq[$ifuel][1] = 0; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 3; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 0; $eq[$ifuel][9] = 6; $mw[$ifuel] = 179.327; $tcrit[$ifuel] = 736.0; $pcrit[$ifuel] = 1.9358e+6; $iprop = 0; $a[$ifuel][$iprop] = 3.295e-1; $b[$ifuel][$iprop] = 2.4703e-1; $c[$ifuel][$iprop] = 6.582e+2; $d[$ifuel][$iprop] = 2.86e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = -2.0518e+4; $b[$ifuel][$iprop] = 1.0007e+3; $c[$ifuel][$iprop] = -1.2414e+1; $d[$ifuel][$iprop] = 6.0736e-2; $e[$ifuel][$iprop] = -1.2876e-4; $f[$ifuel][$iprop] = 9.9609e-8; $iprop = 2; $a[$ifuel][$iprop] = 7.796e+7; $b[$ifuel][$iprop] = 4.123e-1; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 1.36852e+5; $b[$ifuel][$iprop] = 864.6306; $c[$ifuel][$iprop] = -0.376785; $d[$ifuel][$iprop] = 2.84973e-4; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 1.7508e+5; $b[$ifuel][$iprop] = 8.4831e+5; $c[$ifuel][$iprop] = 7.2421e+2; $d[$ifuel][$iprop] = 1.0266; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -3.7523e+1; $b[$ifuel][$iprop] = 3.2636e+3; $c[$ifuel][$iprop] = 3.6495; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 6.344e-8; $b[$ifuel][$iprop] = 8.287e-1; $c[$ifuel][$iprop] = 2.195e+2; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = 2.188e-1; $b[$ifuel][$iprop] = -2.256e-4; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = -1.3936e-2; $b[$ifuel][$iprop] = 4.481e-5; $c[$ifuel][$iprop] = 8.7642e-8; $d[$ifuel][$iprop] = -3.7861e-11; $e[$ifuel][$iprop] = 7.5925e-15; $f[$ifuel][$iprop] = -5.7345e-19; $iprop = 9; $a[$ifuel][$iprop] = 5.1139e-2; $b[$ifuel][$iprop] = 1.3325; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # # fuel 2 - nDodecane # $ifuel = 2; $eq[$ifuel][0] = 5; $eq[$ifuel][1] = 1; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 3; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 0; $eq[$ifuel][9] = 6; $mw[$ifuel] = 170.337; $tcrit[$ifuel] = 658.20; $pcrit[$ifuel] = 1.8239e+6; $iprop = 0; $a[$ifuel][$iprop] = 3.3330e-1; $b[$ifuel][$iprop] = 2.4703e-1; $c[$ifuel][$iprop] = 6.5820e+2; $d[$ifuel][$iprop] = 2.8600e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = 1.6860e+2; $b[$ifuel][$iprop] = -1.2587e+4; $c[$ifuel][$iprop] = -2.2592e+1; $d[$ifuel][$iprop] = 1.7497e-2; $e[$ifuel][$iprop] = 1.0; $f[$ifuel][$iprop] = 0; $iprop = 2; $a[$ifuel][$iprop] = 7.960e+7; $b[$ifuel][$iprop] = 4.123e-1; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 1.36852e+5; $b[$ifuel][$iprop] = 864.6306; $c[$ifuel][$iprop] = -0.376785; $d[$ifuel][$iprop] = 2.84973e-4; $e[$ifuel][$iprop] = 0 ; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 1.7508e+5; $b[$ifuel][$iprop] = 8.4831e+5; $c[$ifuel][$iprop] = 7.2421+2; $d[$ifuel][$iprop] = 1.0266; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -2.0607e+1; $b[$ifuel][$iprop] = 1.9430e+3; $c[$ifuel][$iprop] = 1.3205; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 6.3440e-8; $b[$ifuel][$iprop] = 8.2870e-1; $c[$ifuel][$iprop] = 2.195e+2; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = 2.188e-1; $b[$ifuel][$iprop] = -2.256e-4; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = -1.3936e-2; $b[$ifuel][$iprop] = 4.4810e-5; $c[$ifuel][$iprop] = 8.7642e-8; $d[$ifuel][$iprop] = -3.7861e-11; $e[$ifuel][$iprop] = 7.5925e-15; $f[$ifuel][$iprop] = -7.2476e-19; $iprop = 9; $a[$ifuel][$iprop] = 5.5717e-2; $b[$ifuel][$iprop] = 1.3325; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # # fuel 3 - nDecane # $ifuel = 3; $eq[$ifuel][0] = 5; $eq[$ifuel][1] = 1; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 3; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 0; $eq[$ifuel][9] = 6; $mw[$ifuel] = 142.284; $tcrit[$ifuel] = 618.45; $pcrit[$ifuel] = 2.1229e+6; $iprop = 0; $a[$ifuel][$iprop] = 4.1290e-1; $b[$ifuel][$iprop] = 2.5240e-1; $c[$ifuel][$iprop] = 6.1845e+2; $d[$ifuel][$iprop] = 2.8570e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = 6.5940e+1; $b[$ifuel][$iprop] = -7.7331e+3; $c[$ifuel][$iprop] = -6.1174; $d[$ifuel][$iprop] = 1.1180e-6; $e[$ifuel][$iprop] = 2.0; $f[$ifuel][$iprop] = 0; $iprop = 2; $a[$ifuel][$iprop] = 6.7240e+7; $b[$ifuel][$iprop] = 8.3800e-1; $c[$ifuel][$iprop] = -1.144; $d[$ifuel][$iprop] = 7.52e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 3.1156e+5; $b[$ifuel][$iprop] = -4.559e+2; $c[$ifuel][$iprop] = 1.6506; $d[$ifuel][$iprop] = -8.1858e-5; $e[$ifuel][$iprop] = -7.4653e-7; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 1.4767e+5; $b[$ifuel][$iprop] = 7.1063e+5; $c[$ifuel][$iprop] = 7.4687e+2; $d[$ifuel][$iprop] = 1.0308; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -1.6468e+1; $b[$ifuel][$iprop] = 1.5335e+3; $c[$ifuel][$iprop] = 7.5110e-1; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 2.64000e-8; $b[$ifuel][$iprop] = 9.4870e-1; $c[$ifuel][$iprop] = 7.10e+1; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = 2.0630e-1; $b[$ifuel][$iprop] = -2.50e-4; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = -1.5164e-2; $b[$ifuel][$iprop] = 5.4357e-5; $c[$ifuel][$iprop] = 8.3433e-8; $d[$ifuel][$iprop] = -3.6268e-11; $e[$ifuel][$iprop] = 7.3060e-15; $f[$ifuel][$iprop] = -5.5371e-19; $iprop = 9; $a[$ifuel][$iprop] = 5.5777e-2; $b[$ifuel][$iprop] = 1.3198; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # # fuel 4 - water # $ifuel = 4; $eq[$ifuel][0] = 5; $eq[$ifuel][1] = 1; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 7; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 2; $eq[$ifuel][9] = 6; $mw[$ifuel] = 18.015; $tcrit[$ifuel] = 647.13; $pcrit[$ifuel] = 2.2055e+7; $iprop = 0; $a[$ifuel][$iprop] = 5.459e+0; $b[$ifuel][$iprop] = 3.0542e-1; $c[$ifuel][$iprop] = 6.4713e+2; $d[$ifuel][$iprop] = 8.1e-2; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = 7.3649e+1; $b[$ifuel][$iprop] = -7.2582e+3; $c[$ifuel][$iprop] = -7.3037; $d[$ifuel][$iprop] = 4.1653e-6; $e[$ifuel][$iprop] = 2.0; $f[$ifuel][$iprop] = 0; $iprop = 2; $a[$ifuel][$iprop] = 5.2053e+7; $b[$ifuel][$iprop] = 3.199e-1; $c[$ifuel][$iprop] = -2.12e-1; $d[$ifuel][$iprop] = 2.5795e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 2.7637e+5; $b[$ifuel][$iprop] = -2.0901e+3; $c[$ifuel][$iprop] = 8.125; $d[$ifuel][$iprop] = -1.4116e-2; $e[$ifuel][$iprop] = 9.3701e-6; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 3.3359e+4; $b[$ifuel][$iprop] = 2.6798e+4; $c[$ifuel][$iprop] = 2.6093e+3; $d[$ifuel][$iprop] = 8.888e+3; $e[$ifuel][$iprop] = 1.1676e+3; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -5.1964e+1; $b[$ifuel][$iprop] = 3.6706e+3; $c[$ifuel][$iprop] = 5.7331; $d[$ifuel][$iprop] = -5.3495e-29; $e[$ifuel][$iprop] = 10.0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 2.6986e-6; $b[$ifuel][$iprop] = 4.98e-1; $c[$ifuel][$iprop] = 1.2577e+3; $d[$ifuel][$iprop] = -1.957e+4; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = -4.267e-1; $b[$ifuel][$iprop] = 5.6903e-3; $c[$ifuel][$iprop] = -8.0065e-6; $d[$ifuel][$iprop] = 1.815e-9; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = 6.977e-5; $b[$ifuel][$iprop] = 1.1243; $c[$ifuel][$iprop] = 8.449e+2; $d[$ifuel][$iprop] = -1.4885e+5; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 9; $a[$ifuel][$iprop] = 1.8548e-1; $b[$ifuel][$iprop] = 2.717; $c[$ifuel][$iprop] = -3.554; $d[$ifuel][$iprop] = 2.047; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # # fuel 5 - DME # $ifuel = 5; $eq[$ifuel][0] = 5; $eq[$ifuel][1] = 1; $eq[$ifuel][2] = 6; $eq[$ifuel][3] = 0; $eq[$ifuel][4] = 7; $eq[$ifuel][5] = 1; $eq[$ifuel][6] = 2; $eq[$ifuel][7] = 0; $eq[$ifuel][8] = 2; $eq[$ifuel][9] = 6; $mw[$ifuel] = 46.069; $tcrit[$ifuel] = 400.10; $pcrit[$ifuel] = 5.3702e+6; $iprop = 0; $a[$ifuel][$iprop] = 1.508; $b[$ifuel][$iprop] = 2.6325e-1; $c[$ifuel][$iprop] = 4.0010e+2; $d[$ifuel][$iprop] = 2.8060e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 1; $a[$ifuel][$iprop] = 5.1566e+1; $b[$ifuel][$iprop] = -3.6644e+3; $c[$ifuel][$iprop] = -4.6530; $d[$ifuel][$iprop] = 5.9e-6; $e[$ifuel][$iprop] = 2.0; $f[$ifuel][$iprop] = 0; $iprop = 2; $a[$ifuel][$iprop] = 2.8030e+7; $b[$ifuel][$iprop] = 2.477e-1; $c[$ifuel][$iprop] = -8.9e-2; $d[$ifuel][$iprop] = 2.03e-1; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 3; $a[$ifuel][$iprop] = 6.87e+4; $b[$ifuel][$iprop] = 5.2104e+2; $c[$ifuel][$iprop] = -3.0992; $d[$ifuel][$iprop] = 6.291e-3; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 4; $a[$ifuel][$iprop] = 4.38e+4; $b[$ifuel][$iprop] = 1.456e+5; $c[$ifuel][$iprop] = 1.284e+3; $d[$ifuel][$iprop] = 5.95e+4; $e[$ifuel][$iprop] = 5.2e+2; $f[$ifuel][$iprop] = 0; $iprop = 5; $a[$ifuel][$iprop] = -1.062e+1; $b[$ifuel][$iprop] = 4.4899e+2; $c[$ifuel][$iprop] = 8.3967e-5; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0.0; $f[$ifuel][$iprop] = 0; $iprop = 6; $a[$ifuel][$iprop] = 7.27; $b[$ifuel][$iprop] = 1.091e-1; $c[$ifuel][$iprop] = 4.406e+8; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 7; $a[$ifuel][$iprop] = 3.1276e-1; $b[$ifuel][$iprop] = -5.677e-4; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 8; $a[$ifuel][$iprop] = 2.247e-1; $b[$ifuel][$iprop] = 1.026e-1; $c[$ifuel][$iprop] = 9.9706e+2; $d[$ifuel][$iprop] = 1.7629e+6; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; $iprop = 9; $a[$ifuel][$iprop] = 6.096e-2; $b[$ifuel][$iprop] = 1.2286; $c[$ifuel][$iprop] = 0; $d[$ifuel][$iprop] = 0; $e[$ifuel][$iprop] = 0; $f[$ifuel][$iprop] = 0; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Begin CGI - Program # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ &ReadParse; $kalle = $in[0]; if ($in[0] eq "") { &display; } else { if ( $ENV{'QUERY_STRING'} eq "one" ) { &printone; } if ( $ENV{'QUERY_STRING'} eq "loop" ) { &printloop; } if ( $ENV{'QUERY_STRING'} eq "temp" ) { &printtemp; } } exit(0); sub display { print "Content-type: text/html\n\n"; print "\n"; print "\n"; print "$title\n"; print "\n"; print "\n"; print "

$title

\n"; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ print "
\n"; print "What is the \n"; print "at temperature Kelvin\n"; print "for \n"; print "
\n"; print "
\n"; print "
"; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ print "
\n"; print "What is the \n"; print "for
\n"; print " in the range: K - K every Kelvin"; print "
\n"; print "
\n"; print "
"; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ print "
\n"; print "What is the \n"; print "at pressure Mpa\n"; print "for \n"; print "
\n"; print "
\n"; print "
"; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ print "\n"; print "\n"; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # The one option #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub printone { print "Content-type: text/html\n\n"; print ""; print ""; print "$title"; print ""; print ""; foreach $i (0 .. $#in) { $loc = index($in[$i],"="); $key[$i] = substr($in[$i],0,$loc); $val[$i] = substr($in[$i],$loc+1); # print "$key[$i] = $val[$i]
"; } # # find index for the fuel # $n = 0; foreach $i (@fuel) { if ($i eq $val[2]) { $selectedFuel = $n; } $n++; } print "

$fuel[$selectedFuel]

"; # # find index for the property # $n = 0; foreach $i (@prop) { if ($i eq $val[0]) { $selectedProperty = $n; } $n++; } $t = eval { $val[1] }; print "
\n"; print "


$prop[$selectedProperty] @ $t K
"; $nfunc = $eq[$selectedFuel][$selectedProperty]; &nsrds; print " $unit[$selectedProperty]
"; &printtail; print "

\n"; print ""; print ""; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # The loop option #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub printloop { print "Content-type: text/html\n\n"; print ""; print ""; print "$title"; print ""; print ""; foreach $i (0 .. $#in) { $loc = index($in[$i],"="); $key[$i] = substr($in[$i],0,$loc); $val[$i] = substr($in[$i],$loc+1); } # # find index for the fuel # $n = 0; foreach $i (@fuel) { if ($i eq $val[1]) { $selectedFuel = $n; } $n++; } print "

$fuel[$selectedFuel]

"; # # find index for the property # $n = 0; foreach $i (@prop) { if ($i eq $val[0]) { $selectedProperty = $n; } $n++; } print "
\n"; print "


$prop[$selectedProperty] ($unit[$selectedProperty])
"; $nfunc = $eq[$selectedFuel][$selectedProperty]; $check = ($val[3] - $val[2])/($val[4]+1.0e-10); if ( $check < 1001 ) { for ($t = $val[2]; $t <= $val[3]; $t += $val[4]) { print "$t "; &nsrds; print "
"; } } print "
"; &printtail; print "

\n"; print ""; print ""; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # The temp option #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub printtemp { print "Content-type: text/html\n\n"; print ""; print ""; print "$title"; print ""; print ""; foreach $i (0 .. $#in) { $loc = index($in[$i],"="); $key[$i] = substr($in[$i],0,$loc); $val[$i] = substr($in[$i],$loc+1); # print "$key[$i] = $val[$i]
"; } # # find index for the fuel # $n = 0; foreach $i (@fuel) { if ($i eq $val[2]) { $selectedFuel = $n; } $n++; } print "

$fuel[$selectedFuel]

"; # # find index for the property # $n = 0; foreach $i (@prop) { if ($i eq $val[0]) { $selectedProperty = $n; } $n++; } $t = eval { $val[1] }; print "
\n"; print "


$prop[$selectedProperty] @ $t MPa
"; $nfunc = $eq[$selectedFuel][$selectedProperty]; &nsrds; print " $unit[$selectedProperty]
"; print "
( NB! The boiling temperature is calculated using the vapour pressure function. )
"; &printtail; print "

\n"; print ""; print ""; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Print the tail #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub printtail { print "Molecular weight...... $mw[$selectedFuel] kg/kmol.
"; print "Critical Temperature............ $tcrit[$selectedFuel] K.
"; $p = $pcrit[$selectedFuel]*1.0e-6; print "Critical Pressure............... $p MPa.
"; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # The Parser #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub ReadParse { if (@_) { local (*in) = @_; } local ($i, $loc, $key, $val); # Read in text if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) { $in .= getc; } } @in = split(/&/,$in); foreach $i (0 .. $#in) { # Convert plus's to spaces $in[$i] =~ s/\+/ /g; # Convert %XX from hex numbers to alphanumeric $in[$i] =~ s/%(..)/pack("c",hex($1))/ge; # Split into key and value. $loc = index($in[$i],"="); $key = substr($in[$i],0,$loc); $val = substr($in[$i],$loc+1); $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator $in{$key} .= $val; } return 1; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # the functions #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub nsrds { $s = $selectedProperty; $fu = $selectedFuel; if ( $s != 10 ) { $aa = $a[$fu][$s]; $bb = $b[$fu][$s]; $cc = $c[$fu][$s]; $dd = $d[$fu][$s]; $ee = $e[$fu][$s]; $ff = $f[$fu][$s]; } else { # for the calculation of boiling point get vapour pressure coeffs. $vpindex = 1; $aa = $a[$fu][$vpindex]; $bb = $b[$fu][$vpindex]; $cc = $c[$fu][$vpindex]; $dd = $d[$fu][$vpindex]; $ee = $e[$fu][$vpindex]; $ff = $f[$fu][$vpindex]; $nfunc = $eq[$fu][$vpindex]; } if ( $s == 2 || $s == 3 || $s == 4 ) { $mult = 1.0/$mw[$fu]; } else { if ( $s == 0 ) { $mult = $mw[$fu]; } else { $mult = 1; } } if ( $s == 10 ) { $pressure = $t*1.0e+6; $t = 200.0; $pprev = 0; $dt = 50.0; $counter = 0; } START: if ($nfunc == 0) { $fq = $aa + $bb*$t + $cc*$t**2 + $dd*$t**3 + $ee*$t**4 + $ff*$t**5; } if ($nfunc == 1) { $fq = exp($aa + $bb/$t + $cc*log($t) + $dd*$t**$ee); } if ($nfunc == 2) { $fq = $aa*$t**$bb/(1.0 + $cc/$t + $dd/$t**2); } if ($nfunc == 3) { $fq = $aa + $bb*exp(-$cc/$t**$dd); } if ($nfunc == 4) { $fq = $aa + $bb/$t + $cc/$t**3 + $dd/$t**8 + $ee/$t**9; } if ($nfunc == 5) { $fq = $aa / $bb**(1.0 + (1-$t/$cc)**$dd); } if ($nfunc == 6) { $tr = $t/$tcrit[$fu]; $fq = $aa*(1.0 - $tr)**($bb + $cc*$tr + $dd*$tr**2 + $ee*$tr**3); } if ($nfunc == 7) { $fq = 0; } if ($nfunc == 10) { $fq = $aa/($bb**(1.0+(1.0-(($t-77.8)/$cc))**$dd)); } if ( $s == 10 ) { if ( ($counter < 20) && ( $dt > 1.0e-8 ) ) { $counter = $counter + 1; if (($pprev < $pressure) && ($fq < $pressure)) { $t = $t + $dt; } else { if (($pprev > $pressure) && ($fq > $pressure)) { $t = $t - $dt; } else { if (($pprev < $pressure) && ($fq > $pressure)) { $dt = 0.5*$dt; $t = $t - $dt; } else { $dt = 0.5*$dt; $t = $t + $dt; } } } $pprev = $fq; goto START; } else { if ( $dt > 1.0e-6 ) { $fq = $t; } else { $fq = -1.0; } } } $fq *= $mult; print "$fq"; }