/*
 * This code is generated by BioUML FrameWork 
 * for BIOMD0000000088.xml diagram  at 2008.03.20 15:08:18
 */
import biouml.plugins.simulation.ae.NewtonSolver;
import biouml.plugins.simulation.java.JavaBaseModel;
import ru.biosoft.math.MathRoutines;

public class BIOMD0000000088 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_re1 = c0_c1*((1 + re1_ratio)*re1_Vmax*x[3]*c0_s2/re1_Km - re1_Vmax*re1_ratio*x[11]);
        rate_re100 = c0_c1*(re100_kf*x[4]*x[4]*x[54] - re100_kb*x[65]);
        rate_re101 = c0_c1*(re101_kf*x[88]*x[6] - re101_kb*x[87]);
        rate_re102 = c0_c1*(re102_kf*x[87] - re102_kb*x[34]);
        rate_re106 = c0_c1*re106_kf*x[34];
        rate_re107 = c0_c1*re107_kf*x[33];
        rate_re108 = c0_c1*re108_kf*x[31];
        rate_re109 = c0_c1*((1 + re109_ratio)*re109_Vmax*x[55]*x[4]/re109_Km - re109_Vmax*re109_ratio*x[66]);
        rate_re110 = c0_c1*((1 + re110_ratio)*re110_Vmax*x[34]*x[41]/re110_Km - re110_Vmax*re110_ratio*x[40]);
        rate_re111 = c0_c1*((1 + re111_ratio)*re111_Vmax*x[33]*x[41]/re111_Km - re111_ratio*re111_Vmax*x[39]);
        rate_re112 = c0_c1*((1 + re112_ratio)*re112_Vmax*x[31]*x[41]/re112_Km - re112_Vmax*re112_ratio*x[38]);
        rate_re113 = c0_c1*re113_Vmax*x[40];
        rate_re114 = c0_c1*re114_Vmax*x[39];
        rate_re115 = c0_c1*re115_Vmax*x[38];
        rate_re116 = c0_c1*re116_kf*x[42];
        rate_re117 = c0_c1*(re117_kf*x[43]*x[42] - re117_kb*x[44]);
        rate_re118 = c0_c1*(re118_kf*x[43]*x[41] - re118_kb*x[45]);
        rate_re119 = c0_c1*re119_kf*x[44];
        rate_re12 = c0_c1*re12_kf*_c0_c1_s48_*x[56];
        rate_re120 = c0_c1*((1 + re120_ratio)*re120_Vmax*x[2]*x[46]/re120_Km - re120_Vmax*re120_ratio*x[49]);
        rate_re121 = c0_c1*((1 + re121_ratio)*re121_Vmax*x[2]*x[47]/re121_Km - re121_Vmax*re121_ratio*x[50]);
        rate_re123 = c0_c1*re123_Vmax*x[49];
        rate_re124 = c0_c1*re124_Vmax*x[50];
        rate_re125 = c0_c1*((1 + re125_ratio)*re125_Vmax*x[19]*x[46]/re125_Km - re125_Vmax*re125_ratio*x[68]);
        rate_re126 = c0_c1*((1 + re126_ratio)*re126_Vmax*x[19]*x[47]/re126_Km - re126_Vmax*re126_ratio*x[67]);
        rate_re127 = c0_c1*re127_Vmax*x[68];
        rate_re128 = c0_c1*re128_Vmax*x[67];
        rate_re129 = c0_c1*((1 + re129_ratio)*re129_Vmax*x[2]*x[43]/re129_Km - re129_Vmax*re129_ratio*x[69]);
        rate_re130 = c0_c1*re130_Vmax*x[69];
        rate_re131 = c0_c1*((1 + re131_ratio)*re131_Vmax*x[19]*x[43]/re131_Km - re131_Vmax*re131_ratio*x[76]);
        rate_re132 = c0_c1*re132_Vmax*x[76];
        rate_re133 = c0_c1*((1 + re133_ratio)*re133_Vmax*x[48]*x[93]/re133_Km - re133_Vmax*re133_ratio*x[70]);
        rate_re134 = c0_c1*((1 + re134_ratio)*re134_Vmax*x[48]*x[43]/re134_Km - re134_Vmax*re134_ratio*x[71]);
        rate_re135 = c0_c1*((1 + re135_ratio)*re135_Vmax*x[47]*x[93]/re135_Km - re135_Vmax*re135_ratio*x[72]);
        rate_re136 = c0_c1*((1 + re136_ratio)*re136_Vmax*x[43]*x[47]/re136_Km - re136_Vmax*re136_ratio*x[73]);
        rate_re137 = c0_c1*re137_Vmax*x[70];
        rate_re138 = c0_c1*re138_Vmax*x[71];
        rate_re139 = c0_c1*re139_Vmax*x[72];
        rate_re14 = c0_c1*re14_kf*x[84];
        rate_re140 = c0_c1*re140_Vmax*x[73];
    }
    public void __internalRateVarInitFunc_1(double time, double[] x)
    {
        rate_re141 = c0_c1*re141_kf*x[93];
        rate_re15 = c0_c1*(re15_kf*x[63]*x[92] - re15_kb*x[62]);
        rate_re154 = c0_c1*((1 + re154_ratio)*re154_Vmax*x[25]*x[46]/re154_Km - re154_Vmax*re154_ratio*x[74]);
        rate_re155 = c0_c1*((1 + re155_ratio)*re155_Vmax*x[25]*x[47]/re155_Km - re155_Vmax*re155_ratio*x[75]);
        rate_re156 = c0_c1*re156_Vmax*x[74];
        rate_re157 = c0_c1*re157_Vmax*x[75];
        rate_re158 = c0_c1*((1 + re158_ratio)*re158_Vmax*x[26]*x[46]/re158_Km - re158_Vmax*re158_ratio*x[85]);
        rate_re159 = c0_c1*((1 + re159_ratio)*re159_Vmax*x[27]*x[46]/re159_Km - re159_Vmax*re159_ratio*x[82]);
        rate_re16 = c0_c1*re16_kf*_c0_c1_s48_*x[62];
        rate_re160 = c0_c1*((1 + re160_ratio)*re160_Vmax*x[28]*x[46]/re160_Km - re160_Vmax*re160_ratio*x[80]);
        rate_re161 = c0_c1*((1 + re161_ratio)*re161_Vmax*x[29]*x[46]/re161_Km - re161_Vmax*re161_ratio*x[79]);
        rate_re162 = c0_c1*((1 + re162_ratio)*re162_Vmax*x[26]*x[47]/re162_Km - re162_Vmax*re162_ratio*x[83]);
        rate_re163 = c0_c1*((1 + re163_ratio)*re163_Vmax*x[27]*x[47]/re163_Km - re163_Vmax*re163_ratio*x[81]);
        rate_re164 = c0_c1*((1 + re164_ratio)*re164_Vmax*x[28]*x[47]/re164_Km - re164_Vmax*re164_ratio*x[78]);
        rate_re165 = c0_c1*((1 + re165_ratio)*re165_Vmax*x[29]*x[47]/re165_Km - re165_Vmax*re165_ratio*x[77]);
        rate_re166 = c0_c1*re166_Vmax*x[77];
        rate_re167 = c0_c1*re167_Vmax*x[79];
        rate_re168 = c0_c1*re168_Vmax*x[78];
        rate_re169 = c0_c1*re169_Vmax*x[80];
        rate_re17 = c0_c1*re17_kf*x[60];
        rate_re170 = c0_c1*re170_Vmax*x[81];
        rate_re171 = c0_c1*re171_Vmax*x[82];
        rate_re172 = c0_c1*re172_Vmax*x[83];
        rate_re173 = c0_c1*re173_Vmax*x[85];
        rate_re174 = c0_c1*re174_g*_c0_c1_s556_*(_c0_s267_ - x[4]);
        rate_re175 = c0_c1*re175_g*_c0_c1_s557_*(x[0]/0.1 - x[4]);
        rate_re19 = c0_c1*re19_kf*x[51]*x[59];
        rate_re20 = c0_c1*((1 + re20_ratio)*re20_Vmax*x[14]*x[94]/re20_Km - re20_ratio*re20_Vmax*x[13]);
        rate_re22 = c0_c1*re22_kf*x[52]*x[61];
        rate_re23 = c0_c1*(re23_kf*x[60]*x[95] - re23_kb*x[57]);
        rate_re24 = c0_c1*(re24_Vmax*x[17]*x[57]/(re24_Km + x[16]));
        rate_re26 = c0_c1*((1 + re26_ratio)*re26_Vmax*x[95]*x[17]/re26_Km - re26_Vmax*re26_ratio*x[18]);
        rate_re28 = c0_c1*((1 + re28_ratio)*re28_Vmax*x[1]*x[16]/re28_Km - re28_Vmax*re28_ratio*x[15]);
        rate_re32 = c0_c1*re32_Vmax*x[18];
        rate_re33 = c0_c1*re33_Vmax*x[15];
        rate_re34 = c0_c1*re34_Vmax*x[13];
        rate_re37 = c0_c1*re37_kf*x[57];
        rate_re38 = c0_c1*re38_kf*x[16];
        rate_re39 = c0_c1*(re39_kf*x[2]*x[16] - re39_kb*x[19]);
        rate_re40 = c0_c1*re40_Vmax*x[11];
    }
    public void __internalRateVarInitFunc_2(double time, double[] x)
    {
        rate_re43 = c0_c1*(re43_kf*x[58]*x[92] - re43_kb*x[56]);
        rate_re44 = c0_c1*re44_kf*x[14];
        rate_re45 = c0_c1*re45_kf*x[92];
        rate_re47 = c0_c1*(re47_kf*x[14]*x[91] - re47_kb*x[86]);
        rate_re48 = c0_c1*(re48_kf*x[53]*x[14] - re48_kb*x[64]);
        rate_re51 = c0_c1*(re51_kf*x[4]*x[64] - re51_kb*x[86]);
        rate_re52 = c0_c1*(re52_kf*x[53]*x[4] - re52_kb*x[91]);
        rate_re54 = c0_c1*re54_kf*x[86];
        rate_re55 = c0_c1*((1 + re55_ratio)*re55_Vmax*x[91]*_c0_c1_s151_/re55_Km - re55_ratio*re55_Vmax*x[90]);
        rate_re56 = c0_c1*((1 + re56_ratio)*re56_Vmax*x[86]*_c0_c1_s151_/re56_Km - re56_ratio*re56_Vmax*x[89]);
        rate_re57 = c0_c1*re57_Vmax*x[90];
        rate_re58 = c0_c1*re58_Vmax*x[89];
        rate_re59 = c0_c1*re59_kf*x[6];
        rate_re60 = c0_c1*re60_kf*x[5];
        rate_re68 = c0_c1*(re68_kf*x[5]*x[5]*x[5]*x[9] - re68_kb*x[10]);
        rate_re73 = c0_c1*re73_g*x[10]*(x[0]/0.1 - x[4]);
        rate_re85 = c0_c1*re85_kf*x[65];
        rate_re86 = c0_c1*(re86_kf*x[20]*x[4] - re86_kb*x[21]);
        rate_re87 = c0_c1*(re87_kf*x[21]*x[4] - re87_kb*x[22]);
        rate_re88 = c0_c1*(re88_kf*x[23]*x[4] - re88_kb*x[24]);
        rate_re89 = c0_c1*(re89_kf*x[22]*x[4] - re89_kb*x[23]);
        rate_re90 = c0_c1*(re90_kf*x[24]*x[25] - re90_kb*x[29]);
        rate_re91 = c0_c1*(re91_kf*x[23]*x[25] - re91_kb*x[28]);
        rate_re92 = c0_c1*(re92_kf*x[22]*x[25] - re92_kb*x[27]);
        rate_re93 = c0_c1*(re93_kf*x[21]*x[25] - re93_kb*x[26]);
        rate_re94 = c0_c1*(re94_kf*x[30] - re94_kb*x[31]);
        rate_re95 = c0_c1*(re95_kf*x[30]*x[6] - re95_kb*x[32]);
        rate_re96 = c0_c1*(re96_kf*x[88] - re96_kb*x[33]);
        rate_re97 = c0_c1*(re97_kf*x[30]*x[4] - re97_kb*x[88]);
        rate_re98 = c0_c1*re98_Vmax*x[66];
    }

    public void Init()
    {
        initialValues = getInitialValues();
/*
 * Initialize variables
 */
        _c0_c1_s151_ = 10.0; // initial value of $"c0.c1.s151"
        _c0_c1_s48_ = 50.0; // initial value of $"c0.c1.s48"
        _c0_c1_s50_ = 5.0; // initial value of $"c0.c1.s50"
        _c0_c1_s556_ = 0.00833; // initial value of $"c0.c1.s556"
        _c0_c1_s557_ = 0.0010; // initial value of $"c0.c1.s557"
        _c0_s267_ = 4000.0; // initial value of $"c0.s267"
        c0_c1 = 1.0; // initial value of $c0.c1
        re100_kb = 3.0; // initial value of re100_kb
        re100_kf = 30.0; // initial value of re100_kf
        re101_kb = 8.6348; // initial value of re101_kb
        re101_kf = 0.0040; // initial value of re101_kf
        re102_kb = 0.1; // initial value of re102_kb
        re102_kf = 1.0; // initial value of re102_kf
        re106_kf = 4.63E-5; // initial value of re106_kf
        re107_kf = 4.63E-5; // initial value of re107_kf
        re108_kf = 4.63E-5; // initial value of re108_kf
        re109_Km = 0.04; // initial value of re109_Km
        re109_Vmax = 4.9; // initial value of re109_Vmax
        re109_ratio = 4.0; // initial value of re109_ratio
        re110_Km = 0.0014; // initial value of re110_Km
        re110_Vmax = 3.94; // initial value of re110_Vmax
        re110_ratio = 4.0; // initial value of re110_ratio
        re111_Km = 0.0014; // initial value of re111_Km
        re111_Vmax = 3.94; // initial value of re111_Vmax
        re111_ratio = 4.0; // initial value of re111_ratio
        re112_Km = 0.0014; // initial value of re112_Km
        re112_Vmax = 3.94; // initial value of re112_Vmax
        re112_ratio = 4.0; // initial value of re112_ratio
        re113_Vmax = 3.94; // initial value of re113_Vmax
        re114_Vmax = 3.94; // initial value of re114_Vmax
        re115_Vmax = 3.94; // initial value of re115_Vmax
        re116_kf = 0.5; // initial value of re116_kf
        re117_kb = 0.62; // initial value of re117_kb
        re117_kf = 100.0; // initial value of re117_kf
        re118_kb = 0.1; // initial value of re118_kb
        re118_kf = 0.01; // initial value of re118_kf
        re119_kf = 0.5; // initial value of re119_kf
        re120_Km = 4.5099; // initial value of re120_Km
        re120_Vmax = 1.28; // initial value of re120_Vmax
        re120_ratio = 16.617; // initial value of re120_ratio
        re121_Km = 4.5099; // initial value of re121_Km
        re121_Vmax = 1.28; // initial value of re121_Vmax
        re121_ratio = 16.617; // initial value of re121_ratio
        re123_Vmax = 1.28; // initial value of re123_Vmax
        re124_Vmax = 1.28; // initial value of re124_Vmax
        re125_Km = 2.47; // initial value of re125_Km
        re125_Vmax = 8.66; // initial value of re125_Vmax
        re125_ratio = 0.4261; // initial value of re125_ratio
        re126_Km = 2.47; // initial value of re126_Km
        re126_Vmax = 8.66; // initial value of re126_Vmax
        re126_ratio = 0.4261; // initial value of re126_ratio
        re127_Vmax = 8.66; // initial value of re127_Vmax
        re128_Vmax = 8.66; // initial value of re128_Vmax
        re129_Km = 0.18; // initial value of re129_Km
        re129_Vmax = 1.46; // initial value of re129_Vmax
        re129_ratio = 0.23288; // initial value of re129_ratio
        re12_kf = 0.01; // initial value of re12_kf
        re130_Vmax = 1.46; // initial value of re130_Vmax
        re131_Km = 0.1; // initial value of re131_Km
        re131_Vmax = 17.505; // initial value of re131_Vmax
        re131_ratio = 0.028278; // initial value of re131_ratio
        re132_Vmax = 17.505; // initial value of re132_Vmax
        re133_Km = 58.099; // initial value of re133_Km
        re133_Vmax = 1.95; // initial value of re133_Vmax
        re133_ratio = 28.795; // initial value of re133_ratio
        re134_Km = 16.0; // initial value of re134_Km
        re134_Vmax = 9.317; // initial value of re134_Vmax
        re134_ratio = 7.5865; // initial value of re134_ratio
        re135_Km = 58.099; // initial value of re135_Km
        re135_Vmax = 1.95; // initial value of re135_Vmax
        re135_ratio = 28.795; // initial value of re135_ratio
        re136_Km = 16.0; // initial value of re136_Km
        re136_Vmax = 9.317; // initial value of re136_Vmax
        re136_ratio = 7.5865; // initial value of re136_ratio
        re137_Vmax = 1.95; // initial value of re137_Vmax
        re138_Vmax = 9.317; // initial value of re138_Vmax
        re139_Vmax = 1.95; // initial value of re139_Vmax
        re140_Vmax = 9.317; // initial value of re140_Vmax
        re141_kf = 0.2; // initial value of re141_kf
        re14_kf = 0.00224; // initial value of re14_kf
        re154_Km = 148.08; // initial value of re154_Km
        re154_Vmax = 3.67; // initial value of re154_Vmax
        re154_ratio = 39.349; // initial value of re154_ratio
        re155_Km = 148.08; // initial value of re155_Km
        re155_Vmax = 3.67; // initial value of re155_Vmax
        re155_ratio = 39.349; // initial value of re155_ratio
        re156_Vmax = 3.67; // initial value of re156_Vmax
        re157_Vmax = 3.67; // initial value of re157_Vmax
        re158_Km = 10.019; // initial value of re158_Km
        re158_Vmax = 3.67; // initial value of re158_Vmax
        re158_ratio = 1.7299; // initial value of re158_ratio
        re159_Km = 10.019; // initial value of re159_Km
        re159_Vmax = 3.67; // initial value of re159_Vmax
        re159_ratio = 1.7299; // initial value of re159_ratio
        re15_kb = 0.0060; // initial value of re15_kb
        re15_kf = 1.0; // initial value of re15_kf
        re160_Km = 10.019; // initial value of re160_Km
        re160_Vmax = 3.67; // initial value of re160_Vmax
        re160_ratio = 1.7299; // initial value of re160_ratio
        re161_Km = 10.019; // initial value of re161_Km
        re161_Vmax = 3.67; // initial value of re161_Vmax
        re161_ratio = 1.7299; // initial value of re161_ratio
        re162_Km = 10.019; // initial value of re162_Km
        re162_Vmax = 3.67; // initial value of re162_Vmax
        re162_ratio = 1.7299; // initial value of re162_ratio
        re163_Km = 10.019; // initial value of re163_Km
        re163_Vmax = 3.67; // initial value of re163_Vmax
        re163_ratio = 1.7299; // initial value of re163_ratio
        re164_Km = 10.019; // initial value of re164_Km
        re164_Vmax = 3.67; // initial value of re164_Vmax
        re164_ratio = 1.7299; // initial value of re164_ratio
        re165_Km = 10.019; // initial value of re165_Km
        re165_Vmax = 3.67; // initial value of re165_Vmax
        re165_ratio = 1.7299; // initial value of re165_ratio
        re166_Vmax = 3.67; // initial value of re166_Vmax
        re167_Vmax = 3.67; // initial value of re167_Vmax
        re168_Vmax = 3.67; // initial value of re168_Vmax
        re169_Vmax = 3.67; // initial value of re169_Vmax
        re16_kf = 0.01; // initial value of re16_kf
        re170_Vmax = 3.67; // initial value of re170_Vmax
        re171_Vmax = 3.67; // initial value of re171_Vmax
        re172_Vmax = 3.67; // initial value of re172_Vmax
        re173_Vmax = 3.67; // initial value of re173_Vmax
        re174_g = 0.01; // initial value of re174_g
        re175_g = 0.01; // initial value of re175_g
        re17_kf = 0.0133; // initial value of re17_kf
        re19_kf = 0.01; // initial value of re19_kf
        re1_Km = 5.0; // initial value of re1_Km
        re1_Vmax = 15.0; // initial value of re1_Vmax
        re1_ratio = 4.0; // initial value of re1_ratio
        re20_Km = 0.05; // initial value of re20_Km
        re20_Vmax = 0.0102; // initial value of re20_Vmax
        re20_ratio = 23.51; // initial value of re20_ratio
        re22_kf = 0.01; // initial value of re22_kf
        re23_kb = 0.1; // initial value of re23_kb
        re23_kf = 20.0; // initial value of re23_kf
        re24_Km = 0.015; // initial value of re24_Km
        re24_Vmax = 0.052; // initial value of re24_Vmax
        re26_Km = 2.0; // initial value of re26_Km
        re26_Vmax = 0.04; // initial value of re26_Vmax
        re26_ratio = 4.0; // initial value of re26_ratio
        re28_Km = 2.83; // initial value of re28_Km
        re28_Vmax = 0.993; // initial value of re28_Vmax
        re28_ratio = 13.246; // initial value of re28_ratio
        re32_Vmax = 0.04; // initial value of re32_Vmax
        re33_Vmax = 0.9933; // initial value of re33_Vmax
        re34_Vmax = 0.0102; // initial value of re34_Vmax
        re37_kf = 0.0117; // initial value of re37_kf
        re38_kf = 3.667E-4; // initial value of re38_kf
        re39_kb = 0.5; // initial value of re39_kb
        re39_kf = 10.0; // initial value of re39_kf
        re40_Vmax = 15.0; // initial value of re40_Vmax
        re43_kb = 0.0060; // initial value of re43_kb
        re43_kf = 1.0; // initial value of re43_kf
        re44_kf = 0.0133; // initial value of re44_kf
        re45_kf = 0.00224; // initial value of re45_kf
        re47_kb = 1.0; // initial value of re47_kb
        re47_kf = 25.201; // initial value of re47_kf
        re48_kb = 1.0; // initial value of re48_kb
        re48_kf = 2.5201; // initial value of re48_kf
        re51_kb = 1.0; // initial value of re51_kb
        re51_kf = 30.0; // initial value of re51_kf
        re52_kb = 1.0; // initial value of re52_kb
        re52_kf = 3.0; // initial value of re52_kf
        re54_kf = 0.0133; // initial value of re54_kf
        re55_Km = 19.841; // initial value of re55_Km
        re55_Vmax = 10.0; // initial value of re55_Vmax
        re55_ratio = 4.0; // initial value of re55_ratio
        re56_Km = 5.0; // initial value of re56_Km
        re56_Vmax = 48.0; // initial value of re56_Vmax
        re56_ratio = 4.0; // initial value of re56_ratio
        re57_Vmax = 10.0; // initial value of re57_Vmax
        re58_Vmax = 48.0; // initial value of re58_Vmax
        re59_kf = 0.15; // initial value of re59_kf
        re60_kf = 2.5; // initial value of re60_kf
        re68_kb = 10.0; // initial value of re68_kb
        re68_kf = 0.1; // initial value of re68_kf
        re73_g = 150.0; // initial value of re73_g
        re85_kf = 1.0; // initial value of re85_kf
        re86_kb = 50.0; // initial value of re86_kb
        re86_kf = 10.0; // initial value of re86_kf
        re87_kb = 45.0; // initial value of re87_kb
        re87_kf = 10.0; // initial value of re87_kf
        re88_kb = 500.0; // initial value of re88_kb
        re88_kf = 10.0; // initial value of re88_kf
        re89_kb = 170.0; // initial value of re89_kb
        re89_kf = 10.0; // initial value of re89_kf
        re90_kb = 0.01; // initial value of re90_kb
        re90_kf = 10.0; // initial value of re90_kf
        re91_kb = 0.01; // initial value of re91_kb
        re91_kf = 10.0; // initial value of re91_kf
        re92_kb = 0.45; // initial value of re92_kb
        re92_kf = 0.1; // initial value of re92_kf
        re93_kb = 0.5; // initial value of re93_kb
        re93_kf = 0.1; // initial value of re93_kf
        re94_kb = 50.0; // initial value of re94_kb
        re94_kf = 1.0; // initial value of re94_kf
        re95_kb = 0.1; // initial value of re95_kb
        re95_kf = 3.0E-4; // initial value of re95_kf
        re96_kb = 3.5026; // initial value of re96_kb
        re96_kf = 1.2705; // initial value of re96_kf
        re97_kb = 0.5; // initial value of re97_kb
        re97_kf = 0.3; // initial value of re97_kf
        re98_Vmax = 4.9; // initial value of re98_Vmax
    }

    /*
     * Model variables initial values
     */
    protected double _c0_c1_s151_;
    protected double _c0_c1_s48_;
    protected double _c0_c1_s50_;
    protected double _c0_c1_s556_;
    protected double _c0_c1_s557_;
    protected double _c0_s267_;
    protected double rate_re1;
    protected double rate_re100;
    protected double rate_re101;
    protected double rate_re102;
    protected double rate_re106;
    protected double rate_re107;
    protected double rate_re108;
    protected double rate_re109;
    protected double rate_re110;
    protected double rate_re111;
    protected double rate_re112;
    protected double rate_re113;
    protected double rate_re114;
    protected double rate_re115;
    protected double rate_re116;
    protected double rate_re117;
    protected double rate_re118;
    protected double rate_re119;
    protected double rate_re12;
    protected double rate_re120;
    protected double rate_re121;
    protected double rate_re123;
    protected double rate_re124;
    protected double rate_re125;
    protected double rate_re126;
    protected double rate_re127;
    protected double rate_re128;
    protected double rate_re129;
    protected double rate_re130;
    protected double rate_re131;
    protected double rate_re132;
    protected double rate_re133;
    protected double rate_re134;
    protected double rate_re135;
    protected double rate_re136;
    protected double rate_re137;
    protected double rate_re138;
    protected double rate_re139;
    protected double rate_re14;
    protected double rate_re140;
    protected double rate_re141;
    protected double rate_re15;
    protected double rate_re154;
    protected double rate_re155;
    protected double rate_re156;
    protected double rate_re157;
    protected double rate_re158;
    protected double rate_re159;
    protected double rate_re16;
    protected double rate_re160;
    protected double rate_re161;
    protected double rate_re162;
    protected double rate_re163;
    protected double rate_re164;
    protected double rate_re165;
    protected double rate_re166;
    protected double rate_re167;
    protected double rate_re168;
    protected double rate_re169;
    protected double rate_re17;
    protected double rate_re170;
    protected double rate_re171;
    protected double rate_re172;
    protected double rate_re173;
    protected double rate_re174;
    protected double rate_re175;
    protected double rate_re19;
    protected double rate_re20;
    protected double rate_re22;
    protected double rate_re23;
    protected double rate_re24;
    protected double rate_re26;
    protected double rate_re28;
    protected double rate_re32;
    protected double rate_re33;
    protected double rate_re34;
    protected double rate_re37;
    protected double rate_re38;
    protected double rate_re39;
    protected double rate_re40;
    protected double rate_re43;
    protected double rate_re44;
    protected double rate_re45;
    protected double rate_re47;
    protected double rate_re48;
    protected double rate_re51;
    protected double rate_re52;
    protected double rate_re54;
    protected double rate_re55;
    protected double rate_re56;
    protected double rate_re57;
    protected double rate_re58;
    protected double rate_re59;
    protected double rate_re60;
    protected double rate_re68;
    protected double rate_re73;
    protected double rate_re85;
    protected double rate_re86;
    protected double rate_re87;
    protected double rate_re88;
    protected double rate_re89;
    protected double rate_re90;
    protected double rate_re91;
    protected double rate_re92;
    protected double rate_re93;
    protected double rate_re94;
    protected double rate_re95;
    protected double rate_re96;
    protected double rate_re97;
    protected double rate_re98;
    protected double c0_c1;
    protected double c0_s2;
    protected double re100_kb;
    protected double re100_kf;
    protected double re101_kb;
    protected double re101_kf;
    protected double re102_kb;
    protected double re102_kf;
    protected double re106_kf;
    protected double re107_kf;
    protected double re108_kf;
    protected double re109_Km;
    protected double re109_Vmax;
    protected double re109_ratio;
    protected double re110_Km;
    protected double re110_Vmax;
    protected double re110_ratio;
    protected double re111_Km;
    protected double re111_Vmax;
    protected double re111_ratio;
    protected double re112_Km;
    protected double re112_Vmax;
    protected double re112_ratio;
    protected double re113_Vmax;
    protected double re114_Vmax;
    protected double re115_Vmax;
    protected double re116_kf;
    protected double re117_kb;
    protected double re117_kf;
    protected double re118_kb;
    protected double re118_kf;
    protected double re119_kf;
    protected double re120_Km;
    protected double re120_Vmax;
    protected double re120_ratio;
    protected double re121_Km;
    protected double re121_Vmax;
    protected double re121_ratio;
    protected double re123_Vmax;
    protected double re124_Vmax;
    protected double re125_Km;
    protected double re125_Vmax;
    protected double re125_ratio;
    protected double re126_Km;
    protected double re126_Vmax;
    protected double re126_ratio;
    protected double re127_Vmax;
    protected double re128_Vmax;
    protected double re129_Km;
    protected double re129_Vmax;
    protected double re129_ratio;
    protected double re12_kf;
    protected double re130_Vmax;
    protected double re131_Km;
    protected double re131_Vmax;
    protected double re131_ratio;
    protected double re132_Vmax;
    protected double re133_Km;
    protected double re133_Vmax;
    protected double re133_ratio;
    protected double re134_Km;
    protected double re134_Vmax;
    protected double re134_ratio;
    protected double re135_Km;
    protected double re135_Vmax;
    protected double re135_ratio;
    protected double re136_Km;
    protected double re136_Vmax;
    protected double re136_ratio;
    protected double re137_Vmax;
    protected double re138_Vmax;
    protected double re139_Vmax;
    protected double re140_Vmax;
    protected double re141_kf;
    protected double re14_kf;
    protected double re154_Km;
    protected double re154_Vmax;
    protected double re154_ratio;
    protected double re155_Km;
    protected double re155_Vmax;
    protected double re155_ratio;
    protected double re156_Vmax;
    protected double re157_Vmax;
    protected double re158_Km;
    protected double re158_Vmax;
    protected double re158_ratio;
    protected double re159_Km;
    protected double re159_Vmax;
    protected double re159_ratio;
    protected double re15_kb;
    protected double re15_kf;
    protected double re160_Km;
    protected double re160_Vmax;
    protected double re160_ratio;
    protected double re161_Km;
    protected double re161_Vmax;
    protected double re161_ratio;
    protected double re162_Km;
    protected double re162_Vmax;
    protected double re162_ratio;
    protected double re163_Km;
    protected double re163_Vmax;
    protected double re163_ratio;
    protected double re164_Km;
    protected double re164_Vmax;
    protected double re164_ratio;
    protected double re165_Km;
    protected double re165_Vmax;
    protected double re165_ratio;
    protected double re166_Vmax;
    protected double re167_Vmax;
    protected double re168_Vmax;
    protected double re169_Vmax;
    protected double re16_kf;
    protected double re170_Vmax;
    protected double re171_Vmax;
    protected double re172_Vmax;
    protected double re173_Vmax;
    protected double re174_g;
    protected double re175_g;
    protected double re17_kf;
    protected double re19_kf;
    protected double re1_Km;
    protected double re1_Vmax;
    protected double re1_ratio;
    protected double re20_Km;
    protected double re20_Vmax;
    protected double re20_ratio;
    protected double re22_kf;
    protected double re23_kb;
    protected double re23_kf;
    protected double re24_Km;
    protected double re24_Vmax;
    protected double re26_Km;
    protected double re26_Vmax;
    protected double re26_ratio;
    protected double re28_Km;
    protected double re28_Vmax;
    protected double re28_ratio;
    protected double re32_Vmax;
    protected double re33_Vmax;
    protected double re34_Vmax;
    protected double re37_kf;
    protected double re38_kf;
    protected double re39_kb;
    protected double re39_kf;
    protected double re40_Vmax;
    protected double re43_kb;
    protected double re43_kf;
    protected double re44_kf;
    protected double re45_kf;
    protected double re47_kb;
    protected double re47_kf;
    protected double re48_kb;
    protected double re48_kf;
    protected double re51_kb;
    protected double re51_kf;
    protected double re52_kb;
    protected double re52_kf;
    protected double re54_kf;
    protected double re55_Km;
    protected double re55_Vmax;
    protected double re55_ratio;
    protected double re56_Km;
    protected double re56_Vmax;
    protected double re56_ratio;
    protected double re57_Vmax;
    protected double re58_Vmax;
    protected double re59_kf;
    protected double re60_kf;
    protected double re68_kb;
    protected double re68_kf;
    protected double re73_g;
    protected double re85_kf;
    protected double re86_kb;
    protected double re86_kf;
    protected double re87_kb;
    protected double re87_kf;
    protected double re88_kb;
    protected double re88_kf;
    protected double re89_kb;
    protected double re89_kf;
    protected double re90_kb;
    protected double re90_kf;
    protected double re91_kb;
    protected double re91_kf;
    protected double re92_kb;
    protected double re92_kf;
    protected double re93_kb;
    protected double re93_kf;
    protected double re94_kb;
    protected double re94_kf;
    protected double re95_kb;
    protected double re95_kf;
    protected double re96_kb;
    protected double re96_kf;
    protected double re97_kb;
    protected double re97_kf;
    protected double re98_Vmax;
    protected double time;

    public double[] extendResult(double time,double [] x)
    {
        this.time = time;


        double[] y = new double[98];
        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];
        y[40] = x[40];
        y[41] = x[41];
        y[42] = x[42];
        y[43] = x[43];
        y[44] = x[44];
        y[45] = x[45];
        y[46] = x[46];
        y[47] = x[47];
        y[48] = x[48];
        y[49] = x[49];
        y[50] = x[50];
        y[51] = x[51];
        y[52] = x[52];
        y[53] = x[53];
        y[54] = x[54];
        y[55] = x[55];
        y[56] = x[56];
        y[57] = x[57];
        y[58] = x[58];
        y[59] = x[59];
        y[60] = x[60];
        y[61] = x[61];
        y[62] = x[62];
        y[63] = x[63];
        y[64] = x[64];
        y[65] = x[65];
        y[66] = x[66];
        y[67] = x[67];
        y[68] = x[68];
        y[69] = x[69];
        y[70] = x[70];
        y[71] = x[71];
        y[72] = x[72];
        y[73] = x[73];
        y[74] = x[74];
        y[75] = x[75];
        y[76] = x[76];
        y[77] = x[77];
        y[78] = x[78];
        y[79] = x[79];
        y[80] = x[80];
        y[81] = x[81];
        y[82] = x[82];
        y[83] = x[83];
        y[84] = x[84];
        y[85] = x[85];
        y[86] = x[86];
        y[87] = x[87];
        y[88] = x[88];
        y[89] = x[89];
        y[90] = x[90];
        y[91] = x[91];
        y[92] = x[92];
        y[93] = x[93];
        y[94] = x[94];
        y[95] = x[95];
        y[96] = c0_s2;
        y[97] = x[96];
        return y;
    }
    public double[] getInitialValues()
    {
        double [] x = new double[97];
        this.time = 0.0;
        x[0] = 15.5; // - $"c0.c1.c2.s172"
        x[1] = 0.1; // - $"c0.c1.s118"
        x[2] = 0.042; // - $"c0.c1.s124"
        x[3] = 0.42; // - $"c0.c1.s130"
        x[4] = 0.0833; // - $"c0.c1.s135"
        x[5] = 0.3; // - $"c0.c1.s152"
        x[6] = 0.0; // - $"c0.c1.s153"
        x[7] = 0.0; // - $"c0.c1.s164"
        x[8] = 0.0; // - $"c0.c1.s165"
        x[9] = 0.008333; // - $"c0.c1.s171"
        x[10] = 0.0; // - $"c0.c1.s173"
        x[11] = 0.0; // - $"c0.c1.s174"
        x[12] = 0.0; // - $"c0.c1.s183"
        x[13] = 0.0; // - $"c0.c1.s184"
        x[14] = 0.0; // - $"c0.c1.s187"
        x[15] = 0.0; // - $"c0.c1.s213"
        x[16] = 0.0050; // - $"c0.c1.s214"
        x[17] = 0.09; // - $"c0.c1.s231"
        x[18] = 0.0; // - $"c0.c1.s233"
        x[19] = 0.0050; // - $"c0.c1.s252"
        x[20] = 19.65; // - $"c0.c1.s276"
        x[21] = 0.3; // - $"c0.c1.s277"
        x[22] = 0.0; // - $"c0.c1.s278"
        x[23] = 0.0; // - $"c0.c1.s279"
        x[24] = 0.0; // - $"c0.c1.s280"
        x[25] = 0.69; // - $"c0.c1.s289"
        x[26] = 0.05; // - $"c0.c1.s292"
        x[27] = 0.0; // - $"c0.c1.s293"
        x[28] = 0.0; // - $"c0.c1.s294"
        x[29] = 0.0; // - $"c0.c1.s295"
        x[30] = 2.0; // - $"c0.c1.s309"
        x[31] = 0.039823; // - $"c0.c1.s310"
        x[32] = 0.0; // - $"c0.c1.s311"
        x[33] = 0.68193; // - $"c0.c1.s314"
        x[34] = 0.0; // - $"c0.c1.s324"
        x[35] = 0.0; // - $"c0.c1.s329"
        x[36] = 0.0; // - $"c0.c1.s330"
        x[37] = 0.0; // - $"c0.c1.s331"
        x[38] = 0.0; // - $"c0.c1.s332"
        x[39] = 0.0; // - $"c0.c1.s335"
        x[40] = 0.0; // - $"c0.c1.s338"
        x[41] = 0.059; // - $"c0.c1.s349"
        x[42] = 0.0; // - $"c0.c1.s350"
        x[43] = 0.7; // - $"c0.c1.s351"
        x[44] = 0.0; // - $"c0.c1.s352"
        x[45] = 0.0; // - $"c0.c1.s355"
        x[46] = 4.3; // - $"c0.c1.s358"
        x[47] = 0.6; // - $"c0.c1.s359"
        x[48] = 0.1; // - $"c0.c1.s360"
        x[49] = 0.0; // - $"c0.c1.s361"
        x[50] = 0.0; // - $"c0.c1.s362"
        x[51] = 0.0; // - $"c0.c1.s410"
        x[52] = 0.0; // - $"c0.c1.s421"
        x[53] = 0.57; // - $"c0.c1.s424"
        x[54] = 0.5; // - $"c0.c1.s430"
        x[55] = 0.1; // - $"c0.c1.s432"
        x[56] = 0.0; // - $"c0.c1.s435"
        x[57] = 0.0; // - $"c0.c1.s436"
        x[58] = 0.5; // - $"c0.c1.s437"
        x[59] = 0.0; // - $"c0.c1.s438"
        x[60] = 0.0; // - $"c0.c1.s439"
        x[61] = 0.0; // - $"c0.c1.s440"
        x[62] = 0.0; // - $"c0.c1.s441"
        x[63] = 0.5; // - $"c0.c1.s442"
        x[64] = 0.0; // - $"c0.c1.s443"
        x[65] = 0.0; // - $"c0.c1.s444"
        x[66] = 0.0; // - $"c0.c1.s446"
        x[67] = 0.0; // - $"c0.c1.s449"
        x[68] = 0.0; // - $"c0.c1.s456"
        x[69] = 0.0; // - $"c0.c1.s463"
        x[70] = 0.0; // - $"c0.c1.s467"
        x[71] = 0.0; // - $"c0.c1.s470"
        x[72] = 0.0; // - $"c0.c1.s477"
        x[73] = 0.0; // - $"c0.c1.s480"
        x[74] = 0.0; // - $"c0.c1.s487"
        x[75] = 0.0; // - $"c0.c1.s491"
        x[76] = 0.0; // - $"c0.c1.s496"
        x[77] = 0.0; // - $"c0.c1.s506"
        x[78] = 0.0; // - $"c0.c1.s512"
        x[79] = 0.0; // - $"c0.c1.s513"
        x[80] = 0.0; // - $"c0.c1.s520"
        x[81] = 0.0; // - $"c0.c1.s526"
        x[82] = 0.0; // - $"c0.c1.s539"
        x[83] = 0.0; // - $"c0.c1.s546"
        x[84] = 0.0; // - $"c0.c1.s55"
        x[85] = 0.0; // - $"c0.c1.s551"
        x[86] = 0.0; // - $"c0.c1.s564"
        x[87] = 0.0; // - $"c0.c1.s565"
        x[88] = 0.094; // - $"c0.c1.s566"
        x[89] = 0.0; // - $"c0.c1.s567"
        x[90] = 0.08; // - $"c0.c1.s568"
        x[91] = 0.15; // - $"c0.c1.s569"
        x[92] = 0.0; // - $"c0.c1.s57"
        x[93] = 0.4941; // - $"c0.c1.s570"
        x[94] = 0.2; // - $"c0.c1.s93"
        x[95] = 0.1; // - $"c0.c1.s98"
        x[96] = 0.0; // - $c0.s4

        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);
        __internalRateVarInitFunc_2(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);
        __internalRateVarInitFunc_1(time, x);
        __internalRateVarInitFunc_2(time, x);

    }

        /*
         * calculate dy/dt for 'BIOMD0000000088.xml' model
         */
    public void __internalDyDt_0(double time, double [] x, double[] result)
    {
        result[0] = -rate_re175-rate_re73+rate_re85*2;
        result[1] = -rate_re28+rate_re33;
        result[2] = -rate_re120-rate_re121+rate_re123+rate_re124-rate_re129+rate_re130-rate_re39;
        result[3] = -rate_re1;
        result[4] = -rate_re100*2-rate_re109+rate_re174+rate_re175-rate_re51-rate_re52+rate_re73-rate_re86-rate_re87-rate_re88-rate_re89-rate_re97;
        result[5] = +rate_re57+rate_re58-rate_re60-rate_re68*3;
        result[6] = -rate_re101+rate_re57+rate_re58-rate_re59-rate_re95;
        result[7] = +rate_re59;
        result[8] = +rate_re60;
        result[9] = -rate_re68;
        result[10] = +rate_re68;
        result[11] = +rate_re1-rate_re40;
        result[12] = +rate_re14+rate_re45;
        result[13] = +rate_re20-rate_re34;
        result[14] = +rate_re16-rate_re20-rate_re44-rate_re47-rate_re48;
        result[15] = +rate_re28-rate_re33;
        result[16] = +rate_re24-rate_re28+rate_re32-rate_re38-rate_re39;
        result[17] = -rate_re24-rate_re26+rate_re33+rate_re38;
        result[18] = +rate_re26-rate_re32;
        result[19] = -rate_re125-rate_re126+rate_re127+rate_re128-rate_re131+rate_re132+rate_re39;
        result[20] = -rate_re86;
        result[21] = +rate_re86-rate_re87-rate_re93;
        result[22] = +rate_re87-rate_re89-rate_re92;
        result[23] = -rate_re88+rate_re89-rate_re91;
        result[24] = +rate_re88-rate_re90;
        result[25] = -rate_re154-rate_re155+rate_re156+rate_re157-rate_re90-rate_re91-rate_re92-rate_re93;
        result[26] = -rate_re158-rate_re162+rate_re172+rate_re173+rate_re93;
        result[27] = -rate_re159-rate_re163+rate_re170+rate_re171+rate_re92;
        result[28] = -rate_re160-rate_re164+rate_re168+rate_re169+rate_re91;
        result[29] = -rate_re161-rate_re165+rate_re166+rate_re167+rate_re90;
        result[30] = -rate_re94-rate_re95-rate_re97;
        result[31] = -rate_re108-rate_re112+rate_re115+rate_re94;
        result[32] = +rate_re95;
        result[33] = -rate_re107-rate_re111+rate_re114+rate_re96;
        result[34] = +rate_re102-rate_re106-rate_re110+rate_re113;
        result[35] = +rate_re106;
        result[36] = +rate_re107;
        result[37] = +rate_re108;
        result[38] = +rate_re112-rate_re115;
        result[39] = +rate_re111-rate_re114;
        result[40] = +rate_re110-rate_re113;
        result[41] = -rate_re110-rate_re111-rate_re112+rate_re116-rate_re118;
        result[42] = +rate_re113+rate_re114+rate_re115-rate_re116-rate_re117;
        result[43] = -rate_re117-rate_re118-rate_re129-rate_re131-rate_re134-rate_re136+rate_re138+rate_re140+rate_re141;
        result[44] = +rate_re117-rate_re119;
        result[45] = +rate_re118+rate_re119;
        result[46] = -rate_re120-rate_re125+rate_re139+rate_re140-rate_re154-rate_re158-rate_re159-rate_re160-rate_re161;
        result[47] = -rate_re121+rate_re123-rate_re126+rate_re127-rate_re135-rate_re136+rate_re137+rate_re138-rate_re155+rate_re156-rate_re162-rate_re163-rate_re164-rate_re165+rate_re167+rate_re169+rate_re171+rate_re173;
        result[48] = +rate_re124+rate_re128-rate_re133-rate_re134+rate_re157+rate_re166+rate_re168+rate_re170+rate_re172;
        result[49] = +rate_re120-rate_re123;
        result[50] = +rate_re121-rate_re124;
        result[51] = +rate_re12-rate_re19;
        result[52] = +rate_re16-rate_re22;
        result[53] = -rate_re48-rate_re52;
        result[54] = -rate_re100+rate_re85;
        result[55] = -rate_re109+rate_re98;
        result[56] = -rate_re12+rate_re43;
        result[57] = +rate_re23-rate_re37;
        result[58] = +rate_re19-rate_re43;
        result[59] = +rate_re17-rate_re19+rate_re37;
        result[60] = +rate_re12-rate_re17-rate_re23;
        result[61] = -rate_re22+rate_re34+rate_re44+rate_re54;
        result[62] = +rate_re15-rate_re16;
        result[63] = -rate_re15+rate_re22;
        result[64] = +rate_re48-rate_re51;
        result[65] = +rate_re100-rate_re85;
        result[66] = +rate_re109-rate_re98;
        result[67] = +rate_re126-rate_re128;
        result[68] = +rate_re125-rate_re127;
        result[69] = +rate_re129-rate_re130;
        result[70] = +rate_re133-rate_re137;
        result[71] = +rate_re134-rate_re138;
        result[72] = +rate_re135-rate_re139;
        result[73] = +rate_re136-rate_re140;
        result[74] = +rate_re154-rate_re156;
        result[75] = +rate_re155-rate_re157;
        result[76] = +rate_re131-rate_re132;
        result[77] = +rate_re165-rate_re166;
        result[78] = +rate_re164-rate_re168;
        result[79] = +rate_re161-rate_re167;
        result[80] = +rate_re160-rate_re169;
        result[81] = +rate_re163-rate_re170;
        result[82] = +rate_re159-rate_re171;
        result[83] = +rate_re162-rate_re172;
        result[84] = +rate_re12-rate_re14+rate_re16;
        result[85] = +rate_re158-rate_re173;
        result[86] = +rate_re47+rate_re51-rate_re54-rate_re56+rate_re58;
        result[87] = +rate_re101-rate_re102;
        result[88] = -rate_re101-rate_re96+rate_re97;
        result[89] = +rate_re56-rate_re58;
        result[90] = +rate_re55-rate_re57;
        result[91] = -rate_re47+rate_re52+rate_re54-rate_re55+rate_re57;
        result[92] = -rate_re15+rate_re40-rate_re43-rate_re45;
        result[93] = +rate_re130+rate_re132-rate_re133-rate_re135+rate_re137+rate_re139-rate_re141;
        result[94] = -rate_re20+rate_re34;
        result[95] = -rate_re23-rate_re26+rate_re32+rate_re37;
        result[96] = +rate_re40;
    }
    protected double [] calculateResult(double time, double[] x)
    {
        double[] result = new double[97];
        __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 );
    }

    public double[] checkEvent(double time, double[] x)
    {
        this.time = time;

        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);
        __internalRateVarInitFunc_2(time, x);

        double [] flags = new double[1];
        flags[0] = (time >= 300) ? +1 : -1; //event_0000001
        return flags;
    }

    public void processEvent(int __internalVar12060040985150, double time, double[] x)
    {
        this.time = time;
        if ( __internalVar12060040985150 == 0) //event_0000001
        {
            c0_s2 = 0.01;
        }
    }

} // class ...