Advertisement
agmike

Сгенерированный код тормозной схемы ТЭП70 (без второй кабины

Dec 10th, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 128.90 KB | None | 0 0
  1. // This file was generated by Trainz Air Scheme Compiler
  2. // Created on 2012.12.10 19:21:25
  3. // Scheme statistics:
  4. // node count: 82
  5. // link count: 109
  6. //     unique: 104
  7. //     to atm: 18
  8. //  with name: 67
  9. // matrix non-zeros: 215
  10. //          fill-in: 47
  11. // matrix density: 0.031975014872099940511600238
  12. // object count: 23
  13.  
  14.  
  15. // Place following lines in config.txt file to use this scheme:
  16. // script   "tep70airscheme.gs"
  17. // class    "tep70airscheme"
  18.  
  19. // INCLUDE ALL OBJECT SCRIPTS HERE
  20. //include "someobject.gs"
  21.  
  22. include "SPAO_LimitValve.gs"
  23. include "SPAO_EPK150.gs"
  24. include "SPAO_BU367.gs"
  25. include "SPAO_KM395.gs"
  26. include "SPAO_KVT254.gs"
  27. include "SPAO_BackValve.gs"
  28. include "SPAO_Reductor.gs"
  29. include "SPAO_VR292.gs"
  30. include "SPAO_EVR305.gs"
  31. include "SPAO_SwitchValve.gs"
  32. include "SPAO_Relay.gs"
  33. include "SPAO_VariableBrakeCylinder.gs"
  34.  
  35.  
  36.  
  37. include "splibrary.gs"
  38. include "tep70airscheme.instance.gs"
  39.  
  40. final game class tep70airscheme isclass SPAirSchemeSpec
  41. {
  42.     public LIntMap nodeIds;
  43.     public LIntMap linkIds;
  44.     public LIntMap objectIds;
  45.     public float[] linkNominalFlowRate;
  46.     public int[] linkSrc;
  47.     public int[] linkDst;
  48.     public float[] alinkNominalFlowRate;
  49.     public int[] alinkSrc;
  50.    
  51.     float _a00_00, _a00_11;
  52.     float _a01_01, _a01_11;
  53.     float _a02_02, _a02_28;
  54.     float _a03_03, _a03_29;
  55.     float _a04_04, _a04_13;
  56.     float _a05_05, _a05_14;
  57.     float _a06_06, _a06_39, _a06_81;
  58.     float _a07_07, _a07_24;
  59.     float _a08_08, _a08_23;
  60.     float _a09_09, _a09_29;
  61.     float _a10_10, _a10_20, _a10_80;
  62.     float _a11_11;
  63.     float _a12_12, _a12_28, _a12_35;
  64.     float _a13_13, _a13_25;
  65.     float _a14_14, _a14_26;
  66.     float _a15_15, _a15_30, _a15_34;
  67.     float _a16_16, _a16_31, _a16_36;
  68.     float _a17_17, _a17_38, _a17_39;
  69.     float _a18_18, _a18_27, _a18_33;
  70.     float _a19_19, _a19_32, _a19_35;
  71.     float _a20_20, _a20_27, _a20_80;
  72.     float _a21_21, _a21_37, _a21_39;
  73.     float _a22_22, _a22_23, _a22_39;
  74.     float _a23_23, _a23_39;
  75.     float _a24_24, _a24_32, _a24_38;
  76.     float _a25_25, _a25_39;
  77.     float _a26_26, _a26_34;
  78.     float _a27_27, _a27_33, _a27_80;
  79.     float _a28_28, _a28_29, _a28_35;
  80.     float _a29_29, _a29_35;
  81.     float _a30_30, _a30_34, _a30_36;
  82.     float _a31_31, _a31_36, _a31_39;
  83.     float _a32_32, _a32_35, _a32_38;
  84.     float _a33_33, _a33_37, _a33_80;
  85.     float _a34_34, _a34_36;
  86.     float _a35_35, _a35_37, _a35_38;
  87.     float _a36_36, _a36_39;
  88.     float _a37_37, _a37_38, _a37_39, _a37_80;
  89.     float _a38_38, _a38_39, _a38_80;
  90.     float _a39_39, _a39_80, _a39_81;
  91.     float _a40_40, _a40_74;
  92.     float _a41_41, _a41_64;
  93.     float _a42_42, _a42_64;
  94.     float _a43_43, _a43_50;
  95.     float _a44_44, _a44_62;
  96.     float _a45_45, _a45_62;
  97.     float _a46_46, _a46_60, _a46_81;
  98.     float _a47_47, _a47_61;
  99.     float _a48_48, _a48_74, _a48_77;
  100.     float _a49_49, _a49_64, _a49_72;
  101.     float _a50_50, _a50_63;
  102.     float _a51_51, _a51_65, _a51_71;
  103.     float _a52_52, _a52_73, _a52_78;
  104.     float _a53_53, _a53_66, _a53_73;
  105.     float _a54_54, _a54_67, _a54_79;
  106.     float _a55_55, _a55_68, _a55_79;
  107.     float _a56_56, _a56_69, _a56_78;
  108.     float _a57_57, _a57_69, _a57_76;
  109.     float _a58_58, _a58_70, _a58_75;
  110.     float _a59_59, _a59_72, _a59_77;
  111.     float _a60_60, _a60_76, _a60_81;
  112.     float _a61_61, _a61_70, _a61_74;
  113.     float _a62_62, _a62_78;
  114.     float _a63_63, _a63_71;
  115.     float _a64_64, _a64_72, _a64_75;
  116.     float _a65_65, _a65_71, _a65_76;
  117.     float _a66_66, _a66_73, _a66_79;
  118.     float _a67_67, _a67_76, _a67_79;
  119.     float _a68_68, _a68_77, _a68_79;
  120.     float _a69_69, _a69_76, _a69_78;
  121.     float _a70_70, _a70_74, _a70_75;
  122.     float _a71_71, _a71_76;
  123.     float _a72_72, _a72_75, _a72_77;
  124.     float _a73_73, _a73_78, _a73_79, _a73_80;
  125.     float _a74_74, _a74_75, _a74_77;
  126.     float _a75_75, _a75_77;
  127.     float _a76_76, _a76_78, _a76_79, _a76_81;
  128.     float _a77_77, _a77_79;
  129.     float _a78_78, _a78_79, _a78_80, _a78_81;
  130.     float _a79_79, _a79_80, _a79_81;
  131.     float _a80_80, _a80_81;
  132.     float _a81_81;
  133.    
  134.    
  135.     bool allowIdQuery = true;
  136.     string currentObjectName;
  137.     string currentObjectNameQualified;
  138.  
  139.     void SetCurrentObjectName(string name)
  140.     {
  141.         currentObjectName = name;
  142.         currentObjectNameQualified = name + ".";
  143.     }
  144.  
  145.     void ResetCurrentObjectName()
  146.     {
  147.         currentObjectName = null;
  148.         currentObjectNameQualified = null;
  149.     }
  150.    
  151.     public int GetNodeId(string name)
  152.     {
  153.         if (allowIdQuery) {
  154.             if (!currentObjectName)
  155.                 return nodeIds.Get(name, SPAirScheme.InvalidNodeId);
  156.             if (name and name.size() > 0)
  157.                 return nodeIds.Get(currentObjectNameQualified + name, SPAirScheme.InvalidNodeId);
  158.             return nodeIds.Get(currentObjectName, SPAirScheme.InvalidNodeId);
  159.         }
  160.         return SPAirScheme.InvalidNodeId;
  161.     }
  162.  
  163.     public int GetLinkId(string name)
  164.     {
  165.         if (allowIdQuery) {
  166.             if (!currentObjectName)
  167.                 return nodeIds.Get(name, SPAirScheme.InvalidLinkId);
  168.             if (name and name.size() > 0)
  169.                 return linkIds.Get(currentObjectNameQualified + name, SPAirScheme.InvalidLinkId);
  170.             return linkIds.Get(currentObjectName, SPAirScheme.InvalidLinkId);
  171.         }
  172.         return SPAirScheme.InvalidLinkId;
  173.     }
  174.    
  175.     public int GetObjectId(string name)
  176.     {
  177.         if (allowIdQuery) {
  178.             if (!currentObjectName)
  179.                 return objectIds.Get(name, SPAirScheme.InvalidObjectId);
  180.             if (name and name.size() > 0)
  181.                 return objectIds.Get(currentObjectNameQualified + name, SPAirScheme.InvalidObjectId);
  182.             return objectIds.Get(currentObjectName, SPAirScheme.InvalidObjectId);
  183.         }
  184.         return SPAirScheme.InvalidObjectId;
  185.     }
  186.    
  187.     tep70airscheme_instance CreateInstanceInternal(SPVehicle owner)
  188.     {
  189.         tep70airscheme_instance scheme = new tep70airscheme_instance();
  190.         scheme.spec = me;
  191.         scheme.owner = owner;
  192.        
  193.         float[] nodePressure = new float[82];
  194.         float[] nodeVolume = new float[82];
  195.         scheme.nodePressure = nodePressure;
  196.         scheme.nodeVolume = nodeVolume;
  197.         nodePressure[0] = 0;
  198.         nodeVolume[0] = 0.3;
  199.         nodePressure[1] = 0;
  200.         nodeVolume[1] = 0.03;
  201.         nodePressure[2] = 0;
  202.         nodeVolume[2] = 0.1;
  203.         nodePressure[3] = 0;
  204.         nodeVolume[3] = 0.1;
  205.         nodePressure[4] = 0;
  206.         nodeVolume[4] = 1;
  207.         nodePressure[5] = 0;
  208.         nodeVolume[5] = 0.1;
  209.         nodePressure[6] = 0;
  210.         nodeVolume[6] = 0.05;
  211.         nodePressure[7] = 0;
  212.         nodeVolume[7] = 0.1;
  213.         nodePressure[8] = 0;
  214.         nodeVolume[8] = 0.1;
  215.         nodePressure[9] = 0;
  216.         nodeVolume[9] = 20;
  217.         nodePressure[10] = 0;
  218.         nodeVolume[10] = 20;
  219.         nodePressure[11] = 0;
  220.         nodeVolume[11] = 0.03;
  221.         nodePressure[12] = 0;
  222.         nodeVolume[12] = 0.1;
  223.         nodePressure[13] = 0;
  224.         nodeVolume[13] = 0.01;
  225.         nodePressure[14] = 0;
  226.         nodeVolume[14] = 0.1;
  227.         nodePressure[15] = 0;
  228.         nodeVolume[15] = 0.1;
  229.         nodePressure[16] = 0;
  230.         nodeVolume[16] = 0.1;
  231.         nodePressure[17] = 0;
  232.         nodeVolume[17] = 0.1;
  233.         nodePressure[18] = 0;
  234.         nodeVolume[18] = 0.1;
  235.         nodePressure[19] = 0;
  236.         nodeVolume[19] = 0.1;
  237.         nodePressure[20] = 0;
  238.         nodeVolume[20] = 0.1;
  239.         nodePressure[21] = 0;
  240.         nodeVolume[21] = 0.1;
  241.         nodePressure[22] = 0;
  242.         nodeVolume[22] = 500;
  243.         nodePressure[23] = 0;
  244.         nodeVolume[23] = 500;
  245.         nodePressure[24] = 0;
  246.         nodeVolume[24] = 20;
  247.         nodePressure[25] = 0;
  248.         nodeVolume[25] = 0.1;
  249.         nodePressure[26] = 0;
  250.         nodeVolume[26] = 0.1;
  251.         nodePressure[27] = 0;
  252.         nodeVolume[27] = 0.1;
  253.         nodePressure[28] = 0;
  254.         nodeVolume[28] = 0.1;
  255.         nodePressure[29] = 0;
  256.         nodeVolume[29] = 0.1;
  257.         nodePressure[30] = 0;
  258.         nodeVolume[30] = 0.05;
  259.         nodePressure[31] = 0;
  260.         nodeVolume[31] = 0.1;
  261.         nodePressure[32] = 0;
  262.         nodeVolume[32] = 0.1;
  263.         nodePressure[33] = 0;
  264.         nodeVolume[33] = 0.1;
  265.         nodePressure[34] = 0;
  266.         nodeVolume[34] = 0.5;
  267.         nodePressure[35] = 0;
  268.         nodeVolume[35] = 0.1;
  269.         nodePressure[36] = 0;
  270.         nodeVolume[36] = 78;
  271.         nodePressure[37] = 0;
  272.         nodeVolume[37] = 0.1;
  273.         nodePressure[38] = 0;
  274.         nodeVolume[38] = 0.1;
  275.         nodePressure[39] = 0;
  276.         nodeVolume[39] = 20;
  277.         nodePressure[40] = 0;
  278.         nodeVolume[40] = 1.5;
  279.         nodePressure[41] = 0;
  280.         nodeVolume[41] = 1;
  281.         nodePressure[42] = 0;
  282.         nodeVolume[42] = 0.1;
  283.         nodePressure[43] = 0;
  284.         nodeVolume[43] = 0.1;
  285.         nodePressure[44] = 0;
  286.         nodeVolume[44] = 0.05;
  287.         nodePressure[45] = 0;
  288.         nodeVolume[45] = 0.05;
  289.         nodePressure[46] = 0;
  290.         nodeVolume[46] = 0.1;
  291.         nodePressure[47] = 0;
  292.         nodeVolume[47] = 78;
  293.         nodePressure[48] = 0;
  294.         nodeVolume[48] = 0.1;
  295.         nodePressure[49] = 0;
  296.         nodeVolume[49] = 0.01;
  297.         nodePressure[50] = 0;
  298.         nodeVolume[50] = 0.1;
  299.         nodePressure[51] = 0;
  300.         nodeVolume[51] = 0.1;
  301.         nodePressure[52] = 0;
  302.         nodeVolume[52] = 0.1;
  303.         nodePressure[53] = 0;
  304.         nodeVolume[53] = 0.1;
  305.         nodePressure[54] = 0;
  306.         nodeVolume[54] = 0.1;
  307.         nodePressure[55] = 0;
  308.         nodeVolume[55] = 0.1;
  309.         nodePressure[56] = 0;
  310.         nodeVolume[56] = 0.1;
  311.         nodePressure[57] = 0;
  312.         nodeVolume[57] = 0.05;
  313.         nodePressure[58] = 0;
  314.         nodeVolume[58] = 0.4;
  315.         nodePressure[59] = 0;
  316.         nodeVolume[59] = 0.1;
  317.         nodePressure[60] = 0;
  318.         nodeVolume[60] = 0.1;
  319.         nodePressure[61] = 0;
  320.         nodeVolume[61] = 0.1;
  321.         nodePressure[62] = 0;
  322.         nodeVolume[62] = 5;
  323.         nodePressure[63] = 0;
  324.         nodeVolume[63] = 0.1;
  325.         nodePressure[64] = 0;
  326.         nodeVolume[64] = 0.1;
  327.         nodePressure[65] = 0;
  328.         nodeVolume[65] = 0.05;
  329.         nodePressure[66] = 0;
  330.         nodeVolume[66] = 0.1;
  331.         nodePressure[67] = 0;
  332.         nodeVolume[67] = 0.1;
  333.         nodePressure[68] = 0;
  334.         nodeVolume[68] = 20;
  335.         nodePressure[69] = 0;
  336.         nodeVolume[69] = 0.1;
  337.         nodePressure[70] = 0;
  338.         nodeVolume[70] = 0.1;
  339.         nodePressure[71] = 0;
  340.         nodeVolume[71] = 0.5;
  341.         nodePressure[72] = 0;
  342.         nodeVolume[72] = 0.4;
  343.         nodePressure[73] = 0;
  344.         nodeVolume[73] = 0.01;
  345.         nodePressure[74] = 0;
  346.         nodeVolume[74] = 0.1;
  347.         nodePressure[75] = 0;
  348.         nodeVolume[75] = 0.4;
  349.         nodePressure[76] = 0;
  350.         nodeVolume[76] = 78;
  351.         nodePressure[77] = 0;
  352.         nodeVolume[77] = 0.1;
  353.         nodePressure[78] = 0;
  354.         nodeVolume[78] = 0.01;
  355.         nodePressure[79] = 0;
  356.         nodeVolume[79] = 0.01;
  357.         nodePressure[80] = 0;
  358.         nodeVolume[80] = 0.1;
  359.         nodePressure[81] = 0;
  360.         nodeVolume[81] = 0.1;
  361.        
  362.         float[] linkFlowRate = new float[48];
  363.         scheme.linkFlowRate = linkFlowRate;
  364.         linkFlowRate[0] = 9.027353;
  365.         linkFlowRate[1] = 0;
  366.         linkFlowRate[2] = 0;
  367.         linkFlowRate[3] = 0;
  368.         linkFlowRate[4] = 0;
  369.         linkFlowRate[5] = 0;
  370.         linkFlowRate[6] = 2311.00244;
  371.         linkFlowRate[7] = 0;
  372.         linkFlowRate[8] = 0;
  373.         linkFlowRate[9] = 0;
  374.         linkFlowRate[10] = 0;
  375.         linkFlowRate[11] = 0;
  376.         linkFlowRate[12] = 0;
  377.         linkFlowRate[13] = 0;
  378.         linkFlowRate[14] = 0;
  379.         linkFlowRate[15] = 0;
  380.         linkFlowRate[16] = 0;
  381.         linkFlowRate[17] = 0;
  382.         linkFlowRate[18] = 0;
  383.         linkFlowRate[19] = 0;
  384.         linkFlowRate[20] = 1448.38867;
  385.         linkFlowRate[21] = 0;
  386.         linkFlowRate[22] = 1448.38867;
  387.         linkFlowRate[23] = 0;
  388.         linkFlowRate[24] = 0;
  389.         linkFlowRate[25] = 0;
  390.         linkFlowRate[26] = 0;
  391.         linkFlowRate[27] = 0;
  392.         linkFlowRate[28] = 0;
  393.         linkFlowRate[29] = 0;
  394.         linkFlowRate[30] = 0;
  395.         linkFlowRate[31] = 0;
  396.         linkFlowRate[32] = 0;
  397.         linkFlowRate[33] = 0;
  398.         linkFlowRate[34] = 0;
  399.         linkFlowRate[35] = 159.242508;
  400.         linkFlowRate[36] = 0;
  401.         linkFlowRate[37] = 0;
  402.         linkFlowRate[38] = 0;
  403.         linkFlowRate[39] = 0;
  404.         linkFlowRate[40] = 0;
  405.         linkFlowRate[41] = 0;
  406.         linkFlowRate[42] = 159.242508;
  407.         linkFlowRate[43] = 159.242508;
  408.         linkFlowRate[44] = 0;
  409.         linkFlowRate[45] = 0;
  410.         linkFlowRate[46] = 0;
  411.         linkFlowRate[47] = 0;
  412.        
  413.         float[] alinkFlowRate = new float[19];
  414.         scheme.alinkFlowRate = alinkFlowRate;
  415.         alinkFlowRate[0] = 0;
  416.         alinkFlowRate[1] = 0;
  417.         alinkFlowRate[2] = 0;
  418.         alinkFlowRate[3] = 0;
  419.         alinkFlowRate[4] = 0;
  420.         alinkFlowRate[5] = 0;
  421.         alinkFlowRate[6] = 0;
  422.         alinkFlowRate[7] = 0;
  423.         alinkFlowRate[8] = 0;
  424.         alinkFlowRate[9] = 0;
  425.         alinkFlowRate[10] = 0;
  426.         alinkFlowRate[11] = 0;
  427.         alinkFlowRate[12] = 0;
  428.         alinkFlowRate[13] = 6.780545;
  429.         alinkFlowRate[14] = 0;
  430.         alinkFlowRate[15] = 0;
  431.         alinkFlowRate[16] = 401.2157;
  432.         alinkFlowRate[17] = 0;
  433.         alinkFlowRate[18] = 0;
  434.        
  435.         SPAirObject[] objects = new SPAirObject[23];
  436.         scheme.objects = objects;
  437.         objects[0] = new SPAO_LimitValve();
  438.         objects[1] = new SPAO_EPK150();
  439.         objects[2] = new SPAO_BU367();
  440.         objects[3] = new SPAO_KM395();
  441.         objects[4] = new SPAO_KVT254();
  442.         objects[5] = new SPAO_BackValve();
  443.         objects[6] = new SPAO_Reductor();
  444.         objects[7] = new SPAO_BackValve();
  445.         objects[8] = new SPAO_BackValve();
  446.         objects[9] = new SPAO_VR292();
  447.         objects[10] = new SPAO_EVR305();
  448.         objects[11] = new SPAO_SwitchValve();
  449.         objects[12] = new SPAO_SwitchValve();
  450.         objects[13] = new SPAO_SwitchValve();
  451.         objects[14] = new SPAO_Reductor();
  452.         objects[15] = new SPAO_Relay();
  453.         objects[16] = new SPAO_VariableBrakeCylinder();
  454.         objects[17] = new SPAO_VariableBrakeCylinder();
  455.         objects[18] = new SPAO_VariableBrakeCylinder();
  456.         objects[19] = new SPAO_Relay();
  457.         objects[20] = new SPAO_VariableBrakeCylinder();
  458.         objects[21] = new SPAO_VariableBrakeCylinder();
  459.         objects[22] = new SPAO_VariableBrakeCylinder();
  460.         return scheme;
  461.     }
  462.    
  463.     public SPAirScheme CreateInstance(SPVehicle owner)
  464.     {
  465.         SPAirScheme ret = CreateInstanceInternal(owner);
  466.         return ret;
  467.     }
  468.    
  469.     void InitInstanceInternal(tep70airscheme_instance scheme)
  470.     {
  471.         SPAirObject[] objects = scheme.objects;
  472.         SetCurrentObjectName("kp3");
  473.         objects[0].Init(scheme);
  474.         SetCurrentObjectName("epka_1");
  475.         objects[1].Init(scheme);
  476.         SetCurrentObjectName("ubt_1");
  477.         objects[2].Init(scheme);
  478.         SetCurrentObjectName("k395_1");
  479.         objects[3].Init(scheme);
  480.         SetCurrentObjectName("k254_1");
  481.         objects[4].Init(scheme);
  482.         SetCurrentObjectName("ko3");
  483.         objects[5].Init(scheme);
  484.         SetCurrentObjectName("red1");
  485.         objects[6].Init(scheme);
  486.         SetCurrentObjectName("ko2");
  487.         objects[7].Init(scheme);
  488.         SetCurrentObjectName("ko4");
  489.         objects[8].Init(scheme);
  490.         SetCurrentObjectName("vr");
  491.         objects[9].Init(scheme);
  492.         SetCurrentObjectName("evr");
  493.         objects[10].Init(scheme);
  494.         SetCurrentObjectName("k3");
  495.         objects[11].Init(scheme);
  496.         SetCurrentObjectName("k4");
  497.         objects[12].Init(scheme);
  498.         SetCurrentObjectName("k5");
  499.         objects[13].Init(scheme);
  500.         SetCurrentObjectName("red3");
  501.         objects[14].Init(scheme);
  502.         SetCurrentObjectName("rd2");
  503.         objects[15].Init(scheme);
  504.         SetCurrentObjectName("tc_4_10");
  505.         objects[16].Init(scheme);
  506.         SetCurrentObjectName("tc_5_11");
  507.         objects[17].Init(scheme);
  508.         SetCurrentObjectName("tc_6_12");
  509.         objects[18].Init(scheme);
  510.         SetCurrentObjectName("rd1");
  511.         objects[19].Init(scheme);
  512.         SetCurrentObjectName("tc_3_9");
  513.         objects[20].Init(scheme);
  514.         SetCurrentObjectName("tc_2_8");
  515.         objects[21].Init(scheme);
  516.         SetCurrentObjectName("tc_1_7");
  517.         objects[22].Init(scheme);
  518.         ResetCurrentObjectName();
  519.        
  520.     }
  521.    
  522.     define float minimumPressureDelta = 1.0f;
  523.    
  524.     public void InitInstance(SPAirScheme scheme)
  525.     {
  526.         tep70airscheme_instance myScheme = cast<tep70airscheme_instance> scheme;
  527.         if (!myScheme) {
  528.             Exception("InitInstance: invalid scheme");
  529.             return;
  530.         }
  531.         InitInstanceInternal(myScheme);
  532.  
  533.         Soup initialState = GetSchemeState("initial");
  534.         if (initialState) {
  535.             Soup initialProperties = initialState.GetNamedSoup("properties");
  536.             scheme.SetProperties(initialProperties);
  537.         }
  538.        
  539.     }
  540.    
  541.     public void UpdateInstance(tep70airscheme_instance scheme, float dt)
  542.     {
  543.         allowIdQuery = false;
  544.         SPAirObject[] objects = scheme.objects;
  545.         objects[0].Update(dt);
  546.         objects[1].Update(dt);
  547.         objects[2].Update(dt);
  548.         objects[3].Update(dt);
  549.         objects[4].Update(dt);
  550.         objects[5].Update(dt);
  551.         objects[6].Update(dt);
  552.         objects[7].Update(dt);
  553.         objects[8].Update(dt);
  554.         objects[9].Update(dt);
  555.         objects[10].Update(dt);
  556.         objects[11].Update(dt);
  557.         objects[12].Update(dt);
  558.         objects[13].Update(dt);
  559.         objects[14].Update(dt);
  560.         objects[15].Update(dt);
  561.         objects[16].Update(dt);
  562.         objects[17].Update(dt);
  563.         objects[18].Update(dt);
  564.         objects[19].Update(dt);
  565.         objects[20].Update(dt);
  566.         objects[21].Update(dt);
  567.         objects[22].Update(dt);
  568.         allowIdQuery = true;
  569.        
  570.         float[] nodePressure = scheme.nodePressure;
  571.         float[] nodeVolume = scheme.nodeVolume;
  572.         float[] linkFlowRate = scheme.linkFlowRate;
  573.         float[] alinkFlowRate = scheme.alinkFlowRate;
  574.         float[] b = nodePressure;
  575.        
  576.         float pressure, volume, delta;
  577.         _a00_00 = nodeVolume[0];
  578.         _a01_01 = nodeVolume[1];
  579.         pressure = nodePressure[2]; volume = nodeVolume[2]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  580.         _a02_02 = volume + (Math.Sqrt(pressure) / pressure * dt) * (0.8124618);
  581.         pressure = nodePressure[3]; volume = nodeVolume[3]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  582.         _a03_03 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[0]);
  583.         _a04_04 = nodeVolume[4];
  584.         _a05_05 = nodeVolume[5];
  585.         _a06_06 = nodeVolume[6];
  586.         pressure = nodePressure[7]; volume = nodeVolume[7]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  587.         _a07_07 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[1]);
  588.         pressure = nodePressure[8]; volume = nodeVolume[8]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  589.         _a08_08 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[2]);
  590.         _a09_09 = nodeVolume[9];
  591.         _a10_10 = nodeVolume[10];
  592.         pressure = nodePressure[11]; volume = nodeVolume[11]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  593.         _a11_11 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[3]);
  594.         _a12_12 = nodeVolume[12];
  595.         pressure = nodePressure[13]; volume = nodeVolume[13]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  596.         _a13_13 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[4]);
  597.         _a14_14 = nodeVolume[14];
  598.         pressure = nodePressure[15]; volume = nodeVolume[15]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  599.         _a15_15 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[5]);
  600.         _a16_16 = nodeVolume[16];
  601.         _a17_17 = nodeVolume[17];
  602.         pressure = nodePressure[18]; volume = nodeVolume[18]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  603.         _a18_18 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[6]);
  604.         _a19_19 = nodeVolume[19];
  605.         _a20_20 = nodeVolume[20];
  606.         _a21_21 = nodeVolume[21];
  607.         _a22_22 = nodeVolume[22];
  608.         _a23_23 = nodeVolume[23];
  609.         _a24_24 = nodeVolume[24];
  610.         _a25_25 = nodeVolume[25];
  611.         _a26_26 = nodeVolume[26];
  612.         _a27_27 = nodeVolume[27];
  613.         pressure = nodePressure[28]; volume = nodeVolume[28]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  614.         _a28_28 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[7]);
  615.         pressure = nodePressure[29]; volume = nodeVolume[29]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  616.         _a29_29 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[8]);
  617.         _a30_30 = nodeVolume[30];
  618.         _a31_31 = nodeVolume[31];
  619.         pressure = nodePressure[32]; volume = nodeVolume[32]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  620.         _a32_32 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[9]);
  621.         _a33_33 = nodeVolume[33];
  622.         _a34_34 = nodeVolume[34];
  623.         pressure = nodePressure[35]; volume = nodeVolume[35]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  624.         _a35_35 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[10] + alinkFlowRate[11]);
  625.         _a36_36 = nodeVolume[36];
  626.         _a37_37 = nodeVolume[37];
  627.         _a38_38 = nodeVolume[38];
  628.         _a39_39 = nodeVolume[39];
  629.         pressure = nodePressure[40]; volume = nodeVolume[40]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  630.         _a40_40 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[12] + alinkFlowRate[13]);
  631.         pressure = nodePressure[41]; volume = nodeVolume[41]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  632.         _a41_41 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[14]);
  633.         pressure = nodePressure[42]; volume = nodeVolume[42]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  634.         _a42_42 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[15]);
  635.         _a43_43 = nodeVolume[43];
  636.         _a44_44 = nodeVolume[44];
  637.         _a45_45 = nodeVolume[45];
  638.         _a46_46 = nodeVolume[46];
  639.         _a47_47 = nodeVolume[47];
  640.         pressure = nodePressure[48]; volume = nodeVolume[48]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  641.         _a48_48 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[16]);
  642.         _a49_49 = nodeVolume[49];
  643.         _a50_50 = nodeVolume[50];
  644.         pressure = nodePressure[51]; volume = nodeVolume[51]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  645.         _a51_51 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[17]);
  646.         _a52_52 = nodeVolume[52];
  647.         _a53_53 = nodeVolume[53];
  648.         _a54_54 = nodeVolume[54];
  649.         _a55_55 = nodeVolume[55];
  650.         _a56_56 = nodeVolume[56];
  651.         _a57_57 = nodeVolume[57];
  652.         _a58_58 = nodeVolume[58];
  653.         _a59_59 = nodeVolume[59];
  654.         _a60_60 = nodeVolume[60];
  655.         _a61_61 = nodeVolume[61];
  656.         _a62_62 = nodeVolume[62];
  657.         _a63_63 = nodeVolume[63];
  658.         _a64_64 = nodeVolume[64];
  659.         _a65_65 = nodeVolume[65];
  660.         _a66_66 = nodeVolume[66];
  661.         _a67_67 = nodeVolume[67];
  662.         _a68_68 = nodeVolume[68];
  663.         _a69_69 = nodeVolume[69];
  664.         _a70_70 = nodeVolume[70];
  665.         _a71_71 = nodeVolume[71];
  666.         pressure = nodePressure[72]; volume = nodeVolume[72]; if(pressure < minimumPressureDelta) pressure = minimumPressureDelta;
  667.         _a72_72 = volume + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[18]);
  668.         _a73_73 = nodeVolume[73];
  669.         _a74_74 = nodeVolume[74];
  670.         _a75_75 = nodeVolume[75];
  671.         _a76_76 = nodeVolume[76];
  672.         _a77_77 = nodeVolume[77];
  673.         _a78_78 = nodeVolume[78];
  674.         _a79_79 = nodeVolume[79];
  675.         _a80_80 = nodeVolume[80];
  676.         _a81_81 = nodeVolume[81];
  677.        
  678.         float flow;
  679.         delta = nodePressure[0] - nodePressure[11];
  680.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  681.         flow = Math.Sqrt(delta) / delta * dt * (2.56778049);
  682.         _a11_11 = _a11_11 + flow; _a00_11 = -flow; _a00_00 = _a00_00 + flow;
  683.         delta = nodePressure[11] - nodePressure[1];
  684.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  685.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[0]);
  686.         _a01_01 = _a01_01 + flow; _a01_11 = -flow; _a11_11 = _a11_11 + flow;
  687.         delta = nodePressure[2] - nodePressure[28];
  688.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  689.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[10]);
  690.         _a28_28 = _a28_28 + flow; _a02_28 = -flow; _a02_02 = _a02_02 + flow;
  691.         delta = nodePressure[3] - nodePressure[29];
  692.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  693.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[11]);
  694.         _a29_29 = _a29_29 + flow; _a03_29 = -flow; _a03_03 = _a03_03 + flow;
  695.         delta = nodePressure[4] - nodePressure[13];
  696.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  697.         flow = Math.Sqrt(delta) / delta * dt * (16.0486279);
  698.         _a13_13 = _a13_13 + flow; _a04_13 = -flow; _a04_04 = _a04_04 + flow;
  699.         delta = nodePressure[5] - nodePressure[14];
  700.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  701.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  702.         _a14_14 = _a14_14 + flow; _a05_14 = -flow; _a05_05 = _a05_05 + flow;
  703.         delta = nodePressure[6] - nodePressure[39];
  704.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  705.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[20]);
  706.         _a39_39 = _a39_39 + flow; _a06_39 = -flow; _a06_06 = _a06_06 + flow;
  707.         delta = nodePressure[81] - nodePressure[6];
  708.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  709.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[1]);
  710.         _a06_06 = _a06_06 + flow; _a06_81 = -flow; _a81_81 = _a81_81 + flow;
  711.         delta = nodePressure[7] - nodePressure[24];
  712.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  713.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[7]);
  714.         _a24_24 = _a24_24 + flow; _a07_24 = -flow; _a07_07 = _a07_07 + flow;
  715.         delta = nodePressure[8] - nodePressure[23];
  716.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  717.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  718.         _a23_23 = _a23_23 + flow; _a08_23 = -flow; _a08_08 = _a08_08 + flow;
  719.         delta = nodePressure[9] - nodePressure[29];
  720.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  721.         flow = Math.Sqrt(delta) / delta * dt * (678.054565);
  722.         _a29_29 = _a29_29 + flow; _a09_29 = -flow; _a09_09 = _a09_09 + flow;
  723.         delta = nodePressure[20] - nodePressure[10];
  724.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  725.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  726.         _a10_10 = _a10_10 + flow; _a10_20 = -flow; _a20_20 = _a20_20 + flow;
  727.         delta = nodePressure[80] - nodePressure[10];
  728.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  729.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  730.         _a10_10 = _a10_10 + flow; _a10_80 = -flow; _a80_80 = _a80_80 + flow;
  731.         delta = nodePressure[28] - nodePressure[12];
  732.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  733.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[2] + linkFlowRate[3]);
  734.         _a12_12 = _a12_12 + flow; _a12_28 = -flow; _a28_28 = _a28_28 + flow;
  735.         delta = nodePressure[12] - nodePressure[35];
  736.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  737.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[17] + linkFlowRate[18]);
  738.         _a35_35 = _a35_35 + flow; _a12_35 = -flow; _a12_12 = _a12_12 + flow;
  739.         delta = nodePressure[13] - nodePressure[25];
  740.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  741.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[9]);
  742.         _a25_25 = _a25_25 + flow; _a13_25 = -flow; _a13_13 = _a13_13 + flow;
  743.         delta = nodePressure[14] - nodePressure[26];
  744.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  745.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  746.         _a26_26 = _a26_26 + flow; _a14_26 = -flow; _a14_14 = _a14_14 + flow;
  747.         delta = nodePressure[15] - nodePressure[30];
  748.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  749.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[13]);
  750.         _a30_30 = _a30_30 + flow; _a15_30 = -flow; _a15_15 = _a15_15 + flow;
  751.         delta = nodePressure[34] - nodePressure[15];
  752.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  753.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  754.         _a15_15 = _a15_15 + flow; _a15_34 = -flow; _a34_34 = _a34_34 + flow;
  755.         delta = nodePressure[16] - nodePressure[31];
  756.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  757.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[14]);
  758.         _a31_31 = _a31_31 + flow; _a16_31 = -flow; _a16_16 = _a16_16 + flow;
  759.         delta = nodePressure[36] - nodePressure[16];
  760.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  761.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  762.         _a16_16 = _a16_16 + flow; _a16_36 = -flow; _a36_36 = _a36_36 + flow;
  763.         delta = nodePressure[17] - nodePressure[38];
  764.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  765.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[19]);
  766.         _a38_38 = _a38_38 + flow; _a17_38 = -flow; _a17_17 = _a17_17 + flow;
  767.         delta = nodePressure[39] - nodePressure[17];
  768.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  769.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  770.         _a17_17 = _a17_17 + flow; _a17_39 = -flow; _a39_39 = _a39_39 + flow;
  771.         delta = nodePressure[18] - nodePressure[27];
  772.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  773.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  774.         _a27_27 = _a27_27 + flow; _a18_27 = -flow; _a18_18 = _a18_18 + flow;
  775.         delta = nodePressure[18] - nodePressure[33];
  776.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  777.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[16]);
  778.         _a33_33 = _a33_33 + flow; _a18_33 = -flow; _a18_18 = _a18_18 + flow;
  779.         delta = nodePressure[19] - nodePressure[32];
  780.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  781.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[15]);
  782.         _a32_32 = _a32_32 + flow; _a19_32 = -flow; _a19_19 = _a19_19 + flow;
  783.         delta = nodePressure[35] - nodePressure[19];
  784.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  785.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  786.         _a19_19 = _a19_19 + flow; _a19_35 = -flow; _a35_35 = _a35_35 + flow;
  787.         delta = nodePressure[27] - nodePressure[20];
  788.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  789.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[4]);
  790.         _a20_20 = _a20_20 + flow; _a20_27 = -flow; _a27_27 = _a27_27 + flow;
  791.         delta = nodePressure[37] - nodePressure[21];
  792.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  793.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[5]);
  794.         _a21_21 = _a21_21 + flow; _a21_37 = -flow; _a37_37 = _a37_37 + flow;
  795.         delta = nodePressure[21] - nodePressure[39];
  796.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  797.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  798.         _a39_39 = _a39_39 + flow; _a21_39 = -flow; _a21_21 = _a21_21 + flow;
  799.         delta = nodePressure[22] - nodePressure[23];
  800.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  801.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[6]);
  802.         _a23_23 = _a23_23 + flow; _a22_23 = -flow; _a22_22 = _a22_22 + flow;
  803.         delta = nodePressure[39] - nodePressure[22];
  804.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  805.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  806.         _a22_22 = _a22_22 + flow; _a22_39 = -flow; _a39_39 = _a39_39 + flow;
  807.         delta = nodePressure[32] - nodePressure[24];
  808.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  809.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  810.         _a24_24 = _a24_24 + flow; _a24_32 = -flow; _a32_32 = _a32_32 + flow;
  811.         delta = nodePressure[38] - nodePressure[24];
  812.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  813.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[8]);
  814.         _a24_24 = _a24_24 + flow; _a24_38 = -flow; _a38_38 = _a38_38 + flow;
  815.         delta = nodePressure[25] - nodePressure[39];
  816.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  817.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[21]);
  818.         _a39_39 = _a39_39 + flow; _a25_39 = -flow; _a25_25 = _a25_25 + flow;
  819.         delta = nodePressure[26] - nodePressure[34];
  820.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  821.         flow = Math.Sqrt(delta) / delta * dt * (100.303925);
  822.         _a34_34 = _a34_34 + flow; _a26_34 = -flow; _a26_26 = _a26_26 + flow;
  823.         delta = nodePressure[28] - nodePressure[29];
  824.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  825.         flow = Math.Sqrt(delta) / delta * dt * (10.271122);
  826.         _a29_29 = _a29_29 + flow; _a28_29 = -flow; _a28_28 = _a28_28 + flow;
  827.         delta = nodePressure[35] - nodePressure[29];
  828.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  829.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[12]);
  830.         _a29_29 = _a29_29 + flow; _a29_35 = -flow; _a35_35 = _a35_35 + flow;
  831.         delta = nodePressure[36] - nodePressure[30];
  832.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  833.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  834.         _a30_30 = _a30_30 + flow; _a30_36 = -flow; _a36_36 = _a36_36 + flow;
  835.         delta = nodePressure[31] - nodePressure[39];
  836.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  837.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[22]);
  838.         _a39_39 = _a39_39 + flow; _a31_39 = -flow; _a31_31 = _a31_31 + flow;
  839.         delta = nodePressure[33] - nodePressure[37];
  840.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  841.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  842.         _a37_37 = _a37_37 + flow; _a33_37 = -flow; _a33_33 = _a33_33 + flow;
  843.         delta = nodePressure[35] - nodePressure[37];
  844.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  845.         flow = Math.Sqrt(delta) / delta * dt * (2311.00244);
  846.         _a37_37 = _a37_37 + flow; _a35_37 = -flow; _a35_35 = _a35_35 + flow;
  847.         delta = nodePressure[40] - nodePressure[74];
  848.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  849.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[38]);
  850.         _a74_74 = _a74_74 + flow; _a40_74 = -flow; _a40_40 = _a40_40 + flow;
  851.         delta = nodePressure[41] - nodePressure[64];
  852.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  853.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[31]);
  854.         _a64_64 = _a64_64 + flow; _a41_64 = -flow; _a41_41 = _a41_41 + flow;
  855.         delta = nodePressure[64] - nodePressure[42];
  856.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  857.         flow = Math.Sqrt(delta) / delta * dt * (196.595688);
  858.         _a42_42 = _a42_42 + flow; _a42_64 = -flow; _a64_64 = _a64_64 + flow;
  859.         delta = nodePressure[43] - nodePressure[50];
  860.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  861.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  862.         _a50_50 = _a50_50 + flow; _a43_50 = -flow; _a43_43 = _a43_43 + flow;
  863.         delta = nodePressure[62] - nodePressure[44];
  864.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  865.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  866.         _a44_44 = _a44_44 + flow; _a44_62 = -flow; _a62_62 = _a62_62 + flow;
  867.         delta = nodePressure[62] - nodePressure[45];
  868.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  869.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  870.         _a45_45 = _a45_45 + flow; _a45_62 = -flow; _a62_62 = _a62_62 + flow;
  871.         delta = nodePressure[60] - nodePressure[46];
  872.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  873.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[23]);
  874.         _a46_46 = _a46_46 + flow; _a46_60 = -flow; _a60_60 = _a60_60 + flow;
  875.         delta = nodePressure[46] - nodePressure[81];
  876.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  877.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  878.         _a81_81 = _a81_81 + flow; _a46_81 = -flow; _a46_46 = _a46_46 + flow;
  879.         delta = nodePressure[61] - nodePressure[47];
  880.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  881.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  882.         _a47_47 = _a47_47 + flow; _a47_61 = -flow; _a61_61 = _a61_61 + flow;
  883.         delta = nodePressure[48] - nodePressure[74];
  884.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  885.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[39]);
  886.         _a74_74 = _a74_74 + flow; _a48_74 = -flow; _a48_48 = _a48_48 + flow;
  887.         delta = nodePressure[48] - nodePressure[77];
  888.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  889.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[44]);
  890.         _a77_77 = _a77_77 + flow; _a48_77 = -flow; _a48_48 = _a48_48 + flow;
  891.         delta = nodePressure[49] - nodePressure[64];
  892.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  893.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[32]);
  894.         _a64_64 = _a64_64 + flow; _a49_64 = -flow; _a49_49 = _a49_49 + flow;
  895.         delta = nodePressure[72] - nodePressure[49];
  896.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  897.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[24]);
  898.         _a49_49 = _a49_49 + flow; _a49_72 = -flow; _a72_72 = _a72_72 + flow;
  899.         delta = nodePressure[50] - nodePressure[63];
  900.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  901.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  902.         _a63_63 = _a63_63 + flow; _a50_63 = -flow; _a50_50 = _a50_50 + flow;
  903.         delta = nodePressure[51] - nodePressure[65];
  904.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  905.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[34]);
  906.         _a65_65 = _a65_65 + flow; _a51_65 = -flow; _a51_51 = _a51_51 + flow;
  907.         delta = nodePressure[71] - nodePressure[51];
  908.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  909.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  910.         _a51_51 = _a51_51 + flow; _a51_71 = -flow; _a71_71 = _a71_71 + flow;
  911.         delta = nodePressure[52] - nodePressure[73];
  912.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  913.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  914.         _a73_73 = _a73_73 + flow; _a52_73 = -flow; _a52_52 = _a52_52 + flow;
  915.         delta = nodePressure[78] - nodePressure[52];
  916.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  917.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[25]);
  918.         _a52_52 = _a52_52 + flow; _a52_78 = -flow; _a78_78 = _a78_78 + flow;
  919.         delta = nodePressure[53] - nodePressure[66];
  920.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  921.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[35]);
  922.         _a66_66 = _a66_66 + flow; _a53_66 = -flow; _a53_53 = _a53_53 + flow;
  923.         delta = nodePressure[73] - nodePressure[53];
  924.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  925.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[26]);
  926.         _a53_53 = _a53_53 + flow; _a53_73 = -flow; _a73_73 = _a73_73 + flow;
  927.         delta = nodePressure[54] - nodePressure[67];
  928.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  929.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[36]);
  930.         _a67_67 = _a67_67 + flow; _a54_67 = -flow; _a54_54 = _a54_54 + flow;
  931.         delta = nodePressure[79] - nodePressure[54];
  932.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  933.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[27]);
  934.         _a54_54 = _a54_54 + flow; _a54_79 = -flow; _a79_79 = _a79_79 + flow;
  935.         delta = nodePressure[55] - nodePressure[68];
  936.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  937.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  938.         _a68_68 = _a68_68 + flow; _a55_68 = -flow; _a55_55 = _a55_55 + flow;
  939.         delta = nodePressure[79] - nodePressure[55];
  940.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  941.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[28]);
  942.         _a55_55 = _a55_55 + flow; _a55_79 = -flow; _a79_79 = _a79_79 + flow;
  943.         delta = nodePressure[56] - nodePressure[69];
  944.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  945.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[37]);
  946.         _a69_69 = _a69_69 + flow; _a56_69 = -flow; _a56_56 = _a56_56 + flow;
  947.         delta = nodePressure[78] - nodePressure[56];
  948.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  949.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[29]);
  950.         _a56_56 = _a56_56 + flow; _a56_78 = -flow; _a78_78 = _a78_78 + flow;
  951.         delta = nodePressure[69] - nodePressure[57];
  952.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  953.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[30]);
  954.         _a57_57 = _a57_57 + flow; _a57_69 = -flow; _a69_69 = _a69_69 + flow;
  955.         delta = nodePressure[57] - nodePressure[76];
  956.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  957.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[42]);
  958.         _a76_76 = _a76_76 + flow; _a57_76 = -flow; _a57_57 = _a57_57 + flow;
  959.         delta = nodePressure[58] - nodePressure[70];
  960.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  961.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  962.         _a70_70 = _a70_70 + flow; _a58_70 = -flow; _a58_58 = _a58_58 + flow;
  963.         delta = nodePressure[58] - nodePressure[75];
  964.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  965.         flow = Math.Sqrt(delta) / delta * dt * (324.9847);
  966.         _a75_75 = _a75_75 + flow; _a58_75 = -flow; _a58_58 = _a58_58 + flow;
  967.         delta = nodePressure[59] - nodePressure[72];
  968.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  969.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  970.         _a72_72 = _a72_72 + flow; _a59_72 = -flow; _a59_59 = _a59_59 + flow;
  971.         delta = nodePressure[59] - nodePressure[77];
  972.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  973.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[45]);
  974.         _a77_77 = _a77_77 + flow; _a59_77 = -flow; _a59_59 = _a59_59 + flow;
  975.         delta = nodePressure[76] - nodePressure[60];
  976.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  977.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  978.         _a60_60 = _a60_60 + flow; _a60_76 = -flow; _a76_76 = _a76_76 + flow;
  979.         delta = nodePressure[70] - nodePressure[61];
  980.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  981.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  982.         _a61_61 = _a61_61 + flow; _a61_70 = -flow; _a70_70 = _a70_70 + flow;
  983.         delta = nodePressure[74] - nodePressure[61];
  984.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  985.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  986.         _a61_61 = _a61_61 + flow; _a61_74 = -flow; _a74_74 = _a74_74 + flow;
  987.         delta = nodePressure[62] - nodePressure[78];
  988.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  989.         flow = Math.Sqrt(delta) / delta * dt * (159.242508);
  990.         _a78_78 = _a78_78 + flow; _a62_78 = -flow; _a62_62 = _a62_62 + flow;
  991.         delta = nodePressure[63] - nodePressure[71];
  992.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  993.         flow = Math.Sqrt(delta) / delta * dt * (100.303925);
  994.         _a71_71 = _a71_71 + flow; _a63_71 = -flow; _a63_63 = _a63_63 + flow;
  995.         delta = nodePressure[75] - nodePressure[64];
  996.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  997.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[33]);
  998.         _a64_64 = _a64_64 + flow; _a64_75 = -flow; _a75_75 = _a75_75 + flow;
  999.         delta = nodePressure[76] - nodePressure[65];
  1000.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1001.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  1002.         _a65_65 = _a65_65 + flow; _a65_76 = -flow; _a76_76 = _a76_76 + flow;
  1003.         delta = nodePressure[66] - nodePressure[79];
  1004.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1005.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[46]);
  1006.         _a79_79 = _a79_79 + flow; _a66_79 = -flow; _a66_66 = _a66_66 + flow;
  1007.         delta = nodePressure[67] - nodePressure[76];
  1008.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1009.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[43]);
  1010.         _a76_76 = _a76_76 + flow; _a67_76 = -flow; _a67_67 = _a67_67 + flow;
  1011.         delta = nodePressure[68] - nodePressure[77];
  1012.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1013.         flow = Math.Sqrt(delta) / delta * dt * (1448.38867);
  1014.         _a77_77 = _a77_77 + flow; _a68_77 = -flow; _a68_68 = _a68_68 + flow;
  1015.         delta = nodePressure[72] - nodePressure[75];
  1016.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1017.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[40] + linkFlowRate[41]);
  1018.         _a75_75 = _a75_75 + flow; _a72_75 = -flow; _a72_72 = _a72_72 + flow;
  1019.         delta = nodePressure[73] - nodePressure[80];
  1020.         if (delta < 0.0f) delta = -delta; if (delta < minimumPressureDelta) delta = minimumPressureDelta;
  1021.         flow = Math.Sqrt(delta) / delta * dt * (linkFlowRate[47]);
  1022.         _a80_80 = _a80_80 + flow; _a73_80 = -flow; _a73_73 = _a73_73 + flow;
  1023.        
  1024.         b[0] = nodePressure[0] * nodeVolume[0];
  1025.         b[1] = nodePressure[1] * nodeVolume[1];
  1026.         b[2] = nodePressure[2] * nodeVolume[2];
  1027.         b[3] = nodePressure[3] * nodeVolume[3];
  1028.         b[4] = nodePressure[4] * nodeVolume[4];
  1029.         b[5] = nodePressure[5] * nodeVolume[5];
  1030.         b[6] = nodePressure[6] * nodeVolume[6];
  1031.         b[7] = nodePressure[7] * nodeVolume[7];
  1032.         b[8] = nodePressure[8] * nodeVolume[8];
  1033.         b[9] = nodePressure[9] * nodeVolume[9];
  1034.         b[10] = nodePressure[10] * nodeVolume[10];
  1035.         b[11] = nodePressure[11] * nodeVolume[11];
  1036.         b[12] = nodePressure[12] * nodeVolume[12];
  1037.         b[13] = nodePressure[13] * nodeVolume[13];
  1038.         b[14] = nodePressure[14] * nodeVolume[14];
  1039.         b[15] = nodePressure[15] * nodeVolume[15];
  1040.         b[16] = nodePressure[16] * nodeVolume[16];
  1041.         b[17] = nodePressure[17] * nodeVolume[17];
  1042.         b[18] = nodePressure[18] * nodeVolume[18];
  1043.         b[19] = nodePressure[19] * nodeVolume[19];
  1044.         b[20] = nodePressure[20] * nodeVolume[20];
  1045.         b[21] = nodePressure[21] * nodeVolume[21];
  1046.         b[22] = nodePressure[22] * nodeVolume[22];
  1047.         b[23] = nodePressure[23] * nodeVolume[23];
  1048.         b[24] = nodePressure[24] * nodeVolume[24];
  1049.         b[25] = nodePressure[25] * nodeVolume[25];
  1050.         b[26] = nodePressure[26] * nodeVolume[26];
  1051.         b[27] = nodePressure[27] * nodeVolume[27];
  1052.         b[28] = nodePressure[28] * nodeVolume[28];
  1053.         b[29] = nodePressure[29] * nodeVolume[29];
  1054.         b[30] = nodePressure[30] * nodeVolume[30];
  1055.         b[31] = nodePressure[31] * nodeVolume[31];
  1056.         b[32] = nodePressure[32] * nodeVolume[32];
  1057.         b[33] = nodePressure[33] * nodeVolume[33];
  1058.         b[34] = nodePressure[34] * nodeVolume[34];
  1059.         b[35] = nodePressure[35] * nodeVolume[35];
  1060.         b[36] = nodePressure[36] * nodeVolume[36];
  1061.         b[37] = nodePressure[37] * nodeVolume[37];
  1062.         b[38] = nodePressure[38] * nodeVolume[38];
  1063.         b[39] = nodePressure[39] * nodeVolume[39];
  1064.         b[40] = nodePressure[40] * nodeVolume[40];
  1065.         b[41] = nodePressure[41] * nodeVolume[41];
  1066.         b[42] = nodePressure[42] * nodeVolume[42];
  1067.         b[43] = nodePressure[43] * nodeVolume[43];
  1068.         b[44] = nodePressure[44] * nodeVolume[44];
  1069.         b[45] = nodePressure[45] * nodeVolume[45];
  1070.         b[46] = nodePressure[46] * nodeVolume[46];
  1071.         b[47] = nodePressure[47] * nodeVolume[47];
  1072.         b[48] = nodePressure[48] * nodeVolume[48];
  1073.         b[49] = nodePressure[49] * nodeVolume[49];
  1074.         b[50] = nodePressure[50] * nodeVolume[50];
  1075.         b[51] = nodePressure[51] * nodeVolume[51];
  1076.         b[52] = nodePressure[52] * nodeVolume[52];
  1077.         b[53] = nodePressure[53] * nodeVolume[53];
  1078.         b[54] = nodePressure[54] * nodeVolume[54];
  1079.         b[55] = nodePressure[55] * nodeVolume[55];
  1080.         b[56] = nodePressure[56] * nodeVolume[56];
  1081.         b[57] = nodePressure[57] * nodeVolume[57];
  1082.         b[58] = nodePressure[58] * nodeVolume[58];
  1083.         b[59] = nodePressure[59] * nodeVolume[59];
  1084.         b[60] = nodePressure[60] * nodeVolume[60];
  1085.         b[61] = nodePressure[61] * nodeVolume[61];
  1086.         b[62] = nodePressure[62] * nodeVolume[62];
  1087.         b[63] = nodePressure[63] * nodeVolume[63];
  1088.         b[64] = nodePressure[64] * nodeVolume[64];
  1089.         b[65] = nodePressure[65] * nodeVolume[65];
  1090.         b[66] = nodePressure[66] * nodeVolume[66];
  1091.         b[67] = nodePressure[67] * nodeVolume[67];
  1092.         b[68] = nodePressure[68] * nodeVolume[68];
  1093.         b[69] = nodePressure[69] * nodeVolume[69];
  1094.         b[70] = nodePressure[70] * nodeVolume[70];
  1095.         b[71] = nodePressure[71] * nodeVolume[71];
  1096.         b[72] = nodePressure[72] * nodeVolume[72];
  1097.         b[73] = nodePressure[73] * nodeVolume[73];
  1098.         b[74] = nodePressure[74] * nodeVolume[74];
  1099.         b[75] = nodePressure[75] * nodeVolume[75];
  1100.         b[76] = nodePressure[76] * nodeVolume[76];
  1101.         b[77] = nodePressure[77] * nodeVolume[77];
  1102.         b[78] = nodePressure[78] * nodeVolume[78];
  1103.         b[79] = nodePressure[79] * nodeVolume[79];
  1104.         b[80] = nodePressure[80] * nodeVolume[80];
  1105.         b[81] = nodePressure[81] * nodeVolume[81];
  1106.        
  1107.         float basePiv, m;
  1108.         m = _a00_11 / _a00_00; // eliminating 00 current 11
  1109.         _a11_11 = _a11_11 - _a00_11 * m;
  1110.         b[11] = b[11] - b[0] * m;
  1111.         m = _a01_11 / _a01_01; // eliminating 01 current 11
  1112.         _a11_11 = _a11_11 - _a01_11 * m;
  1113.         b[11] = b[11] - b[1] * m;
  1114.         m = _a02_28 / _a02_02; // eliminating 02 current 28
  1115.         _a28_28 = _a28_28 - _a02_28 * m;
  1116.         b[28] = b[28] - b[2] * m;
  1117.         m = _a03_29 / _a03_03; // eliminating 03 current 29
  1118.         _a29_29 = _a29_29 - _a03_29 * m;
  1119.         b[29] = b[29] - b[3] * m;
  1120.         m = _a04_13 / _a04_04; // eliminating 04 current 13
  1121.         _a13_13 = _a13_13 - _a04_13 * m;
  1122.         b[13] = b[13] - b[4] * m;
  1123.         m = _a05_14 / _a05_05; // eliminating 05 current 14
  1124.         _a14_14 = _a14_14 - _a05_14 * m;
  1125.         b[14] = b[14] - b[5] * m;
  1126.         basePiv = _a06_06;
  1127.         m = _a06_39 / basePiv; // eliminating 06 current 39
  1128.         _a39_39 = _a39_39 - _a06_39 * m;
  1129.         _a39_81 = -_a06_81 * m;
  1130.         b[39] = b[39] - b[6] * m;
  1131.         m = _a06_81 / basePiv; // eliminating 06 current 81
  1132.         _a81_81 = _a81_81 - _a06_81 * m;
  1133.         b[81] = b[81] - b[6] * m;
  1134.         m = _a07_24 / _a07_07; // eliminating 07 current 24
  1135.         _a24_24 = _a24_24 - _a07_24 * m;
  1136.         b[24] = b[24] - b[7] * m;
  1137.         m = _a08_23 / _a08_08; // eliminating 08 current 23
  1138.         _a23_23 = _a23_23 - _a08_23 * m;
  1139.         b[23] = b[23] - b[8] * m;
  1140.         m = _a09_29 / _a09_09; // eliminating 09 current 29
  1141.         _a29_29 = _a29_29 - _a09_29 * m;
  1142.         b[29] = b[29] - b[9] * m;
  1143.         basePiv = _a10_10;
  1144.         m = _a10_20 / basePiv; // eliminating 10 current 20
  1145.         _a20_20 = _a20_20 - _a10_20 * m;
  1146.         _a20_80 = -_a10_80 * m;
  1147.         b[20] = b[20] - b[10] * m;
  1148.         m = _a10_80 / basePiv; // eliminating 10 current 80
  1149.         _a80_80 = _a80_80 - _a10_80 * m;
  1150.         b[80] = b[80] - b[10] * m;
  1151.         basePiv = _a12_12;
  1152.         m = _a12_28 / basePiv; // eliminating 12 current 28
  1153.         _a28_28 = _a28_28 - _a12_28 * m;
  1154.         _a28_35 = -_a12_35 * m;
  1155.         b[28] = b[28] - b[12] * m;
  1156.         m = _a12_35 / basePiv; // eliminating 12 current 35
  1157.         _a35_35 = _a35_35 - _a12_35 * m;
  1158.         b[35] = b[35] - b[12] * m;
  1159.         m = _a13_25 / _a13_13; // eliminating 13 current 25
  1160.         _a25_25 = _a25_25 - _a13_25 * m;
  1161.         b[25] = b[25] - b[13] * m;
  1162.         m = _a14_26 / _a14_14; // eliminating 14 current 26
  1163.         _a26_26 = _a26_26 - _a14_26 * m;
  1164.         b[26] = b[26] - b[14] * m;
  1165.         basePiv = _a15_15;
  1166.         m = _a15_30 / basePiv; // eliminating 15 current 30
  1167.         _a30_30 = _a30_30 - _a15_30 * m;
  1168.         _a30_34 = -_a15_34 * m;
  1169.         b[30] = b[30] - b[15] * m;
  1170.         m = _a15_34 / basePiv; // eliminating 15 current 34
  1171.         _a34_34 = _a34_34 - _a15_34 * m;
  1172.         b[34] = b[34] - b[15] * m;
  1173.         basePiv = _a16_16;
  1174.         m = _a16_31 / basePiv; // eliminating 16 current 31
  1175.         _a31_31 = _a31_31 - _a16_31 * m;
  1176.         _a31_36 = -_a16_36 * m;
  1177.         b[31] = b[31] - b[16] * m;
  1178.         m = _a16_36 / basePiv; // eliminating 16 current 36
  1179.         _a36_36 = _a36_36 - _a16_36 * m;
  1180.         b[36] = b[36] - b[16] * m;
  1181.         basePiv = _a17_17;
  1182.         m = _a17_38 / basePiv; // eliminating 17 current 38
  1183.         _a38_38 = _a38_38 - _a17_38 * m;
  1184.         _a38_39 = -_a17_39 * m;
  1185.         b[38] = b[38] - b[17] * m;
  1186.         m = _a17_39 / basePiv; // eliminating 17 current 39
  1187.         _a39_39 = _a39_39 - _a17_39 * m;
  1188.         b[39] = b[39] - b[17] * m;
  1189.         basePiv = _a18_18;
  1190.         m = _a18_27 / basePiv; // eliminating 18 current 27
  1191.         _a27_27 = _a27_27 - _a18_27 * m;
  1192.         _a27_33 = -_a18_33 * m;
  1193.         b[27] = b[27] - b[18] * m;
  1194.         m = _a18_33 / basePiv; // eliminating 18 current 33
  1195.         _a33_33 = _a33_33 - _a18_33 * m;
  1196.         b[33] = b[33] - b[18] * m;
  1197.         basePiv = _a19_19;
  1198.         m = _a19_32 / basePiv; // eliminating 19 current 32
  1199.         _a32_32 = _a32_32 - _a19_32 * m;
  1200.         _a32_35 = -_a19_35 * m;
  1201.         b[32] = b[32] - b[19] * m;
  1202.         m = _a19_35 / basePiv; // eliminating 19 current 35
  1203.         _a35_35 = _a35_35 - _a19_35 * m;
  1204.         b[35] = b[35] - b[19] * m;
  1205.         basePiv = _a20_20;
  1206.         m = _a20_27 / basePiv; // eliminating 20 current 27
  1207.         _a27_27 = _a27_27 - _a20_27 * m;
  1208.         _a27_80 = -_a20_80 * m;
  1209.         b[27] = b[27] - b[20] * m;
  1210.         m = _a20_80 / basePiv; // eliminating 20 current 80
  1211.         _a80_80 = _a80_80 - _a20_80 * m;
  1212.         b[80] = b[80] - b[20] * m;
  1213.         basePiv = _a21_21;
  1214.         m = _a21_37 / basePiv; // eliminating 21 current 37
  1215.         _a37_37 = _a37_37 - _a21_37 * m;
  1216.         _a37_39 = -_a21_39 * m;
  1217.         b[37] = b[37] - b[21] * m;
  1218.         m = _a21_39 / basePiv; // eliminating 21 current 39
  1219.         _a39_39 = _a39_39 - _a21_39 * m;
  1220.         b[39] = b[39] - b[21] * m;
  1221.         basePiv = _a22_22;
  1222.         m = _a22_23 / basePiv; // eliminating 22 current 23
  1223.         _a23_23 = _a23_23 - _a22_23 * m;
  1224.         _a23_39 = -_a22_39 * m;
  1225.         b[23] = b[23] - b[22] * m;
  1226.         m = _a22_39 / basePiv; // eliminating 22 current 39
  1227.         _a39_39 = _a39_39 - _a22_39 * m;
  1228.         b[39] = b[39] - b[22] * m;
  1229.         m = _a23_39 / _a23_23; // eliminating 23 current 39
  1230.         _a39_39 = _a39_39 - _a23_39 * m;
  1231.         b[39] = b[39] - b[23] * m;
  1232.         basePiv = _a24_24;
  1233.         m = _a24_32 / basePiv; // eliminating 24 current 32
  1234.         _a32_32 = _a32_32 - _a24_32 * m;
  1235.         _a32_38 = -_a24_38 * m;
  1236.         b[32] = b[32] - b[24] * m;
  1237.         m = _a24_38 / basePiv; // eliminating 24 current 38
  1238.         _a38_38 = _a38_38 - _a24_38 * m;
  1239.         b[38] = b[38] - b[24] * m;
  1240.         m = _a25_39 / _a25_25; // eliminating 25 current 39
  1241.         _a39_39 = _a39_39 - _a25_39 * m;
  1242.         b[39] = b[39] - b[25] * m;
  1243.         m = _a26_34 / _a26_26; // eliminating 26 current 34
  1244.         _a34_34 = _a34_34 - _a26_34 * m;
  1245.         b[34] = b[34] - b[26] * m;
  1246.         basePiv = _a27_27;
  1247.         m = _a27_33 / basePiv; // eliminating 27 current 33
  1248.         _a33_33 = _a33_33 - _a27_33 * m;
  1249.         _a33_80 = -_a27_80 * m;
  1250.         b[33] = b[33] - b[27] * m;
  1251.         m = _a27_80 / basePiv; // eliminating 27 current 80
  1252.         _a80_80 = _a80_80 - _a27_80 * m;
  1253.         b[80] = b[80] - b[27] * m;
  1254.         basePiv = _a28_28;
  1255.         m = _a28_29 / basePiv; // eliminating 28 current 29
  1256.         _a29_29 = _a29_29 - _a28_29 * m;
  1257.         _a29_35 = _a29_35 - _a28_35 * m;
  1258.         b[29] = b[29] - b[28] * m;
  1259.         m = _a28_35 / basePiv; // eliminating 28 current 35
  1260.         _a35_35 = _a35_35 - _a28_35 * m;
  1261.         b[35] = b[35] - b[28] * m;
  1262.         m = _a29_35 / _a29_29; // eliminating 29 current 35
  1263.         _a35_35 = _a35_35 - _a29_35 * m;
  1264.         b[35] = b[35] - b[29] * m;
  1265.         basePiv = _a30_30;
  1266.         m = _a30_34 / basePiv; // eliminating 30 current 34
  1267.         _a34_34 = _a34_34 - _a30_34 * m;
  1268.         _a34_36 = -_a30_36 * m;
  1269.         b[34] = b[34] - b[30] * m;
  1270.         m = _a30_36 / basePiv; // eliminating 30 current 36
  1271.         _a36_36 = _a36_36 - _a30_36 * m;
  1272.         b[36] = b[36] - b[30] * m;
  1273.         basePiv = _a31_31;
  1274.         m = _a31_36 / basePiv; // eliminating 31 current 36
  1275.         _a36_36 = _a36_36 - _a31_36 * m;
  1276.         _a36_39 = -_a31_39 * m;
  1277.         b[36] = b[36] - b[31] * m;
  1278.         m = _a31_39 / basePiv; // eliminating 31 current 39
  1279.         _a39_39 = _a39_39 - _a31_39 * m;
  1280.         b[39] = b[39] - b[31] * m;
  1281.         basePiv = _a32_32;
  1282.         m = _a32_35 / basePiv; // eliminating 32 current 35
  1283.         _a35_35 = _a35_35 - _a32_35 * m;
  1284.         _a35_38 = -_a32_38 * m;
  1285.         b[35] = b[35] - b[32] * m;
  1286.         m = _a32_38 / basePiv; // eliminating 32 current 38
  1287.         _a38_38 = _a38_38 - _a32_38 * m;
  1288.         b[38] = b[38] - b[32] * m;
  1289.         basePiv = _a33_33;
  1290.         m = _a33_37 / basePiv; // eliminating 33 current 37
  1291.         _a37_37 = _a37_37 - _a33_37 * m;
  1292.         _a37_80 = -_a33_80 * m;
  1293.         b[37] = b[37] - b[33] * m;
  1294.         m = _a33_80 / basePiv; // eliminating 33 current 80
  1295.         _a80_80 = _a80_80 - _a33_80 * m;
  1296.         b[80] = b[80] - b[33] * m;
  1297.         m = _a34_36 / _a34_34; // eliminating 34 current 36
  1298.         _a36_36 = _a36_36 - _a34_36 * m;
  1299.         b[36] = b[36] - b[34] * m;
  1300.         basePiv = _a35_35;
  1301.         m = _a35_37 / basePiv; // eliminating 35 current 37
  1302.         _a37_37 = _a37_37 - _a35_37 * m;
  1303.         _a37_38 = -_a35_38 * m;
  1304.         b[37] = b[37] - b[35] * m;
  1305.         m = _a35_38 / basePiv; // eliminating 35 current 38
  1306.         _a38_38 = _a38_38 - _a35_38 * m;
  1307.         b[38] = b[38] - b[35] * m;
  1308.         m = _a36_39 / _a36_36; // eliminating 36 current 39
  1309.         _a39_39 = _a39_39 - _a36_39 * m;
  1310.         b[39] = b[39] - b[36] * m;
  1311.         basePiv = _a37_37;
  1312.         m = _a37_38 / basePiv; // eliminating 37 current 38
  1313.         _a38_38 = _a38_38 - _a37_38 * m;
  1314.         _a38_39 = _a38_39 - _a37_39 * m;
  1315.         _a38_80 = -_a37_80 * m;
  1316.         b[38] = b[38] - b[37] * m;
  1317.         m = _a37_39 / basePiv; // eliminating 37 current 39
  1318.         _a39_39 = _a39_39 - _a37_39 * m;
  1319.         _a39_80 = -_a37_80 * m;
  1320.         b[39] = b[39] - b[37] * m;
  1321.         m = _a37_80 / basePiv; // eliminating 37 current 80
  1322.         _a80_80 = _a80_80 - _a37_80 * m;
  1323.         b[80] = b[80] - b[37] * m;
  1324.         basePiv = _a38_38;
  1325.         m = _a38_39 / basePiv; // eliminating 38 current 39
  1326.         _a39_39 = _a39_39 - _a38_39 * m;
  1327.         _a39_80 = _a39_80 - _a38_80 * m;
  1328.         b[39] = b[39] - b[38] * m;
  1329.         m = _a38_80 / basePiv; // eliminating 38 current 80
  1330.         _a80_80 = _a80_80 - _a38_80 * m;
  1331.         b[80] = b[80] - b[38] * m;
  1332.         basePiv = _a39_39;
  1333.         m = _a39_80 / basePiv; // eliminating 39 current 80
  1334.         _a80_80 = _a80_80 - _a39_80 * m;
  1335.         _a80_81 = -_a39_81 * m;
  1336.         b[80] = b[80] - b[39] * m;
  1337.         m = _a39_81 / basePiv; // eliminating 39 current 81
  1338.         _a81_81 = _a81_81 - _a39_81 * m;
  1339.         b[81] = b[81] - b[39] * m;
  1340.         m = _a40_74 / _a40_40; // eliminating 40 current 74
  1341.         _a74_74 = _a74_74 - _a40_74 * m;
  1342.         b[74] = b[74] - b[40] * m;
  1343.         m = _a41_64 / _a41_41; // eliminating 41 current 64
  1344.         _a64_64 = _a64_64 - _a41_64 * m;
  1345.         b[64] = b[64] - b[41] * m;
  1346.         m = _a42_64 / _a42_42; // eliminating 42 current 64
  1347.         _a64_64 = _a64_64 - _a42_64 * m;
  1348.         b[64] = b[64] - b[42] * m;
  1349.         m = _a43_50 / _a43_43; // eliminating 43 current 50
  1350.         _a50_50 = _a50_50 - _a43_50 * m;
  1351.         b[50] = b[50] - b[43] * m;
  1352.         m = _a44_62 / _a44_44; // eliminating 44 current 62
  1353.         _a62_62 = _a62_62 - _a44_62 * m;
  1354.         b[62] = b[62] - b[44] * m;
  1355.         m = _a45_62 / _a45_45; // eliminating 45 current 62
  1356.         _a62_62 = _a62_62 - _a45_62 * m;
  1357.         b[62] = b[62] - b[45] * m;
  1358.         basePiv = _a46_46;
  1359.         m = _a46_60 / basePiv; // eliminating 46 current 60
  1360.         _a60_60 = _a60_60 - _a46_60 * m;
  1361.         _a60_81 = -_a46_81 * m;
  1362.         b[60] = b[60] - b[46] * m;
  1363.         m = _a46_81 / basePiv; // eliminating 46 current 81
  1364.         _a81_81 = _a81_81 - _a46_81 * m;
  1365.         b[81] = b[81] - b[46] * m;
  1366.         m = _a47_61 / _a47_47; // eliminating 47 current 61
  1367.         _a61_61 = _a61_61 - _a47_61 * m;
  1368.         b[61] = b[61] - b[47] * m;
  1369.         basePiv = _a48_48;
  1370.         m = _a48_74 / basePiv; // eliminating 48 current 74
  1371.         _a74_74 = _a74_74 - _a48_74 * m;
  1372.         _a74_77 = -_a48_77 * m;
  1373.         b[74] = b[74] - b[48] * m;
  1374.         m = _a48_77 / basePiv; // eliminating 48 current 77
  1375.         _a77_77 = _a77_77 - _a48_77 * m;
  1376.         b[77] = b[77] - b[48] * m;
  1377.         basePiv = _a49_49;
  1378.         m = _a49_64 / basePiv; // eliminating 49 current 64
  1379.         _a64_64 = _a64_64 - _a49_64 * m;
  1380.         _a64_72 = -_a49_72 * m;
  1381.         b[64] = b[64] - b[49] * m;
  1382.         m = _a49_72 / basePiv; // eliminating 49 current 72
  1383.         _a72_72 = _a72_72 - _a49_72 * m;
  1384.         b[72] = b[72] - b[49] * m;
  1385.         m = _a50_63 / _a50_50; // eliminating 50 current 63
  1386.         _a63_63 = _a63_63 - _a50_63 * m;
  1387.         b[63] = b[63] - b[50] * m;
  1388.         basePiv = _a51_51;
  1389.         m = _a51_65 / basePiv; // eliminating 51 current 65
  1390.         _a65_65 = _a65_65 - _a51_65 * m;
  1391.         _a65_71 = -_a51_71 * m;
  1392.         b[65] = b[65] - b[51] * m;
  1393.         m = _a51_71 / basePiv; // eliminating 51 current 71
  1394.         _a71_71 = _a71_71 - _a51_71 * m;
  1395.         b[71] = b[71] - b[51] * m;
  1396.         basePiv = _a52_52;
  1397.         m = _a52_73 / basePiv; // eliminating 52 current 73
  1398.         _a73_73 = _a73_73 - _a52_73 * m;
  1399.         _a73_78 = -_a52_78 * m;
  1400.         b[73] = b[73] - b[52] * m;
  1401.         m = _a52_78 / basePiv; // eliminating 52 current 78
  1402.         _a78_78 = _a78_78 - _a52_78 * m;
  1403.         b[78] = b[78] - b[52] * m;
  1404.         basePiv = _a53_53;
  1405.         m = _a53_66 / basePiv; // eliminating 53 current 66
  1406.         _a66_66 = _a66_66 - _a53_66 * m;
  1407.         _a66_73 = -_a53_73 * m;
  1408.         b[66] = b[66] - b[53] * m;
  1409.         m = _a53_73 / basePiv; // eliminating 53 current 73
  1410.         _a73_73 = _a73_73 - _a53_73 * m;
  1411.         b[73] = b[73] - b[53] * m;
  1412.         basePiv = _a54_54;
  1413.         m = _a54_67 / basePiv; // eliminating 54 current 67
  1414.         _a67_67 = _a67_67 - _a54_67 * m;
  1415.         _a67_79 = -_a54_79 * m;
  1416.         b[67] = b[67] - b[54] * m;
  1417.         m = _a54_79 / basePiv; // eliminating 54 current 79
  1418.         _a79_79 = _a79_79 - _a54_79 * m;
  1419.         b[79] = b[79] - b[54] * m;
  1420.         basePiv = _a55_55;
  1421.         m = _a55_68 / basePiv; // eliminating 55 current 68
  1422.         _a68_68 = _a68_68 - _a55_68 * m;
  1423.         _a68_79 = -_a55_79 * m;
  1424.         b[68] = b[68] - b[55] * m;
  1425.         m = _a55_79 / basePiv; // eliminating 55 current 79
  1426.         _a79_79 = _a79_79 - _a55_79 * m;
  1427.         b[79] = b[79] - b[55] * m;
  1428.         basePiv = _a56_56;
  1429.         m = _a56_69 / basePiv; // eliminating 56 current 69
  1430.         _a69_69 = _a69_69 - _a56_69 * m;
  1431.         _a69_78 = -_a56_78 * m;
  1432.         b[69] = b[69] - b[56] * m;
  1433.         m = _a56_78 / basePiv; // eliminating 56 current 78
  1434.         _a78_78 = _a78_78 - _a56_78 * m;
  1435.         b[78] = b[78] - b[56] * m;
  1436.         basePiv = _a57_57;
  1437.         m = _a57_69 / basePiv; // eliminating 57 current 69
  1438.         _a69_69 = _a69_69 - _a57_69 * m;
  1439.         _a69_76 = -_a57_76 * m;
  1440.         b[69] = b[69] - b[57] * m;
  1441.         m = _a57_76 / basePiv; // eliminating 57 current 76
  1442.         _a76_76 = _a76_76 - _a57_76 * m;
  1443.         b[76] = b[76] - b[57] * m;
  1444.         basePiv = _a58_58;
  1445.         m = _a58_70 / basePiv; // eliminating 58 current 70
  1446.         _a70_70 = _a70_70 - _a58_70 * m;
  1447.         _a70_75 = -_a58_75 * m;
  1448.         b[70] = b[70] - b[58] * m;
  1449.         m = _a58_75 / basePiv; // eliminating 58 current 75
  1450.         _a75_75 = _a75_75 - _a58_75 * m;
  1451.         b[75] = b[75] - b[58] * m;
  1452.         basePiv = _a59_59;
  1453.         m = _a59_72 / basePiv; // eliminating 59 current 72
  1454.         _a72_72 = _a72_72 - _a59_72 * m;
  1455.         _a72_77 = -_a59_77 * m;
  1456.         b[72] = b[72] - b[59] * m;
  1457.         m = _a59_77 / basePiv; // eliminating 59 current 77
  1458.         _a77_77 = _a77_77 - _a59_77 * m;
  1459.         b[77] = b[77] - b[59] * m;
  1460.         basePiv = _a60_60;
  1461.         m = _a60_76 / basePiv; // eliminating 60 current 76
  1462.         _a76_76 = _a76_76 - _a60_76 * m;
  1463.         _a76_81 = -_a60_81 * m;
  1464.         b[76] = b[76] - b[60] * m;
  1465.         m = _a60_81 / basePiv; // eliminating 60 current 81
  1466.         _a81_81 = _a81_81 - _a60_81 * m;
  1467.         b[81] = b[81] - b[60] * m;
  1468.         basePiv = _a61_61;
  1469.         m = _a61_70 / basePiv; // eliminating 61 current 70
  1470.         _a70_70 = _a70_70 - _a61_70 * m;
  1471.         _a70_74 = -_a61_74 * m;
  1472.         b[70] = b[70] - b[61] * m;
  1473.         m = _a61_74 / basePiv; // eliminating 61 current 74
  1474.         _a74_74 = _a74_74 - _a61_74 * m;
  1475.         b[74] = b[74] - b[61] * m;
  1476.         m = _a62_78 / _a62_62; // eliminating 62 current 78
  1477.         _a78_78 = _a78_78 - _a62_78 * m;
  1478.         b[78] = b[78] - b[62] * m;
  1479.         m = _a63_71 / _a63_63; // eliminating 63 current 71
  1480.         _a71_71 = _a71_71 - _a63_71 * m;
  1481.         b[71] = b[71] - b[63] * m;
  1482.         basePiv = _a64_64;
  1483.         m = _a64_72 / basePiv; // eliminating 64 current 72
  1484.         _a72_72 = _a72_72 - _a64_72 * m;
  1485.         _a72_75 = _a72_75 - _a64_75 * m;
  1486.         b[72] = b[72] - b[64] * m;
  1487.         m = _a64_75 / basePiv; // eliminating 64 current 75
  1488.         _a75_75 = _a75_75 - _a64_75 * m;
  1489.         b[75] = b[75] - b[64] * m;
  1490.         basePiv = _a65_65;
  1491.         m = _a65_71 / basePiv; // eliminating 65 current 71
  1492.         _a71_71 = _a71_71 - _a65_71 * m;
  1493.         _a71_76 = -_a65_76 * m;
  1494.         b[71] = b[71] - b[65] * m;
  1495.         m = _a65_76 / basePiv; // eliminating 65 current 76
  1496.         _a76_76 = _a76_76 - _a65_76 * m;
  1497.         b[76] = b[76] - b[65] * m;
  1498.         basePiv = _a66_66;
  1499.         m = _a66_73 / basePiv; // eliminating 66 current 73
  1500.         _a73_73 = _a73_73 - _a66_73 * m;
  1501.         _a73_79 = -_a66_79 * m;
  1502.         b[73] = b[73] - b[66] * m;
  1503.         m = _a66_79 / basePiv; // eliminating 66 current 79
  1504.         _a79_79 = _a79_79 - _a66_79 * m;
  1505.         b[79] = b[79] - b[66] * m;
  1506.         basePiv = _a67_67;
  1507.         m = _a67_76 / basePiv; // eliminating 67 current 76
  1508.         _a76_76 = _a76_76 - _a67_76 * m;
  1509.         _a76_79 = -_a67_79 * m;
  1510.         b[76] = b[76] - b[67] * m;
  1511.         m = _a67_79 / basePiv; // eliminating 67 current 79
  1512.         _a79_79 = _a79_79 - _a67_79 * m;
  1513.         b[79] = b[79] - b[67] * m;
  1514.         basePiv = _a68_68;
  1515.         m = _a68_77 / basePiv; // eliminating 68 current 77
  1516.         _a77_77 = _a77_77 - _a68_77 * m;
  1517.         _a77_79 = -_a68_79 * m;
  1518.         b[77] = b[77] - b[68] * m;
  1519.         m = _a68_79 / basePiv; // eliminating 68 current 79
  1520.         _a79_79 = _a79_79 - _a68_79 * m;
  1521.         b[79] = b[79] - b[68] * m;
  1522.         basePiv = _a69_69;
  1523.         m = _a69_76 / basePiv; // eliminating 69 current 76
  1524.         _a76_76 = _a76_76 - _a69_76 * m;
  1525.         _a76_78 = -_a69_78 * m;
  1526.         b[76] = b[76] - b[69] * m;
  1527.         m = _a69_78 / basePiv; // eliminating 69 current 78
  1528.         _a78_78 = _a78_78 - _a69_78 * m;
  1529.         b[78] = b[78] - b[69] * m;
  1530.         basePiv = _a70_70;
  1531.         m = _a70_74 / basePiv; // eliminating 70 current 74
  1532.         _a74_74 = _a74_74 - _a70_74 * m;
  1533.         _a74_75 = -_a70_75 * m;
  1534.         b[74] = b[74] - b[70] * m;
  1535.         m = _a70_75 / basePiv; // eliminating 70 current 75
  1536.         _a75_75 = _a75_75 - _a70_75 * m;
  1537.         b[75] = b[75] - b[70] * m;
  1538.         m = _a71_76 / _a71_71; // eliminating 71 current 76
  1539.         _a76_76 = _a76_76 - _a71_76 * m;
  1540.         b[76] = b[76] - b[71] * m;
  1541.         basePiv = _a72_72;
  1542.         m = _a72_75 / basePiv; // eliminating 72 current 75
  1543.         _a75_75 = _a75_75 - _a72_75 * m;
  1544.         _a75_77 = -_a72_77 * m;
  1545.         b[75] = b[75] - b[72] * m;
  1546.         m = _a72_77 / basePiv; // eliminating 72 current 77
  1547.         _a77_77 = _a77_77 - _a72_77 * m;
  1548.         b[77] = b[77] - b[72] * m;
  1549.         basePiv = _a73_73;
  1550.         m = _a73_78 / basePiv; // eliminating 73 current 78
  1551.         _a78_78 = _a78_78 - _a73_78 * m;
  1552.         _a78_79 = -_a73_79 * m;
  1553.         _a78_80 = -_a73_80 * m;
  1554.         b[78] = b[78] - b[73] * m;
  1555.         m = _a73_79 / basePiv; // eliminating 73 current 79
  1556.         _a79_79 = _a79_79 - _a73_79 * m;
  1557.         _a79_80 = -_a73_80 * m;
  1558.         b[79] = b[79] - b[73] * m;
  1559.         m = _a73_80 / basePiv; // eliminating 73 current 80
  1560.         _a80_80 = _a80_80 - _a73_80 * m;
  1561.         b[80] = b[80] - b[73] * m;
  1562.         basePiv = _a74_74;
  1563.         m = _a74_75 / basePiv; // eliminating 74 current 75
  1564.         _a75_75 = _a75_75 - _a74_75 * m;
  1565.         _a75_77 = _a75_77 - _a74_77 * m;
  1566.         b[75] = b[75] - b[74] * m;
  1567.         m = _a74_77 / basePiv; // eliminating 74 current 77
  1568.         _a77_77 = _a77_77 - _a74_77 * m;
  1569.         b[77] = b[77] - b[74] * m;
  1570.         m = _a75_77 / _a75_75; // eliminating 75 current 77
  1571.         _a77_77 = _a77_77 - _a75_77 * m;
  1572.         b[77] = b[77] - b[75] * m;
  1573.         basePiv = _a76_76;
  1574.         m = _a76_78 / basePiv; // eliminating 76 current 78
  1575.         _a78_78 = _a78_78 - _a76_78 * m;
  1576.         _a78_79 = _a78_79 - _a76_79 * m;
  1577.         _a78_81 = -_a76_81 * m;
  1578.         b[78] = b[78] - b[76] * m;
  1579.         m = _a76_79 / basePiv; // eliminating 76 current 79
  1580.         _a79_79 = _a79_79 - _a76_79 * m;
  1581.         _a79_81 = -_a76_81 * m;
  1582.         b[79] = b[79] - b[76] * m;
  1583.         m = _a76_81 / basePiv; // eliminating 76 current 81
  1584.         _a81_81 = _a81_81 - _a76_81 * m;
  1585.         b[81] = b[81] - b[76] * m;
  1586.         m = _a77_79 / _a77_77; // eliminating 77 current 79
  1587.         _a79_79 = _a79_79 - _a77_79 * m;
  1588.         b[79] = b[79] - b[77] * m;
  1589.         basePiv = _a78_78;
  1590.         m = _a78_79 / basePiv; // eliminating 78 current 79
  1591.         _a79_79 = _a79_79 - _a78_79 * m;
  1592.         _a79_80 = _a79_80 - _a78_80 * m;
  1593.         _a79_81 = _a79_81 - _a78_81 * m;
  1594.         b[79] = b[79] - b[78] * m;
  1595.         m = _a78_80 / basePiv; // eliminating 78 current 80
  1596.         _a80_80 = _a80_80 - _a78_80 * m;
  1597.         _a80_81 = _a80_81 - _a78_81 * m;
  1598.         b[80] = b[80] - b[78] * m;
  1599.         m = _a78_81 / basePiv; // eliminating 78 current 81
  1600.         _a81_81 = _a81_81 - _a78_81 * m;
  1601.         b[81] = b[81] - b[78] * m;
  1602.         basePiv = _a79_79;
  1603.         m = _a79_80 / basePiv; // eliminating 79 current 80
  1604.         _a80_80 = _a80_80 - _a79_80 * m;
  1605.         _a80_81 = _a80_81 - _a79_81 * m;
  1606.         b[80] = b[80] - b[79] * m;
  1607.         m = _a79_81 / basePiv; // eliminating 79 current 81
  1608.         _a81_81 = _a81_81 - _a79_81 * m;
  1609.         b[81] = b[81] - b[79] * m;
  1610.         m = _a80_81 / _a80_80; // eliminating 80 current 81
  1611.         _a81_81 = _a81_81 - _a80_81 * m;
  1612.         b[81] = b[81] - b[80] * m;
  1613.        
  1614.         b[81] = b[81] / _a81_81;
  1615.         b[80] = (b[80] - b[81] * _a80_81) / _a80_80;
  1616.         b[79] = (b[79] - b[80] * _a79_80 - b[81] * _a79_81) / _a79_79;
  1617.         b[78] = (b[78] - b[79] * _a78_79 - b[80] * _a78_80 - b[81] * _a78_81) / _a78_78;
  1618.         b[77] = (b[77] - b[79] * _a77_79) / _a77_77;
  1619.         b[76] = (b[76] - b[78] * _a76_78 - b[79] * _a76_79 - b[81] * _a76_81) / _a76_76;
  1620.         b[75] = (b[75] - b[77] * _a75_77) / _a75_75;
  1621.         b[74] = (b[74] - b[75] * _a74_75 - b[77] * _a74_77) / _a74_74;
  1622.         b[73] = (b[73] - b[78] * _a73_78 - b[79] * _a73_79 - b[80] * _a73_80) / _a73_73;
  1623.         b[72] = (b[72] - b[75] * _a72_75 - b[77] * _a72_77) / _a72_72;
  1624.         b[71] = (b[71] - b[76] * _a71_76) / _a71_71;
  1625.         b[70] = (b[70] - b[74] * _a70_74 - b[75] * _a70_75) / _a70_70;
  1626.         b[69] = (b[69] - b[76] * _a69_76 - b[78] * _a69_78) / _a69_69;
  1627.         b[68] = (b[68] - b[77] * _a68_77 - b[79] * _a68_79) / _a68_68;
  1628.         b[67] = (b[67] - b[76] * _a67_76 - b[79] * _a67_79) / _a67_67;
  1629.         b[66] = (b[66] - b[73] * _a66_73 - b[79] * _a66_79) / _a66_66;
  1630.         b[65] = (b[65] - b[71] * _a65_71 - b[76] * _a65_76) / _a65_65;
  1631.         b[64] = (b[64] - b[72] * _a64_72 - b[75] * _a64_75) / _a64_64;
  1632.         b[63] = (b[63] - b[71] * _a63_71) / _a63_63;
  1633.         b[62] = (b[62] - b[78] * _a62_78) / _a62_62;
  1634.         b[61] = (b[61] - b[70] * _a61_70 - b[74] * _a61_74) / _a61_61;
  1635.         b[60] = (b[60] - b[76] * _a60_76 - b[81] * _a60_81) / _a60_60;
  1636.         b[59] = (b[59] - b[72] * _a59_72 - b[77] * _a59_77) / _a59_59;
  1637.         b[58] = (b[58] - b[70] * _a58_70 - b[75] * _a58_75) / _a58_58;
  1638.         b[57] = (b[57] - b[69] * _a57_69 - b[76] * _a57_76) / _a57_57;
  1639.         b[56] = (b[56] - b[69] * _a56_69 - b[78] * _a56_78) / _a56_56;
  1640.         b[55] = (b[55] - b[68] * _a55_68 - b[79] * _a55_79) / _a55_55;
  1641.         b[54] = (b[54] - b[67] * _a54_67 - b[79] * _a54_79) / _a54_54;
  1642.         b[53] = (b[53] - b[66] * _a53_66 - b[73] * _a53_73) / _a53_53;
  1643.         b[52] = (b[52] - b[73] * _a52_73 - b[78] * _a52_78) / _a52_52;
  1644.         b[51] = (b[51] - b[65] * _a51_65 - b[71] * _a51_71) / _a51_51;
  1645.         b[50] = (b[50] - b[63] * _a50_63) / _a50_50;
  1646.         b[49] = (b[49] - b[64] * _a49_64 - b[72] * _a49_72) / _a49_49;
  1647.         b[48] = (b[48] - b[74] * _a48_74 - b[77] * _a48_77) / _a48_48;
  1648.         b[47] = (b[47] - b[61] * _a47_61) / _a47_47;
  1649.         b[46] = (b[46] - b[60] * _a46_60 - b[81] * _a46_81) / _a46_46;
  1650.         b[45] = (b[45] - b[62] * _a45_62) / _a45_45;
  1651.         b[44] = (b[44] - b[62] * _a44_62) / _a44_44;
  1652.         b[43] = (b[43] - b[50] * _a43_50) / _a43_43;
  1653.         b[42] = (b[42] - b[64] * _a42_64) / _a42_42;
  1654.         b[41] = (b[41] - b[64] * _a41_64) / _a41_41;
  1655.         b[40] = (b[40] - b[74] * _a40_74) / _a40_40;
  1656.         b[39] = (b[39] - b[80] * _a39_80 - b[81] * _a39_81) / _a39_39;
  1657.         b[38] = (b[38] - b[39] * _a38_39 - b[80] * _a38_80) / _a38_38;
  1658.         b[37] = (b[37] - b[38] * _a37_38 - b[39] * _a37_39 - b[80] * _a37_80) / _a37_37;
  1659.         b[36] = (b[36] - b[39] * _a36_39) / _a36_36;
  1660.         b[35] = (b[35] - b[37] * _a35_37 - b[38] * _a35_38) / _a35_35;
  1661.         b[34] = (b[34] - b[36] * _a34_36) / _a34_34;
  1662.         b[33] = (b[33] - b[37] * _a33_37 - b[80] * _a33_80) / _a33_33;
  1663.         b[32] = (b[32] - b[35] * _a32_35 - b[38] * _a32_38) / _a32_32;
  1664.         b[31] = (b[31] - b[36] * _a31_36 - b[39] * _a31_39) / _a31_31;
  1665.         b[30] = (b[30] - b[34] * _a30_34 - b[36] * _a30_36) / _a30_30;
  1666.         b[29] = (b[29] - b[35] * _a29_35) / _a29_29;
  1667.         b[28] = (b[28] - b[29] * _a28_29 - b[35] * _a28_35) / _a28_28;
  1668.         b[27] = (b[27] - b[33] * _a27_33 - b[80] * _a27_80) / _a27_27;
  1669.         b[26] = (b[26] - b[34] * _a26_34) / _a26_26;
  1670.         b[25] = (b[25] - b[39] * _a25_39) / _a25_25;
  1671.         b[24] = (b[24] - b[32] * _a24_32 - b[38] * _a24_38) / _a24_24;
  1672.         b[23] = (b[23] - b[39] * _a23_39) / _a23_23;
  1673.         b[22] = (b[22] - b[23] * _a22_23 - b[39] * _a22_39) / _a22_22;
  1674.         b[21] = (b[21] - b[37] * _a21_37 - b[39] * _a21_39) / _a21_21;
  1675.         b[20] = (b[20] - b[27] * _a20_27 - b[80] * _a20_80) / _a20_20;
  1676.         b[19] = (b[19] - b[32] * _a19_32 - b[35] * _a19_35) / _a19_19;
  1677.         b[18] = (b[18] - b[27] * _a18_27 - b[33] * _a18_33) / _a18_18;
  1678.         b[17] = (b[17] - b[38] * _a17_38 - b[39] * _a17_39) / _a17_17;
  1679.         b[16] = (b[16] - b[31] * _a16_31 - b[36] * _a16_36) / _a16_16;
  1680.         b[15] = (b[15] - b[30] * _a15_30 - b[34] * _a15_34) / _a15_15;
  1681.         b[14] = (b[14] - b[26] * _a14_26) / _a14_14;
  1682.         b[13] = (b[13] - b[25] * _a13_25) / _a13_13;
  1683.         b[12] = (b[12] - b[28] * _a12_28 - b[35] * _a12_35) / _a12_12;
  1684.         b[11] = b[11] / _a11_11;
  1685.         b[10] = (b[10] - b[20] * _a10_20 - b[80] * _a10_80) / _a10_10;
  1686.         b[9] = (b[9] - b[29] * _a09_29) / _a09_09;
  1687.         b[8] = (b[8] - b[23] * _a08_23) / _a08_08;
  1688.         b[7] = (b[7] - b[24] * _a07_24) / _a07_07;
  1689.         b[6] = (b[6] - b[39] * _a06_39 - b[81] * _a06_81) / _a06_06;
  1690.         b[5] = (b[5] - b[14] * _a05_14) / _a05_05;
  1691.         b[4] = (b[4] - b[13] * _a04_13) / _a04_04;
  1692.         b[3] = (b[3] - b[29] * _a03_29) / _a03_03;
  1693.         b[2] = (b[2] - b[28] * _a02_28) / _a02_02;
  1694.         b[1] = (b[1] - b[11] * _a01_11) / _a01_01;
  1695.         b[0] = (b[0] - b[11] * _a00_11) / _a00_00;
  1696.        
  1697.     }
  1698.    
  1699.     void InitSpec()
  1700.     {
  1701.         nodeIds = new LIntMap(); nodeIds.Reserve(82);
  1702.         nodeIds.Set("k254_1.r", 0);
  1703.         nodeIds.Set("k254_1.vr", 1);
  1704.         nodeIds.Set("k395_1.s", 2);
  1705.         nodeIds.Set("k395_1.d", 3);
  1706.         nodeIds.Set("epka_1.kvv", 4);
  1707.         nodeIds.Set("tc_6_12", 5);
  1708.         nodeIds.Set("red1.in", 6);
  1709.         nodeIds.Set("epka_1.tm", 7);
  1710.         nodeIds.Set("kp3", 8);
  1711.         nodeIds.Set("ur", 9);
  1712.         nodeIds.Set("mvt", 10);
  1713.         nodeIds.Set("k254_1.b", 11);
  1714.         nodeIds.Set("k395_1.gr", 12);
  1715.         nodeIds.Set("epka_1.k", 13);
  1716.         nodeIds.Set("tc_5_11", 14);
  1717.         nodeIds.Set("rd2.out", 15);
  1718.         nodeIds.Set("ko4.out", 16);
  1719.         nodeIds.Set("ko3.out", 17);
  1720.         nodeIds.Set("k254_1.tc", 18);
  1721.         nodeIds.Set("ubt_1.k_tm", 19);
  1722.         nodeIds.Set("ubt_1.tc", 20);
  1723.         nodeIds.Set("ubt_1.gr", 21);
  1724.         nodeIds.Set("rs2", 22);
  1725.         nodeIds.Set("rs1", 23);
  1726.         nodeIds.Set("tm", 24);
  1727.         nodeIds.Set("epka_1.gr", 25);
  1728.         nodeIds.Set("tc_4_10", 26);
  1729.         nodeIds.Set("ubt_1.k_tc", 27);
  1730.         nodeIds.Set("k395_1.u", 28);
  1731.         nodeIds.Set("k395_1.ur", 29);
  1732.         nodeIds.Set("rd2.feed", 30);
  1733.         nodeIds.Set("ko4.in", 31);
  1734.         nodeIds.Set("ubt_1.tm", 32);
  1735.         nodeIds.Set("k254_1.gr", 33);
  1736.         nodeIds.Set("tc_1", 34);
  1737.         nodeIds.Set("k395_1.tm", 35);
  1738.         nodeIds.Set("rs4", 36);
  1739.         nodeIds.Set("ubt_1.k_gr", 37);
  1740.         nodeIds.Set("ko3.in", 38);
  1741.         nodeIds.Set("pm", 39);
  1742.         nodeIds.Set("evr.rk", 40);
  1743.         nodeIds.Set("vr.kdr", 41);
  1744.         nodeIds.Set("vr.tm", 42);
  1745.         nodeIds.Set("tc_1_7", 43);
  1746.         nodeIds.Set("rd1.set", 44);
  1747.         nodeIds.Set("rd2.set", 45);
  1748.         nodeIds.Set("ko2.in", 46);
  1749.         nodeIds.Set("rs5", 47);
  1750.         nodeIds.Set("evr.rd_tc", 48);
  1751.         nodeIds.Set("vr.sk", 49);
  1752.         nodeIds.Set("tc_2_8", 50);
  1753.         nodeIds.Set("rd1.out", 51);
  1754.         nodeIds.Set("k3.b", 52);
  1755.         nodeIds.Set("k5.a", 53);
  1756.         nodeIds.Set("k4.b", 54);
  1757.         nodeIds.Set("k4.a", 55);
  1758.         nodeIds.Set("k3.a", 56);
  1759.         nodeIds.Set("red3.in", 57);
  1760.         nodeIds.Set("vr.zr", 58);
  1761.         nodeIds.Set("evr.vr_tc", 59);
  1762.         nodeIds.Set("ko2.out", 60);
  1763.         nodeIds.Set("evr.zr", 61);
  1764.         nodeIds.Set("tc_set", 62);
  1765.         nodeIds.Set("tc_3_9", 63);
  1766.         nodeIds.Set("vr.mk", 64);
  1767.         nodeIds.Set("rd1.feed", 65);
  1768.         nodeIds.Set("vt1_kn12", 66);
  1769.         nodeIds.Set("kn10_vt3", 67);
  1770.         nodeIds.Set("rs8", 68);
  1771.         nodeIds.Set("red3.out", 69);
  1772.         nodeIds.Set("evr.vr_zr", 70);
  1773.         nodeIds.Set("tc_2", 71);
  1774.         nodeIds.Set("vr.tc", 72);
  1775.         nodeIds.Set("k5.out", 73);
  1776.         nodeIds.Set("evr.rd_zr", 74);
  1777.         nodeIds.Set("vr.zk", 75);
  1778.         nodeIds.Set("rs3", 76);
  1779.         nodeIds.Set("evr.tc", 77);
  1780.         nodeIds.Set("k3.out", 78);
  1781.         nodeIds.Set("k4.out", 79);
  1782.         nodeIds.Set("k5.b", 80);
  1783.         nodeIds.Set("red1.out", 81);
  1784.        
  1785.         linkIds = new LIntMap(); linkIds.Reserve(67);
  1786.         linkIds.Set("k254_1.vr_b", 0);
  1787.         linkIds.Set("k395_1.d_at", -1);
  1788.         linkIds.Set("red1.feed", 1);
  1789.         linkIds.Set("epka_1.tm_at", -2);
  1790.         linkIds.Set("kp3.dump", -3);
  1791.         linkIds.Set("k254_1.b_at", -4);
  1792.         linkIds.Set("k395_1.gr_u_red", 2);
  1793.         linkIds.Set("k395_1.gr_u", 3);
  1794.         linkIds.Set("epka_1.k_at", -5);
  1795.         linkIds.Set("rd2.dump", -6);
  1796.         linkIds.Set("k254_1.tc_at", -7);
  1797.         linkIds.Set("ubt_1.tc", 4);
  1798.         linkIds.Set("ubt_1.gr", 5);
  1799.         linkIds.Set("kn27", 6);
  1800.         linkIds.Set("tm_epka_1", 7);
  1801.         linkIds.Set("kn18", 8);
  1802.         linkIds.Set("epka_1.gr_k", 9);
  1803.         linkIds.Set("k395_1.u_s", 10);
  1804.         linkIds.Set("k395_1.u_at", -8);
  1805.         linkIds.Set("k395_1.ur_d", 11);
  1806.         linkIds.Set("k395_1.ur_at", -9);
  1807.         linkIds.Set("k395_1.ok", 12);
  1808.         linkIds.Set("rd2.feed", 13);
  1809.         linkIds.Set("ko4.in_out", 14);
  1810.         linkIds.Set("ubt_1.tm", 15);
  1811.         linkIds.Set("ubt_1.tm_at", -10);
  1812.         linkIds.Set("k254_1.gr_tc", 16);
  1813.         linkIds.Set("k395_1.tm_gr", 17);
  1814.         linkIds.Set("k395_1.u_tm_gr", 18);
  1815.         linkIds.Set("k395_1.u_tm_at", -11);
  1816.         linkIds.Set("k395_1.tm_at", -12);
  1817.         linkIds.Set("ko3.in_out", 19);
  1818.         linkIds.Set("kn14", 20);
  1819.         linkIds.Set("pm_epka_1", 21);
  1820.         linkIds.Set("kn6", 22);
  1821.         linkIds.Set("evr.leak_rk", -13);
  1822.         linkIds.Set("evr.vo", -14);
  1823.         linkIds.Set("vr.kdr_at", -15);
  1824.         linkIds.Set("vr.mk_at_sk", -16);
  1825.         linkIds.Set("ko2.in_out", 23);
  1826.         linkIds.Set("evr.rd_rel", -17);
  1827.         linkIds.Set("vr.sk_tc", 24);
  1828.         linkIds.Set("rd1.dump", -18);
  1829.         linkIds.Set("k3.b_out", 25);
  1830.         linkIds.Set("k5.a_out", 26);
  1831.         linkIds.Set("k4.b_out", 27);
  1832.         linkIds.Set("k4.a_out", 28);
  1833.         linkIds.Set("k3.a_out", 29);
  1834.         linkIds.Set("red3.feed", 30);
  1835.         linkIds.Set("vr.mk_kdr", 31);
  1836.         linkIds.Set("vr.mk_sk", 32);
  1837.         linkIds.Set("vr.mk_zk", 33);
  1838.         linkIds.Set("rd1.feed", 34);
  1839.         linkIds.Set("kn12", 35);
  1840.         linkIds.Set("vt3", 36);
  1841.         linkIds.Set("vt2", 37);
  1842.         linkIds.Set("vr.tc_at", -19);
  1843.         linkIds.Set("evr.vt", 38);
  1844.         linkIds.Set("evr.rd_feed", 39);
  1845.         linkIds.Set("vr.zk_tc_e", 40);
  1846.         linkIds.Set("vr.zk_tc", 41);
  1847.         linkIds.Set("kn11", 42);
  1848.         linkIds.Set("kn10", 43);
  1849.         linkIds.Set("evr.pk_evr", 44);
  1850.         linkIds.Set("evr.pk_vr", 45);
  1851.         linkIds.Set("vt1", 46);
  1852.         linkIds.Set("k5.b_out", 47);
  1853.        
  1854.         objectIds = new LIntMap(); objectIds.Reserve(23);
  1855.         objectIds.Set("kp3", 0);
  1856.         objectIds.Set("epka_1", 1);
  1857.         objectIds.Set("ubt_1", 2);
  1858.         objectIds.Set("k395_1", 3);
  1859.         objectIds.Set("k254_1", 4);
  1860.         objectIds.Set("ko3", 5);
  1861.         objectIds.Set("red1", 6);
  1862.         objectIds.Set("ko2", 7);
  1863.         objectIds.Set("ko4", 8);
  1864.         objectIds.Set("vr", 9);
  1865.         objectIds.Set("evr", 10);
  1866.         objectIds.Set("k3", 11);
  1867.         objectIds.Set("k4", 12);
  1868.         objectIds.Set("k5", 13);
  1869.         objectIds.Set("red3", 14);
  1870.         objectIds.Set("rd2", 15);
  1871.         objectIds.Set("tc_4_10", 16);
  1872.         objectIds.Set("tc_5_11", 17);
  1873.         objectIds.Set("tc_6_12", 18);
  1874.         objectIds.Set("rd1", 19);
  1875.         objectIds.Set("tc_3_9", 20);
  1876.         objectIds.Set("tc_2_8", 21);
  1877.         objectIds.Set("tc_1_7", 22);
  1878.        
  1879.         linkNominalFlowRate = new float[48];
  1880.         linkSrc = new int[48];
  1881.         linkDst = new int[48];
  1882.         linkNominalFlowRate[0] = 9.027353; linkSrc[0] = 1; linkDst[0] = 11;
  1883.         linkNominalFlowRate[1] = 1; linkSrc[1] = 6; linkDst[1] = 81;
  1884.         linkNominalFlowRate[2] = 36.1094131; linkSrc[2] = 12; linkDst[2] = 28;
  1885.         linkNominalFlowRate[3] = 100.303925; linkSrc[3] = 12; linkDst[3] = 28;
  1886.         linkNominalFlowRate[4] = 2507.59814; linkSrc[4] = 20; linkDst[4] = 27;
  1887.         linkNominalFlowRate[5] = 2507.59814; linkSrc[5] = 21; linkDst[5] = 37;
  1888.         linkNominalFlowRate[6] = 2311.00244; linkSrc[6] = 23; linkDst[6] = 22;
  1889.         linkNominalFlowRate[7] = 2311.00244; linkSrc[7] = 24; linkDst[7] = 7;
  1890.         linkNominalFlowRate[8] = 1448.38867; linkSrc[8] = 24; linkDst[8] = 38;
  1891.         linkNominalFlowRate[9] = 3.24984717; linkSrc[9] = 25; linkDst[9] = 13;
  1892.         linkNominalFlowRate[10] = 36.1094131; linkSrc[10] = 28; linkDst[10] = 2;
  1893.         linkNominalFlowRate[11] = 36.1094131; linkSrc[11] = 29; linkDst[11] = 3;
  1894.         linkNominalFlowRate[12] = 36.1094131; linkSrc[12] = 29; linkDst[12] = 35;
  1895.         linkNominalFlowRate[13] = 1; linkSrc[13] = 30; linkDst[13] = 15;
  1896.         linkNominalFlowRate[14] = 1; linkSrc[14] = 31; linkDst[14] = 16;
  1897.         linkNominalFlowRate[15] = 2507.59814; linkSrc[15] = 32; linkDst[15] = 19;
  1898.         linkNominalFlowRate[16] = 401.2157; linkSrc[16] = 33; linkDst[16] = 18;
  1899.         linkNominalFlowRate[17] = 1027.11218; linkSrc[17] = 35; linkDst[17] = 12;
  1900.         linkNominalFlowRate[18] = 324.9847; linkSrc[18] = 35; linkDst[18] = 12;
  1901.         linkNominalFlowRate[19] = 1; linkSrc[19] = 38; linkDst[19] = 17;
  1902.         linkNominalFlowRate[20] = 1448.38867; linkSrc[20] = 39; linkDst[20] = 6;
  1903.         linkNominalFlowRate[21] = 678.054565; linkSrc[21] = 39; linkDst[21] = 25;
  1904.         linkNominalFlowRate[22] = 1448.38867; linkSrc[22] = 39; linkDst[22] = 31;
  1905.         linkNominalFlowRate[23] = 1; linkSrc[23] = 46; linkDst[23] = 60;
  1906.         linkNominalFlowRate[24] = 144.437653; linkSrc[24] = 49; linkDst[24] = 72;
  1907.         linkNominalFlowRate[25] = 1; linkSrc[25] = 52; linkDst[25] = 78;
  1908.         linkNominalFlowRate[26] = 1; linkSrc[26] = 53; linkDst[26] = 73;
  1909.         linkNominalFlowRate[27] = 1; linkSrc[27] = 54; linkDst[27] = 79;
  1910.         linkNominalFlowRate[28] = 1; linkSrc[28] = 55; linkDst[28] = 79;
  1911.         linkNominalFlowRate[29] = 1; linkSrc[29] = 56; linkDst[29] = 78;
  1912.         linkNominalFlowRate[30] = 1; linkSrc[30] = 57; linkDst[30] = 69;
  1913.         linkNominalFlowRate[31] = 49.148922; linkSrc[31] = 64; linkDst[31] = 41;
  1914.         linkNominalFlowRate[32] = 2.56778049; linkSrc[32] = 64; linkDst[32] = 49;
  1915.         linkNominalFlowRate[33] = 1; linkSrc[33] = 64; linkDst[33] = 75;
  1916.         linkNominalFlowRate[34] = 1; linkSrc[34] = 65; linkDst[34] = 51;
  1917.         linkNominalFlowRate[35] = 159.242508; linkSrc[35] = 66; linkDst[35] = 53;
  1918.         linkNominalFlowRate[36] = 159.242508; linkSrc[36] = 67; linkDst[36] = 54;
  1919.         linkNominalFlowRate[37] = 159.242508; linkSrc[37] = 69; linkDst[37] = 56;
  1920.         linkNominalFlowRate[38] = 12.9993887; linkSrc[38] = 74; linkDst[38] = 40;
  1921.         linkNominalFlowRate[39] = 324.9847; linkSrc[39] = 74; linkDst[39] = 48;
  1922.         linkNominalFlowRate[40] = 1; linkSrc[40] = 75; linkDst[40] = 72;
  1923.         linkNominalFlowRate[41] = 64.19451; linkSrc[41] = 75; linkDst[41] = 72;
  1924.         linkNominalFlowRate[42] = 159.242508; linkSrc[42] = 76; linkDst[42] = 57;
  1925.         linkNominalFlowRate[43] = 159.242508; linkSrc[43] = 76; linkDst[43] = 67;
  1926.         linkNominalFlowRate[44] = 1448.38867; linkSrc[44] = 77; linkDst[44] = 48;
  1927.         linkNominalFlowRate[45] = 1448.38867; linkSrc[45] = 77; linkDst[45] = 59;
  1928.         linkNominalFlowRate[46] = 159.242508; linkSrc[46] = 79; linkDst[46] = 66;
  1929.         linkNominalFlowRate[47] = 1; linkSrc[47] = 80; linkDst[47] = 73;
  1930.        
  1931.         alinkNominalFlowRate = new float[19];
  1932.         alinkSrc = new int[19];
  1933.         alinkNominalFlowRate[0] = 36.1094131; alinkSrc[0] = 3;
  1934.         alinkNominalFlowRate[1] = 3610.94141; alinkSrc[1] = 7;
  1935.         alinkNominalFlowRate[2] = 1; alinkSrc[2] = 8;
  1936.         alinkNominalFlowRate[3] = 100.303925; alinkSrc[3] = 11;
  1937.         alinkNominalFlowRate[4] = 4.012157; alinkSrc[4] = 13;
  1938.         alinkNominalFlowRate[5] = 1; alinkSrc[5] = 15;
  1939.         alinkNominalFlowRate[6] = 88.62855; alinkSrc[6] = 18;
  1940.         alinkNominalFlowRate[7] = 100.303925; alinkSrc[7] = 28;
  1941.         alinkNominalFlowRate[8] = 1; alinkSrc[8] = 29;
  1942.         alinkNominalFlowRate[9] = 256.778046; alinkSrc[9] = 32;
  1943.         alinkNominalFlowRate[10] = 401.2157; alinkSrc[10] = 35;
  1944.         alinkNominalFlowRate[11] = 1027.11218; alinkSrc[11] = 35;
  1945.         alinkNominalFlowRate[12] = 1; alinkSrc[12] = 40;
  1946.         alinkNominalFlowRate[13] = 6.780545; alinkSrc[13] = 40;
  1947.         alinkNominalFlowRate[14] = 4.012157; alinkSrc[14] = 41;
  1948.         alinkNominalFlowRate[15] = 1027.11218; alinkSrc[15] = 42;
  1949.         alinkNominalFlowRate[16] = 401.2157; alinkSrc[16] = 48;
  1950.         alinkNominalFlowRate[17] = 1; alinkSrc[17] = 51;
  1951.         alinkNominalFlowRate[18] = 1; alinkSrc[18] = 72;
  1952.        
  1953.     }
  1954.    
  1955.     public Soup GetSchemePropertiesInternal(tep70airscheme_instance scheme)
  1956.     {
  1957.         Soup pressureSoup = Constructors.NewSoup();
  1958.         float[] nodePressure = scheme.nodePressure;
  1959.         pressureSoup.SetNamedTag("k254_1.r", nodePressure[0]);
  1960.         pressureSoup.SetNamedTag("k254_1.vr", nodePressure[1]);
  1961.         pressureSoup.SetNamedTag("k395_1.s", nodePressure[2]);
  1962.         pressureSoup.SetNamedTag("k395_1.d", nodePressure[3]);
  1963.         pressureSoup.SetNamedTag("epka_1.kvv", nodePressure[4]);
  1964.         pressureSoup.SetNamedTag("tc_6_12", nodePressure[5]);
  1965.         pressureSoup.SetNamedTag("red1.in", nodePressure[6]);
  1966.         pressureSoup.SetNamedTag("epka_1.tm", nodePressure[7]);
  1967.         pressureSoup.SetNamedTag("kp3", nodePressure[8]);
  1968.         pressureSoup.SetNamedTag("ur", nodePressure[9]);
  1969.         pressureSoup.SetNamedTag("mvt", nodePressure[10]);
  1970.         pressureSoup.SetNamedTag("k254_1.b", nodePressure[11]);
  1971.         pressureSoup.SetNamedTag("k395_1.gr", nodePressure[12]);
  1972.         pressureSoup.SetNamedTag("epka_1.k", nodePressure[13]);
  1973.         pressureSoup.SetNamedTag("tc_5_11", nodePressure[14]);
  1974.         pressureSoup.SetNamedTag("rd2.out", nodePressure[15]);
  1975.         pressureSoup.SetNamedTag("ko4.out", nodePressure[16]);
  1976.         pressureSoup.SetNamedTag("ko3.out", nodePressure[17]);
  1977.         pressureSoup.SetNamedTag("k254_1.tc", nodePressure[18]);
  1978.         pressureSoup.SetNamedTag("ubt_1.k_tm", nodePressure[19]);
  1979.         pressureSoup.SetNamedTag("ubt_1.tc", nodePressure[20]);
  1980.         pressureSoup.SetNamedTag("ubt_1.gr", nodePressure[21]);
  1981.         pressureSoup.SetNamedTag("rs2", nodePressure[22]);
  1982.         pressureSoup.SetNamedTag("rs1", nodePressure[23]);
  1983.         pressureSoup.SetNamedTag("tm", nodePressure[24]);
  1984.         pressureSoup.SetNamedTag("epka_1.gr", nodePressure[25]);
  1985.         pressureSoup.SetNamedTag("tc_4_10", nodePressure[26]);
  1986.         pressureSoup.SetNamedTag("ubt_1.k_tc", nodePressure[27]);
  1987.         pressureSoup.SetNamedTag("k395_1.u", nodePressure[28]);
  1988.         pressureSoup.SetNamedTag("k395_1.ur", nodePressure[29]);
  1989.         pressureSoup.SetNamedTag("rd2.feed", nodePressure[30]);
  1990.         pressureSoup.SetNamedTag("ko4.in", nodePressure[31]);
  1991.         pressureSoup.SetNamedTag("ubt_1.tm", nodePressure[32]);
  1992.         pressureSoup.SetNamedTag("k254_1.gr", nodePressure[33]);
  1993.         pressureSoup.SetNamedTag("tc_1", nodePressure[34]);
  1994.         pressureSoup.SetNamedTag("k395_1.tm", nodePressure[35]);
  1995.         pressureSoup.SetNamedTag("rs4", nodePressure[36]);
  1996.         pressureSoup.SetNamedTag("ubt_1.k_gr", nodePressure[37]);
  1997.         pressureSoup.SetNamedTag("ko3.in", nodePressure[38]);
  1998.         pressureSoup.SetNamedTag("pm", nodePressure[39]);
  1999.         pressureSoup.SetNamedTag("evr.rk", nodePressure[40]);
  2000.         pressureSoup.SetNamedTag("vr.kdr", nodePressure[41]);
  2001.         pressureSoup.SetNamedTag("vr.tm", nodePressure[42]);
  2002.         pressureSoup.SetNamedTag("tc_1_7", nodePressure[43]);
  2003.         pressureSoup.SetNamedTag("rd1.set", nodePressure[44]);
  2004.         pressureSoup.SetNamedTag("rd2.set", nodePressure[45]);
  2005.         pressureSoup.SetNamedTag("ko2.in", nodePressure[46]);
  2006.         pressureSoup.SetNamedTag("rs5", nodePressure[47]);
  2007.         pressureSoup.SetNamedTag("evr.rd_tc", nodePressure[48]);
  2008.         pressureSoup.SetNamedTag("vr.sk", nodePressure[49]);
  2009.         pressureSoup.SetNamedTag("tc_2_8", nodePressure[50]);
  2010.         pressureSoup.SetNamedTag("rd1.out", nodePressure[51]);
  2011.         pressureSoup.SetNamedTag("k3.b", nodePressure[52]);
  2012.         pressureSoup.SetNamedTag("k5.a", nodePressure[53]);
  2013.         pressureSoup.SetNamedTag("k4.b", nodePressure[54]);
  2014.         pressureSoup.SetNamedTag("k4.a", nodePressure[55]);
  2015.         pressureSoup.SetNamedTag("k3.a", nodePressure[56]);
  2016.         pressureSoup.SetNamedTag("red3.in", nodePressure[57]);
  2017.         pressureSoup.SetNamedTag("vr.zr", nodePressure[58]);
  2018.         pressureSoup.SetNamedTag("evr.vr_tc", nodePressure[59]);
  2019.         pressureSoup.SetNamedTag("ko2.out", nodePressure[60]);
  2020.         pressureSoup.SetNamedTag("evr.zr", nodePressure[61]);
  2021.         pressureSoup.SetNamedTag("tc_set", nodePressure[62]);
  2022.         pressureSoup.SetNamedTag("tc_3_9", nodePressure[63]);
  2023.         pressureSoup.SetNamedTag("vr.mk", nodePressure[64]);
  2024.         pressureSoup.SetNamedTag("rd1.feed", nodePressure[65]);
  2025.         pressureSoup.SetNamedTag("vt1_kn12", nodePressure[66]);
  2026.         pressureSoup.SetNamedTag("kn10_vt3", nodePressure[67]);
  2027.         pressureSoup.SetNamedTag("rs8", nodePressure[68]);
  2028.         pressureSoup.SetNamedTag("red3.out", nodePressure[69]);
  2029.         pressureSoup.SetNamedTag("evr.vr_zr", nodePressure[70]);
  2030.         pressureSoup.SetNamedTag("tc_2", nodePressure[71]);
  2031.         pressureSoup.SetNamedTag("vr.tc", nodePressure[72]);
  2032.         pressureSoup.SetNamedTag("k5.out", nodePressure[73]);
  2033.         pressureSoup.SetNamedTag("evr.rd_zr", nodePressure[74]);
  2034.         pressureSoup.SetNamedTag("vr.zk", nodePressure[75]);
  2035.         pressureSoup.SetNamedTag("rs3", nodePressure[76]);
  2036.         pressureSoup.SetNamedTag("evr.tc", nodePressure[77]);
  2037.         pressureSoup.SetNamedTag("k3.out", nodePressure[78]);
  2038.         pressureSoup.SetNamedTag("k4.out", nodePressure[79]);
  2039.         pressureSoup.SetNamedTag("k5.b", nodePressure[80]);
  2040.         pressureSoup.SetNamedTag("red1.out", nodePressure[81]);
  2041.        
  2042.         Soup volumeSoup = Constructors.NewSoup();
  2043.         float[] nodeVolume = scheme.nodeVolume;
  2044.         volumeSoup.SetNamedTag("k254_1.r", nodeVolume[0]);
  2045.         volumeSoup.SetNamedTag("k254_1.vr", nodeVolume[1]);
  2046.         volumeSoup.SetNamedTag("k395_1.s", nodeVolume[2]);
  2047.         volumeSoup.SetNamedTag("k395_1.d", nodeVolume[3]);
  2048.         volumeSoup.SetNamedTag("epka_1.kvv", nodeVolume[4]);
  2049.         volumeSoup.SetNamedTag("tc_6_12", nodeVolume[5]);
  2050.         volumeSoup.SetNamedTag("red1.in", nodeVolume[6]);
  2051.         volumeSoup.SetNamedTag("epka_1.tm", nodeVolume[7]);
  2052.         volumeSoup.SetNamedTag("kp3", nodeVolume[8]);
  2053.         volumeSoup.SetNamedTag("ur", nodeVolume[9]);
  2054.         volumeSoup.SetNamedTag("mvt", nodeVolume[10]);
  2055.         volumeSoup.SetNamedTag("k254_1.b", nodeVolume[11]);
  2056.         volumeSoup.SetNamedTag("k395_1.gr", nodeVolume[12]);
  2057.         volumeSoup.SetNamedTag("epka_1.k", nodeVolume[13]);
  2058.         volumeSoup.SetNamedTag("tc_5_11", nodeVolume[14]);
  2059.         volumeSoup.SetNamedTag("rd2.out", nodeVolume[15]);
  2060.         volumeSoup.SetNamedTag("ko4.out", nodeVolume[16]);
  2061.         volumeSoup.SetNamedTag("ko3.out", nodeVolume[17]);
  2062.         volumeSoup.SetNamedTag("k254_1.tc", nodeVolume[18]);
  2063.         volumeSoup.SetNamedTag("ubt_1.k_tm", nodeVolume[19]);
  2064.         volumeSoup.SetNamedTag("ubt_1.tc", nodeVolume[20]);
  2065.         volumeSoup.SetNamedTag("ubt_1.gr", nodeVolume[21]);
  2066.         volumeSoup.SetNamedTag("rs2", nodeVolume[22]);
  2067.         volumeSoup.SetNamedTag("rs1", nodeVolume[23]);
  2068.         volumeSoup.SetNamedTag("tm", nodeVolume[24]);
  2069.         volumeSoup.SetNamedTag("epka_1.gr", nodeVolume[25]);
  2070.         volumeSoup.SetNamedTag("tc_4_10", nodeVolume[26]);
  2071.         volumeSoup.SetNamedTag("ubt_1.k_tc", nodeVolume[27]);
  2072.         volumeSoup.SetNamedTag("k395_1.u", nodeVolume[28]);
  2073.         volumeSoup.SetNamedTag("k395_1.ur", nodeVolume[29]);
  2074.         volumeSoup.SetNamedTag("rd2.feed", nodeVolume[30]);
  2075.         volumeSoup.SetNamedTag("ko4.in", nodeVolume[31]);
  2076.         volumeSoup.SetNamedTag("ubt_1.tm", nodeVolume[32]);
  2077.         volumeSoup.SetNamedTag("k254_1.gr", nodeVolume[33]);
  2078.         volumeSoup.SetNamedTag("tc_1", nodeVolume[34]);
  2079.         volumeSoup.SetNamedTag("k395_1.tm", nodeVolume[35]);
  2080.         volumeSoup.SetNamedTag("rs4", nodeVolume[36]);
  2081.         volumeSoup.SetNamedTag("ubt_1.k_gr", nodeVolume[37]);
  2082.         volumeSoup.SetNamedTag("ko3.in", nodeVolume[38]);
  2083.         volumeSoup.SetNamedTag("pm", nodeVolume[39]);
  2084.         volumeSoup.SetNamedTag("evr.rk", nodeVolume[40]);
  2085.         volumeSoup.SetNamedTag("vr.kdr", nodeVolume[41]);
  2086.         volumeSoup.SetNamedTag("vr.tm", nodeVolume[42]);
  2087.         volumeSoup.SetNamedTag("tc_1_7", nodeVolume[43]);
  2088.         volumeSoup.SetNamedTag("rd1.set", nodeVolume[44]);
  2089.         volumeSoup.SetNamedTag("rd2.set", nodeVolume[45]);
  2090.         volumeSoup.SetNamedTag("ko2.in", nodeVolume[46]);
  2091.         volumeSoup.SetNamedTag("rs5", nodeVolume[47]);
  2092.         volumeSoup.SetNamedTag("evr.rd_tc", nodeVolume[48]);
  2093.         volumeSoup.SetNamedTag("vr.sk", nodeVolume[49]);
  2094.         volumeSoup.SetNamedTag("tc_2_8", nodeVolume[50]);
  2095.         volumeSoup.SetNamedTag("rd1.out", nodeVolume[51]);
  2096.         volumeSoup.SetNamedTag("k3.b", nodeVolume[52]);
  2097.         volumeSoup.SetNamedTag("k5.a", nodeVolume[53]);
  2098.         volumeSoup.SetNamedTag("k4.b", nodeVolume[54]);
  2099.         volumeSoup.SetNamedTag("k4.a", nodeVolume[55]);
  2100.         volumeSoup.SetNamedTag("k3.a", nodeVolume[56]);
  2101.         volumeSoup.SetNamedTag("red3.in", nodeVolume[57]);
  2102.         volumeSoup.SetNamedTag("vr.zr", nodeVolume[58]);
  2103.         volumeSoup.SetNamedTag("evr.vr_tc", nodeVolume[59]);
  2104.         volumeSoup.SetNamedTag("ko2.out", nodeVolume[60]);
  2105.         volumeSoup.SetNamedTag("evr.zr", nodeVolume[61]);
  2106.         volumeSoup.SetNamedTag("tc_set", nodeVolume[62]);
  2107.         volumeSoup.SetNamedTag("tc_3_9", nodeVolume[63]);
  2108.         volumeSoup.SetNamedTag("vr.mk", nodeVolume[64]);
  2109.         volumeSoup.SetNamedTag("rd1.feed", nodeVolume[65]);
  2110.         volumeSoup.SetNamedTag("vt1_kn12", nodeVolume[66]);
  2111.         volumeSoup.SetNamedTag("kn10_vt3", nodeVolume[67]);
  2112.         volumeSoup.SetNamedTag("rs8", nodeVolume[68]);
  2113.         volumeSoup.SetNamedTag("red3.out", nodeVolume[69]);
  2114.         volumeSoup.SetNamedTag("evr.vr_zr", nodeVolume[70]);
  2115.         volumeSoup.SetNamedTag("tc_2", nodeVolume[71]);
  2116.         volumeSoup.SetNamedTag("vr.tc", nodeVolume[72]);
  2117.         volumeSoup.SetNamedTag("k5.out", nodeVolume[73]);
  2118.         volumeSoup.SetNamedTag("evr.rd_zr", nodeVolume[74]);
  2119.         volumeSoup.SetNamedTag("vr.zk", nodeVolume[75]);
  2120.         volumeSoup.SetNamedTag("rs3", nodeVolume[76]);
  2121.         volumeSoup.SetNamedTag("evr.tc", nodeVolume[77]);
  2122.         volumeSoup.SetNamedTag("k3.out", nodeVolume[78]);
  2123.         volumeSoup.SetNamedTag("k4.out", nodeVolume[79]);
  2124.         volumeSoup.SetNamedTag("k5.b", nodeVolume[80]);
  2125.         volumeSoup.SetNamedTag("red1.out", nodeVolume[81]);
  2126.        
  2127.         Soup flowRateSoup = Constructors.NewSoup();
  2128.         float[] linkFlowRate = scheme.linkFlowRate;
  2129.         float[] alinkFlowRate = scheme.alinkFlowRate;
  2130.         flowRateSoup.SetNamedTag("k254_1.vr_b", linkFlowRate[0]);
  2131.         flowRateSoup.SetNamedTag("k395_1.d_at", alinkFlowRate[0]);
  2132.         flowRateSoup.SetNamedTag("red1.feed", linkFlowRate[1]);
  2133.         flowRateSoup.SetNamedTag("epka_1.tm_at", alinkFlowRate[1]);
  2134.         flowRateSoup.SetNamedTag("kp3.dump", alinkFlowRate[2]);
  2135.         flowRateSoup.SetNamedTag("k254_1.b_at", alinkFlowRate[3]);
  2136.         flowRateSoup.SetNamedTag("k395_1.gr_u_red", linkFlowRate[2]);
  2137.         flowRateSoup.SetNamedTag("k395_1.gr_u", linkFlowRate[3]);
  2138.         flowRateSoup.SetNamedTag("epka_1.k_at", alinkFlowRate[4]);
  2139.         flowRateSoup.SetNamedTag("rd2.dump", alinkFlowRate[5]);
  2140.         flowRateSoup.SetNamedTag("k254_1.tc_at", alinkFlowRate[6]);
  2141.         flowRateSoup.SetNamedTag("ubt_1.tc", linkFlowRate[4]);
  2142.         flowRateSoup.SetNamedTag("ubt_1.gr", linkFlowRate[5]);
  2143.         flowRateSoup.SetNamedTag("kn27", linkFlowRate[6]);
  2144.         flowRateSoup.SetNamedTag("tm_epka_1", linkFlowRate[7]);
  2145.         flowRateSoup.SetNamedTag("kn18", linkFlowRate[8]);
  2146.         flowRateSoup.SetNamedTag("epka_1.gr_k", linkFlowRate[9]);
  2147.         flowRateSoup.SetNamedTag("k395_1.u_s", linkFlowRate[10]);
  2148.         flowRateSoup.SetNamedTag("k395_1.u_at", alinkFlowRate[7]);
  2149.         flowRateSoup.SetNamedTag("k395_1.ur_d", linkFlowRate[11]);
  2150.         flowRateSoup.SetNamedTag("k395_1.ur_at", alinkFlowRate[8]);
  2151.         flowRateSoup.SetNamedTag("k395_1.ok", linkFlowRate[12]);
  2152.         flowRateSoup.SetNamedTag("rd2.feed", linkFlowRate[13]);
  2153.         flowRateSoup.SetNamedTag("ko4.in_out", linkFlowRate[14]);
  2154.         flowRateSoup.SetNamedTag("ubt_1.tm", linkFlowRate[15]);
  2155.         flowRateSoup.SetNamedTag("ubt_1.tm_at", alinkFlowRate[9]);
  2156.         flowRateSoup.SetNamedTag("k254_1.gr_tc", linkFlowRate[16]);
  2157.         flowRateSoup.SetNamedTag("k395_1.tm_gr", linkFlowRate[17]);
  2158.         flowRateSoup.SetNamedTag("k395_1.u_tm_gr", linkFlowRate[18]);
  2159.         flowRateSoup.SetNamedTag("k395_1.u_tm_at", alinkFlowRate[10]);
  2160.         flowRateSoup.SetNamedTag("k395_1.tm_at", alinkFlowRate[11]);
  2161.         flowRateSoup.SetNamedTag("ko3.in_out", linkFlowRate[19]);
  2162.         flowRateSoup.SetNamedTag("kn14", linkFlowRate[20]);
  2163.         flowRateSoup.SetNamedTag("pm_epka_1", linkFlowRate[21]);
  2164.         flowRateSoup.SetNamedTag("kn6", linkFlowRate[22]);
  2165.         flowRateSoup.SetNamedTag("evr.leak_rk", alinkFlowRate[12]);
  2166.         flowRateSoup.SetNamedTag("evr.vo", alinkFlowRate[13]);
  2167.         flowRateSoup.SetNamedTag("vr.kdr_at", alinkFlowRate[14]);
  2168.         flowRateSoup.SetNamedTag("vr.mk_at_sk", alinkFlowRate[15]);
  2169.         flowRateSoup.SetNamedTag("ko2.in_out", linkFlowRate[23]);
  2170.         flowRateSoup.SetNamedTag("evr.rd_rel", alinkFlowRate[16]);
  2171.         flowRateSoup.SetNamedTag("vr.sk_tc", linkFlowRate[24]);
  2172.         flowRateSoup.SetNamedTag("rd1.dump", alinkFlowRate[17]);
  2173.         flowRateSoup.SetNamedTag("k3.b_out", linkFlowRate[25]);
  2174.         flowRateSoup.SetNamedTag("k5.a_out", linkFlowRate[26]);
  2175.         flowRateSoup.SetNamedTag("k4.b_out", linkFlowRate[27]);
  2176.         flowRateSoup.SetNamedTag("k4.a_out", linkFlowRate[28]);
  2177.         flowRateSoup.SetNamedTag("k3.a_out", linkFlowRate[29]);
  2178.         flowRateSoup.SetNamedTag("red3.feed", linkFlowRate[30]);
  2179.         flowRateSoup.SetNamedTag("vr.mk_kdr", linkFlowRate[31]);
  2180.         flowRateSoup.SetNamedTag("vr.mk_sk", linkFlowRate[32]);
  2181.         flowRateSoup.SetNamedTag("vr.mk_zk", linkFlowRate[33]);
  2182.         flowRateSoup.SetNamedTag("rd1.feed", linkFlowRate[34]);
  2183.         flowRateSoup.SetNamedTag("kn12", linkFlowRate[35]);
  2184.         flowRateSoup.SetNamedTag("vt3", linkFlowRate[36]);
  2185.         flowRateSoup.SetNamedTag("vt2", linkFlowRate[37]);
  2186.         flowRateSoup.SetNamedTag("vr.tc_at", alinkFlowRate[18]);
  2187.         flowRateSoup.SetNamedTag("evr.vt", linkFlowRate[38]);
  2188.         flowRateSoup.SetNamedTag("evr.rd_feed", linkFlowRate[39]);
  2189.         flowRateSoup.SetNamedTag("vr.zk_tc_e", linkFlowRate[40]);
  2190.         flowRateSoup.SetNamedTag("vr.zk_tc", linkFlowRate[41]);
  2191.         flowRateSoup.SetNamedTag("kn11", linkFlowRate[42]);
  2192.         flowRateSoup.SetNamedTag("kn10", linkFlowRate[43]);
  2193.         flowRateSoup.SetNamedTag("evr.pk_evr", linkFlowRate[44]);
  2194.         flowRateSoup.SetNamedTag("evr.pk_vr", linkFlowRate[45]);
  2195.         flowRateSoup.SetNamedTag("vt1", linkFlowRate[46]);
  2196.         flowRateSoup.SetNamedTag("k5.b_out", linkFlowRate[47]);
  2197.        
  2198.         Soup objectsSoup = Constructors.NewSoup();
  2199.         SetCurrentObjectName("kp3");
  2200.         objectsSoup.SetNamedSoup("kp3", scheme.objects[0].GetProperties());
  2201.         SetCurrentObjectName("epka_1");
  2202.         objectsSoup.SetNamedSoup("epka_1", scheme.objects[1].GetProperties());
  2203.         SetCurrentObjectName("ubt_1");
  2204.         objectsSoup.SetNamedSoup("ubt_1", scheme.objects[2].GetProperties());
  2205.         SetCurrentObjectName("k395_1");
  2206.         objectsSoup.SetNamedSoup("k395_1", scheme.objects[3].GetProperties());
  2207.         SetCurrentObjectName("k254_1");
  2208.         objectsSoup.SetNamedSoup("k254_1", scheme.objects[4].GetProperties());
  2209.         SetCurrentObjectName("ko3");
  2210.         objectsSoup.SetNamedSoup("ko3", scheme.objects[5].GetProperties());
  2211.         SetCurrentObjectName("red1");
  2212.         objectsSoup.SetNamedSoup("red1", scheme.objects[6].GetProperties());
  2213.         SetCurrentObjectName("ko2");
  2214.         objectsSoup.SetNamedSoup("ko2", scheme.objects[7].GetProperties());
  2215.         SetCurrentObjectName("ko4");
  2216.         objectsSoup.SetNamedSoup("ko4", scheme.objects[8].GetProperties());
  2217.         SetCurrentObjectName("vr");
  2218.         objectsSoup.SetNamedSoup("vr", scheme.objects[9].GetProperties());
  2219.         SetCurrentObjectName("evr");
  2220.         objectsSoup.SetNamedSoup("evr", scheme.objects[10].GetProperties());
  2221.         SetCurrentObjectName("k3");
  2222.         objectsSoup.SetNamedSoup("k3", scheme.objects[11].GetProperties());
  2223.         SetCurrentObjectName("k4");
  2224.         objectsSoup.SetNamedSoup("k4", scheme.objects[12].GetProperties());
  2225.         SetCurrentObjectName("k5");
  2226.         objectsSoup.SetNamedSoup("k5", scheme.objects[13].GetProperties());
  2227.         SetCurrentObjectName("red3");
  2228.         objectsSoup.SetNamedSoup("red3", scheme.objects[14].GetProperties());
  2229.         SetCurrentObjectName("rd2");
  2230.         objectsSoup.SetNamedSoup("rd2", scheme.objects[15].GetProperties());
  2231.         SetCurrentObjectName("tc_4_10");
  2232.         objectsSoup.SetNamedSoup("tc_4_10", scheme.objects[16].GetProperties());
  2233.         SetCurrentObjectName("tc_5_11");
  2234.         objectsSoup.SetNamedSoup("tc_5_11", scheme.objects[17].GetProperties());
  2235.         SetCurrentObjectName("tc_6_12");
  2236.         objectsSoup.SetNamedSoup("tc_6_12", scheme.objects[18].GetProperties());
  2237.         SetCurrentObjectName("rd1");
  2238.         objectsSoup.SetNamedSoup("rd1", scheme.objects[19].GetProperties());
  2239.         SetCurrentObjectName("tc_3_9");
  2240.         objectsSoup.SetNamedSoup("tc_3_9", scheme.objects[20].GetProperties());
  2241.         SetCurrentObjectName("tc_2_8");
  2242.         objectsSoup.SetNamedSoup("tc_2_8", scheme.objects[21].GetProperties());
  2243.         SetCurrentObjectName("tc_1_7");
  2244.         objectsSoup.SetNamedSoup("tc_1_7", scheme.objects[22].GetProperties());
  2245.         ResetCurrentObjectName();
  2246.         Soup ret = Constructors.NewSoup();
  2247.         ret.SetNamedSoup("pressure", pressureSoup);
  2248.         ret.SetNamedSoup("volume", volumeSoup);
  2249.         ret.SetNamedSoup("flowrate", flowRateSoup);
  2250.         ret.SetNamedSoup("objects", objectsSoup);
  2251.         return ret;
  2252.     }
  2253.    
  2254.     public void SetSchemePropertiesInternal(tep70airscheme_instance scheme, Soup sp)
  2255.     {
  2256.         Soup pressureSoup = sp.GetNamedSoup("pressure");
  2257.         float[] p = scheme.nodePressure;
  2258.         p[0] = SPHelper.GetFloat(pressureSoup, "k254_1.r", p[0]);
  2259.         p[1] = SPHelper.GetFloat(pressureSoup, "k254_1.vr", p[1]);
  2260.         p[2] = SPHelper.GetFloat(pressureSoup, "k395_1.s", p[2]);
  2261.         p[3] = SPHelper.GetFloat(pressureSoup, "k395_1.d", p[3]);
  2262.         p[4] = SPHelper.GetFloat(pressureSoup, "epka_1.kvv", p[4]);
  2263.         p[5] = SPHelper.GetFloat(pressureSoup, "tc_6_12", p[5]);
  2264.         p[6] = SPHelper.GetFloat(pressureSoup, "red1.in", p[6]);
  2265.         p[7] = SPHelper.GetFloat(pressureSoup, "epka_1.tm", p[7]);
  2266.         p[8] = SPHelper.GetFloat(pressureSoup, "kp3", p[8]);
  2267.         p[9] = SPHelper.GetFloat(pressureSoup, "ur", p[9]);
  2268.         p[10] = SPHelper.GetFloat(pressureSoup, "mvt", p[10]);
  2269.         p[11] = SPHelper.GetFloat(pressureSoup, "k254_1.b", p[11]);
  2270.         p[12] = SPHelper.GetFloat(pressureSoup, "k395_1.gr", p[12]);
  2271.         p[13] = SPHelper.GetFloat(pressureSoup, "epka_1.k", p[13]);
  2272.         p[14] = SPHelper.GetFloat(pressureSoup, "tc_5_11", p[14]);
  2273.         p[15] = SPHelper.GetFloat(pressureSoup, "rd2.out", p[15]);
  2274.         p[16] = SPHelper.GetFloat(pressureSoup, "ko4.out", p[16]);
  2275.         p[17] = SPHelper.GetFloat(pressureSoup, "ko3.out", p[17]);
  2276.         p[18] = SPHelper.GetFloat(pressureSoup, "k254_1.tc", p[18]);
  2277.         p[19] = SPHelper.GetFloat(pressureSoup, "ubt_1.k_tm", p[19]);
  2278.         p[20] = SPHelper.GetFloat(pressureSoup, "ubt_1.tc", p[20]);
  2279.         p[21] = SPHelper.GetFloat(pressureSoup, "ubt_1.gr", p[21]);
  2280.         p[22] = SPHelper.GetFloat(pressureSoup, "rs2", p[22]);
  2281.         p[23] = SPHelper.GetFloat(pressureSoup, "rs1", p[23]);
  2282.         p[24] = SPHelper.GetFloat(pressureSoup, "tm", p[24]);
  2283.         p[25] = SPHelper.GetFloat(pressureSoup, "epka_1.gr", p[25]);
  2284.         p[26] = SPHelper.GetFloat(pressureSoup, "tc_4_10", p[26]);
  2285.         p[27] = SPHelper.GetFloat(pressureSoup, "ubt_1.k_tc", p[27]);
  2286.         p[28] = SPHelper.GetFloat(pressureSoup, "k395_1.u", p[28]);
  2287.         p[29] = SPHelper.GetFloat(pressureSoup, "k395_1.ur", p[29]);
  2288.         p[30] = SPHelper.GetFloat(pressureSoup, "rd2.feed", p[30]);
  2289.         p[31] = SPHelper.GetFloat(pressureSoup, "ko4.in", p[31]);
  2290.         p[32] = SPHelper.GetFloat(pressureSoup, "ubt_1.tm", p[32]);
  2291.         p[33] = SPHelper.GetFloat(pressureSoup, "k254_1.gr", p[33]);
  2292.         p[34] = SPHelper.GetFloat(pressureSoup, "tc_1", p[34]);
  2293.         p[35] = SPHelper.GetFloat(pressureSoup, "k395_1.tm", p[35]);
  2294.         p[36] = SPHelper.GetFloat(pressureSoup, "rs4", p[36]);
  2295.         p[37] = SPHelper.GetFloat(pressureSoup, "ubt_1.k_gr", p[37]);
  2296.         p[38] = SPHelper.GetFloat(pressureSoup, "ko3.in", p[38]);
  2297.         p[39] = SPHelper.GetFloat(pressureSoup, "pm", p[39]);
  2298.         p[40] = SPHelper.GetFloat(pressureSoup, "evr.rk", p[40]);
  2299.         p[41] = SPHelper.GetFloat(pressureSoup, "vr.kdr", p[41]);
  2300.         p[42] = SPHelper.GetFloat(pressureSoup, "vr.tm", p[42]);
  2301.         p[43] = SPHelper.GetFloat(pressureSoup, "tc_1_7", p[43]);
  2302.         p[44] = SPHelper.GetFloat(pressureSoup, "rd1.set", p[44]);
  2303.         p[45] = SPHelper.GetFloat(pressureSoup, "rd2.set", p[45]);
  2304.         p[46] = SPHelper.GetFloat(pressureSoup, "ko2.in", p[46]);
  2305.         p[47] = SPHelper.GetFloat(pressureSoup, "rs5", p[47]);
  2306.         p[48] = SPHelper.GetFloat(pressureSoup, "evr.rd_tc", p[48]);
  2307.         p[49] = SPHelper.GetFloat(pressureSoup, "vr.sk", p[49]);
  2308.         p[50] = SPHelper.GetFloat(pressureSoup, "tc_2_8", p[50]);
  2309.         p[51] = SPHelper.GetFloat(pressureSoup, "rd1.out", p[51]);
  2310.         p[52] = SPHelper.GetFloat(pressureSoup, "k3.b", p[52]);
  2311.         p[53] = SPHelper.GetFloat(pressureSoup, "k5.a", p[53]);
  2312.         p[54] = SPHelper.GetFloat(pressureSoup, "k4.b", p[54]);
  2313.         p[55] = SPHelper.GetFloat(pressureSoup, "k4.a", p[55]);
  2314.         p[56] = SPHelper.GetFloat(pressureSoup, "k3.a", p[56]);
  2315.         p[57] = SPHelper.GetFloat(pressureSoup, "red3.in", p[57]);
  2316.         p[58] = SPHelper.GetFloat(pressureSoup, "vr.zr", p[58]);
  2317.         p[59] = SPHelper.GetFloat(pressureSoup, "evr.vr_tc", p[59]);
  2318.         p[60] = SPHelper.GetFloat(pressureSoup, "ko2.out", p[60]);
  2319.         p[61] = SPHelper.GetFloat(pressureSoup, "evr.zr", p[61]);
  2320.         p[62] = SPHelper.GetFloat(pressureSoup, "tc_set", p[62]);
  2321.         p[63] = SPHelper.GetFloat(pressureSoup, "tc_3_9", p[63]);
  2322.         p[64] = SPHelper.GetFloat(pressureSoup, "vr.mk", p[64]);
  2323.         p[65] = SPHelper.GetFloat(pressureSoup, "rd1.feed", p[65]);
  2324.         p[66] = SPHelper.GetFloat(pressureSoup, "vt1_kn12", p[66]);
  2325.         p[67] = SPHelper.GetFloat(pressureSoup, "kn10_vt3", p[67]);
  2326.         p[68] = SPHelper.GetFloat(pressureSoup, "rs8", p[68]);
  2327.         p[69] = SPHelper.GetFloat(pressureSoup, "red3.out", p[69]);
  2328.         p[70] = SPHelper.GetFloat(pressureSoup, "evr.vr_zr", p[70]);
  2329.         p[71] = SPHelper.GetFloat(pressureSoup, "tc_2", p[71]);
  2330.         p[72] = SPHelper.GetFloat(pressureSoup, "vr.tc", p[72]);
  2331.         p[73] = SPHelper.GetFloat(pressureSoup, "k5.out", p[73]);
  2332.         p[74] = SPHelper.GetFloat(pressureSoup, "evr.rd_zr", p[74]);
  2333.         p[75] = SPHelper.GetFloat(pressureSoup, "vr.zk", p[75]);
  2334.         p[76] = SPHelper.GetFloat(pressureSoup, "rs3", p[76]);
  2335.         p[77] = SPHelper.GetFloat(pressureSoup, "evr.tc", p[77]);
  2336.         p[78] = SPHelper.GetFloat(pressureSoup, "k3.out", p[78]);
  2337.         p[79] = SPHelper.GetFloat(pressureSoup, "k4.out", p[79]);
  2338.         p[80] = SPHelper.GetFloat(pressureSoup, "k5.b", p[80]);
  2339.         p[81] = SPHelper.GetFloat(pressureSoup, "red1.out", p[81]);
  2340.        
  2341.         Soup volumeSoup = sp.GetNamedSoup("volume");
  2342.         float[] v = scheme.nodeVolume;
  2343.         v[0] = SPHelper.GetFloat(volumeSoup, "k254_1.r", v[0]);
  2344.         v[1] = SPHelper.GetFloat(volumeSoup, "k254_1.vr", v[1]);
  2345.         v[2] = SPHelper.GetFloat(volumeSoup, "k395_1.s", v[2]);
  2346.         v[3] = SPHelper.GetFloat(volumeSoup, "k395_1.d", v[3]);
  2347.         v[4] = SPHelper.GetFloat(volumeSoup, "epka_1.kvv", v[4]);
  2348.         v[5] = SPHelper.GetFloat(volumeSoup, "tc_6_12", v[5]);
  2349.         v[6] = SPHelper.GetFloat(volumeSoup, "red1.in", v[6]);
  2350.         v[7] = SPHelper.GetFloat(volumeSoup, "epka_1.tm", v[7]);
  2351.         v[8] = SPHelper.GetFloat(volumeSoup, "kp3", v[8]);
  2352.         v[9] = SPHelper.GetFloat(volumeSoup, "ur", v[9]);
  2353.         v[10] = SPHelper.GetFloat(volumeSoup, "mvt", v[10]);
  2354.         v[11] = SPHelper.GetFloat(volumeSoup, "k254_1.b", v[11]);
  2355.         v[12] = SPHelper.GetFloat(volumeSoup, "k395_1.gr", v[12]);
  2356.         v[13] = SPHelper.GetFloat(volumeSoup, "epka_1.k", v[13]);
  2357.         v[14] = SPHelper.GetFloat(volumeSoup, "tc_5_11", v[14]);
  2358.         v[15] = SPHelper.GetFloat(volumeSoup, "rd2.out", v[15]);
  2359.         v[16] = SPHelper.GetFloat(volumeSoup, "ko4.out", v[16]);
  2360.         v[17] = SPHelper.GetFloat(volumeSoup, "ko3.out", v[17]);
  2361.         v[18] = SPHelper.GetFloat(volumeSoup, "k254_1.tc", v[18]);
  2362.         v[19] = SPHelper.GetFloat(volumeSoup, "ubt_1.k_tm", v[19]);
  2363.         v[20] = SPHelper.GetFloat(volumeSoup, "ubt_1.tc", v[20]);
  2364.         v[21] = SPHelper.GetFloat(volumeSoup, "ubt_1.gr", v[21]);
  2365.         v[22] = SPHelper.GetFloat(volumeSoup, "rs2", v[22]);
  2366.         v[23] = SPHelper.GetFloat(volumeSoup, "rs1", v[23]);
  2367.         v[24] = SPHelper.GetFloat(volumeSoup, "tm", v[24]);
  2368.         v[25] = SPHelper.GetFloat(volumeSoup, "epka_1.gr", v[25]);
  2369.         v[26] = SPHelper.GetFloat(volumeSoup, "tc_4_10", v[26]);
  2370.         v[27] = SPHelper.GetFloat(volumeSoup, "ubt_1.k_tc", v[27]);
  2371.         v[28] = SPHelper.GetFloat(volumeSoup, "k395_1.u", v[28]);
  2372.         v[29] = SPHelper.GetFloat(volumeSoup, "k395_1.ur", v[29]);
  2373.         v[30] = SPHelper.GetFloat(volumeSoup, "rd2.feed", v[30]);
  2374.         v[31] = SPHelper.GetFloat(volumeSoup, "ko4.in", v[31]);
  2375.         v[32] = SPHelper.GetFloat(volumeSoup, "ubt_1.tm", v[32]);
  2376.         v[33] = SPHelper.GetFloat(volumeSoup, "k254_1.gr", v[33]);
  2377.         v[34] = SPHelper.GetFloat(volumeSoup, "tc_1", v[34]);
  2378.         v[35] = SPHelper.GetFloat(volumeSoup, "k395_1.tm", v[35]);
  2379.         v[36] = SPHelper.GetFloat(volumeSoup, "rs4", v[36]);
  2380.         v[37] = SPHelper.GetFloat(volumeSoup, "ubt_1.k_gr", v[37]);
  2381.         v[38] = SPHelper.GetFloat(volumeSoup, "ko3.in", v[38]);
  2382.         v[39] = SPHelper.GetFloat(volumeSoup, "pm", v[39]);
  2383.         v[40] = SPHelper.GetFloat(volumeSoup, "evr.rk", v[40]);
  2384.         v[41] = SPHelper.GetFloat(volumeSoup, "vr.kdr", v[41]);
  2385.         v[42] = SPHelper.GetFloat(volumeSoup, "vr.tm", v[42]);
  2386.         v[43] = SPHelper.GetFloat(volumeSoup, "tc_1_7", v[43]);
  2387.         v[44] = SPHelper.GetFloat(volumeSoup, "rd1.set", v[44]);
  2388.         v[45] = SPHelper.GetFloat(volumeSoup, "rd2.set", v[45]);
  2389.         v[46] = SPHelper.GetFloat(volumeSoup, "ko2.in", v[46]);
  2390.         v[47] = SPHelper.GetFloat(volumeSoup, "rs5", v[47]);
  2391.         v[48] = SPHelper.GetFloat(volumeSoup, "evr.rd_tc", v[48]);
  2392.         v[49] = SPHelper.GetFloat(volumeSoup, "vr.sk", v[49]);
  2393.         v[50] = SPHelper.GetFloat(volumeSoup, "tc_2_8", v[50]);
  2394.         v[51] = SPHelper.GetFloat(volumeSoup, "rd1.out", v[51]);
  2395.         v[52] = SPHelper.GetFloat(volumeSoup, "k3.b", v[52]);
  2396.         v[53] = SPHelper.GetFloat(volumeSoup, "k5.a", v[53]);
  2397.         v[54] = SPHelper.GetFloat(volumeSoup, "k4.b", v[54]);
  2398.         v[55] = SPHelper.GetFloat(volumeSoup, "k4.a", v[55]);
  2399.         v[56] = SPHelper.GetFloat(volumeSoup, "k3.a", v[56]);
  2400.         v[57] = SPHelper.GetFloat(volumeSoup, "red3.in", v[57]);
  2401.         v[58] = SPHelper.GetFloat(volumeSoup, "vr.zr", v[58]);
  2402.         v[59] = SPHelper.GetFloat(volumeSoup, "evr.vr_tc", v[59]);
  2403.         v[60] = SPHelper.GetFloat(volumeSoup, "ko2.out", v[60]);
  2404.         v[61] = SPHelper.GetFloat(volumeSoup, "evr.zr", v[61]);
  2405.         v[62] = SPHelper.GetFloat(volumeSoup, "tc_set", v[62]);
  2406.         v[63] = SPHelper.GetFloat(volumeSoup, "tc_3_9", v[63]);
  2407.         v[64] = SPHelper.GetFloat(volumeSoup, "vr.mk", v[64]);
  2408.         v[65] = SPHelper.GetFloat(volumeSoup, "rd1.feed", v[65]);
  2409.         v[66] = SPHelper.GetFloat(volumeSoup, "vt1_kn12", v[66]);
  2410.         v[67] = SPHelper.GetFloat(volumeSoup, "kn10_vt3", v[67]);
  2411.         v[68] = SPHelper.GetFloat(volumeSoup, "rs8", v[68]);
  2412.         v[69] = SPHelper.GetFloat(volumeSoup, "red3.out", v[69]);
  2413.         v[70] = SPHelper.GetFloat(volumeSoup, "evr.vr_zr", v[70]);
  2414.         v[71] = SPHelper.GetFloat(volumeSoup, "tc_2", v[71]);
  2415.         v[72] = SPHelper.GetFloat(volumeSoup, "vr.tc", v[72]);
  2416.         v[73] = SPHelper.GetFloat(volumeSoup, "k5.out", v[73]);
  2417.         v[74] = SPHelper.GetFloat(volumeSoup, "evr.rd_zr", v[74]);
  2418.         v[75] = SPHelper.GetFloat(volumeSoup, "vr.zk", v[75]);
  2419.         v[76] = SPHelper.GetFloat(volumeSoup, "rs3", v[76]);
  2420.         v[77] = SPHelper.GetFloat(volumeSoup, "evr.tc", v[77]);
  2421.         v[78] = SPHelper.GetFloat(volumeSoup, "k3.out", v[78]);
  2422.         v[79] = SPHelper.GetFloat(volumeSoup, "k4.out", v[79]);
  2423.         v[80] = SPHelper.GetFloat(volumeSoup, "k5.b", v[80]);
  2424.         v[81] = SPHelper.GetFloat(volumeSoup, "red1.out", v[81]);
  2425.        
  2426.         Soup flowrateSoup = sp.GetNamedSoup("flowrate");
  2427.         float[] afr = scheme.alinkFlowRate;
  2428.         float[] fr = scheme.linkFlowRate;
  2429.         fr[0] = SPHelper.GetFlowRate(flowrateSoup, "k254_1.vr_b", fr[0]);
  2430.         afr[0] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.d_at", afr[0]);
  2431.         fr[1] = SPHelper.GetFlowRate(flowrateSoup, "red1.feed", fr[1]);
  2432.         afr[1] = SPHelper.GetFlowRate(flowrateSoup, "epka_1.tm_at", afr[1]);
  2433.         afr[2] = SPHelper.GetFlowRate(flowrateSoup, "kp3.dump", afr[2]);
  2434.         afr[3] = SPHelper.GetFlowRate(flowrateSoup, "k254_1.b_at", afr[3]);
  2435.         fr[2] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.gr_u_red", fr[2]);
  2436.         fr[3] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.gr_u", fr[3]);
  2437.         afr[4] = SPHelper.GetFlowRate(flowrateSoup, "epka_1.k_at", afr[4]);
  2438.         afr[5] = SPHelper.GetFlowRate(flowrateSoup, "rd2.dump", afr[5]);
  2439.         afr[6] = SPHelper.GetFlowRate(flowrateSoup, "k254_1.tc_at", afr[6]);
  2440.         fr[4] = SPHelper.GetFlowRate(flowrateSoup, "ubt_1.tc", fr[4]);
  2441.         fr[5] = SPHelper.GetFlowRate(flowrateSoup, "ubt_1.gr", fr[5]);
  2442.         fr[6] = SPHelper.GetFlowRate(flowrateSoup, "kn27", fr[6]);
  2443.         fr[7] = SPHelper.GetFlowRate(flowrateSoup, "tm_epka_1", fr[7]);
  2444.         fr[8] = SPHelper.GetFlowRate(flowrateSoup, "kn18", fr[8]);
  2445.         fr[9] = SPHelper.GetFlowRate(flowrateSoup, "epka_1.gr_k", fr[9]);
  2446.         fr[10] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.u_s", fr[10]);
  2447.         afr[7] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.u_at", afr[7]);
  2448.         fr[11] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.ur_d", fr[11]);
  2449.         afr[8] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.ur_at", afr[8]);
  2450.         fr[12] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.ok", fr[12]);
  2451.         fr[13] = SPHelper.GetFlowRate(flowrateSoup, "rd2.feed", fr[13]);
  2452.         fr[14] = SPHelper.GetFlowRate(flowrateSoup, "ko4.in_out", fr[14]);
  2453.         fr[15] = SPHelper.GetFlowRate(flowrateSoup, "ubt_1.tm", fr[15]);
  2454.         afr[9] = SPHelper.GetFlowRate(flowrateSoup, "ubt_1.tm_at", afr[9]);
  2455.         fr[16] = SPHelper.GetFlowRate(flowrateSoup, "k254_1.gr_tc", fr[16]);
  2456.         fr[17] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.tm_gr", fr[17]);
  2457.         fr[18] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.u_tm_gr", fr[18]);
  2458.         afr[10] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.u_tm_at", afr[10]);
  2459.         afr[11] = SPHelper.GetFlowRate(flowrateSoup, "k395_1.tm_at", afr[11]);
  2460.         fr[19] = SPHelper.GetFlowRate(flowrateSoup, "ko3.in_out", fr[19]);
  2461.         fr[20] = SPHelper.GetFlowRate(flowrateSoup, "kn14", fr[20]);
  2462.         fr[21] = SPHelper.GetFlowRate(flowrateSoup, "pm_epka_1", fr[21]);
  2463.         fr[22] = SPHelper.GetFlowRate(flowrateSoup, "kn6", fr[22]);
  2464.         afr[12] = SPHelper.GetFlowRate(flowrateSoup, "evr.leak_rk", afr[12]);
  2465.         afr[13] = SPHelper.GetFlowRate(flowrateSoup, "evr.vo", afr[13]);
  2466.         afr[14] = SPHelper.GetFlowRate(flowrateSoup, "vr.kdr_at", afr[14]);
  2467.         afr[15] = SPHelper.GetFlowRate(flowrateSoup, "vr.mk_at_sk", afr[15]);
  2468.         fr[23] = SPHelper.GetFlowRate(flowrateSoup, "ko2.in_out", fr[23]);
  2469.         afr[16] = SPHelper.GetFlowRate(flowrateSoup, "evr.rd_rel", afr[16]);
  2470.         fr[24] = SPHelper.GetFlowRate(flowrateSoup, "vr.sk_tc", fr[24]);
  2471.         afr[17] = SPHelper.GetFlowRate(flowrateSoup, "rd1.dump", afr[17]);
  2472.         fr[25] = SPHelper.GetFlowRate(flowrateSoup, "k3.b_out", fr[25]);
  2473.         fr[26] = SPHelper.GetFlowRate(flowrateSoup, "k5.a_out", fr[26]);
  2474.         fr[27] = SPHelper.GetFlowRate(flowrateSoup, "k4.b_out", fr[27]);
  2475.         fr[28] = SPHelper.GetFlowRate(flowrateSoup, "k4.a_out", fr[28]);
  2476.         fr[29] = SPHelper.GetFlowRate(flowrateSoup, "k3.a_out", fr[29]);
  2477.         fr[30] = SPHelper.GetFlowRate(flowrateSoup, "red3.feed", fr[30]);
  2478.         fr[31] = SPHelper.GetFlowRate(flowrateSoup, "vr.mk_kdr", fr[31]);
  2479.         fr[32] = SPHelper.GetFlowRate(flowrateSoup, "vr.mk_sk", fr[32]);
  2480.         fr[33] = SPHelper.GetFlowRate(flowrateSoup, "vr.mk_zk", fr[33]);
  2481.         fr[34] = SPHelper.GetFlowRate(flowrateSoup, "rd1.feed", fr[34]);
  2482.         fr[35] = SPHelper.GetFlowRate(flowrateSoup, "kn12", fr[35]);
  2483.         fr[36] = SPHelper.GetFlowRate(flowrateSoup, "vt3", fr[36]);
  2484.         fr[37] = SPHelper.GetFlowRate(flowrateSoup, "vt2", fr[37]);
  2485.         afr[18] = SPHelper.GetFlowRate(flowrateSoup, "vr.tc_at", afr[18]);
  2486.         fr[38] = SPHelper.GetFlowRate(flowrateSoup, "evr.vt", fr[38]);
  2487.         fr[39] = SPHelper.GetFlowRate(flowrateSoup, "evr.rd_feed", fr[39]);
  2488.         fr[40] = SPHelper.GetFlowRate(flowrateSoup, "vr.zk_tc_e", fr[40]);
  2489.         fr[41] = SPHelper.GetFlowRate(flowrateSoup, "vr.zk_tc", fr[41]);
  2490.         fr[42] = SPHelper.GetFlowRate(flowrateSoup, "kn11", fr[42]);
  2491.         fr[43] = SPHelper.GetFlowRate(flowrateSoup, "kn10", fr[43]);
  2492.         fr[44] = SPHelper.GetFlowRate(flowrateSoup, "evr.pk_evr", fr[44]);
  2493.         fr[45] = SPHelper.GetFlowRate(flowrateSoup, "evr.pk_vr", fr[45]);
  2494.         fr[46] = SPHelper.GetFlowRate(flowrateSoup, "vt1", fr[46]);
  2495.         fr[47] = SPHelper.GetFlowRate(flowrateSoup, "k5.b_out", fr[47]);
  2496.        
  2497.         Soup objectsSoup = sp.GetNamedSoup("objects");
  2498.         SetCurrentObjectName("kp3");
  2499.         scheme.objects[0].SetProperties(objectsSoup.GetNamedSoup("kp3"));
  2500.         SetCurrentObjectName("epka_1");
  2501.         scheme.objects[1].SetProperties(objectsSoup.GetNamedSoup("epka_1"));
  2502.         SetCurrentObjectName("ubt_1");
  2503.         scheme.objects[2].SetProperties(objectsSoup.GetNamedSoup("ubt_1"));
  2504.         SetCurrentObjectName("k395_1");
  2505.         scheme.objects[3].SetProperties(objectsSoup.GetNamedSoup("k395_1"));
  2506.         SetCurrentObjectName("k254_1");
  2507.         scheme.objects[4].SetProperties(objectsSoup.GetNamedSoup("k254_1"));
  2508.         SetCurrentObjectName("ko3");
  2509.         scheme.objects[5].SetProperties(objectsSoup.GetNamedSoup("ko3"));
  2510.         SetCurrentObjectName("red1");
  2511.         scheme.objects[6].SetProperties(objectsSoup.GetNamedSoup("red1"));
  2512.         SetCurrentObjectName("ko2");
  2513.         scheme.objects[7].SetProperties(objectsSoup.GetNamedSoup("ko2"));
  2514.         SetCurrentObjectName("ko4");
  2515.         scheme.objects[8].SetProperties(objectsSoup.GetNamedSoup("ko4"));
  2516.         SetCurrentObjectName("vr");
  2517.         scheme.objects[9].SetProperties(objectsSoup.GetNamedSoup("vr"));
  2518.         SetCurrentObjectName("evr");
  2519.         scheme.objects[10].SetProperties(objectsSoup.GetNamedSoup("evr"));
  2520.         SetCurrentObjectName("k3");
  2521.         scheme.objects[11].SetProperties(objectsSoup.GetNamedSoup("k3"));
  2522.         SetCurrentObjectName("k4");
  2523.         scheme.objects[12].SetProperties(objectsSoup.GetNamedSoup("k4"));
  2524.         SetCurrentObjectName("k5");
  2525.         scheme.objects[13].SetProperties(objectsSoup.GetNamedSoup("k5"));
  2526.         SetCurrentObjectName("red3");
  2527.         scheme.objects[14].SetProperties(objectsSoup.GetNamedSoup("red3"));
  2528.         SetCurrentObjectName("rd2");
  2529.         scheme.objects[15].SetProperties(objectsSoup.GetNamedSoup("rd2"));
  2530.         SetCurrentObjectName("tc_4_10");
  2531.         scheme.objects[16].SetProperties(objectsSoup.GetNamedSoup("tc_4_10"));
  2532.         SetCurrentObjectName("tc_5_11");
  2533.         scheme.objects[17].SetProperties(objectsSoup.GetNamedSoup("tc_5_11"));
  2534.         SetCurrentObjectName("tc_6_12");
  2535.         scheme.objects[18].SetProperties(objectsSoup.GetNamedSoup("tc_6_12"));
  2536.         SetCurrentObjectName("rd1");
  2537.         scheme.objects[19].SetProperties(objectsSoup.GetNamedSoup("rd1"));
  2538.         SetCurrentObjectName("tc_3_9");
  2539.         scheme.objects[20].SetProperties(objectsSoup.GetNamedSoup("tc_3_9"));
  2540.         SetCurrentObjectName("tc_2_8");
  2541.         scheme.objects[21].SetProperties(objectsSoup.GetNamedSoup("tc_2_8"));
  2542.         SetCurrentObjectName("tc_1_7");
  2543.         scheme.objects[22].SetProperties(objectsSoup.GetNamedSoup("tc_1_7"));
  2544.         ResetCurrentObjectName();
  2545.        
  2546.     }
  2547.    
  2548.     public Soup GetProperties()
  2549.     {
  2550.         return inherited();
  2551.     }
  2552.    
  2553.     public void SetProperties(Soup sp)
  2554.     {
  2555.         inherited(sp);
  2556.     }
  2557.    
  2558.     public void Init(Asset asset)
  2559.     {
  2560.         inherited(asset);
  2561.        
  2562.         InitSpec();
  2563.     }
  2564. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement