/*
 * This code is generated by BioUML FrameWork 
 * for BIOMD0000000070.xml diagram  at 2008.03.20 15:04:57
 */
import biouml.plugins.simulation.ae.NewtonSolver;
import biouml.plugins.simulation.java.JavaBaseModel;
import ru.biosoft.math.MathRoutines;

public class BIOMD0000000070 extends JavaBaseModel
{

/*
 * Write rules to calculate equation parameters
 */


/*
 * Write rules to calculate equation parameters excluding internal variables.
 */
    public void __internalRateVarInitFunc_0(double time, double[] x)
    {
        rate_vAK = compartment*(vAK_Vmaxv16/(vAK_KATPv16*vAK_KAMPv16)*(x[20]*x[1] - x[18]*x[0]/vAK_Keqv16)/((1 + x[20]/vAK_KATPv16)*(1 + x[1]/vAK_KAMPv16) + (x[18] + x[0])/vAK_KADPv16 + x[18]*x[0]/Math.pow(vAK_KADPv16, 2)));
        rate_vALD = compartment*(vALD_Vmaxv4/vALD_KFru16P2v4*(x[5] - x[12]*x[3]/vALD_Keqv4)/(1 + x[5]/vALD_KFru16P2v4 + x[12]/vALD_KiGraPv4 + x[3]*(x[12] + vALD_KGraPv4)/(vALD_KDHAPv4*vALD_KiGraPv4) + x[5]*x[12]/(vALD_KFru16P2v4*vALD_KiiGraPv4)));
        rate_vATPase = compartment*vATPase_kATPasev15*x[20];
        rate_vBPGM = compartment*(vBPGM_kDPGMv8*(x[13] - (x[14] + x[21])/vBPGM_Keqv8)/(1 + (x[14] + x[21])/vBPGM_K23P2Gv8));
        rate_vBPGP = compartment*(vBPGP_Vmaxv9*(x[14] + x[21] - x[16]/vBPGP_Keqv9)/(x[14] + x[21] + vBPGP_K23P2Gv9));
        rate_vENO = compartment*(vENO_Vmaxv11*(x[15] - x[33]/vENO_Keqv11)/(x[15] + vENO_K2PGv11*(1 + x[33]/vENO_KPEPv11)));
        rate_vG6PDH = compartment*(vG6PDH_Vmaxv17/vG6PDH_KG6Pv17/vG6PDH_KNADPv17*(x[9]*x[26] - x[10]*x[25]/vG6PDH_Keqv17)/(1 + x[26]*(1 + x[9]/vG6PDH_KG6Pv17)/vG6PDH_KNADPv17 + (x[2] + x[20])/vG6PDH_KATPv17 + x[25]/vG6PDH_KNADPHv17 + (x[14] + x[21])/vG6PDH_KPGA23v17));
        rate_vGAPDH = compartment*(vGAPDH_Vmaxv6/(vGAPDH_KNADv6*vGAPDH_KGraPv6*vGAPDH_KPv6)*(x[23]*x[12]*x[34] - x[13]*x[24]/vGAPDH_Keqv6)/((1 + x[23]/vGAPDH_KNADv6)*(1 + x[12]/vGAPDH_KGraPv6)*(1 + x[34]/vGAPDH_KPv6) + (1 + x[24]/vGAPDH_KNADHv6)*(1 + x[13]/vGAPDH_K13P2Gv6) - 1));
        rate_vGLT = compartment*(vGLT_Vmaxv0/vGLT_KMoutv0*(_compartment_Glcout_ - x[11]/vGLT_Keqv0)/(1 + _compartment_Glcout_/vGLT_KMoutv0 + x[11]/vGLT_KMinv0 + vGLT_alfav0*_compartment_Glcout_*x[11]/vGLT_KMoutv0/vGLT_KMinv0));
        rate_vGPI = compartment*(vGPI_Vmaxv2*(x[9] - x[6]/vGPI_Keqv2)/(x[9] + vGPI_KGlc6Pv2*(1 + x[6]/vGPI_KFru6Pv2)));
        rate_vGSHox = compartment*vGSHox_Kv20*x[7];
        rate_vGSSGRD = compartment*(vGSSGRD_Vmaxv19*(x[8]*x[25]/(vGSSGRD_KGSSGv19*vGSSGRD_KNADPHv19) - Math.pow(x[7], 2)/Math.pow(vGSSGRD_KGSHv19, 2)*x[26]/(vGSSGRD_KNADPv19*vGSSGRD_Keqv19))/(1 + x[25]*(1 + x[8]/vGSSGRD_KGSSGv19)/vGSSGRD_KNADPHv19 + x[26]/vGSSGRD_KNADPv19*(1 + x[7]*(1 + x[7]/vGSSGRD_KGSHv19)/vGSSGRD_KGSHv19)));
        rate_vHEX = compartment*(vHEX_Inhibv1*x[11]/(x[11] + vHEX_KMGlcv1)*(vHEX_Vmax1v1/vHEX_KMgATPv1)*(x[20] + vHEX_Vmax2v1/vHEX_Vmax1v1*x[20]*x[22]/vHEX_KMgATPMgv1 - x[9]*x[18]/vHEX_Keqv1)/(1 + x[20]/vHEX_KMgATPv1*(1 + x[22]/vHEX_KMgATPMgv1) + x[22]/vHEX_KMgv1 + (1.55 + x[9]/vHEX_KGlc6Pv1)*(1 + x[22]/vHEX_KMgv1) + (x[14] + x[21])/vHEX_K23P2Gv1 + x[22]*(x[14] + x[21])/(vHEX_KMgv1*vHEX_KMg23P2Gv1)));
        rate_vLDHNADH = compartment*vLDHNADH_Vmaxv13*(x[35]*x[24] - x[17]*x[23]/vLDHNADH_Keqv13);
        rate_vLDHNADPH = compartment*vLDHNADPH_kLDHv14*(x[35]*x[25] - x[17]*x[26]/vLDHNADPH_Keqv14);
        rate_vLacexch = compartment*vLacexch_Vmaxv28*(_compartment_Lacex_ - x[17]/vLacexch_Keqv28);
        rate_vMgADP = compartment*vMgADP_EqMult*(x[18] - x[22]*x[0]/vMgADP_KdADP);
        rate_vMgAMP = compartment*vMgAMP_EqMult*(x[19] - x[22]*x[1]/vMgAMP_KdAMP);
        rate_vMgATP = compartment*vMgATP_EqMult*(x[20] - x[22]*x[2]/vMgATP_KdATP);
        rate_vMgGri23P2 = compartment*vMgGri23P2_EqMult*(x[21] - x[22]*x[14]/vMgGri23P2_Kd23P2G);
        rate_vP1NADP = compartment*vP1NADP_EqMult*(x[27] - x[29]*x[26]/vP1NADP_Kd1);
        rate_vP1NADPH = compartment*vP1NADPH_EqMult*(x[28] - x[29]*x[25]/vP1NADPH_Kd3);
        rate_vP2NADP = compartment*vP2NADP_EqMult*(x[30] - x[32]*x[26]/vP2NADP_Kd2);
        rate_vP2NADPH = compartment*vP2NADPH_EqMult*(x[31] - x[32]*x[25]/vP2NADPH_Kd4);
        rate_vPFK = compartment*(vPFK_Vmaxv3*(x[6]*x[20] - x[5]*x[18]/vPFK_Keqv3)/((x[6] + vPFK_KFru6Pv3)*(x[20] + vPFK_KMgATPv3)*(1 + vPFK_L0v3*Math.pow(((1 + x[2]/vPFK_KATPv3)*(1 + x[22]/vPFK_KMgv3)/((1 + (x[1] + x[19])/vPFK_KAMPv3)*(1 + x[6]/vPFK_KFru6Pv3))), 4))));
        rate_vPGK = compartment*(vPGK_Vmaxv7/(vPGK_KMgADPv7*vPGK_K13P2Gv7)*(x[18]*x[13] - x[20]*x[16]/vPGK_Keqv7)/((1 + x[18]/vPGK_KMgADPv7)*(1 + x[13]/vPGK_K13P2Gv7) + (1 + x[20]/vPGK_KMgATPv7)*(1 + x[16]/vPGK_K3PGv7) - 1));
        rate_vPGLDH = compartment*(vPGLDH_Vmaxv18/vPGLDH_K6PG1v18/vPGLDH_KNADPv18*(x[10]*x[26] - x[37]*x[25]/vPGLDH_Keqv18)/((1 + x[26]/vPGLDH_KNADPv18)*(1 + x[10]/vPGLDH_K6PG1v18 + (x[14] + x[21])/vPGLDH_KPGA23v18) + (x[2] + x[20])/vPGLDH_KATPv18 + x[25]*(1 + x[10]/vPGLDH_K6PG2v18)/vPGLDH_KNADPHv18));
        rate_vPGM = compartment*(vPGM_Vmaxv10*(x[16] - x[15]/vPGM_Keqv10)/(x[16] + vPGM_K3PGv10*(1 + x[15]/vPGM_K2PGv10)));
        rate_vPK = compartment*(vPK_Vmaxv12*(x[33]*x[18] - x[35]*x[20]/vPK_Keqv12)/((x[33] + vPK_KPEPv12)*(x[18] + vPK_KMgADPv12)*(1 + vPK_L0v12*Math.pow((1 + (x[2] + x[20])/vPK_KATPv12), 4)/(Math.pow((1 + x[33]/vPK_KPEPv12), 4)*Math.pow((1 + x[5]/vPK_KFru16P2v12), 4)))));
        rate_vPPRPPS = compartment*(vPPRPPS_Vmaxv25*(x[36]*x[20] - _compartment_PRPP_*x[19]/vPPRPPS_Keqv25)/((vPPRPPS_KATPv25 + x[20])*(vPPRPPS_KR5Pv25 + x[36])));
        rate_vPhiexch = compartment*vPhiexch_Vmaxv27*(_compartment_Phiex_ - x[34]/vPhiexch_Keqv27);
        rate_vPyrexch = compartment*vPyrexch_Vmaxv29*(_compartment_Pyrex_ - x[35]/vPyrexch_Keqv29);
        rate_vRibPepi = compartment*(vRibPepi_Vmaxv21*(x[37] - x[39]/vRibPepi_Keqv21)/(x[37] + vRibPepi_KRu5Pv21*(1 + x[39]/vRibPepi_KX5Pv21)));
        rate_vRibPiso = compartment*(vRibPiso_Vmaxv22*(x[37] - x[36]/vRibPiso_Keqv22)/(x[37] + vRibPiso_KRu5Pv22*(1 + x[36]/vRibPiso_KR5Pv22)));
        rate_vTPI = compartment*(vTPI_Vmaxv5*(x[3] - x[12]/vTPI_Keqv5)/(x[3] + vTPI_KDHAPv5*(1 + x[12]/vTPI_KGraPv5)));
        rate_vTrAld = compartment*(vTrAld_Vmaxv24*(x[38]*x[12] - x[4]*x[6]/vTrAld_Keqv24)/((vTrAld_K1v24 + x[12])*x[38] + (vTrAld_K2v24 + vTrAld_K6v24*x[6])*x[12] + (vTrAld_K3v24 + vTrAld_K5v24*x[6])*x[4] + vTrAld_K4v24*x[6] + vTrAld_K7v24*x[38]*x[4]));
        rate_vTrKet1 = compartment*(vTrKet1_Vmaxv23*(x[36]*x[39] - x[12]*x[38]/vTrKet1_Keqv23)/((vTrKet1_K1v23 + x[36])*x[39] + (vTrKet1_K2v23 + vTrKet1_K6v23*x[38])*x[36] + (vTrKet1_K3v23 + vTrKet1_K5v23*x[38])*x[12] + vTrKet1_K4v23*x[38] + vTrKet1_K7v23*x[39]*x[12]));
        rate_vTrKet2 = compartment*(vTrKet2_Vmaxv26*(x[4]*x[39] - x[12]*x[6]/vTrKet2_Keqv26)/((vTrKet2_K1v26 + x[4])*x[39] + (vTrKet2_K2v26 + vTrKet2_K6v26*x[6])*x[4] + (vTrKet2_K3v26 + vTrKet2_K5v26*x[6])*x[12] + vTrKet2_K4v26*x[6] + vTrKet2_K7v26*x[39]*x[12]));
    }

