The following routine must be called once before any other routine. 
This function sets up all the necessary parameters for the AGA8 equation of state in its "DETAIL" version. It initializes:
The function also performs necessary precalculations of constants used in the equation of state calculations to optimize performance.
This implementation corresponds to the reference equations for natural gas mixtures as published in the DETAIL formulation. 
  807{
  808    
  809    
  810 
  814    double d0;
  815 
  817 
  818    
  840 
  841    
  843    for (
int i = 1; i <= 
NTerms; ++i)
 
  844    {
  851        sn[i] = 0;
  853        wn[i] = 0;
  854    }
  855 
  856    for (
int i = 1; i <= 
MaxFlds; ++i)
 
  857    {
  858        Ei[i] = 0;
  861        Ki[i] = 0;
  863        Si[i] = 0;
  864        Wi[i] = 0;
  866        for (
int j = 1; j <= 
MaxFlds; ++j)
 
  867        {
  868            Eij[i][j] = 1;
  869            Gij[i][j] = 1;
  870            Kij[i][j] = 1;
  871            Uij[i][j] = 1;
  872        }
  873    }
  874 
  875    
  887    an[12] = -0.78665925;
 
  888    an[13] = 0.00000000229129;
 
  891    an[16] = -0.04408159;
 
  892    an[17] = -0.003433888;
 
  896    an[21] = -0.001600573;
 
  899    an[24] = -0.06689957;
 
  902    an[27] = -0.002860589;
 
  903    an[28] = -0.008098836;
 
  905    an[30] = 0.007224479;
 
  908    an[33] = -0.07931491;
 
  910    an[35] = -5.99905E-17;
 
  913    an[38] = -0.007022847;
 
  920    an[45] = -0.005399808;
 
  923    an[48] = 0.003733797;
 
  925    an[50] = 0.002168144;
 
  927    an[52] = 0.000205518;
 
  928    an[53] = 0.009776195;
 
  929    an[54] = -0.02048708;
 
  931    an[56] = 0.006862415;
 
  932    an[57] = -0.001226752;
 
  933    an[58] = 0.002850908;
 
  934 
  935    
  994 
  995    
  996    
 1035 
 1036    
 1095 
 1096    
 1121    sn[8] = 1;
 1122    sn[9] = 1;
 1123    wn[10] = 1;
 1124    wn[11] = 1;
 1125    wn[12] = 1;
 1126 
 1127    
 1128    Ei[1] = 151.3183;
 1129    Ei[2] = 99.73778;
 1130    Ei[3] = 241.9606;
 1131    Ei[4] = 244.1667;
 1132    Ei[5] = 298.1183;
 1133    Ei[6] = 324.0689;
 1134    Ei[7] = 337.6389;
 1135    Ei[8] = 365.5999;
 1136    Ei[9] = 370.6823;
 1137    Ei[10] = 402.636293;
 1138    Ei[11] = 427.72263;
 1139    Ei[12] = 450.325022;
 1140    Ei[13] = 470.840891;
 1141    Ei[14] = 489.558373;
 1142    Ei[15] = 26.95794;
 1143    Ei[16] = 122.7667;
 1144    Ei[17] = 105.5348;
 1145    Ei[18] = 514.0156;
 1146    Ei[19] = 296.355;
 1147    Ei[20] = 2.610111;
 1148    Ei[21] = 119.6299;
 1149 
 1150    
 1151    Ki[1] = 0.4619255;
 1152    Ki[2] = 0.4479153;
 1153    Ki[3] = 0.4557489;
 1154    Ki[4] = 0.5279209;
 1155    Ki[5] = 0.583749;
 1156    Ki[6] = 0.6406937;
 1157    Ki[7] = 0.6341423;
 1158    Ki[8] = 0.6738577;
 1159    Ki[9] = 0.6798307;
 1160    Ki[10] = 0.7175118;
 1161    Ki[11] = 0.7525189;
 1162    Ki[12] = 0.784955;
 1163    Ki[13] = 0.8152731;
 1164    Ki[14] = 0.8437826;
 1165    Ki[15] = 0.3514916;
 1166    Ki[16] = 0.4186954;
 1167    Ki[17] = 0.4533894;
 1168    Ki[18] = 0.3825868;
 1169    Ki[19] = 0.4618263;
 1170    Ki[20] = 0.3589888;
 1171    Ki[21] = 0.4216551;
 1172 
 1173    
 1192 
 1193    
 1198    Si[18] = 1.5822; 
 1199    Si[19] = 0.39;   
 1200    Wi[18] = 1;      
 1201 
 1202    
 1203    Eij[1][2] = 0.97164;
 1204    Eij[1][3] = 0.960644;
 1205    Eij[1][5] = 0.994635;
 1206    Eij[1][6] = 1.01953;
 1207    Eij[1][7] = 0.989844;
 1208    Eij[1][8] = 1.00235;
 1209    Eij[1][9] = 0.999268;
 1210    Eij[1][10] = 1.107274;
 1211    Eij[1][11] = 0.88088;
 1212    Eij[1][12] = 0.880973;
 1213    Eij[1][13] = 0.881067;
 1214    Eij[1][14] = 0.881161;
 1215    Eij[1][15] = 1.17052;
 1216    Eij[1][17] = 0.990126;
 1217    Eij[1][18] = 0.708218;
 1218    Eij[1][19] = 0.931484;
 1219    Eij[2][3] = 1.02274;
 1220    Eij[2][4] = 0.97012;
 1221    Eij[2][5] = 0.945939;
 1222    Eij[2][6] = 0.946914;
 1223    Eij[2][7] = 0.973384;
 1224    Eij[2][8] = 0.95934;
 1225    Eij[2][9] = 0.94552;
 1226    Eij[2][15] = 1.08632;
 1227    Eij[2][16] = 1.021;
 1228    Eij[2][17] = 1.00571;
 1229    Eij[2][18] = 0.746954;
 1230    Eij[2][19] = 0.902271;
 1231    Eij[3][4] = 0.925053;
 1232    Eij[3][5] = 0.960237;
 1233    Eij[3][6] = 0.906849;
 1234    Eij[3][7] = 0.897362;
 1235    Eij[3][8] = 0.726255;
 1236    Eij[3][9] = 0.859764;
 1237    Eij[3][10] = 0.855134;
 1238    Eij[3][11] = 0.831229;
 1239    Eij[3][12] = 0.80831;
 1240    Eij[3][13] = 0.786323;
 1241    Eij[3][14] = 0.765171;
 1242    Eij[3][15] = 1.28179;
 1243    Eij[3][17] = 1.5;
 1244    Eij[3][18] = 0.849408;
 1245    Eij[3][19] = 0.955052;
 1246    Eij[4][5] = 1.02256;
 1247    Eij[4][7] = 1.01306;
 1248    Eij[4][9] = 1.00532;
 1249    Eij[4][15] = 1.16446;
 1250    Eij[4][18] = 0.693168;
 1251    Eij[4][19] = 0.946871;
 1252    Eij[5][7] = 1.0049;
 1253    Eij[5][15] = 1.034787;
 1254    Eij[6][15] = 1.3;
 1255    Eij[7][15] = 1.3;
 1256    Eij[10][19] = 1.008692;
 1257    Eij[11][19] = 1.010126;
 1258    Eij[12][19] = 1.011501;
 1259    Eij[13][19] = 1.012821;
 1260    Eij[14][19] = 1.014089;
 1261    Eij[15][17] = 1.1;
 1262 
 1263    
 1264    Uij[1][2] = 0.886106;
 1265    Uij[1][3] = 0.963827;
 1266    Uij[1][5] = 0.990877;
 1267    Uij[1][7] = 0.992291;
 1268    Uij[1][9] = 1.00367;
 1269    Uij[1][10] = 1.302576;
 1270    Uij[1][11] = 1.191904;
 1271    Uij[1][12] = 1.205769;
 1272    Uij[1][13] = 1.219634;
 1273    Uij[1][14] = 1.233498;
 1274    Uij[1][15] = 1.15639;
 1275    Uij[1][19] = 0.736833;
 1276    Uij[2][3] = 0.835058;
 1277    Uij[2][4] = 0.816431;
 1278    Uij[2][5] = 0.915502;
 1279    Uij[2][7] = 0.993556;
 1280    Uij[2][15] = 0.408838;
 1281    Uij[2][19] = 0.993476;
 1282    Uij[3][4] = 0.96987;
 1283    Uij[3][10] = 1.066638;
 1284    Uij[3][11] = 1.077634;
 1285    Uij[3][12] = 1.088178;
 1286    Uij[3][13] = 1.098291;
 1287    Uij[3][14] = 1.108021;
 1288    Uij[3][17] = 0.9;
 1289    Uij[3][19] = 1.04529;
 1290    Uij[4][5] = 1.065173;
 1291    Uij[4][6] = 1.25;
 1292    Uij[4][7] = 1.25;
 1293    Uij[4][8] = 1.25;
 1294    Uij[4][9] = 1.25;
 1295    Uij[4][15] = 1.61666;
 1296    Uij[4][19] = 0.971926;
 1297    Uij[10][19] = 1.028973;
 1298    Uij[11][19] = 1.033754;
 1299    Uij[12][19] = 1.038338;
 1300    Uij[13][19] = 1.042735;
 1301    Uij[14][19] = 1.046966;
 1302 
 1303    
 1304    Kij[1][2] = 1.00363;
 1305    Kij[1][3] = 0.995933;
 1306    Kij[1][5] = 1.007619;
 1307    Kij[1][7] = 0.997596;
 1308    Kij[1][9] = 1.002529;
 1309    Kij[1][10] = 0.982962;
 1310    Kij[1][11] = 0.983565;
 1311    Kij[1][12] = 0.982707;
 1312    Kij[1][13] = 0.981849;
 1313    Kij[1][14] = 0.980991;
 1314    Kij[1][15] = 1.02326;
 1315    Kij[1][19] = 1.00008;
 1316    Kij[2][3] = 0.982361;
 1317    Kij[2][4] = 1.00796;
 1318    Kij[2][15] = 1.03227;
 1319    Kij[2][19] = 0.942596;
 1320    Kij[3][4] = 1.00851;
 1321    Kij[3][10] = 0.910183;
 1322    Kij[3][11] = 0.895362;
 1323    Kij[3][12] = 0.881152;
 1324    Kij[3][13] = 0.86752;
 1325    Kij[3][14] = 0.854406;
 1326    Kij[3][19] = 1.00779;
 1327    Kij[4][5] = 0.986893;
 1328    Kij[4][15] = 1.02034;
 1329    Kij[4][19] = 0.999969;
 1330    Kij[10][19] = 0.96813;
 1331    Kij[11][19] = 0.96287;
 1332    Kij[12][19] = 0.957828;
 1333    Kij[13][19] = 0.952441;
 1334    Kij[14][19] = 0.948338;
 1335 
 1336    
 1337    Gij[1][3] = 0.807653;
 1338    Gij[1][15] = 1.95731;
 1339    Gij[2][3] = 0.982746;
 1340    Gij[3][4] = 0.370296;
 1341    Gij[3][18] = 1.67309;
 1342 
 1343    
 1344    n0i[1][3] = 4.00088;
 
 1345    n0i[1][4] = 0.76315;
 
 1347    n0i[1][6] = 8.74432;
 
 1348    n0i[1][7] = -4.46921;
 
 1349    n0i[1][1] = 29.83843397;
 
 1350    n0i[1][2] = -15999.69151;
 
 1351    n0i[2][3] = 3.50031;
 
 1352    n0i[2][4] = 0.13732;
 
 1353    n0i[2][5] = -0.1466;
 
 1354    n0i[2][6] = 0.90066;
 
 1356    n0i[2][1] = 17.56770785;
 
 1357    n0i[2][2] = -2801.729072;
 
 1358    n0i[3][3] = 3.50002;
 
 1359    n0i[3][4] = 2.04452;
 
 1360    n0i[3][5] = -1.06044;
 
 1361    n0i[3][6] = 2.03366;
 
 1362    n0i[3][7] = 0.01393;
 
 1363    n0i[3][1] = 20.65844696;
 
 1364    n0i[3][2] = -4902.171516;
 
 1365    n0i[4][3] = 4.00263;
 
 1366    n0i[4][4] = 4.33939;
 
 1367    n0i[4][5] = 1.23722;
 
 1368    n0i[4][6] = 13.1974;
 
 1369    n0i[4][7] = -6.01989;
 
 1370    n0i[4][1] = 36.73005938;
 
 1371    n0i[4][2] = -23639.65301;
 
 1372    n0i[5][3] = 4.02939;
 
 1373    n0i[5][4] = 6.60569;
 
 1375    n0i[5][6] = 19.1921;
 
 1376    n0i[5][7] = -8.37267;
 
 1377    n0i[5][1] = 44.70909619;
 
 1378    n0i[5][2] = -31236.63551;
 
 1379    n0i[6][3] = 4.06714;
 
 1380    n0i[6][4] = 8.97575;
 
 1381    n0i[6][5] = 5.25156;
 
 1382    n0i[6][6] = 25.1423;
 
 1383    n0i[6][7] = 16.1388;
 
 1384    n0i[6][1] = 34.30180349;
 
 1385    n0i[6][2] = -38525.50276;
 
 1386    n0i[7][3] = 4.33944;
 
 1387    n0i[7][4] = 9.44893;
 
 1388    n0i[7][5] = 6.89406;
 
 1389    n0i[7][6] = 24.4618;
 
 1390    n0i[7][7] = 14.7824;
 
 1391    n0i[7][1] = 36.53237783;
 
 1392    n0i[7][2] = -38957.80933;
 
 1394    n0i[8][4] = 11.7618;
 
 1395    n0i[8][5] = 20.1101;
 
 1396    n0i[8][6] = 33.1688;
 
 1398    n0i[8][1] = 43.17218626;
 
 1399    n0i[8][2] = -51198.30946;
 
 1401    n0i[9][4] = 8.95043;
 
 1403    n0i[9][6] = 33.4032;
 
 1405    n0i[9][1] = 42.67837089;
 
 1406    n0i[9][2] = -45215.83;
 
 1408    n0i[10][4] = 11.6977;
 
 1409    n0i[10][5] = 26.8142;
 
 1410    n0i[10][6] = 38.6164;
 
 1412    n0i[10][1] = 46.99717188;
 
 1413    n0i[10][2] = -52746.83318;
 
 1415    n0i[11][4] = 13.7266;
 
 1416    n0i[11][5] = 30.4707;
 
 1417    n0i[11][6] = 43.5561;
 
 1419    n0i[11][1] = 52.07631631;
 
 1420    n0i[11][2] = -57104.81056;
 
 1422    n0i[12][4] = 15.6865;
 
 1423    n0i[12][5] = 33.8029;
 
 1424    n0i[12][6] = 48.1731;
 
 1426    n0i[12][1] = 57.25830934;
 
 1427    n0i[12][2] = -60546.76385;
 
 1429    n0i[13][4] = 18.0241;
 
 1430    n0i[13][5] = 38.1235;
 
 1431    n0i[13][6] = 53.3415;
 
 1433    n0i[13][1] = 62.09646901;
 
 1434    n0i[13][2] = -66600.12837;
 
 1436    n0i[14][4] = 21.0069;
 
 1437    n0i[14][5] = 43.4931;
 
 1438    n0i[14][6] = 58.3657;
 
 1440    n0i[14][1] = 65.93909154;
 
 1441    n0i[14][2] = -74131.45483;
 
 1442    n0i[15][3] = 2.47906;
 
 1443    n0i[15][4] = 0.95806;
 
 1444    n0i[15][5] = 0.45444;
 
 1445    n0i[15][6] = 1.56039;
 
 1446    n0i[15][7] = -1.3756;
 
 1447    n0i[15][1] = 13.07520288;
 
 1448    n0i[15][2] = -5836.943696;
 
 1449    n0i[16][3] = 3.50146;
 
 1450    n0i[16][4] = 1.07558;
 
 1451    n0i[16][5] = 1.01334;
 
 1454    n0i[16][1] = 16.8017173;
 
 1455    n0i[16][2] = -2318.32269;
 
 1456    n0i[17][3] = 3.50055;
 
 1457    n0i[17][4] = 1.02865;
 
 1458    n0i[17][5] = 0.00493;
 
 1461    n0i[17][1] = 17.45786899;
 
 1462    n0i[17][2] = -2635.244116;
 
 1463    n0i[18][3] = 4.00392;
 
 1464    n0i[18][4] = 0.01059;
 
 1465    n0i[18][5] = 0.98763;
 
 1466    n0i[18][6] = 3.06904;
 
 1468    n0i[18][1] = 21.57882705;
 
 1469    n0i[18][2] = -7766.733078;
 
 1471    n0i[19][4] = 3.11942;
 
 1472    n0i[19][5] = 1.00243;
 
 1475    n0i[19][1] = 21.5830944;
 
 1476    n0i[19][2] = -6069.035869;
 
 1482    n0i[20][1] = 10.04639507;
 
 1483    n0i[20][2] = -745.375;
 
 1489    n0i[21][1] = 10.04639507;
 
 1490    n0i[21][2] = -745.375;
 
 1491    th0i[1][4] = 820.659;
 
 1492    th0i[1][5] = 178.41;
 
 1493    th0i[1][6] = 1062.82;
 
 1494    th0i[1][7] = 1090.53;
 
 1495    th0i[2][4] = 662.738;
 
 1496    th0i[2][5] = 680.562;
 
 1497    th0i[2][6] = 1740.06;
 
 1499    th0i[3][4] = 919.306;
 
 1500    th0i[3][5] = 865.07;
 
 1501    th0i[3][6] = 483.553;
 
 1502    th0i[3][7] = 341.109;
 
 1503    th0i[4][4] = 559.314;
 
 1504    th0i[4][5] = 223.284;
 
 1505    th0i[4][6] = 1031.38;
 
 1506    th0i[4][7] = 1071.29;
 
 1507    th0i[5][4] = 479.856;
 
 1508    th0i[5][5] = 200.893;
 
 1509    th0i[5][6] = 955.312;
 
 1510    th0i[5][7] = 1027.29;
 
 1511    th0i[6][4] = 438.27;
 
 1512    th0i[6][5] = 198.018;
 
 1513    th0i[6][6] = 1905.02;
 
 1514    th0i[6][7] = 893.765;
 
 1515    th0i[7][4] = 468.27;
 
 1516    th0i[7][5] = 183.636;
 
 1517    th0i[7][6] = 1914.1;
 
 1518    th0i[7][7] = 903.185;
 
 1519    th0i[8][4] = 292.503;
 
 1520    th0i[8][5] = 910.237;
 
 1521    th0i[8][6] = 1919.37;
 
 1523    th0i[9][4] = 178.67;
 
 1524    th0i[9][5] = 840.538;
 
 1525    th0i[9][6] = 1774.25;
 
 1527    th0i[10][4] = 182.326;
 
 1528    th0i[10][5] = 859.207;
 
 1529    th0i[10][6] = 1826.59;
 
 1531    th0i[11][4] = 169.789;
 
 1532    th0i[11][5] = 836.195;
 
 1533    th0i[11][6] = 1760.46;
 
 1535    th0i[12][4] = 158.922;
 
 1536    th0i[12][5] = 815.064;
 
 1537    th0i[12][6] = 1693.07;
 
 1539    th0i[13][4] = 156.854;
 
 1540    th0i[13][5] = 814.882;
 
 1541    th0i[13][6] = 1693.79;
 
 1543    th0i[14][4] = 164.947;
 
 1544    th0i[14][5] = 836.264;
 
 1545    th0i[14][6] = 1750.24;
 
 1547    th0i[15][4] = 228.734;
 
 1548    th0i[15][5] = 326.843;
 
 1549    th0i[15][6] = 1651.71;
 
 1550    th0i[15][7] = 1671.69;
 
 1551    th0i[16][4] = 2235.71;
 
 1552    th0i[16][5] = 1116.69;
 
 1555    th0i[17][4] = 1550.45;
 
 1556    th0i[17][5] = 704.525;
 
 1559    th0i[18][4] = 268.795;
 
 1560    th0i[18][5] = 1141.41;
 
 1561    th0i[18][6] = 2507.37;
 
 1563    th0i[19][4] = 1833.63;
 
 1564    th0i[19][5] = 847.181;
 
 1575 
 1576    
 1577    for (
int i = 1; i <= 
MaxFlds; ++i)
 
 1578    {
 1579        Ki25[i] = pow(Ki[i], 2.5);
 
 1580        Ei25[i] = pow(Ei[i], 2.5);
 
 1581    }
 1582    for (
int i = 1; i <= 
MaxFlds; ++i)
 
 1583    {
 1584        for (
int j = i; j <= 
MaxFlds; ++j)
 
 1585        {
 1586            for (int n = 1; n <= 18; ++n)
 1587            {
 1588                Bsnij = 1;
 1590                {
 1591                    Bsnij = Gij[i][j] * (
Gi[i] + 
Gi[j]) / 2;
 
 1592                }
 1594                {
 1595                    Bsnij = Bsnij * 
Qi[i] * 
Qi[j];
 
 1596                }
 1598                {
 1599                    Bsnij = Bsnij * 
Fi[i] * 
Fi[j];
 
 1600                }
 1601                if (sn[n] == 1)
 1602                {
 1603                    Bsnij = Bsnij * Si[i] * Si[j];
 1604                }
 1605                if (wn[n] == 1)
 1606                {
 1607                    Bsnij = Bsnij * Wi[i] * Wi[j];
 1608                }
 1609                Bsnij2[i][j][n] = 
an[n] * pow(Eij[i][j] * sqrt(Ei[i] * Ei[j]), 
un[n]) * pow(Ki[i] * Ki[j], 1.5) * Bsnij;
 
 1610            }
 1611            Kij5[i][j] = (pow(Kij[i][j], 5) - 1) * 
Ki25[i] * 
Ki25[j];
 
 1612            Uij5[i][j] = (pow(Uij[i][j], 5) - 1) * 
Ei25[i] * 
Ei25[j];
 
 1613            Gij5[i][j] = (Gij[i][j] - 1) * (
Gi[i] + 
Gi[j]) / 2;
 
 1614        }
 1615    }
 1616    
 1617    d0 = 101.325 / 
RDetail / 298.15;
 
 1618    for (
int i = 1; i <= 
MaxFlds; ++i)
 
 1619    {
 1620        n0i[i][3] = 
n0i[i][3] - 1;
 
 1621        n0i[i][1] = 
n0i[i][1] - log(d0);
 
 1622    }
 1623    return;
 1624 
 1625    
 1626    
 1627    
 1628    
 1629    
 1630    
 1631    
 1632    
 1633    
 1634    
 1635    
 1636    
 1637    
 1638    
 1639}
static double Qi[MaxFlds+1]
static double Ki25[MaxFlds+1]
static double an[NTerms+1]
static double Uij5[MaxFlds+1][MaxFlds+1]
static double th0i[MaxFlds+1][7+1]
static double Bsnij2[MaxFlds+1][MaxFlds+1][18+1]
static double Gi[MaxFlds+1]
static double Kij5[MaxFlds+1][MaxFlds+1]
static double Ei25[MaxFlds+1]
static double xold[MaxFlds+1]
static double Fi[MaxFlds+1]
static double un[NTerms+1]
static double Gij5[MaxFlds+1][MaxFlds+1]
static double n0i[MaxFlds+1][7+1]