    public void Init()
    {
        initialValues = getInitialValues();
/*
 * Initialize variables
 */
        _compartment_Glcout_ = 5.0; // initial value of $"compartment.Glcout"
        _compartment_Lacex_ = 1.68; // initial value of $"compartment.Lacex"
        _compartment_PRPP_ = 1.0; // initial value of $"compartment.PRPP"
        _compartment_Phiex_ = 1.0; // initial value of $"compartment.Phiex"
        _compartment_Pyrex_ = 0.084; // initial value of $"compartment.Pyrex"
        compartment = 1.0; // initial value of $compartment
        vAK_KADPv16 = 0.11; // initial value of vAK_KADPv16
        vAK_KAMPv16 = 0.08; // initial value of vAK_KAMPv16
        vAK_KATPv16 = 0.09; // initial value of vAK_KATPv16
        vAK_Keqv16 = 0.25; // initial value of vAK_Keqv16
        vAK_Vmaxv16 = 1380.0; // initial value of vAK_Vmaxv16
        vALD_KDHAPv4 = 0.0364; // initial value of vALD_KDHAPv4
        vALD_KFru16P2v4 = 0.0071; // initial value of vALD_KFru16P2v4
        vALD_KGraPv4 = 0.1906; // initial value of vALD_KGraPv4
        vALD_Keqv4 = 0.114; // initial value of vALD_Keqv4
        vALD_KiGraPv4 = 0.0572; // initial value of vALD_KiGraPv4
        vALD_KiiGraPv4 = 0.176; // initial value of vALD_KiiGraPv4
        vALD_Vmaxv4 = 98.91000366; // initial value of vALD_Vmaxv4
        vATPase_kATPasev15 = 1.68; // initial value of vATPase_kATPasev15
        vBPGM_K23P2Gv8 = 0.04; // initial value of vBPGM_K23P2Gv8
        vBPGM_Keqv8 = 100000.0; // initial value of vBPGM_Keqv8
        vBPGM_kDPGMv8 = 76000.0; // initial value of vBPGM_kDPGMv8
        vBPGP_K23P2Gv9 = 0.2; // initial value of vBPGP_K23P2Gv9
        vBPGP_Keqv9 = 100000.0; // initial value of vBPGP_Keqv9
        vBPGP_Vmaxv9 = 0.53; // initial value of vBPGP_Vmaxv9
        vENO_K2PGv11 = 1.0; // initial value of vENO_K2PGv11
        vENO_KPEPv11 = 1.0; // initial value of vENO_KPEPv11
        vENO_Keqv11 = 1.7; // initial value of vENO_Keqv11
        vENO_Vmaxv11 = 1500.0; // initial value of vENO_Vmaxv11
        vG6PDH_KATPv17 = 0.749; // initial value of vG6PDH_KATPv17
        vG6PDH_KG6Pv17 = 0.0667; // initial value of vG6PDH_KG6Pv17
        vG6PDH_KNADPHv17 = 0.00312; // initial value of vG6PDH_KNADPHv17
        vG6PDH_KNADPv17 = 0.00367; // initial value of vG6PDH_KNADPv17
        vG6PDH_KPGA23v17 = 2.289; // initial value of vG6PDH_KPGA23v17
        vG6PDH_Keqv17 = 2000.0; // initial value of vG6PDH_Keqv17
        vG6PDH_Vmaxv17 = 162.0; // initial value of vG6PDH_Vmaxv17
        vGAPDH_K13P2Gv6 = 0.0035; // initial value of vGAPDH_K13P2Gv6
        vGAPDH_KGraPv6 = 0.0050; // initial value of vGAPDH_KGraPv6
        vGAPDH_KNADHv6 = 0.0083; // initial value of vGAPDH_KNADHv6
        vGAPDH_KNADv6 = 0.05; // initial value of vGAPDH_KNADv6
        vGAPDH_KPv6 = 3.9; // initial value of vGAPDH_KPv6
        vGAPDH_Keqv6 = 1.92E-4; // initial value of vGAPDH_Keqv6
        vGAPDH_Vmaxv6 = 4300.0; // initial value of vGAPDH_Vmaxv6
        vGLT_KMinv0 = 6.9; // initial value of vGLT_KMinv0
        vGLT_KMoutv0 = 1.7; // initial value of vGLT_KMoutv0
        vGLT_Keqv0 = 1.0; // initial value of vGLT_Keqv0
        vGLT_Vmaxv0 = 33.6; // initial value of vGLT_Vmaxv0
        vGLT_alfav0 = 0.54; // initial value of vGLT_alfav0
        vGPI_KFru6Pv2 = 0.071; // initial value of vGPI_KFru6Pv2
        vGPI_KGlc6Pv2 = 0.182; // initial value of vGPI_KGlc6Pv2
        vGPI_Keqv2 = 0.3925; // initial value of vGPI_Keqv2
        vGPI_Vmaxv2 = 935.0; // initial value of vGPI_Vmaxv2
        vGSHox_Kv20 = 0.03; // initial value of vGSHox_Kv20
        vGSSGRD_KGSHv19 = 20.0; // initial value of vGSSGRD_KGSHv19
        vGSSGRD_KGSSGv19 = 0.0652; // initial value of vGSSGRD_KGSSGv19
        vGSSGRD_KNADPHv19 = 0.00852; // initial value of vGSSGRD_KNADPHv19
        vGSSGRD_KNADPv19 = 0.07; // initial value of vGSSGRD_KNADPv19
        vGSSGRD_Keqv19 = 1.04; // initial value of vGSSGRD_Keqv19
        vGSSGRD_Vmaxv19 = 90.0; // initial value of vGSSGRD_Vmaxv19
        vHEX_Inhibv1 = 1.0; // initial value of vHEX_Inhibv1
        vHEX_K23P2Gv1 = 2.7; // initial value of vHEX_K23P2Gv1
        vHEX_KGlc6Pv1 = 0.0045; // initial value of vHEX_KGlc6Pv1
        vHEX_KMGlcv1 = 0.1; // initial value of vHEX_KMGlcv1
        vHEX_KMg23P2Gv1 = 3.44; // initial value of vHEX_KMg23P2Gv1
        vHEX_KMgATPMgv1 = 1.14; // initial value of vHEX_KMgATPMgv1
        vHEX_KMgATPv1 = 1.44; // initial value of vHEX_KMgATPv1
        vHEX_KMgv1 = 1.03; // initial value of vHEX_KMgv1
        vHEX_Keqv1 = 3900.0; // initial value of vHEX_Keqv1
        vHEX_Vmax1v1 = 15.8; // initial value of vHEX_Vmax1v1
        vHEX_Vmax2v1 = 33.2; // initial value of vHEX_Vmax2v1
        vLDHNADH_Keqv13 = 9090.0; // initial value of vLDHNADH_Keqv13
        vLDHNADH_Vmaxv13 = 2800000.0; // initial value of vLDHNADH_Vmaxv13
        vLDHNADPH_Keqv14 = 14181.8; // initial value of vLDHNADPH_Keqv14
        vLDHNADPH_kLDHv14 = 243.4; // initial value of vLDHNADPH_kLDHv14
        vLacexch_Keqv28 = 1.0; // initial value of vLacexch_Keqv28
        vLacexch_Vmaxv28 = 10000.0; // initial value of vLacexch_Vmaxv28
        vMgADP_EqMult = 1.0E7; // initial value of vMgADP_EqMult
        vMgADP_KdADP = 0.76; // initial value of vMgADP_KdADP
        vMgAMP_EqMult = 1.0E7; // initial value of vMgAMP_EqMult
        vMgAMP_KdAMP = 16.64; // initial value of vMgAMP_KdAMP
        vMgATP_EqMult = 1.0E7; // initial value of vMgATP_EqMult
        vMgATP_KdATP = 0.072; // initial value of vMgATP_KdATP
        vMgGri23P2_EqMult = 1.0E7; // initial value of vMgGri23P2_EqMult
        vMgGri23P2_Kd23P2G = 1.667; // initial value of vMgGri23P2_Kd23P2G
        vP1NADPH_EqMult = 1.0E7; // initial value of vP1NADPH_EqMult
        vP1NADPH_Kd3 = 1.0E-5; // initial value of vP1NADPH_Kd3
        vP1NADP_EqMult = 1.0E7; // initial value of vP1NADP_EqMult
        vP1NADP_Kd1 = 2.0E-4; // initial value of vP1NADP_Kd1
        vP2NADPH_EqMult = 1.0E7; // initial value of vP2NADPH_EqMult
        vP2NADPH_Kd4 = 2.0E-4; // initial value of vP2NADPH_Kd4
        vP2NADP_EqMult = 1.0E7; // initial value of vP2NADP_EqMult
        vP2NADP_Kd2 = 1.0E-5; // initial value of vP2NADP_Kd2
        vPFK_KAMPv3 = 0.033; // initial value of vPFK_KAMPv3
        vPFK_KATPv3 = 0.01; // initial value of vPFK_KATPv3
        vPFK_KFru6Pv3 = 0.1; // initial value of vPFK_KFru6Pv3
        vPFK_KMgATPv3 = 0.068; // initial value of vPFK_KMgATPv3
        vPFK_KMgv3 = 0.44; // initial value of vPFK_KMgv3
        vPFK_Keqv3 = 100000.0; // initial value of vPFK_Keqv3
        vPFK_L0v3 = 0.001072; // initial value of vPFK_L0v3
        vPFK_Vmaxv3 = 239.0; // initial value of vPFK_Vmaxv3
        vPGK_K13P2Gv7 = 0.0020; // initial value of vPGK_K13P2Gv7
        vPGK_K3PGv7 = 1.2; // initial value of vPGK_K3PGv7
        vPGK_KMgADPv7 = 0.35; // initial value of vPGK_KMgADPv7
        vPGK_KMgATPv7 = 0.48; // initial value of vPGK_KMgATPv7
        vPGK_Keqv7 = 1455.0; // initial value of vPGK_Keqv7
        vPGK_Vmaxv7 = 5000.0; // initial value of vPGK_Vmaxv7
        vPGLDH_K6PG1v18 = 0.01; // initial value of vPGLDH_K6PG1v18
        vPGLDH_K6PG2v18 = 0.058; // initial value of vPGLDH_K6PG2v18
        vPGLDH_KATPv18 = 0.154; // initial value of vPGLDH_KATPv18
        vPGLDH_KNADPHv18 = 0.0045; // initial value of vPGLDH_KNADPHv18
        vPGLDH_KNADPv18 = 0.018; // initial value of vPGLDH_KNADPv18
        vPGLDH_KPGA23v18 = 0.12; // initial value of vPGLDH_KPGA23v18
        vPGLDH_Keqv18 = 141.7; // initial value of vPGLDH_Keqv18
        vPGLDH_Vmaxv18 = 1575.0; // initial value of vPGLDH_Vmaxv18
        vPGM_K2PGv10 = 1.0; // initial value of vPGM_K2PGv10
        vPGM_K3PGv10 = 5.0; // initial value of vPGM_K3PGv10
        vPGM_Keqv10 = 0.145; // initial value of vPGM_Keqv10
        vPGM_Vmaxv10 = 2000.0; // initial value of vPGM_Vmaxv10
        vPK_KATPv12 = 3.39; // initial value of vPK_KATPv12
        vPK_KFru16P2v12 = 0.0050; // initial value of vPK_KFru16P2v12
        vPK_KMgADPv12 = 0.474; // initial value of vPK_KMgADPv12
        vPK_KPEPv12 = 0.225; // initial value of vPK_KPEPv12
        vPK_Keqv12 = 13790.0; // initial value of vPK_Keqv12
        vPK_L0v12 = 19.0; // initial value of vPK_L0v12
        vPK_Vmaxv12 = 570.0; // initial value of vPK_Vmaxv12
        vPPRPPS_KATPv25 = 0.03; // initial value of vPPRPPS_KATPv25
        vPPRPPS_KR5Pv25 = 0.57; // initial value of vPPRPPS_KR5Pv25
        vPPRPPS_Keqv25 = 100000.0; // initial value of vPPRPPS_Keqv25
        vPPRPPS_Vmaxv25 = 1.1; // initial value of vPPRPPS_Vmaxv25
        vPhiexch_Keqv27 = 1.0; // initial value of vPhiexch_Keqv27
        vPhiexch_Vmaxv27 = 100.0; // initial value of vPhiexch_Vmaxv27
        vPyrexch_Keqv29 = 1.0; // initial value of vPyrexch_Keqv29
        vPyrexch_Vmaxv29 = 10000.0; // initial value of vPyrexch_Vmaxv29
        vRibPepi_KRu5Pv21 = 0.19; // initial value of vRibPepi_KRu5Pv21
        vRibPepi_KX5Pv21 = 0.5; // initial value of vRibPepi_KX5Pv21
        vRibPepi_Keqv21 = 2.7; // initial value of vRibPepi_Keqv21
        vRibPepi_Vmaxv21 = 4634.0; // initial value of vRibPepi_Vmaxv21
        vRibPiso_KR5Pv22 = 2.2; // initial value of vRibPiso_KR5Pv22
        vRibPiso_KRu5Pv22 = 0.78; // initial value of vRibPiso_KRu5Pv22
        vRibPiso_Keqv22 = 3.0; // initial value of vRibPiso_Keqv22
        vRibPiso_Vmaxv22 = 730.0; // initial value of vRibPiso_Vmaxv22
        vTPI_KDHAPv5 = 0.838; // initial value of vTPI_KDHAPv5
        vTPI_KGraPv5 = 0.428; // initial value of vTPI_KGraPv5
        vTPI_Keqv5 = 0.0407; // initial value of vTPI_Keqv5
        vTPI_Vmaxv5 = 5456.600098; // initial value of vTPI_Vmaxv5
        vTrAld_K1v24 = 0.00823; // initial value of vTrAld_K1v24
        vTrAld_K2v24 = 0.04765; // initial value of vTrAld_K2v24
        vTrAld_K3v24 = 0.1733; // initial value of vTrAld_K3v24
        vTrAld_K4v24 = 0.006095; // initial value of vTrAld_K4v24
        vTrAld_K5v24 = 0.8683; // initial value of vTrAld_K5v24
        vTrAld_K6v24 = 0.4653; // initial value of vTrAld_K6v24
        vTrAld_K7v24 = 2.524; // initial value of vTrAld_K7v24
        vTrAld_Keqv24 = 1.05; // initial value of vTrAld_Keqv24
        vTrAld_Vmaxv24 = 27.2; // initial value of vTrAld_Vmaxv24
        vTrKet1_K1v23 = 0.4177; // initial value of vTrKet1_K1v23
        vTrKet1_K2v23 = 0.3055; // initial value of vTrKet1_K2v23
        vTrKet1_K3v23 = 12.432; // initial value of vTrKet1_K3v23
        vTrKet1_K4v23 = 0.00496; // initial value of vTrKet1_K4v23
        vTrKet1_K5v23 = 0.41139; // initial value of vTrKet1_K5v23
        vTrKet1_K6v23 = 0.00774; // initial value of vTrKet1_K6v23
        vTrKet1_K7v23 = 48.8; // initial value of vTrKet1_K7v23
        vTrKet1_Keqv23 = 1.05; // initial value of vTrKet1_Keqv23
        vTrKet1_Vmaxv23 = 23.5; // initial value of vTrKet1_Vmaxv23
        vTrKet2_K1v26 = 0.00184; // initial value of vTrKet2_K1v26
        vTrKet2_K2v26 = 0.3055; // initial value of vTrKet2_K2v26
        vTrKet2_K3v26 = 0.0548; // initial value of vTrKet2_K3v26
        vTrKet2_K4v26 = 3.0E-4; // initial value of vTrKet2_K4v26
        vTrKet2_K5v26 = 0.0287; // initial value of vTrKet2_K5v26
        vTrKet2_K6v26 = 0.122; // initial value of vTrKet2_K6v26
        vTrKet2_K7v26 = 0.215; // initial value of vTrKet2_K7v26
        vTrKet2_Keqv26 = 1.2; // initial value of vTrKet2_Keqv26
        vTrKet2_Vmaxv26 = 23.5; // initial value of vTrKet2_Vmaxv26
    }

    /*
     * Model variables initial values
     */
    protected double _compartment_Glcout_;
    protected double _compartment_Lacex_;
    protected double _compartment_PRPP_;
    protected double _compartment_Phiex_;
    protected double _compartment_Pyrex_;
    protected double rate_vAK;
    protected double rate_vALD;
    protected double rate_vATPase;
    protected double rate_vBPGM;
    protected double rate_vBPGP;
    protected double rate_vENO;
    protected double rate_vG6PDH;
    protected double rate_vGAPDH;
    protected double rate_vGLT;
    protected double rate_vGPI;
    protected double rate_vGSHox;
    protected double rate_vGSSGRD;
    protected double rate_vHEX;
    protected double rate_vLDHNADH;
    protected double rate_vLDHNADPH;
    protected double rate_vLacexch;
    protected double rate_vMgADP;
    protected double rate_vMgAMP;
    protected double rate_vMgATP;
    protected double rate_vMgGri23P2;
    protected double rate_vP1NADP;
    protected double rate_vP1NADPH;
    protected double rate_vP2NADP;
    protected double rate_vP2NADPH;
    protected double rate_vPFK;
    protected double rate_vPGK;
    protected double rate_vPGLDH;
    protected double rate_vPGM;
    protected double rate_vPK;
    protected double rate_vPPRPPS;
    protected double rate_vPhiexch;
    protected double rate_vPyrexch;
    protected double rate_vRibPepi;
    protected double rate_vRibPiso;
    protected double rate_vTPI;
    protected double rate_vTrAld;
    protected double rate_vTrKet1;
    protected double rate_vTrKet2;
    protected double compartment;
    protected double vAK_KADPv16;
    protected double vAK_KAMPv16;
    protected double vAK_KATPv16;
    protected double vAK_Keqv16;
    protected double vAK_Vmaxv16;
    protected double vALD_KDHAPv4;
    protected double vALD_KFru16P2v4;
    protected double vALD_KGraPv4;
    protected double vALD_Keqv4;
    protected double vALD_KiGraPv4;
    protected double vALD_KiiGraPv4;
    protected double vALD_Vmaxv4;
    protected double vATPase_kATPasev15;
    protected double vBPGM_K23P2Gv8;
    protected double vBPGM_Keqv8;
    protected double vBPGM_kDPGMv8;
    protected double vBPGP_K23P2Gv9;
    protected double vBPGP_Keqv9;
    protected double vBPGP_Vmaxv9;
    protected double vENO_K2PGv11;
    protected double vENO_KPEPv11;
    protected double vENO_Keqv11;
    protected double vENO_Vmaxv11;
    protected double vG6PDH_KATPv17;
    protected double vG6PDH_KG6Pv17;
    protected double vG6PDH_KNADPHv17;
    protected double vG6PDH_KNADPv17;
    protected double vG6PDH_KPGA23v17;
    protected double vG6PDH_Keqv17;
    protected double vG6PDH_Vmaxv17;
    protected double vGAPDH_K13P2Gv6;
    protected double vGAPDH_KGraPv6;
    protected double vGAPDH_KNADHv6;
    protected double vGAPDH_KNADv6;
    protected double vGAPDH_KPv6;
    protected double vGAPDH_Keqv6;
    protected double vGAPDH_Vmaxv6;
    protected double vGLT_KMinv0;
    protected double vGLT_KMoutv0;
    protected double vGLT_Keqv0;
    protected double vGLT_Vmaxv0;
    protected double vGLT_alfav0;
    protected double vGPI_KFru6Pv2;
    protected double vGPI_KGlc6Pv2;
    protected double vGPI_Keqv2;
    protected double vGPI_Vmaxv2;
    protected double vGSHox_Kv20;
    protected double vGSSGRD_KGSHv19;
    protected double vGSSGRD_KGSSGv19;
    protected double vGSSGRD_KNADPHv19;
    protected double vGSSGRD_KNADPv19;
    protected double vGSSGRD_Keqv19;
    protected double vGSSGRD_Vmaxv19;
    protected double vHEX_Inhibv1;
    protected double vHEX_K23P2Gv1;
    protected double vHEX_KGlc6Pv1;
    protected double vHEX_KMGlcv1;
    protected double vHEX_KMg23P2Gv1;
    protected double vHEX_KMgATPMgv1;
    protected double vHEX_KMgATPv1;
    protected double vHEX_KMgv1;
    protected double vHEX_Keqv1;
    protected double vHEX_Vmax1v1;
    protected double vHEX_Vmax2v1;
    protected double vLDHNADH_Keqv13;
    protected double vLDHNADH_Vmaxv13;
    protected double vLDHNADPH_Keqv14;
    protected double vLDHNADPH_kLDHv14;
    protected double vLacexch_Keqv28;
    protected double vLacexch_Vmaxv28;
    protected double vMgADP_EqMult;
    protected double vMgADP_KdADP;
    protected double vMgAMP_EqMult;
    protected double vMgAMP_KdAMP;
    protected double vMgATP_EqMult;
    protected double vMgATP_KdATP;
    protected double vMgGri23P2_EqMult;
    protected double vMgGri23P2_Kd23P2G;
    protected double vP1NADPH_EqMult;
    protected double vP1NADPH_Kd3;
    protected double vP1NADP_EqMult;
    protected double vP1NADP_Kd1;
    protected double vP2NADPH_EqMult;
    protected double vP2NADPH_Kd4;
    protected double vP2NADP_EqMult;
    protected double vP2NADP_Kd2;
    protected double vPFK_KAMPv3;
    protected double vPFK_KATPv3;
    protected double vPFK_KFru6Pv3;
    protected double vPFK_KMgATPv3;
    protected double vPFK_KMgv3;
    protected double vPFK_Keqv3;
    protected double vPFK_L0v3;
    protected double vPFK_Vmaxv3;
    protected double vPGK_K13P2Gv7;
    protected double vPGK_K3PGv7;
    protected double vPGK_KMgADPv7;
    protected double vPGK_KMgATPv7;
    protected double vPGK_Keqv7;
    protected double vPGK_Vmaxv7;
    protected double vPGLDH_K6PG1v18;
    protected double vPGLDH_K6PG2v18;
    protected double vPGLDH_KATPv18;
    protected double vPGLDH_KNADPHv18;
    protected double vPGLDH_KNADPv18;
    protected double vPGLDH_KPGA23v18;
    protected double vPGLDH_Keqv18;
    protected double vPGLDH_Vmaxv18;
    protected double vPGM_K2PGv10;
    protected double vPGM_K3PGv10;
    protected double vPGM_Keqv10;
    protected double vPGM_Vmaxv10;
    protected double vPK_KATPv12;
    protected double vPK_KFru16P2v12;
    protected double vPK_KMgADPv12;
    protected double vPK_KPEPv12;
    protected double vPK_Keqv12;
    protected double vPK_L0v12;
    protected double vPK_Vmaxv12;
    protected double vPPRPPS_KATPv25;
    protected double vPPRPPS_KR5Pv25;
    protected double vPPRPPS_Keqv25;
    protected double vPPRPPS_Vmaxv25;
    protected double vPhiexch_Keqv27;
    protected double vPhiexch_Vmaxv27;
    protected double vPyrexch_Keqv29;
    protected double vPyrexch_Vmaxv29;
    protected double vRibPepi_KRu5Pv21;
    protected double vRibPepi_KX5Pv21;
    protected double vRibPepi_Keqv21;
    protected double vRibPepi_Vmaxv21;
    protected double vRibPiso_KR5Pv22;
    protected double vRibPiso_KRu5Pv22;
    protected double vRibPiso_Keqv22;
    protected double vRibPiso_Vmaxv22;
    protected double vTPI_KDHAPv5;
    protected double vTPI_KGraPv5;
    protected double vTPI_Keqv5;
    protected double vTPI_Vmaxv5;
    protected double vTrAld_K1v24;
    protected double vTrAld_K2v24;
    protected double vTrAld_K3v24;
    protected double vTrAld_K4v24;
    protected double vTrAld_K5v24;
    protected double vTrAld_K6v24;
    protected double vTrAld_K7v24;
    protected double vTrAld_Keqv24;
    protected double vTrAld_Vmaxv24;
    protected double vTrKet1_K1v23;
    protected double vTrKet1_K2v23;
    protected double vTrKet1_K3v23;
    protected double vTrKet1_K4v23;
    protected double vTrKet1_K5v23;
    protected double vTrKet1_K6v23;
    protected double vTrKet1_K7v23;
    protected double vTrKet1_Keqv23;
    protected double vTrKet1_Vmaxv23;
    protected double vTrKet2_K1v26;
    protected double vTrKet2_K2v26;
    protected double vTrKet2_K3v26;
    protected double vTrKet2_K4v26;
    protected double vTrKet2_K5v26;
    protected double vTrKet2_K6v26;
    protected double vTrKet2_K7v26;
    protected double vTrKet2_Keqv26;
    protected double vTrKet2_Vmaxv26;

    public double[] extendResult(double time,double [] x)
    {
        this.time = time;


        double[] y = new double[40];
        y[0] = x[0];
        y[1] = x[1];
        y[2] = x[2];
        y[3] = x[3];
        y[4] = x[4];
        y[5] = x[5];
        y[6] = x[6];
        y[7] = x[7];
        y[8] = x[8];
        y[9] = x[9];
        y[10] = x[10];
        y[11] = x[11];
        y[12] = x[12];
        y[13] = x[13];
        y[14] = x[14];
        y[15] = x[15];
        y[16] = x[16];
        y[17] = x[17];
        y[18] = x[18];
        y[19] = x[19];
        y[20] = x[20];
        y[21] = x[21];
        y[22] = x[22];
        y[23] = x[23];
        y[24] = x[24];
        y[25] = x[25];
        y[26] = x[26];
        y[27] = x[27];
        y[28] = x[28];
        y[29] = x[29];
        y[30] = x[30];
        y[31] = x[31];
        y[32] = x[32];
        y[33] = x[33];
        y[34] = x[34];
        y[35] = x[35];
        y[36] = x[36];
        y[37] = x[37];
        y[38] = x[38];
        y[39] = x[39];
        return y;
    }
    public double[] getInitialValues()
    {
        double [] x = new double[40];
        this.time = 0.0;
        x[0] = 0.25; // - $"compartment.ADPf"
        x[1] = 0.0; // - $"compartment.AMPf"
        x[2] = 0.25; // - $"compartment.ATPf"
        x[3] = 0.1492; // - $"compartment.DHAP"
        x[4] = 0.0063; // - $"compartment.E4P"
        x[5] = 0.0097; // - $"compartment.Fru16P2"
        x[6] = 0.0153; // - $"compartment.Fru6P"
        x[7] = 3.1136; // - $"compartment.GSH"
        x[8] = 4.0E-4; // - $"compartment.GSSG"
        x[9] = 0.0394; // - $"compartment.Glc6P"
        x[10] = 0.025; // - $"compartment.GlcA6P"
        x[11] = 4.5663; // - $"compartment.Glcin"
        x[12] = 0.0061; // - $"compartment.GraP"
        x[13] = 5.0E-4; // - $"compartment.Gri13P2"
        x[14] = 2.0601; // - $"compartment.Gri23P2f"
        x[15] = 0.0084; // - $"compartment.Gri2P"
        x[16] = 0.0658; // - $"compartment.Gri3P"
        x[17] = 1.6803; // - $"compartment.Lac"
        x[18] = 0.1; // - $"compartment.MgADP"
        x[19] = 0.0; // - $"compartment.MgAMP"
        x[20] = 1.4; // - $"compartment.MgATP"
        x[21] = 0.5; // - $"compartment.MgGri23P2"
        x[22] = 0.8; // - $"compartment.Mgf"
        x[23] = 0.0653; // - $"compartment.NAD"
        x[24] = 2.0E-4; // - $"compartment.NADH"
        x[25] = 0.0040; // - $"compartment.NADPHf"
        x[26] = 0.0; // - $"compartment.NADPf"
        x[27] = 0.0; // - $"compartment.P1NADP"
        x[28] = 0.024; // - $"compartment.P1NADPH"
        x[29] = 0.0; // - $"compartment.P1f"
        x[30] = 0.0; // - $"compartment.P2NADP"
        x[31] = 0.024; // - $"compartment.P2NADPH"
        x[32] = 0.0; // - $"compartment.P2f"
        x[33] = 0.0109; // - $"compartment.PEP"
        x[34] = 0.9992; // - $"compartment.Phi"
        x[35] = 0.084; // - $"compartment.Pyr"
        x[36] = 0.014; // - $"compartment.Rib5P"
        x[37] = 0.0047; // - $"compartment.Rul5P"
        x[38] = 0.0154; // - $"compartment.Sed7P"
        x[39] = 0.0127; // - $"compartment.Xul5P"

        __internalRateVarInitFunc_0(time, x);

        return x;
    }

/*
 * code for algebraic rules calculations
 */

/*
 * end of code for algebraic rules calculations
 */

    protected void calculateRates(double time, double[] x)
    {

        __internalRateVarInitFunc_0(time, x);

    }

        /*
         * calculate dy/dt for 'BIOMD0000000070.xml' model
         */
    public void __internalDyDt_0(double time, double [] x, double[] result)
    {
        result[0] = +rate_vAK+rate_vMgADP;
        result[1] = -rate_vAK+rate_vMgAMP;
        result[2] = +rate_vMgATP;
        result[3] = +rate_vALD-rate_vTPI;
        result[4] = +rate_vTrAld-rate_vTrKet2;
        result[5] = -rate_vALD+rate_vPFK;
        result[6] = +rate_vGPI-rate_vPFK+rate_vTrAld+rate_vTrKet2;
        result[7] = -rate_vGSHox*2+rate_vGSSGRD*2;
        result[8] = +rate_vGSHox-rate_vGSSGRD;
        result[9] = -rate_vG6PDH-rate_vGPI+rate_vHEX;
        result[10] = +rate_vG6PDH-rate_vPGLDH;
        result[11] = +rate_vGLT-rate_vHEX;
        result[12] = +rate_vALD-rate_vGAPDH+rate_vTPI-rate_vTrAld+rate_vTrKet1+rate_vTrKet2;
        result[13] = -rate_vBPGM+rate_vGAPDH-rate_vPGK;
        result[14] = +rate_vBPGM-rate_vBPGP+rate_vMgGri23P2;
        result[15] = -rate_vENO+rate_vPGM;
        result[16] = +rate_vBPGP+rate_vPGK-rate_vPGM;
        result[17] = +rate_vLDHNADH+rate_vLDHNADPH+rate_vLacexch;
        result[18] = +rate_vAK+rate_vATPase+rate_vHEX-rate_vMgADP+rate_vPFK-rate_vPGK-rate_vPK;
        result[19] = -rate_vMgAMP+rate_vPPRPPS;
        result[20] = -rate_vAK-rate_vATPase-rate_vHEX-rate_vMgATP-rate_vPFK+rate_vPGK+rate_vPK-rate_vPPRPPS;
        result[21] = -rate_vMgGri23P2;
        result[22] = +rate_vMgADP+rate_vMgAMP+rate_vMgATP+rate_vMgGri23P2;
        result[23] = -rate_vGAPDH+rate_vLDHNADH;
        result[24] = +rate_vGAPDH-rate_vLDHNADH;
        result[25] = +rate_vG6PDH-rate_vGSSGRD-rate_vLDHNADPH+rate_vP1NADPH+rate_vP2NADPH+rate_vPGLDH;
        result[26] = -rate_vG6PDH+rate_vGSSGRD+rate_vLDHNADPH+rate_vP1NADP+rate_vP2NADP-rate_vPGLDH;
        result[27] = -rate_vP1NADP;
        result[28] = -rate_vP1NADPH;
        result[29] = +rate_vP1NADP+rate_vP1NADPH;
        result[30] = -rate_vP2NADP;
        result[31] = -rate_vP2NADPH;
        result[32] = +rate_vP2NADP+rate_vP2NADPH;
        result[33] = +rate_vENO-rate_vPK;
        result[34] = +rate_vATPase+rate_vBPGP-rate_vGAPDH+rate_vPhiexch;
        result[35] = -rate_vLDHNADH-rate_vLDHNADPH+rate_vPK+rate_vPyrexch;
        result[36] = -rate_vPPRPPS+rate_vRibPiso-rate_vTrKet1;
        result[37] = +rate_vPGLDH-rate_vRibPepi-rate_vRibPiso;
        result[38] = -rate_vTrAld+rate_vTrKet1;
        result[39] = +rate_vRibPepi-rate_vTrKet1-rate_vTrKet2;
    }
    protected double [] calculateResult(double time, double[] x)
    {
        double[] result = new double[40];
        __internalDyDt_0(time, x, result);
        return result;
    }
    public double[] dy_dt(double time, double[] x)
    {
        this.time = time;
        calculateRates( time,x );

        return calculateResult( time,x );
    }

} // class ...