Generated Code

The following is matlab code generated by the CellML API from this CellML file. (Back to language selection)

The raw code is available.

function [VOI, STATES, ALGEBRAIC, CONSTANTS] = mainFunction()
    % This is the "main function".  In Matlab, things work best if you rename this function to match the filename.
   [VOI, STATES, ALGEBRAIC, CONSTANTS] = solveModel();
end

function [algebraicVariableCount] = getAlgebraicVariableCount() 
    % Used later when setting a global variable with the number of algebraic variables.
    % Note: This is not the "main method".  
    algebraicVariableCount =215;
end
% There are a total of 80 entries in each of the rate and state variable arrays.
% There are a total of 125 entries in the constant variable array.
%

function [VOI, STATES, ALGEBRAIC, CONSTANTS] = solveModel()
    % Create ALGEBRAIC of correct size
    global algebraicVariableCount;  algebraicVariableCount = getAlgebraicVariableCount();
    % Initialise constants and state variables
    [INIT_STATES, CONSTANTS] = initConsts;

    % Set timespan to solve over 
    tspan = [0, 10];

    % Set numerical accuracy options for ODE solver
    options = odeset('RelTol', 1e-06, 'AbsTol', 1e-06, 'MaxStep', 1);

    % Solve model with ODE solver
    [VOI, STATES] = ode15s(@(VOI, STATES)computeRates(VOI, STATES, CONSTANTS), tspan, INIT_STATES, options);

    % Compute algebraic variables
    [RATES, ALGEBRAIC] = computeRates(VOI, STATES, CONSTANTS);
    ALGEBRAIC = computeAlgebraic(ALGEBRAIC, CONSTANTS, STATES, VOI);

    % Plot state variables against variable of integration
    [LEGEND_STATES, LEGEND_ALGEBRAIC, LEGEND_VOI, LEGEND_CONSTANTS] = createLegends();
    figure();
    plot(VOI, STATES);
    xlabel(LEGEND_VOI);
    l = legend(LEGEND_STATES);
    set(l,'Interpreter','none');
end

function [LEGEND_STATES, LEGEND_ALGEBRAIC, LEGEND_VOI, LEGEND_CONSTANTS] = createLegends()
    LEGEND_STATES = ''; LEGEND_ALGEBRAIC = ''; LEGEND_VOI = ''; LEGEND_CONSTANTS = '';
    LEGEND_STATES(:,1) = strpad('CaJSR in component calcium (mM)');
    LEGEND_STATES(:,2) = strpad('CaNSR in component calcium (mM)');
    LEGEND_STATES(:,3) = strpad('CaSS in component calcium (mM)');
    LEGEND_STATES(:,4) = strpad('Cai in component calcium (mM)');
    LEGEND_STATES(:,5) = strpad('HTRPNCa in component caflux (dimensionless)');
    LEGEND_CONSTANTS(:,1) = strpad('HTRPNtot in component caflux (mM)');
    LEGEND_ALGEBRAIC(:,1) = strpad('Jtr in component caflux (mM_per_ms)');
    LEGEND_ALGEBRAIC(:,52) = strpad('Jtrpn in component caflux (mM_per_ms)');
    LEGEND_ALGEBRAIC(:,13) = strpad('Jxfer in component caflux (mM_per_ms)');
    LEGEND_STATES(:,6) = strpad('LTRPNCa in component caflux (dimensionless)');
    LEGEND_CONSTANTS(:,2) = strpad('LTRPNtot in component caflux (mM)');
    LEGEND_ALGEBRAIC(:,26) = strpad('caflux_HTRPNCa_a1 in component caflux (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,40) = strpad('caflux_LTRPNCa_a1 in component caflux (mS_per_uF)');
    LEGEND_CONSTANTS(:,3) = strpad('khtrpn_minus in component caflux (mS_per_uF)');
    LEGEND_CONSTANTS(:,4) = strpad('khtrpn_plus in component caflux (per_mM_per_ms)');
    LEGEND_CONSTANTS(:,5) = strpad('kltrpn_minus in component caflux (mS_per_uF)');
    LEGEND_CONSTANTS(:,6) = strpad('kltrpn_plus in component caflux (per_mM_per_ms)');
    LEGEND_CONSTANTS(:,7) = strpad('tautr in component caflux (ms)');
    LEGEND_CONSTANTS(:,8) = strpad('tauxfer in component caflux (ms)');
    LEGEND_VOI = strpad('time in component engine (ms)');
    LEGEND_CONSTANTS(:,9) = strpad('CMDNtot in component calcium (mM)');
    LEGEND_CONSTANTS(:,10) = strpad('CSQNtot in component calcium (mM)');
    LEGEND_CONSTANTS(:,11) = strpad('EGTAtot in component calcium (mM)');
    LEGEND_ALGEBRAIC(:,206) = strpad('ICa in component ical (A_per_F)');
    LEGEND_ALGEBRAIC(:,193) = strpad('INaCa in component inaca (A_per_F)');
    LEGEND_ALGEBRAIC(:,106) = strpad('IpCa in component ipca (A_per_F)');
    LEGEND_ALGEBRAIC(:,212) = strpad('Jrel in component ryr (mM_per_ms)');
    LEGEND_ALGEBRAIC(:,201) = strpad('Jup in component serca (mM_per_ms)');
    LEGEND_CONSTANTS(:,12) = strpad('KmCMDN in component calcium (mM)');
    LEGEND_CONSTANTS(:,13) = strpad('KmCSQN in component calcium (mM)');
    LEGEND_CONSTANTS(:,14) = strpad('KmEGTA in component calcium (mM)');
    LEGEND_CONSTANTS(:,15) = strpad('VJSR in component cell (uL)');
    LEGEND_CONSTANTS(:,16) = strpad('VNSR in component cell (uL)');
    LEGEND_CONSTANTS(:,17) = strpad('VSS in component cell (uL)');
    LEGEND_CONSTANTS(:,18) = strpad('Vmyo in component cell (uL)');
    LEGEND_ALGEBRAIC(:,67) = strpad('beta_JSR in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,82) = strpad('beta_SS in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,97) = strpad('beta_i in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,214) = strpad('calcium_CaSS_a3 in component calcium (mM_per_ms)');
    LEGEND_ALGEBRAIC(:,195) = strpad('calcium_Cai_a3 in component calcium (A_per_F)');
    LEGEND_ALGEBRAIC(:,60) = strpad('calcium_beta_JSR_b1 in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,72) = strpad('calcium_beta_SS_b1 in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,77) = strpad('calcium_beta_SS_b2 in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,87) = strpad('calcium_beta_i_b1 in component calcium (dimensionless)');
    LEGEND_ALGEBRAIC(:,92) = strpad('calcium_beta_i_b2 in component calcium (dimensionless)');
    LEGEND_CONSTANTS(:,104) = strpad('a1 in component cell (s3_A_mol_per_g_per_m5)');
    LEGEND_CONSTANTS(:,114) = strpad('a2 in component cell (s3_A_mol_per_g_per_m5)');
    LEGEND_ALGEBRAIC(:,210) = strpad('I in component icat (A_per_F)');
    LEGEND_CONSTANTS(:,19) = strpad('Acap in component cell (cm2)');
    LEGEND_CONSTANTS(:,20) = strpad('F in component phys (C_per_mmol)');
    LEGEND_STATES(:,7) = strpad('O2 in component ryr (dimensionless)');
    LEGEND_STATES(:,8) = strpad('C1 in component ryr (dimensionless)');
    LEGEND_STATES(:,9) = strpad('C2 in component ryr (dimensionless)');
    LEGEND_CONSTANTS(:,21) = strpad('Cao in component extra (mM)');
    LEGEND_CONSTANTS(:,22) = strpad('Ko in component extra (mM)');
    LEGEND_CONSTANTS(:,23) = strpad('Nao in component extra (mM)');
    LEGEND_STATES(:,10) = strpad('C0 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,14) = strpad('C0_to_C1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,119) = strpad('C0_to_CCa0 in component ical (mS_per_uF)');
    LEGEND_STATES(:,11) = strpad('C1 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,83) = strpad('C1_to_C0 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,27) = strpad('C1_to_C2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,122) = strpad('C1_to_CCa1 in component ical (mS_per_uF)');
    LEGEND_STATES(:,12) = strpad('C2 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,88) = strpad('C2_to_C1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,33) = strpad('C2_to_C3 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,127) = strpad('C2_to_CCa2 in component ical (mS_per_uF)');
    LEGEND_STATES(:,13) = strpad('C3 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,93) = strpad('C3_to_C2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,41) = strpad('C3_to_C4 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,134) = strpad('C3_to_CCa3 in component ical (mS_per_uF)');
    LEGEND_STATES(:,14) = strpad('C4 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,98) = strpad('C4_to_C3 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,143) = strpad('C4_to_CCa4 in component ical (mS_per_uF)');
    LEGEND_STATES(:,15) = strpad('CCa0 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,103) = strpad('CCa0_to_C0 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,53) = strpad('CCa0_to_CCa1 in component ical (mS_per_uF)');
    LEGEND_STATES(:,16) = strpad('CCa1 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,113) = strpad('CCa1_to_C1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,104) = strpad('CCa1_to_CCa0 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,61) = strpad('CCa1_to_CCa2 in component ical (mS_per_uF)');
    LEGEND_STATES(:,17) = strpad('CCa2 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,115) = strpad('CCa2_to_C2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,107) = strpad('CCa2_to_CCa1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,68) = strpad('CCa2_to_CCa3 in component ical (mS_per_uF)');
    LEGEND_STATES(:,18) = strpad('CCa3 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,117) = strpad('CCa3_to_C3 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,110) = strpad('CCa3_to_CCa2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,73) = strpad('CCa3_to_CCa4 in component ical (mS_per_uF)');
    LEGEND_STATES(:,19) = strpad('CCa4 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,119) = strpad('CCa4_to_C4 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,113) = strpad('CCa4_to_CCa3 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,209) = strpad('ICaK in component ical (A_per_F)');
    LEGEND_CONSTANTS(:,116) = strpad('ICahalf in component ical (A_per_F)');
    LEGEND_ALGEBRAIC(:,205) = strpad('ICamax in component ical (A_per_F)');
    LEGEND_STATES(:,20) = strpad('Ki in component potassium (mM)');
    LEGEND_STATES(:,21) = strpad('Open in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,118) = strpad('PCa in component ical (L_per_F_per_ms_times_1e0)');
    LEGEND_CONSTANTS(:,120) = strpad('PK in component ical (L_per_F_per_ms_times_1e0)');
    LEGEND_ALGEBRAIC(:,208) = strpad('PKprime in component ical (L_per_F_per_ms_times_1e0)');
    LEGEND_CONSTANTS(:,24) = strpad('Pscale in component ical (dimensionless)');
    LEGEND_STATES(:,22) = strpad('V in component membrane (mV)');
    LEGEND_ALGEBRAIC(:,204) = strpad('VFFRT in component phys (C_per_mmol)');
    LEGEND_ALGEBRAIC(:,181) = strpad('VFRT in component phys (dimensionless)');
    LEGEND_CONSTANTS(:,25) = strpad('aL in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,2) = strpad('alpha in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,46) = strpad('alpha_prime in component ical (mS_per_uF)');
    LEGEND_CONSTANTS(:,26) = strpad('bL in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,78) = strpad('beta in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,100) = strpad('beta_prime in component ical (mS_per_uF)');
    LEGEND_CONSTANTS(:,27) = strpad('fL in component ical (mS_per_uF)');
    LEGEND_CONSTANTS(:,28) = strpad('gL in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,116) = strpad('gamma in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,123) = strpad('ical_C0_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,128) = strpad('ical_C0_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,129) = strpad('ical_C1_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,135) = strpad('ical_C1_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,136) = strpad('ical_C2_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,141) = strpad('ical_C2_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,142) = strpad('ical_C3_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,152) = strpad('ical_C3_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,153) = strpad('ical_C4_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,167) = strpad('ical_C4_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,124) = strpad('ical_CCa0_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,130) = strpad('ical_CCa0_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,131) = strpad('ical_CCa1_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,137) = strpad('ical_CCa1_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,138) = strpad('ical_CCa2_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,144) = strpad('ical_CCa2_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,145) = strpad('ical_CCa3_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,154) = strpad('ical_CCa3_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,155) = strpad('ical_CCa4_a1 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,168) = strpad('ical_CCa4_a2 in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,183) = strpad('ical_ICaK_a1 in component ical (mM)');
    LEGEND_ALGEBRAIC(:,185) = strpad('ical_ICaK_a2 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,187) = strpad('ical_ICamax_a1 in component ical (mM)');
    LEGEND_ALGEBRAIC(:,189) = strpad('ical_ICamax_a2 in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,29) = strpad('ical_yCa_yCa_inf_a1 in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,207) = strpad('imax in component ical (A_per_F)');
    LEGEND_CONSTANTS(:,30) = strpad('omega in component ical (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,3) = strpad('tau_yCa in component ical (ms)');
    LEGEND_STATES(:,23) = strpad('yCa in component ical (dimensionless)');
    LEGEND_ALGEBRAIC(:,15) = strpad('yCa_inf in component ical (dimensionless)');
    LEGEND_CONSTANTS(:,31) = strpad('Ttypescale in component icat (L_per_F_per_ms_times_1e0)');
    LEGEND_ALGEBRAIC(:,4) = strpad('icat_l_inf in component icat (dimensionless)');
    LEGEND_ALGEBRAIC(:,16) = strpad('icat_l_tau in component icat (ms)');
    LEGEND_ALGEBRAIC(:,5) = strpad('icat_n_inf in component icat (dimensionless)');
    LEGEND_ALGEBRAIC(:,17) = strpad('icat_n_tau in component icat (ms)');
    LEGEND_STATES(:,24) = strpad('l in component icat (dimensionless)');
    LEGEND_STATES(:,25) = strpad('n in component icat (dimensionless)');
    LEGEND_ALGEBRAIC(:,115) = strpad('EK in component nernst (mV)');
    LEGEND_ALGEBRAIC(:,151) = strpad('ENa in component nernst (mV)');
    LEGEND_ALGEBRAIC(:,166) = strpad('IHCN in component ihcn (A_per_F)');
    LEGEND_CONSTANTS(:,32) = strpad('IHCNmax in component ihcn (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,182) = strpad('h_alpha in component ihcn (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,184) = strpad('h_beta in component ihcn (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,186) = strpad('h_delta in component ihcn (mS_per_uF)');
    LEGEND_CONSTANTS(:,33) = strpad('h_f in component ihcn (dimensionless)');
    LEGEND_ALGEBRAIC(:,188) = strpad('h_gamma in component ihcn (mS_per_uF)');
    LEGEND_STATES(:,26) = strpad('hcn1 in component ihcn (dimensionless)');
    LEGEND_STATES(:,27) = strpad('hcn10 in component ihcn (dimensionless)');
    LEGEND_STATES(:,28) = strpad('hcn2 in component ihcn (dimensionless)');
    LEGEND_STATES(:,29) = strpad('hcn3 in component ihcn (dimensionless)');
    LEGEND_STATES(:,30) = strpad('hcn4 in component ihcn (dimensionless)');
    LEGEND_STATES(:,31) = strpad('hcn5 in component ihcn (dimensionless)');
    LEGEND_STATES(:,32) = strpad('hcn6 in component ihcn (dimensionless)');
    LEGEND_STATES(:,33) = strpad('hcn7 in component ihcn (dimensionless)');
    LEGEND_STATES(:,34) = strpad('hcn8 in component ihcn (dimensionless)');
    LEGEND_STATES(:,35) = strpad('hcn9 in component ihcn (dimensionless)');
    LEGEND_CONSTANTS(:,34) = strpad('GK1 in component ik1 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,118) = strpad('IK1 in component ik1 (A_per_F)');
    LEGEND_ALGEBRAIC(:,101) = strpad('ik1_IK1_inf in component ik1 (dimensionless)');
    LEGEND_CONSTANTS(:,35) = strpad('A0 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,36) = strpad('A1 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,37) = strpad('A2 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,38) = strpad('A3 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,39) = strpad('A4 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,40) = strpad('A5 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,41) = strpad('A6 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,42) = strpad('B0 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,105) = strpad('B1 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,43) = strpad('B2 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,106) = strpad('B3 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,44) = strpad('B4 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,107) = strpad('B5 in component ikr (per_mV)');
    LEGEND_CONSTANTS(:,45) = strpad('B6 in component ikr (per_mV)');
    LEGEND_STATES(:,36) = strpad('C1 in component ikr (dimensionless)');
    LEGEND_ALGEBRAIC(:,6) = strpad('C1H_to_C2H in component ikr (mS_per_uF)');
    LEGEND_STATES(:,37) = strpad('C2 in component ikr (dimensionless)');
    LEGEND_ALGEBRAIC(:,18) = strpad('C2H_to_C1H in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,108) = strpad('C2H_to_C3H in component ikr (mS_per_uF)');
    LEGEND_STATES(:,38) = strpad('C3 in component ikr (dimensionless)');
    LEGEND_CONSTANTS(:,109) = strpad('C3H_to_C2H in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,7) = strpad('C3H_to_IH in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,19) = strpad('C3H_to_OH in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,46) = strpad('GKr in component ikr (mS_per_uF)');
    LEGEND_STATES(:,39) = strpad('I in component ikr (dimensionless)');
    LEGEND_ALGEBRAIC(:,47) = strpad('IH_to_C3H in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,28) = strpad('IH_to_OH in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,121) = strpad('IKr in component ikr (A_per_F)');
    LEGEND_STATES(:,40) = strpad('O in component ikr (dimensionless)');
    LEGEND_ALGEBRAIC(:,34) = strpad('OH_to_C3H in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,42) = strpad('OH_to_IH in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,47) = strpad('T_Const in component ikr (dimensionless)');
    LEGEND_CONSTANTS(:,110) = strpad('fKo in component ikr (dimensionless)');
    LEGEND_ALGEBRAIC(:,29) = strpad('ikr_C2_a1 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,35) = strpad('ikr_C2_a2 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,54) = strpad('ikr_C3_a1 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,62) = strpad('ikr_C3_a2 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,55) = strpad('ikr_I_a1 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,63) = strpad('ikr_I_a2 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,48) = strpad('ikr_O_a1 in component ikr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,56) = strpad('ikr_O_a2 in component ikr (mS_per_uF)');
    LEGEND_CONSTANTS(:,48) = strpad('GKs in component iks (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,126) = strpad('IKs in component iks (A_per_F)');
    LEGEND_ALGEBRAIC(:,8) = strpad('iks_xf_wt_alpha in component iks (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,20) = strpad('iks_xf_wt_beta in component iks (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,9) = strpad('iks_xs_wt_alpha in component iks (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,21) = strpad('iks_xs_wt_beta in component iks (mS_per_uF)');
    LEGEND_STATES(:,41) = strpad('xf_wt in component iks (dimensionless)');
    LEGEND_STATES(:,42) = strpad('xs_wt in component iks (dimensionless)');
    LEGEND_CONSTANTS(:,49) = strpad('KmCa in component inaca (mM)');
    LEGEND_CONSTANTS(:,50) = strpad('KmNa in component inaca (mM)');
    LEGEND_STATES(:,43) = strpad('Nai in component sodium (mM)');
    LEGEND_ALGEBRAIC(:,190) = strpad('a1 in component inaca (mol4_per_m12)');
    LEGEND_ALGEBRAIC(:,191) = strpad('a2 in component inaca (mol4_per_m12)');
    LEGEND_ALGEBRAIC(:,192) = strpad('a3 in component inaca (dimensionless)');
    LEGEND_CONSTANTS(:,121) = strpad('a4 in component inaca (mM)');
    LEGEND_CONSTANTS(:,123) = strpad('a5 in component inaca (m9_per_mol3)');
    LEGEND_CONSTANTS(:,51) = strpad('eta in component inaca (dimensionless)');
    LEGEND_CONSTANTS(:,52) = strpad('kNaCa in component inaca (A_per_F)');
    LEGEND_CONSTANTS(:,53) = strpad('ksat in component inaca (dimensionless)');
    LEGEND_CONSTANTS(:,122) = strpad('nao3 in component inaca (mM3)');
    LEGEND_ALGEBRAIC(:,200) = strpad('INaK in component inak (A_per_F)');
    LEGEND_CONSTANTS(:,54) = strpad('INaKmax in component inak (A_per_F)');
    LEGEND_CONSTANTS(:,55) = strpad('KmKo in component inak (mM)');
    LEGEND_CONSTANTS(:,56) = strpad('KmNai in component inak (mM)');
    LEGEND_ALGEBRAIC(:,198) = strpad('fNaK in component inak (dimensionless)');
    LEGEND_CONSTANTS(:,124) = strpad('inak_INaK_a1 in component inak (dimensionless)');
    LEGEND_ALGEBRAIC(:,103) = strpad('inak_INaK_a2 in component inak (dimensionless)');
    LEGEND_ALGEBRAIC(:,194) = strpad('inak_fNaK_a1 in component inak (dimensionless)');
    LEGEND_ALGEBRAIC(:,196) = strpad('inak_fNaK_a2 in component inak (dimensionless)');
    LEGEND_CONSTANTS(:,125) = strpad('sigma in component inak (dimensionless)');
    LEGEND_CONSTANTS(:,57) = strpad('IpCamax in component ipca (A_per_F)');
    LEGEND_CONSTANTS(:,58) = strpad('KmpCa in component ipca (mM)');
    LEGEND_ALGEBRAIC(:,133) = strpad('Isus in component isus (A_per_F)');
    LEGEND_CONSTANTS(:,59) = strpad('Isusmax in component isus (mS_per_uF)');
    LEGEND_STATES(:,44) = strpad('C0 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,22) = strpad('C0_to_C1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,146) = strpad('C0_to_CI0 in component ito (mS_per_uF)');
    LEGEND_STATES(:,45) = strpad('C1 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,105) = strpad('C1_to_C0 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,30) = strpad('C1_to_C2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,147) = strpad('C1_to_CI1 in component ito (mS_per_uF)');
    LEGEND_STATES(:,46) = strpad('C2 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,108) = strpad('C2_to_C1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,36) = strpad('C2_to_C3 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,148) = strpad('C2_to_CI2 in component ito (mS_per_uF)');
    LEGEND_STATES(:,47) = strpad('C3 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,111) = strpad('C3_to_C2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,149) = strpad('C3_to_CI3 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,43) = strpad('C3_to_O in component ito (mS_per_uF)');
    LEGEND_STATES(:,48) = strpad('CI0 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,79) = strpad('CI0_to_C0 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,49) = strpad('CI0_to_CI1 in component ito (mS_per_uF)');
    LEGEND_STATES(:,49) = strpad('CI1 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,84) = strpad('CI1_to_C1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,114) = strpad('CI1_to_CI0 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,57) = strpad('CI1_to_CI2 in component ito (mS_per_uF)');
    LEGEND_STATES(:,50) = strpad('CI2 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,89) = strpad('CI2_to_C2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,117) = strpad('CI2_to_CI1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,64) = strpad('CI2_to_CI3 in component ito (mS_per_uF)');
    LEGEND_STATES(:,51) = strpad('CI3 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,94) = strpad('CI3_to_C3 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,120) = strpad('CI3_to_CI2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,69) = strpad('CI3_to_OI in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,60) = strpad('G in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,140) = strpad('Ito1 in component ito (A_per_F)');
    LEGEND_STATES(:,52) = strpad('O in component ito (dimensionless)');
    LEGEND_STATES(:,53) = strpad('OI in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,125) = strpad('OI_to_CI3 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,99) = strpad('OI_to_O in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,132) = strpad('O_to_C3 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,150) = strpad('O_to_OI in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,61) = strpad('aa in component ito (per_mV)');
    LEGEND_CONSTANTS(:,62) = strpad('ai in component ito (per_mV)');
    LEGEND_ALGEBRAIC(:,10) = strpad('alpha_act43 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,74) = strpad('alpha_inact43 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,63) = strpad('alphaa0 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,64) = strpad('alphai0 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,65) = strpad('b1 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,66) = strpad('b2 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,67) = strpad('b3 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,68) = strpad('b4 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,69) = strpad('ba in component ito (per_mV)');
    LEGEND_ALGEBRAIC(:,102) = strpad('beta_act43 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,139) = strpad('beta_inact43 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,70) = strpad('betaa0 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,71) = strpad('betai0 in component ito (mS_per_uF)');
    LEGEND_CONSTANTS(:,72) = strpad('bi in component ito (per_mV)');
    LEGEND_CONSTANTS(:,73) = strpad('f1 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,74) = strpad('f2 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,75) = strpad('f3 in component ito (dimensionless)');
    LEGEND_CONSTANTS(:,76) = strpad('f4 in component ito (dimensionless)');
    LEGEND_ALGEBRAIC(:,156) = strpad('ito_C0_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,169) = strpad('ito_C0_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,157) = strpad('ito_C1_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,170) = strpad('ito_C1_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,158) = strpad('ito_C2_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,171) = strpad('ito_C2_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,159) = strpad('ito_C3_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,172) = strpad('ito_C3_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,160) = strpad('ito_CI0_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,173) = strpad('ito_CI0_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,161) = strpad('ito_CI1_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,174) = strpad('ito_CI1_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,162) = strpad('ito_CI2_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,175) = strpad('ito_CI2_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,163) = strpad('ito_CI3_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,176) = strpad('ito_CI3_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,164) = strpad('ito_OI_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,177) = strpad('ito_OI_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,165) = strpad('ito_O_a1 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,178) = strpad('ito_O_a2 in component ito (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,180) = strpad('INa in component nav15 (A_per_F)');
    LEGEND_ALGEBRAIC(:,179) = strpad('INa1 in component nav11 (A_per_F)');
    LEGEND_ALGEBRAIC(:,213) = strpad('a1 in component membrane (A_per_F)');
    LEGEND_ALGEBRAIC(:,202) = strpad('a2 in component membrane (A_per_F)');
    LEGEND_ALGEBRAIC(:,109) = strpad('a3 in component membrane (A_per_F)');
    LEGEND_CONSTANTS(:,111) = strpad('amplitude in component membrane (A_per_F)');
    LEGEND_CONSTANTS(:,77) = strpad('duration in component membrane (ms)');
    LEGEND_CONSTANTS(:,78) = strpad('i_diff in component membrane (A_per_F)');
    LEGEND_ALGEBRAIC(:,215) = strpad('i_ion in component membrane (A_per_F)');
    LEGEND_ALGEBRAIC(:,112) = strpad('i_stim in component membrane (A_per_F)');
    LEGEND_CONSTANTS(:,79) = strpad('offset in component membrane (ms)');
    LEGEND_CONSTANTS(:,80) = strpad('period in component membrane (ms)');
    LEGEND_STATES(:,54) = strpad('BC1 in component nav11 (dimensionless)');
    LEGEND_STATES(:,55) = strpad('BC2 in component nav11 (dimensionless)');
    LEGEND_STATES(:,56) = strpad('BC3 in component nav11 (dimensionless)');
    LEGEND_STATES(:,57) = strpad('BO in component nav11 (dimensionless)');
    LEGEND_STATES(:,58) = strpad('C1 in component nav11 (dimensionless)');
    LEGEND_STATES(:,59) = strpad('C2 in component nav11 (dimensionless)');
    LEGEND_STATES(:,60) = strpad('C3 in component nav11 (dimensionless)');
    LEGEND_CONSTANTS(:,81) = strpad('GNa1 in component nav11 (mS_per_uF)');
    LEGEND_STATES(:,61) = strpad('IC2 in component nav11 (dimensionless)');
    LEGEND_STATES(:,62) = strpad('IC3 in component nav11 (dimensionless)');
    LEGEND_STATES(:,63) = strpad('IF in component nav11 (dimensionless)');
    LEGEND_STATES(:,64) = strpad('IS1 in component nav11 (dimensionless)');
    LEGEND_STATES(:,65) = strpad('IS2 in component nav11 (dimensionless)');
    LEGEND_STATES(:,66) = strpad('O in component nav11 (dimensionless)');
    LEGEND_ALGEBRAIC(:,11) = strpad('a11 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,23) = strpad('a12 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,31) = strpad('a13 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,37) = strpad('a2 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,44) = strpad('a3 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,50) = strpad('a4 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,58) = strpad('a5 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,65) = strpad('b11 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,70) = strpad('b12 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,75) = strpad('b13 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,85) = strpad('b2 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,80) = strpad('b3 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,90) = strpad('b4 in component nav11 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,95) = strpad('b5 in component nav11 (mS_per_uF)');
    LEGEND_CONSTANTS(:,82) = strpad('mu1 in component nav11 (mS_per_uF)');
    LEGEND_CONSTANTS(:,83) = strpad('mu2 in component nav11 (mS_per_uF)');
    LEGEND_STATES(:,67) = strpad('BC1 in component nav15 (dimensionless)');
    LEGEND_STATES(:,68) = strpad('BC2 in component nav15 (dimensionless)');
    LEGEND_STATES(:,69) = strpad('BC3 in component nav15 (dimensionless)');
    LEGEND_STATES(:,70) = strpad('BO in component nav15 (dimensionless)');
    LEGEND_STATES(:,71) = strpad('C1 in component nav15 (dimensionless)');
    LEGEND_STATES(:,72) = strpad('C2 in component nav15 (dimensionless)');
    LEGEND_STATES(:,73) = strpad('C3 in component nav15 (dimensionless)');
    LEGEND_CONSTANTS(:,84) = strpad('GNa in component nav15 (mS_per_uF)');
    LEGEND_STATES(:,74) = strpad('IC2 in component nav15 (dimensionless)');
    LEGEND_STATES(:,75) = strpad('IC3 in component nav15 (dimensionless)');
    LEGEND_STATES(:,76) = strpad('IF in component nav15 (dimensionless)');
    LEGEND_STATES(:,77) = strpad('IS1 in component nav15 (dimensionless)');
    LEGEND_STATES(:,78) = strpad('IS2 in component nav15 (dimensionless)');
    LEGEND_STATES(:,79) = strpad('O in component nav15 (dimensionless)');
    LEGEND_ALGEBRAIC(:,12) = strpad('a11 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,24) = strpad('a12 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,32) = strpad('a13 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,38) = strpad('a2 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,45) = strpad('a3 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,51) = strpad('a4 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,59) = strpad('a5 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,66) = strpad('b11 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,71) = strpad('b12 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,76) = strpad('b13 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,86) = strpad('b2 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,81) = strpad('b3 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,91) = strpad('b4 in component nav15 (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,96) = strpad('b5 in component nav15 (mS_per_uF)');
    LEGEND_CONSTANTS(:,85) = strpad('mu1 in component nav15 (mS_per_uF)');
    LEGEND_CONSTANTS(:,86) = strpad('mu2 in component nav15 (mS_per_uF)');
    LEGEND_CONSTANTS(:,112) = strpad('RTF in component phys (mV)');
    LEGEND_CONSTANTS(:,87) = strpad('R in component phys (J_per_mol_per_K)');
    LEGEND_CONSTANTS(:,88) = strpad('T in component phys (kelvin)');
    LEGEND_ALGEBRAIC(:,211) = strpad('IK_tot in component potassium (A_per_F)');
    LEGEND_STATES(:,80) = strpad('O1 in component ryr (dimensionless)');
    LEGEND_CONSTANTS(:,89) = strpad('kaminus in component ryr (mS_per_uF)');
    LEGEND_CONSTANTS(:,90) = strpad('kaplus in component ryr (m12_per_s_per_mol4_times_1e15)');
    LEGEND_CONSTANTS(:,91) = strpad('kbminus in component ryr (mS_per_uF)');
    LEGEND_CONSTANTS(:,92) = strpad('kbplus in component ryr (m9_per_s_per_mol3_times_1e12)');
    LEGEND_CONSTANTS(:,93) = strpad('kcminus in component ryr (mS_per_uF)');
    LEGEND_CONSTANTS(:,94) = strpad('kcplus in component ryr (mS_per_uF)');
    LEGEND_ALGEBRAIC(:,25) = strpad('ryr_C1_a2 in component ryr (mol4_per_m12_times_1e_minus_12)');
    LEGEND_ALGEBRAIC(:,39) = strpad('ryr_O2_a1 in component ryr (mM3_times_1e_minus_9)');
    LEGEND_CONSTANTS(:,95) = strpad('v1 in component ryr (mS_per_uF)');
    LEGEND_CONSTANTS(:,96) = strpad('KSR in component serca (dimensionless)');
    LEGEND_CONSTANTS(:,97) = strpad('Kfb in component serca (mM)');
    LEGEND_CONSTANTS(:,98) = strpad('Krb in component serca (mM)');
    LEGEND_CONSTANTS(:,99) = strpad('Nfb in component serca (dimensionless)');
    LEGEND_CONSTANTS(:,100) = strpad('Nrb in component serca (dimensionless)');
    LEGEND_ALGEBRAIC(:,197) = strpad('fb in component serca (dimensionless)');
    LEGEND_ALGEBRAIC(:,199) = strpad('rb in component serca (dimensionless)');
    LEGEND_CONSTANTS(:,101) = strpad('vmaxf in component serca (mM_per_ms)');
    LEGEND_CONSTANTS(:,102) = strpad('vmaxr in component serca (mM_per_ms)');
    LEGEND_ALGEBRAIC(:,203) = strpad('INa_tot in component sodium (A_per_F)');
    LEGEND_RATES(:,5) = strpad('d/dt HTRPNCa in component caflux (dimensionless)');
    LEGEND_RATES(:,6) = strpad('d/dt LTRPNCa in component caflux (dimensionless)');
    LEGEND_RATES(:,1) = strpad('d/dt CaJSR in component calcium (mM)');
    LEGEND_RATES(:,2) = strpad('d/dt CaNSR in component calcium (mM)');
    LEGEND_RATES(:,3) = strpad('d/dt CaSS in component calcium (mM)');
    LEGEND_RATES(:,4) = strpad('d/dt Cai in component calcium (mM)');
    LEGEND_RATES(:,10) = strpad('d/dt C0 in component ical (dimensionless)');
    LEGEND_RATES(:,11) = strpad('d/dt C1 in component ical (dimensionless)');
    LEGEND_RATES(:,12) = strpad('d/dt C2 in component ical (dimensionless)');
    LEGEND_RATES(:,13) = strpad('d/dt C3 in component ical (dimensionless)');
    LEGEND_RATES(:,14) = strpad('d/dt C4 in component ical (dimensionless)');
    LEGEND_RATES(:,15) = strpad('d/dt CCa0 in component ical (dimensionless)');
    LEGEND_RATES(:,16) = strpad('d/dt CCa1 in component ical (dimensionless)');
    LEGEND_RATES(:,17) = strpad('d/dt CCa2 in component ical (dimensionless)');
    LEGEND_RATES(:,18) = strpad('d/dt CCa3 in component ical (dimensionless)');
    LEGEND_RATES(:,19) = strpad('d/dt CCa4 in component ical (dimensionless)');
    LEGEND_RATES(:,21) = strpad('d/dt Open in component ical (dimensionless)');
    LEGEND_RATES(:,23) = strpad('d/dt yCa in component ical (dimensionless)');
    LEGEND_RATES(:,24) = strpad('d/dt l in component icat (dimensionless)');
    LEGEND_RATES(:,25) = strpad('d/dt n in component icat (dimensionless)');
    LEGEND_RATES(:,26) = strpad('d/dt hcn1 in component ihcn (dimensionless)');
    LEGEND_RATES(:,27) = strpad('d/dt hcn10 in component ihcn (dimensionless)');
    LEGEND_RATES(:,28) = strpad('d/dt hcn2 in component ihcn (dimensionless)');
    LEGEND_RATES(:,29) = strpad('d/dt hcn3 in component ihcn (dimensionless)');
    LEGEND_RATES(:,30) = strpad('d/dt hcn4 in component ihcn (dimensionless)');
    LEGEND_RATES(:,31) = strpad('d/dt hcn5 in component ihcn (dimensionless)');
    LEGEND_RATES(:,32) = strpad('d/dt hcn6 in component ihcn (dimensionless)');
    LEGEND_RATES(:,33) = strpad('d/dt hcn7 in component ihcn (dimensionless)');
    LEGEND_RATES(:,34) = strpad('d/dt hcn8 in component ihcn (dimensionless)');
    LEGEND_RATES(:,35) = strpad('d/dt hcn9 in component ihcn (dimensionless)');
    LEGEND_RATES(:,36) = strpad('d/dt C1 in component ikr (dimensionless)');
    LEGEND_RATES(:,37) = strpad('d/dt C2 in component ikr (dimensionless)');
    LEGEND_RATES(:,38) = strpad('d/dt C3 in component ikr (dimensionless)');
    LEGEND_RATES(:,39) = strpad('d/dt I in component ikr (dimensionless)');
    LEGEND_RATES(:,40) = strpad('d/dt O in component ikr (dimensionless)');
    LEGEND_RATES(:,41) = strpad('d/dt xf_wt in component iks (dimensionless)');
    LEGEND_RATES(:,42) = strpad('d/dt xs_wt in component iks (dimensionless)');
    LEGEND_RATES(:,44) = strpad('d/dt C0 in component ito (dimensionless)');
    LEGEND_RATES(:,45) = strpad('d/dt C1 in component ito (dimensionless)');
    LEGEND_RATES(:,46) = strpad('d/dt C2 in component ito (dimensionless)');
    LEGEND_RATES(:,47) = strpad('d/dt C3 in component ito (dimensionless)');
    LEGEND_RATES(:,48) = strpad('d/dt CI0 in component ito (dimensionless)');
    LEGEND_RATES(:,49) = strpad('d/dt CI1 in component ito (dimensionless)');
    LEGEND_RATES(:,50) = strpad('d/dt CI2 in component ito (dimensionless)');
    LEGEND_RATES(:,51) = strpad('d/dt CI3 in component ito (dimensionless)');
    LEGEND_RATES(:,52) = strpad('d/dt O in component ito (dimensionless)');
    LEGEND_RATES(:,53) = strpad('d/dt OI in component ito (dimensionless)');
    LEGEND_RATES(:,22) = strpad('d/dt V in component membrane (mV)');
    LEGEND_RATES(:,54) = strpad('d/dt BC1 in component nav11 (dimensionless)');
    LEGEND_RATES(:,55) = strpad('d/dt BC2 in component nav11 (dimensionless)');
    LEGEND_RATES(:,56) = strpad('d/dt BC3 in component nav11 (dimensionless)');
    LEGEND_RATES(:,57) = strpad('d/dt BO in component nav11 (dimensionless)');
    LEGEND_RATES(:,58) = strpad('d/dt C1 in component nav11 (dimensionless)');
    LEGEND_RATES(:,59) = strpad('d/dt C2 in component nav11 (dimensionless)');
    LEGEND_RATES(:,60) = strpad('d/dt C3 in component nav11 (dimensionless)');
    LEGEND_RATES(:,61) = strpad('d/dt IC2 in component nav11 (dimensionless)');
    LEGEND_RATES(:,62) = strpad('d/dt IC3 in component nav11 (dimensionless)');
    LEGEND_RATES(:,63) = strpad('d/dt IF in component nav11 (dimensionless)');
    LEGEND_RATES(:,64) = strpad('d/dt IS1 in component nav11 (dimensionless)');
    LEGEND_RATES(:,65) = strpad('d/dt IS2 in component nav11 (dimensionless)');
    LEGEND_RATES(:,66) = strpad('d/dt O in component nav11 (dimensionless)');
    LEGEND_RATES(:,67) = strpad('d/dt BC1 in component nav15 (dimensionless)');
    LEGEND_RATES(:,68) = strpad('d/dt BC2 in component nav15 (dimensionless)');
    LEGEND_RATES(:,69) = strpad('d/dt BC3 in component nav15 (dimensionless)');
    LEGEND_RATES(:,70) = strpad('d/dt BO in component nav15 (dimensionless)');
    LEGEND_RATES(:,71) = strpad('d/dt C1 in component nav15 (dimensionless)');
    LEGEND_RATES(:,72) = strpad('d/dt C2 in component nav15 (dimensionless)');
    LEGEND_RATES(:,73) = strpad('d/dt C3 in component nav15 (dimensionless)');
    LEGEND_RATES(:,74) = strpad('d/dt IC2 in component nav15 (dimensionless)');
    LEGEND_RATES(:,75) = strpad('d/dt IC3 in component nav15 (dimensionless)');
    LEGEND_RATES(:,76) = strpad('d/dt IF in component nav15 (dimensionless)');
    LEGEND_RATES(:,77) = strpad('d/dt IS1 in component nav15 (dimensionless)');
    LEGEND_RATES(:,78) = strpad('d/dt IS2 in component nav15 (dimensionless)');
    LEGEND_RATES(:,79) = strpad('d/dt O in component nav15 (dimensionless)');
    LEGEND_RATES(:,20) = strpad('d/dt Ki in component potassium (mM)');
    LEGEND_RATES(:,8) = strpad('d/dt C1 in component ryr (dimensionless)');
    LEGEND_RATES(:,9) = strpad('d/dt C2 in component ryr (dimensionless)');
    LEGEND_RATES(:,80) = strpad('d/dt O1 in component ryr (dimensionless)');
    LEGEND_RATES(:,7) = strpad('d/dt O2 in component ryr (dimensionless)');
    LEGEND_RATES(:,43) = strpad('d/dt Nai in component sodium (mM)');
    LEGEND_STATES  = LEGEND_STATES';
    LEGEND_ALGEBRAIC = LEGEND_ALGEBRAIC';
    LEGEND_RATES = LEGEND_RATES';
    LEGEND_CONSTANTS = LEGEND_CONSTANTS';
end

function [STATES, CONSTANTS] = initConsts()
    VOI = 0; CONSTANTS = []; STATES = []; ALGEBRAIC = [];
    STATES(:,1) = 2.59679515799999983e-01;
    STATES(:,2) = 2.59898837400000027e-01;
    STATES(:,3) = 1.24655751999999995e-04;
    STATES(:,4) = 7.56225546699999958e-05;
    STATES(:,5) = 9.74145534599999974e-01;
    CONSTANTS(:,1) = 0.14;
    STATES(:,6) = 7.05428108299999967e-02;
    CONSTANTS(:,2) = 0.07;
    CONSTANTS(:,3) = 6.6e-05;
    CONSTANTS(:,4) = 20.0;
    CONSTANTS(:,5) = 0.04;
    CONSTANTS(:,6) = 40.0;
    CONSTANTS(:,7) = 0.5747;
    CONSTANTS(:,8) = 26.7;
    CONSTANTS(:,9) = 0.05;
    CONSTANTS(:,10) = 15.0;
    CONSTANTS(:,11) = 0.0;
    CONSTANTS(:,12) = 0.00238;
    CONSTANTS(:,13) = 0.8;
    CONSTANTS(:,14) = 0.00015;
    CONSTANTS(:,15) = 1.36e-07;
    CONSTANTS(:,16) = 1.785e-06;
    CONSTANTS(:,17) = 1.08e-09;
    CONSTANTS(:,18) = 2.196e-05;
    CONSTANTS(:,19) = 0.0003912;
    CONSTANTS(:,20) = 96.5;
    STATES(:,7) = 2.58066283699999986e-09;
    STATES(:,8) = 4.65590390899999984e-01;
    STATES(:,9) = 5.33775261499999987e-01;
    CONSTANTS(:,21) = 2.0;
    CONSTANTS(:,22) = 4.0;
    CONSTANTS(:,23) = 138.0;
    STATES(:,10) = 8.74379838900000039e-01;
    STATES(:,11) = 2.55268330899999993e-02;
    STATES(:,12) = 2.79463949400000000e-04;
    STATES(:,13) = 1.35979496400000004e-06;
    STATES(:,14) = 2.48115507400000008e-09;
    STATES(:,15) = 8.89536543300000065e-02;
    STATES(:,16) = 1.03878563100000005e-02;
    STATES(:,17) = 4.54899679899999998e-04;
    STATES(:,18) = 8.85360913299999938e-06;
    STATES(:,19) = 6.46181672899999939e-08;
    STATES(:,20) = 1.22483450199999993e+02;
    STATES(:,21) = 1.85837559400000008e-10;
    CONSTANTS(:,24) = 1.8;
    STATES(:,22) = -8.03864711399999976e+01;
    CONSTANTS(:,25) = 2.0;
    CONSTANTS(:,26) = 2.0;
    CONSTANTS(:,27) = 0.3;
    CONSTANTS(:,28) = 4.0;
    CONSTANTS(:,29) = 0.82;
    CONSTANTS(:,30) = 0.0025;
    STATES(:,23) = 9.98998351100000015e-01;
    CONSTANTS(:,31) = 0.0075614;
    STATES(:,24) = 5.48343768800000020e-01;
    STATES(:,25) = 2.08213191599999990e-03;
    CONSTANTS(:,32) = 0.3225;
    CONSTANTS(:,33) = 2.2361;
    STATES(:,26) = 3.45377576399999997e-01;
    STATES(:,27) = 2.64074099199999987e-03;
    STATES(:,28) = 4.08547201099999979e-01;
    STATES(:,29) = 1.80893426200000013e-01;
    STATES(:,30) = 3.54868422399999967e-02;
    STATES(:,31) = 2.59639364999999980e-03;
    STATES(:,32) = 1.13417300900000000e-03;
    STATES(:,33) = 5.28665430399999966e-03;
    STATES(:,34) = 9.66413904500000066e-03;
    STATES(:,35) = 8.13729668700000075e-03;
    CONSTANTS(:,34) = 0.0226;
    CONSTANTS(:,35) = 1.71476417330859998e-02;
    CONSTANTS(:,36) = 3.96932838114099976e-02;
    CONSTANTS(:,37) = 2.05744860597700009e-02;
    CONSTANTS(:,38) = 1.34366604422999996e-03;
    CONSTANTS(:,39) = 1.06663164912879999e-01;
    CONSTANTS(:,40) = 6.46393910049000014e-03;
    CONSTANTS(:,41) = 8.03937440300000057e-05;
    CONSTANTS(:,42) = 3.30460803883500034e-02;
    CONSTANTS(:,43) = 2.61741271511800010e-02;
    CONSTANTS(:,44) = 5.68908859717000021e-03;
    CONSTANTS(:,45) = 6.98089239999999969e-07;
    STATES(:,36) = 7.89638103000000036e-01;
    STATES(:,37) = 7.51317227500000002e-04;
    STATES(:,38) = 1.31802129699999990e-04;
    CONSTANTS(:,46) = 0.0383724;
    STATES(:,39) = 7.34187676599999975e-06;
    STATES(:,40) = 2.70143786700000017e-05;
    CONSTANTS(:,47) = 5.32000000100000037e+00;
    CONSTANTS(:,48) = 2.80819022457099998e-02;
    STATES(:,41) = 7.40047161399999998e-04;
    STATES(:,42) = 1.95694799400000008e-01;
    CONSTANTS(:,49) = 1.38;
    CONSTANTS(:,50) = 87.5;
    STATES(:,43) = 1.20687050500000002e+01;
    CONSTANTS(:,51) = 0.35;
    CONSTANTS(:,52) = 0.44;
    CONSTANTS(:,53) = 0.2;
    CONSTANTS(:,54) = 1.5;
    CONSTANTS(:,55) = 1.5;
    CONSTANTS(:,56) = 20.0;
    CONSTANTS(:,57) = 0.05;
    CONSTANTS(:,58) = 0.0005;
    CONSTANTS(:,59) = 0.0919908;
    STATES(:,44) = 9.12446021800000007e-01;
    STATES(:,45) = 5.57395224500000022e-02;
    STATES(:,46) = 1.27681665400000005e-03;
    STATES(:,47) = 1.29938504799999993e-05;
    STATES(:,48) = 1.41240034599999995e-02;
    STATES(:,49) = 1.10576340999999998e-02;
    STATES(:,50) = 4.37517185700000023e-03;
    STATES(:,51) = 9.10523457199999969e-04;
    CONSTANTS(:,60) = 1.52138159999999995e-01;
    STATES(:,52) = 4.95957872400000005e-08;
    STATES(:,53) = 5.71714766299999999e-05;
    CONSTANTS(:,61) = 0.028983;
    CONSTANTS(:,62) = 3.73015999999999994e-04;
    CONSTANTS(:,63) = 0.543708;
    CONSTANTS(:,64) = 0.0498424;
    CONSTANTS(:,65) = 6.77348;
    CONSTANTS(:,66) = 1.56212705152000009e+01;
    CONSTANTS(:,67) = 2.87532603313000017e+01;
    CONSTANTS(:,68) = 5.24576206679000052e+02;
    CONSTANTS(:,69) = 0.0468437;
    CONSTANTS(:,70) = 0.080185;
    CONSTANTS(:,71) = 8.19481999999999958e-04;
    CONSTANTS(:,72) = 5.374e-08;
    CONSTANTS(:,73) = 1.8936;
    CONSTANTS(:,74) = 1.42246474559999996e+01;
    CONSTANTS(:,75) = 1.58574378389000003e+02;
    CONSTANTS(:,76) = 1.42936645351000010e+02;
    CONSTANTS(:,77) = 0.5;
    CONSTANTS(:,78) = 0.0;
    CONSTANTS(:,79) = 0.0;
    CONSTANTS(:,80) = 1000.0;
    STATES(:,54) = 3.66022597099999997e-10;
    STATES(:,55) = 1.72916501500000004e-07;
    STATES(:,56) = 3.12749104299999976e-05;
    STATES(:,57) = 6.60499340399999993e-13;
    STATES(:,58) = 4.69401528400000025e-06;
    STATES(:,59) = 2.21514457499999992e-03;
    STATES(:,60) = 4.00644227700000022e-01;
    CONSTANTS(:,81) = 9.0;
    STATES(:,61) = 3.35246803199999981e-04;
    STATES(:,62) = 5.99583493199999998e-02;
    STATES(:,63) = 3.65674332999999992e-06;
    STATES(:,64) = 8.87492239200000053e-03;
    STATES(:,65) = 5.26928426500000047e-01;
    STATES(:,66) = 9.08194443799999939e-09;
    CONSTANTS(:,82) = 4.3e-08;
    CONSTANTS(:,83) = 0.0003;
    STATES(:,67) = 2.08587473400000016e-08;
    STATES(:,68) = 1.63649800299999998e-06;
    STATES(:,69) = 5.17784203000000017e-05;
    STATES(:,70) = 5.01137449999999989e-11;
    STATES(:,71) = 2.47138734400000005e-04;
    STATES(:,72) = 1.93896494799999999e-02;
    STATES(:,73) = 6.13484026399999993e-01;
    CONSTANTS(:,84) = 35.0;
    STATES(:,74) = 9.13117952200000020e-03;
    STATES(:,75) = 2.88855704800000002e-01;
    STATES(:,76) = 1.17674846899999997e-04;
    STATES(:,77) = 1.38841821899999998e-03;
    STATES(:,78) = 6.62152358299999966e-02;
    STATES(:,79) = 5.92094839499999983e-07;
    CONSTANTS(:,85) = 4.3e-08;
    CONSTANTS(:,86) = 0.0003;
    CONSTANTS(:,87) = 8.315;
    CONSTANTS(:,88) = 310.0;
    STATES(:,80) = 6.34345983199999957e-04;
    CONSTANTS(:,89) = 0.576;
    CONSTANTS(:,90) = 0.01215;
    CONSTANTS(:,91) = 1.93;
    CONSTANTS(:,92) = 0.00405;
    CONSTANTS(:,93) = 0.0008;
    CONSTANTS(:,94) = 0.1;
    CONSTANTS(:,95) = 1.8;
    CONSTANTS(:,96) = 1.2;
    CONSTANTS(:,97) = 0.000168;
    CONSTANTS(:,98) = 3.29;
    CONSTANTS(:,99) = 1.2;
    CONSTANTS(:,100) = 1.0;
    CONSTANTS(:,101) = 7.48e-05;
    CONSTANTS(:,102) = 0.000318;
    CONSTANTS(:,103) = CONSTANTS(:,30);
    CONSTANTS(:,104) = CONSTANTS(:,19)./( ( CONSTANTS(:,18).*CONSTANTS(:,20)).*1000.00);
    CONSTANTS(:,105) =  - 0.0430605;
    CONSTANTS(:,106) =  - 0.0269139;
    CONSTANTS(:,107) =  - 0.0453664;
    CONSTANTS(:,108) =  CONSTANTS(:,47).*0.0260836;
    CONSTANTS(:,109) =  CONSTANTS(:,47).*0.148330;
    CONSTANTS(:,110) = power((CONSTANTS(:,22)./4.00000), 1.0 ./ 2);
    CONSTANTS(:,111) =  - 100.000;
    CONSTANTS(:,112) = ( CONSTANTS(:,87).*CONSTANTS(:,88))./CONSTANTS(:,20);
    CONSTANTS(:,113) = CONSTANTS(:,103)./CONSTANTS(:,26);
    CONSTANTS(:,114) = CONSTANTS(:,19)./( ( ( 2.00000.*CONSTANTS(:,17)).*CONSTANTS(:,20)).*1000.00);
    CONSTANTS(:,115) = CONSTANTS(:,113)./CONSTANTS(:,26);
    CONSTANTS(:,116) =  - 0.265000;
    CONSTANTS(:,117) = CONSTANTS(:,115)./CONSTANTS(:,26);
    CONSTANTS(:,118) =  CONSTANTS(:,24).*0.246900;
    CONSTANTS(:,119) = CONSTANTS(:,117)./CONSTANTS(:,26);
    CONSTANTS(:,120) =  CONSTANTS(:,24).*0.000457400;
    CONSTANTS(:,121) = CONSTANTS(:,49)+CONSTANTS(:,21);
    CONSTANTS(:,122) = power(CONSTANTS(:,23), 3.00000);
    CONSTANTS(:,123) = 5000.00./(power(CONSTANTS(:,50), 3.00000)+CONSTANTS(:,122));
    CONSTANTS(:,124) = CONSTANTS(:,22)./(CONSTANTS(:,22)+CONSTANTS(:,55));
    CONSTANTS(:,125) = (exp(CONSTANTS(:,23)./67.3000) - 1.00000)./7.00000;
    if (isempty(STATES)), warning('Initial values for states not set');, end
end

function [RATES, ALGEBRAIC] = computeRates(VOI, STATES, CONSTANTS)
    global algebraicVariableCount;
    statesSize = size(STATES);
    statesColumnCount = statesSize(2);
    if ( statesColumnCount == 1)
        STATES = STATES';
        ALGEBRAIC = zeros(1, algebraicVariableCount);
        utilOnes = 1;
    else
        statesRowCount = statesSize(1);
        ALGEBRAIC = zeros(statesRowCount, algebraicVariableCount);
        RATES = zeros(statesRowCount, statesColumnCount);
        utilOnes = ones(statesRowCount, 1);
    end
    RATES(:,9) =  CONSTANTS(:,94).*STATES(:,80) -  CONSTANTS(:,93).*STATES(:,9);
    RATES(:,21) =  CONSTANTS(:,27).*STATES(:,14) -  CONSTANTS(:,28).*STATES(:,21);
    ALGEBRAIC(:,3) = 1.00000./(0.00336336./(0.500000+exp(STATES(:,22)./ - 5.53900))+ 0.00779047.*exp(STATES(:,22)./ - 49.5104));
    ALGEBRAIC(:,15) = CONSTANTS(:,29)./(1.00000+exp((STATES(:,22)+28.5000)./7.80000))+(1.00000 - CONSTANTS(:,29));
    RATES(:,23) = (ALGEBRAIC(:,15) - STATES(:,23))./ALGEBRAIC(:,3);
    ALGEBRAIC(:,4) = 1.00000./(1.00000+exp((STATES(:,22)+75.6000)./6.20000));
    ALGEBRAIC(:,16) = piecewise({STATES(:,22)< - 60.0000, 500.000 }, 18.3000+ 0.00500000.*exp( - STATES(:,22)./6.20000));
    RATES(:,24) = (ALGEBRAIC(:,4) - STATES(:,24))./ALGEBRAIC(:,16);
    ALGEBRAIC(:,5) = 1.00000./(1.00000+exp( - (STATES(:,22)+48.4000)./5.20000));
    ALGEBRAIC(:,17) = piecewise({STATES(:,22)< - 56.0000,  2.44000.*exp((STATES(:,22)+120.000)./40.0000) }, 1.34000+ 0.0350000.*exp( - STATES(:,22)./11.8000));
    RATES(:,25) = (ALGEBRAIC(:,5) - STATES(:,25))./ALGEBRAIC(:,17);
    ALGEBRAIC(:,6) =  ( CONSTANTS(:,47).*CONSTANTS(:,35)).*exp( CONSTANTS(:,42).*STATES(:,22));
    ALGEBRAIC(:,18) =  ( CONSTANTS(:,47).*CONSTANTS(:,36)).*exp( CONSTANTS(:,105).*STATES(:,22));
    RATES(:,36) =  ALGEBRAIC(:,18).*STATES(:,37) -  ALGEBRAIC(:,6).*STATES(:,36);
    ALGEBRAIC(:,8) = piecewise({STATES(:,22)==21.0000, 0.000146000./0.0780000 }, ( 0.000146000.*(STATES(:,22) - 21.0000))./(1.00000 - exp(  - 0.0780000.*(STATES(:,22) - 21.0000))));
    ALGEBRAIC(:,20) =  0.000910000.*exp(  - 0.0280000.*STATES(:,22));
    RATES(:,41) =  ALGEBRAIC(:,8).*(1.00000 - STATES(:,41)) -  ALGEBRAIC(:,20).*STATES(:,41);
    ALGEBRAIC(:,9) = piecewise({STATES(:,22)== - 11.0000, 3.30000e-05./0.130000 }, ( 3.30000e-05.*(STATES(:,22)+11.0000))./(1.00000 - exp(  - 0.130000.*(STATES(:,22)+11.0000))));
    ALGEBRAIC(:,21) =  0.000100000.*exp(  - 0.0150000.*STATES(:,22));
    RATES(:,42) =  ALGEBRAIC(:,9).*(1.00000 - STATES(:,42)) -  ALGEBRAIC(:,21).*STATES(:,42);
    ALGEBRAIC(:,25) = power( STATES(:,3).*1000.00, 4.00000);
    RATES(:,8) =  (  - CONSTANTS(:,90).*ALGEBRAIC(:,25)).*STATES(:,8)+ CONSTANTS(:,89).*STATES(:,80);
    ALGEBRAIC(:,26) =  CONSTANTS(:,3).*STATES(:,5);
    RATES(:,5) =  ( CONSTANTS(:,4).*STATES(:,4)).*(1.00000 - STATES(:,5)) - ALGEBRAIC(:,26);
    ALGEBRAIC(:,29) =  ALGEBRAIC(:,6).*STATES(:,36)+ CONSTANTS(:,109).*STATES(:,38);
    ALGEBRAIC(:,35) =  (ALGEBRAIC(:,18)+CONSTANTS(:,108)).*STATES(:,37);
    RATES(:,37) = ALGEBRAIC(:,29) - ALGEBRAIC(:,35);
    ALGEBRAIC(:,39) = power( STATES(:,3).*1000.00, 3.00000);
    RATES(:,7) =  ( CONSTANTS(:,92).*ALGEBRAIC(:,39)).*STATES(:,80) -  CONSTANTS(:,91).*STATES(:,7);
    ALGEBRAIC(:,40) =  CONSTANTS(:,5).*STATES(:,6);
    RATES(:,6) =  ( CONSTANTS(:,6).*STATES(:,4)).*(1.00000 - STATES(:,6)) - ALGEBRAIC(:,40);
    RATES(:,80) =  - ((RATES(:,8)+RATES(:,7))+RATES(:,9));
    ALGEBRAIC(:,19) =  ( CONSTANTS(:,47).*CONSTANTS(:,37)).*exp( CONSTANTS(:,43).*STATES(:,22));
    ALGEBRAIC(:,28) =  ( CONSTANTS(:,47).*CONSTANTS(:,40)).*exp( CONSTANTS(:,107).*STATES(:,22));
    ALGEBRAIC(:,48) =  ALGEBRAIC(:,19).*STATES(:,38)+ ALGEBRAIC(:,28).*STATES(:,39);
    ALGEBRAIC(:,34) =  ( CONSTANTS(:,47).*CONSTANTS(:,38)).*exp( CONSTANTS(:,106).*STATES(:,22));
    ALGEBRAIC(:,42) =  ( CONSTANTS(:,47).*CONSTANTS(:,39)).*exp( CONSTANTS(:,44).*STATES(:,22));
    ALGEBRAIC(:,56) =  (ALGEBRAIC(:,34)+ALGEBRAIC(:,42)).*STATES(:,40);
    RATES(:,40) = ALGEBRAIC(:,48) - ALGEBRAIC(:,56);
    ALGEBRAIC(:,7) =  ( CONSTANTS(:,47).*CONSTANTS(:,41)).*exp( CONSTANTS(:,45).*STATES(:,22));
    ALGEBRAIC(:,47) = ( ( ALGEBRAIC(:,34).*ALGEBRAIC(:,28)).*ALGEBRAIC(:,7))./( ALGEBRAIC(:,19).*ALGEBRAIC(:,42));
    ALGEBRAIC(:,54) = ( CONSTANTS(:,108).*STATES(:,37)+ ALGEBRAIC(:,34).*STATES(:,40))+ ALGEBRAIC(:,47).*STATES(:,39);
    ALGEBRAIC(:,62) =  ((ALGEBRAIC(:,7)+ALGEBRAIC(:,19))+CONSTANTS(:,109)).*STATES(:,38);
    RATES(:,38) = ALGEBRAIC(:,54) - ALGEBRAIC(:,62);
    ALGEBRAIC(:,55) =  ALGEBRAIC(:,7).*STATES(:,38)+ ALGEBRAIC(:,42).*STATES(:,40);
    ALGEBRAIC(:,63) =  (ALGEBRAIC(:,47)+ALGEBRAIC(:,28)).*STATES(:,39);
    RATES(:,39) = ALGEBRAIC(:,55) - ALGEBRAIC(:,63);
    ALGEBRAIC(:,11) = 2.80200./( 0.210000.*exp( - STATES(:,22)./17.0000)+ 0.230000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,65) =  0.400000.*exp( - STATES(:,22)./20.3000);
    RATES(:,56) = ( STATES(:,55).*ALGEBRAIC(:,65)+ STATES(:,60).*CONSTANTS(:,82)) -  STATES(:,56).*(ALGEBRAIC(:,11)+CONSTANTS(:,83));
    ALGEBRAIC(:,12) = 3.80200./( 0.102700.*exp( - STATES(:,22)./17.0000)+ 0.200000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,66) =  0.191700.*exp( - STATES(:,22)./20.3000);
    RATES(:,69) = ( STATES(:,68).*ALGEBRAIC(:,66)+ STATES(:,73).*CONSTANTS(:,85)) -  STATES(:,69).*(ALGEBRAIC(:,12)+CONSTANTS(:,86));
    ALGEBRAIC(:,23) = 2.80200./( 0.230000.*exp( - STATES(:,22)./15.0000)+ 0.250000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,70) =  0.400000.*exp( - (STATES(:,22) - 5.00000)./20.3000);
    RATES(:,55) = (( STATES(:,54).*ALGEBRAIC(:,70)+ STATES(:,56).*ALGEBRAIC(:,11))+ STATES(:,59).*CONSTANTS(:,82)) -  STATES(:,55).*((ALGEBRAIC(:,23)+ALGEBRAIC(:,65))+CONSTANTS(:,83));
    ALGEBRAIC(:,24) = 3.80200./( 0.102700.*exp( - STATES(:,22)./15.0000)+ 0.230000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,71) =  0.200000.*exp( - (STATES(:,22) - 5.00000)./20.3000);
    RATES(:,68) = (( STATES(:,67).*ALGEBRAIC(:,71)+ STATES(:,69).*ALGEBRAIC(:,12))+ STATES(:,72).*CONSTANTS(:,85)) -  STATES(:,68).*((ALGEBRAIC(:,24)+ALGEBRAIC(:,66))+CONSTANTS(:,86));
    ALGEBRAIC(:,31) = 2.80200./( 0.250000.*exp( - STATES(:,22)./12.0000)+ 0.270000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,75) = ( 0.400000.*exp( - (STATES(:,22) - 10.0000)./20.3000))./4.50000;
    RATES(:,54) = (( STATES(:,57).*ALGEBRAIC(:,75)+ STATES(:,55).*ALGEBRAIC(:,23))+ STATES(:,58).*CONSTANTS(:,82)) -  STATES(:,54).*((ALGEBRAIC(:,31)+ALGEBRAIC(:,70))+CONSTANTS(:,83));
    RATES(:,57) = ( STATES(:,54).*ALGEBRAIC(:,31)+ STATES(:,66).*CONSTANTS(:,82)) -  STATES(:,57).*(ALGEBRAIC(:,75)+CONSTANTS(:,83));
    ALGEBRAIC(:,32) = 3.80200./( 0.102700.*exp( - STATES(:,22)./12.0000)+ 0.250000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,76) =  0.220000.*exp( - (STATES(:,22) - 10.0000)./20.3000);
    RATES(:,67) = (( STATES(:,70).*ALGEBRAIC(:,76)+ STATES(:,68).*ALGEBRAIC(:,24))+ STATES(:,71).*CONSTANTS(:,85)) -  STATES(:,67).*((ALGEBRAIC(:,32)+ALGEBRAIC(:,71))+CONSTANTS(:,86));
    RATES(:,70) = ( STATES(:,67).*ALGEBRAIC(:,32)+ STATES(:,79).*CONSTANTS(:,85)) -  STATES(:,70).*(ALGEBRAIC(:,76)+CONSTANTS(:,86));
    ALGEBRAIC(:,44) =  ( 3.79330e-07.*exp( - STATES(:,22)./7.60000)).*3.00000;
    ALGEBRAIC(:,80) = 0.00840000+ 2.00000e-05.*STATES(:,22);
    RATES(:,58) = ((( STATES(:,63).*ALGEBRAIC(:,44)+ STATES(:,54).*CONSTANTS(:,83))+ STATES(:,66).*ALGEBRAIC(:,75))+ STATES(:,59).*ALGEBRAIC(:,23)) -  STATES(:,58).*(((ALGEBRAIC(:,31)+ALGEBRAIC(:,80))+CONSTANTS(:,82))+ALGEBRAIC(:,70));
    RATES(:,59) = ((( STATES(:,61).*ALGEBRAIC(:,44)+ STATES(:,55).*CONSTANTS(:,83))+ STATES(:,58).*ALGEBRAIC(:,70))+ STATES(:,60).*ALGEBRAIC(:,11)) -  STATES(:,59).*(((ALGEBRAIC(:,23)+ALGEBRAIC(:,80))+CONSTANTS(:,82))+ALGEBRAIC(:,65));
    RATES(:,60) = (( STATES(:,62).*ALGEBRAIC(:,44)+ STATES(:,56).*CONSTANTS(:,83))+ STATES(:,59).*ALGEBRAIC(:,65)) -  STATES(:,60).*((ALGEBRAIC(:,11)+ALGEBRAIC(:,80))+CONSTANTS(:,82));
    RATES(:,61) = (( STATES(:,63).*ALGEBRAIC(:,70)+ STATES(:,59).*ALGEBRAIC(:,80))+ STATES(:,62).*ALGEBRAIC(:,11)) -  STATES(:,61).*((ALGEBRAIC(:,23)+ALGEBRAIC(:,44))+ALGEBRAIC(:,65));
    RATES(:,62) = ( STATES(:,61).*ALGEBRAIC(:,65)+ STATES(:,60).*ALGEBRAIC(:,80)) -  STATES(:,62).*(ALGEBRAIC(:,11)+ALGEBRAIC(:,44));
    ALGEBRAIC(:,45) =  3.79330e-07.*exp( - STATES(:,22)./7.70000);
    ALGEBRAIC(:,81) = 0.00840000+ 2.00000e-05.*STATES(:,22);
    RATES(:,71) = ((( STATES(:,76).*ALGEBRAIC(:,45)+ STATES(:,67).*CONSTANTS(:,86))+ STATES(:,79).*ALGEBRAIC(:,76))+ STATES(:,72).*ALGEBRAIC(:,24)) -  STATES(:,71).*(((ALGEBRAIC(:,32)+ALGEBRAIC(:,81))+CONSTANTS(:,85))+ALGEBRAIC(:,71));
    RATES(:,72) = ((( STATES(:,74).*ALGEBRAIC(:,45)+ STATES(:,68).*CONSTANTS(:,86))+ STATES(:,71).*ALGEBRAIC(:,71))+ STATES(:,73).*ALGEBRAIC(:,12)) -  STATES(:,72).*(((ALGEBRAIC(:,24)+ALGEBRAIC(:,81))+CONSTANTS(:,85))+ALGEBRAIC(:,66));
    RATES(:,73) = (( STATES(:,75).*ALGEBRAIC(:,45)+ STATES(:,69).*CONSTANTS(:,86))+ STATES(:,72).*ALGEBRAIC(:,66)) -  STATES(:,73).*((ALGEBRAIC(:,12)+ALGEBRAIC(:,81))+CONSTANTS(:,85));
    RATES(:,74) = (( STATES(:,76).*ALGEBRAIC(:,71)+ STATES(:,72).*ALGEBRAIC(:,81))+ STATES(:,75).*ALGEBRAIC(:,12)) -  STATES(:,74).*((ALGEBRAIC(:,24)+ALGEBRAIC(:,45))+ALGEBRAIC(:,66));
    RATES(:,75) = ( STATES(:,74).*ALGEBRAIC(:,66)+ STATES(:,73).*ALGEBRAIC(:,81)) -  STATES(:,75).*(ALGEBRAIC(:,12)+ALGEBRAIC(:,45));
    ALGEBRAIC(:,37) = ( 9.17800.*exp(STATES(:,22)./29.6800))./4.50000;
    ALGEBRAIC(:,85) = ( ( ALGEBRAIC(:,44).*ALGEBRAIC(:,37)).*ALGEBRAIC(:,31))./( ALGEBRAIC(:,80).*ALGEBRAIC(:,75));
    RATES(:,66) = (( STATES(:,63).*ALGEBRAIC(:,85)+ STATES(:,57).*CONSTANTS(:,83))+ STATES(:,58).*ALGEBRAIC(:,31)) -  STATES(:,66).*((ALGEBRAIC(:,37)+ALGEBRAIC(:,75))+CONSTANTS(:,82));
    ALGEBRAIC(:,38) =  9.17800.*exp(STATES(:,22)./29.6800);
    ALGEBRAIC(:,86) = ( ( ALGEBRAIC(:,45).*ALGEBRAIC(:,38)).*ALGEBRAIC(:,32))./( ALGEBRAIC(:,81).*ALGEBRAIC(:,76));
    RATES(:,79) = (( STATES(:,76).*ALGEBRAIC(:,86)+ STATES(:,70).*CONSTANTS(:,86))+ STATES(:,71).*ALGEBRAIC(:,32)) -  STATES(:,79).*((ALGEBRAIC(:,38)+ALGEBRAIC(:,76))+CONSTANTS(:,85));
    ALGEBRAIC(:,50) =  ( (ALGEBRAIC(:,37)./100.000).*1.50000).*0.285000;
    ALGEBRAIC(:,90) = ALGEBRAIC(:,44)./5.00000;
    RATES(:,63) = ((( STATES(:,64).*ALGEBRAIC(:,90)+ STATES(:,66).*ALGEBRAIC(:,37))+ STATES(:,61).*ALGEBRAIC(:,23))+ STATES(:,58).*ALGEBRAIC(:,80)) -  STATES(:,63).*(((ALGEBRAIC(:,50)+ALGEBRAIC(:,85))+ALGEBRAIC(:,70))+ALGEBRAIC(:,44));
    ALGEBRAIC(:,51) = ALGEBRAIC(:,38)./100.000;
    ALGEBRAIC(:,91) = ALGEBRAIC(:,45);
    RATES(:,76) = ((( STATES(:,77).*ALGEBRAIC(:,91)+ STATES(:,79).*ALGEBRAIC(:,38))+ STATES(:,74).*ALGEBRAIC(:,24))+ STATES(:,71).*ALGEBRAIC(:,81)) -  STATES(:,76).*(((ALGEBRAIC(:,51)+ALGEBRAIC(:,86))+ALGEBRAIC(:,71))+ALGEBRAIC(:,45));
    ALGEBRAIC(:,58) =  (ALGEBRAIC(:,37)./95000.0).*80.0000;
    ALGEBRAIC(:,95) = (ALGEBRAIC(:,44)./30.0000)./10.0000;
    RATES(:,64) = ( STATES(:,65).*ALGEBRAIC(:,95)+ STATES(:,63).*ALGEBRAIC(:,50)) -  STATES(:,64).*(ALGEBRAIC(:,58)+ALGEBRAIC(:,90));
    RATES(:,65) =  STATES(:,64).*ALGEBRAIC(:,58) -  STATES(:,65).*ALGEBRAIC(:,95);
    ALGEBRAIC(:,59) = ALGEBRAIC(:,38)./95000.0;
    ALGEBRAIC(:,96) = ALGEBRAIC(:,45)./50.0000;
    RATES(:,77) = ( STATES(:,78).*ALGEBRAIC(:,96)+ STATES(:,76).*ALGEBRAIC(:,51)) -  STATES(:,77).*(ALGEBRAIC(:,59)+ALGEBRAIC(:,91));
    RATES(:,78) =  STATES(:,77).*ALGEBRAIC(:,59) -  STATES(:,78).*ALGEBRAIC(:,96);
    ALGEBRAIC(:,2) =  ( ( 4.00000.*1.20000).*0.416000).*exp( 0.0120000.*(STATES(:,22) - 35.0000));
    ALGEBRAIC(:,14) =  4.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,116) =  ( 0.600000.*0.0923300).*STATES(:,3);
    ALGEBRAIC(:,119) = ALGEBRAIC(:,116);
    ALGEBRAIC(:,123) =  (ALGEBRAIC(:,14)+ALGEBRAIC(:,119)).*STATES(:,10);
    ALGEBRAIC(:,78) =  ( ( 4.00000.*0.450000).*0.0490000).*exp(  - 0.0650000.*(STATES(:,22) - 22.0000));
    ALGEBRAIC(:,83) = ALGEBRAIC(:,78);
    ALGEBRAIC(:,128) =  ALGEBRAIC(:,83).*STATES(:,11)+ CONSTANTS(:,103).*STATES(:,15);
    RATES(:,10) = ALGEBRAIC(:,128) - ALGEBRAIC(:,123);
    ALGEBRAIC(:,46) =  CONSTANTS(:,25).*ALGEBRAIC(:,2);
    ALGEBRAIC(:,53) =  4.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,124) =  (ALGEBRAIC(:,53)+CONSTANTS(:,103)).*STATES(:,15);
    ALGEBRAIC(:,100) = ALGEBRAIC(:,78)./CONSTANTS(:,26);
    ALGEBRAIC(:,104) = ALGEBRAIC(:,100);
    ALGEBRAIC(:,130) =  ALGEBRAIC(:,104).*STATES(:,16)+ ALGEBRAIC(:,119).*STATES(:,10);
    RATES(:,15) = ALGEBRAIC(:,130) - ALGEBRAIC(:,124);
    ALGEBRAIC(:,27) =  3.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,122) =  CONSTANTS(:,25).*ALGEBRAIC(:,119);
    ALGEBRAIC(:,129) =  ((ALGEBRAIC(:,83)+ALGEBRAIC(:,27))+ALGEBRAIC(:,122)).*STATES(:,11);
    ALGEBRAIC(:,88) =  2.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,135) = ( ALGEBRAIC(:,14).*STATES(:,10)+ ALGEBRAIC(:,88).*STATES(:,12))+ CONSTANTS(:,113).*STATES(:,16);
    RATES(:,11) = ALGEBRAIC(:,135) - ALGEBRAIC(:,129);
    ALGEBRAIC(:,61) =  3.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,131) =  ((ALGEBRAIC(:,104)+ALGEBRAIC(:,61))+CONSTANTS(:,113)).*STATES(:,16);
    ALGEBRAIC(:,107) =  2.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,137) = ( ALGEBRAIC(:,53).*STATES(:,15)+ ALGEBRAIC(:,107).*STATES(:,17))+ ALGEBRAIC(:,122).*STATES(:,11);
    RATES(:,16) = ALGEBRAIC(:,137) - ALGEBRAIC(:,131);
    ALGEBRAIC(:,33) =  2.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,127) =  CONSTANTS(:,25).*ALGEBRAIC(:,122);
    ALGEBRAIC(:,136) =  ((ALGEBRAIC(:,88)+ALGEBRAIC(:,33))+ALGEBRAIC(:,127)).*STATES(:,12);
    ALGEBRAIC(:,93) =  3.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,141) = ( ALGEBRAIC(:,27).*STATES(:,11)+ ALGEBRAIC(:,93).*STATES(:,13))+ CONSTANTS(:,115).*STATES(:,17);
    RATES(:,12) = ALGEBRAIC(:,141) - ALGEBRAIC(:,136);
    ALGEBRAIC(:,68) =  2.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,138) =  ((ALGEBRAIC(:,107)+ALGEBRAIC(:,68))+CONSTANTS(:,115)).*STATES(:,17);
    ALGEBRAIC(:,110) =  3.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,144) = ( ALGEBRAIC(:,61).*STATES(:,16)+ ALGEBRAIC(:,110).*STATES(:,18))+ ALGEBRAIC(:,127).*STATES(:,12);
    RATES(:,17) = ALGEBRAIC(:,144) - ALGEBRAIC(:,138);
    ALGEBRAIC(:,41) = ALGEBRAIC(:,2);
    ALGEBRAIC(:,134) =  CONSTANTS(:,25).*ALGEBRAIC(:,127);
    ALGEBRAIC(:,142) =  ((ALGEBRAIC(:,93)+ALGEBRAIC(:,41))+ALGEBRAIC(:,134)).*STATES(:,13);
    ALGEBRAIC(:,98) =  4.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,152) = ( ALGEBRAIC(:,33).*STATES(:,12)+ ALGEBRAIC(:,98).*STATES(:,14))+ CONSTANTS(:,117).*STATES(:,18);
    RATES(:,13) = ALGEBRAIC(:,152) - ALGEBRAIC(:,142);
    ALGEBRAIC(:,73) = ALGEBRAIC(:,46);
    ALGEBRAIC(:,145) =  ((ALGEBRAIC(:,110)+ALGEBRAIC(:,73))+CONSTANTS(:,117)).*STATES(:,18);
    ALGEBRAIC(:,113) =  4.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,154) = ( ALGEBRAIC(:,68).*STATES(:,17)+ ALGEBRAIC(:,113).*STATES(:,19))+ ALGEBRAIC(:,134).*STATES(:,13);
    RATES(:,18) = ALGEBRAIC(:,154) - ALGEBRAIC(:,145);
    ALGEBRAIC(:,143) =  CONSTANTS(:,25).*ALGEBRAIC(:,134);
    ALGEBRAIC(:,153) =  ((ALGEBRAIC(:,98)+CONSTANTS(:,27))+ALGEBRAIC(:,143)).*STATES(:,14);
    ALGEBRAIC(:,167) = ( ALGEBRAIC(:,41).*STATES(:,13)+ CONSTANTS(:,28).*STATES(:,21))+ CONSTANTS(:,119).*STATES(:,19);
    RATES(:,14) = ALGEBRAIC(:,167) - ALGEBRAIC(:,153);
    ALGEBRAIC(:,155) =  (ALGEBRAIC(:,113)+CONSTANTS(:,119)).*STATES(:,19);
    ALGEBRAIC(:,168) =  ALGEBRAIC(:,73).*STATES(:,18)+ ALGEBRAIC(:,143).*STATES(:,14);
    RATES(:,19) = ALGEBRAIC(:,168) - ALGEBRAIC(:,155);
    ALGEBRAIC(:,10) =  CONSTANTS(:,63).*exp( CONSTANTS(:,61).*STATES(:,22));
    ALGEBRAIC(:,22) =  4.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,139) =  CONSTANTS(:,71).*exp( CONSTANTS(:,72).*STATES(:,22));
    ALGEBRAIC(:,146) = ALGEBRAIC(:,139);
    ALGEBRAIC(:,156) =  (ALGEBRAIC(:,22)+ALGEBRAIC(:,146)).*STATES(:,44);
    ALGEBRAIC(:,102) =  CONSTANTS(:,70).*exp(  - CONSTANTS(:,69).*STATES(:,22));
    ALGEBRAIC(:,105) = ALGEBRAIC(:,102);
    ALGEBRAIC(:,74) =  CONSTANTS(:,64).*exp(  - CONSTANTS(:,62).*STATES(:,22));
    ALGEBRAIC(:,79) = ALGEBRAIC(:,74);
    ALGEBRAIC(:,169) =  ALGEBRAIC(:,105).*STATES(:,45)+ ALGEBRAIC(:,79).*STATES(:,48);
    RATES(:,44) = ALGEBRAIC(:,169) - ALGEBRAIC(:,156);
    ALGEBRAIC(:,30) =  3.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,147) =  CONSTANTS(:,73).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,157) =  ((ALGEBRAIC(:,30)+ALGEBRAIC(:,105))+ALGEBRAIC(:,147)).*STATES(:,45);
    ALGEBRAIC(:,108) =  2.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,84) = ALGEBRAIC(:,74)./CONSTANTS(:,65);
    ALGEBRAIC(:,170) = ( ALGEBRAIC(:,108).*STATES(:,46)+ ALGEBRAIC(:,84).*STATES(:,49))+ ALGEBRAIC(:,22).*STATES(:,44);
    RATES(:,45) = ALGEBRAIC(:,170) - ALGEBRAIC(:,157);
    ALGEBRAIC(:,36) =  2.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,148) =  CONSTANTS(:,74).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,158) =  ((ALGEBRAIC(:,36)+ALGEBRAIC(:,108))+ALGEBRAIC(:,148)).*STATES(:,46);
    ALGEBRAIC(:,111) =  3.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,89) = ALGEBRAIC(:,74)./CONSTANTS(:,66);
    ALGEBRAIC(:,171) = ( ALGEBRAIC(:,111).*STATES(:,47)+ ALGEBRAIC(:,89).*STATES(:,50))+ ALGEBRAIC(:,30).*STATES(:,45);
    RATES(:,46) = ALGEBRAIC(:,171) - ALGEBRAIC(:,158);
    ALGEBRAIC(:,149) =  CONSTANTS(:,75).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,43) = ALGEBRAIC(:,10);
    ALGEBRAIC(:,159) =  ((ALGEBRAIC(:,43)+ALGEBRAIC(:,111))+ALGEBRAIC(:,149)).*STATES(:,47);
    ALGEBRAIC(:,94) = ALGEBRAIC(:,74)./CONSTANTS(:,67);
    ALGEBRAIC(:,132) =  4.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,172) = ( ALGEBRAIC(:,132).*STATES(:,52)+ ALGEBRAIC(:,94).*STATES(:,51))+ ALGEBRAIC(:,36).*STATES(:,46);
    RATES(:,47) = ALGEBRAIC(:,172) - ALGEBRAIC(:,159);
    ALGEBRAIC(:,49) =  ( 4.00000.*CONSTANTS(:,65)).*ALGEBRAIC(:,10);
    ALGEBRAIC(:,160) =  (ALGEBRAIC(:,79)+ALGEBRAIC(:,49)).*STATES(:,48);
    ALGEBRAIC(:,114) = ALGEBRAIC(:,102)./CONSTANTS(:,73);
    ALGEBRAIC(:,173) =  ALGEBRAIC(:,146).*STATES(:,44)+ ALGEBRAIC(:,114).*STATES(:,49);
    RATES(:,48) = ALGEBRAIC(:,173) - ALGEBRAIC(:,160);
    ALGEBRAIC(:,57) = ( ( 3.00000.*CONSTANTS(:,66)).*ALGEBRAIC(:,10))./CONSTANTS(:,65);
    ALGEBRAIC(:,161) =  ((ALGEBRAIC(:,57)+ALGEBRAIC(:,84))+ALGEBRAIC(:,114)).*STATES(:,49);
    ALGEBRAIC(:,117) = ( ( 2.00000.*CONSTANTS(:,73)).*ALGEBRAIC(:,102))./CONSTANTS(:,74);
    ALGEBRAIC(:,174) = ( ALGEBRAIC(:,117).*STATES(:,50)+ ALGEBRAIC(:,147).*STATES(:,45))+ ALGEBRAIC(:,49).*STATES(:,48);
    RATES(:,49) = ALGEBRAIC(:,174) - ALGEBRAIC(:,161);
    ALGEBRAIC(:,64) = ( ( 2.00000.*CONSTANTS(:,67)).*ALGEBRAIC(:,10))./CONSTANTS(:,66);
    ALGEBRAIC(:,162) =  ((ALGEBRAIC(:,64)+ALGEBRAIC(:,89))+ALGEBRAIC(:,117)).*STATES(:,50);
    ALGEBRAIC(:,120) = ( ( 3.00000.*CONSTANTS(:,74)).*ALGEBRAIC(:,102))./CONSTANTS(:,75);
    ALGEBRAIC(:,175) = ( ALGEBRAIC(:,120).*STATES(:,51)+ ALGEBRAIC(:,148).*STATES(:,46))+ ALGEBRAIC(:,57).*STATES(:,49);
    RATES(:,50) = ALGEBRAIC(:,175) - ALGEBRAIC(:,162);
    ALGEBRAIC(:,69) = ( CONSTANTS(:,68).*ALGEBRAIC(:,10))./CONSTANTS(:,67);
    ALGEBRAIC(:,163) =  ((ALGEBRAIC(:,69)+ALGEBRAIC(:,94))+ALGEBRAIC(:,120)).*STATES(:,51);
    ALGEBRAIC(:,125) = ( ( 4.00000.*CONSTANTS(:,75)).*ALGEBRAIC(:,102))./CONSTANTS(:,76);
    ALGEBRAIC(:,176) = ( ALGEBRAIC(:,125).*STATES(:,53)+ ALGEBRAIC(:,149).*STATES(:,47))+ ALGEBRAIC(:,64).*STATES(:,50);
    RATES(:,51) = ALGEBRAIC(:,176) - ALGEBRAIC(:,163);
    ALGEBRAIC(:,150) =  CONSTANTS(:,76).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,165) =  (ALGEBRAIC(:,132)+ALGEBRAIC(:,150)).*STATES(:,52);
    ALGEBRAIC(:,99) = ALGEBRAIC(:,74)./CONSTANTS(:,68);
    ALGEBRAIC(:,178) =  ALGEBRAIC(:,43).*STATES(:,47)+ ALGEBRAIC(:,99).*STATES(:,53);
    RATES(:,52) = ALGEBRAIC(:,178) - ALGEBRAIC(:,165);
    ALGEBRAIC(:,164) =  (ALGEBRAIC(:,99)+ALGEBRAIC(:,125)).*STATES(:,53);
    ALGEBRAIC(:,177) =  ALGEBRAIC(:,150).*STATES(:,52)+ ALGEBRAIC(:,69).*STATES(:,51);
    RATES(:,53) = ALGEBRAIC(:,177) - ALGEBRAIC(:,164);
    ALGEBRAIC(:,181) = STATES(:,22)./CONSTANTS(:,112);
    ALGEBRAIC(:,182) = ( 0.000171200.*exp(  - 1.46500.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,184) = ( 26.1700.*exp( 1.46500.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,186) = ( 287.500.*exp( 1.24200.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,188) = ( 0.0402500.*exp(  - 1.24200.*ALGEBRAIC(:,181)))./1000.00;
    RATES(:,26) = (  - ( 4.00000.*ALGEBRAIC(:,188)+ALGEBRAIC(:,182)).*STATES(:,26)+ ALGEBRAIC(:,186).*STATES(:,28))+ ALGEBRAIC(:,184).*STATES(:,32);
    RATES(:,27) = (  - (ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 4.00000)+( 4.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33)).*STATES(:,27)+ ( ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 4.00000)).*STATES(:,31))+ ( ALGEBRAIC(:,188).*CONSTANTS(:,33)).*STATES(:,35);
    RATES(:,28) = ((  - ((ALGEBRAIC(:,186)+ 3.00000.*ALGEBRAIC(:,188))+ ALGEBRAIC(:,182).*CONSTANTS(:,33)).*STATES(:,28)+ ( 4.00000.*ALGEBRAIC(:,188)).*STATES(:,26))+ ( 2.00000.*ALGEBRAIC(:,186)).*STATES(:,29))+ (ALGEBRAIC(:,184)./CONSTANTS(:,33)).*STATES(:,33);
    RATES(:,29) = ((  - (( 2.00000.*ALGEBRAIC(:,186)+ 2.00000.*ALGEBRAIC(:,188))+ ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 2.00000)).*STATES(:,29)+ ( 3.00000.*ALGEBRAIC(:,188)).*STATES(:,28))+ ( 3.00000.*ALGEBRAIC(:,186)).*STATES(:,30))+ (ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 2.00000)).*STATES(:,34);
    RATES(:,30) = ((  - (( 3.00000.*ALGEBRAIC(:,186)+ALGEBRAIC(:,188))+ ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 3.00000)).*STATES(:,30)+ ( 2.00000.*ALGEBRAIC(:,188)).*STATES(:,29))+ ( 4.00000.*ALGEBRAIC(:,186)).*STATES(:,31))+ (ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 3.00000)).*STATES(:,35);
    RATES(:,31) = (  - ( 4.00000.*ALGEBRAIC(:,186)+ ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 4.00000)).*STATES(:,31)+ ALGEBRAIC(:,188).*STATES(:,30))+ (ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 4.00000)).*STATES(:,27);
    RATES(:,32) = (  - (ALGEBRAIC(:,184)+ ( 4.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,32)+ ALGEBRAIC(:,182).*STATES(:,26))+ (ALGEBRAIC(:,186)./CONSTANTS(:,33)).*STATES(:,33);
    RATES(:,33) = ((  - ((ALGEBRAIC(:,184)./CONSTANTS(:,33)+ALGEBRAIC(:,186)./CONSTANTS(:,33))+ ( 3.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,33)+ ( ALGEBRAIC(:,182).*CONSTANTS(:,33)).*STATES(:,28))+ ( ( 4.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,32))+ (( 2.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33)).*STATES(:,34);
    RATES(:,34) = ((  - ((ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 2.00000)+( 2.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33))+ ( 2.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,34)+ ( ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 2.00000)).*STATES(:,29))+ ( ( 3.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,33))+ (( 3.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33)).*STATES(:,35);
    RATES(:,35) = ((  - ((ALGEBRAIC(:,184)./power(CONSTANTS(:,33), 3.00000)+( 3.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33))+ ALGEBRAIC(:,188).*CONSTANTS(:,33)).*STATES(:,35)+ ( ALGEBRAIC(:,182).*power(CONSTANTS(:,33), 3.00000)).*STATES(:,30))+ ( ( 2.00000.*ALGEBRAIC(:,188)).*CONSTANTS(:,33)).*STATES(:,34))+ (( 4.00000.*ALGEBRAIC(:,186))./CONSTANTS(:,33)).*STATES(:,27);
    ALGEBRAIC(:,1) = (STATES(:,2) - STATES(:,1))./CONSTANTS(:,7);
    ALGEBRAIC(:,197) = power(STATES(:,4)./CONSTANTS(:,97), CONSTANTS(:,99));
    ALGEBRAIC(:,199) = power(STATES(:,2)./CONSTANTS(:,98), CONSTANTS(:,100));
    ALGEBRAIC(:,201) = ( CONSTANTS(:,96).*( CONSTANTS(:,101).*ALGEBRAIC(:,197) -  CONSTANTS(:,102).*ALGEBRAIC(:,199)))./((1.00000+ALGEBRAIC(:,197))+ALGEBRAIC(:,199));
    RATES(:,2) = ( ALGEBRAIC(:,201).*CONSTANTS(:,18))./CONSTANTS(:,16) - ( ALGEBRAIC(:,1).*CONSTANTS(:,15))./CONSTANTS(:,16);
    ALGEBRAIC(:,52) =  CONSTANTS(:,2).*RATES(:,6)+ CONSTANTS(:,1).*RATES(:,5);
    ALGEBRAIC(:,13) = (STATES(:,3) - STATES(:,4))./CONSTANTS(:,8);
    ALGEBRAIC(:,87) = ( CONSTANTS(:,9).*CONSTANTS(:,12))./power(STATES(:,4)+CONSTANTS(:,12), 2.00000);
    ALGEBRAIC(:,92) = ( CONSTANTS(:,11).*CONSTANTS(:,14))./power(STATES(:,4)+CONSTANTS(:,14), 2.00000);
    ALGEBRAIC(:,97) = 1.00000./((1.00000+ALGEBRAIC(:,87))+ALGEBRAIC(:,92));
    ALGEBRAIC(:,190) =  ( exp( CONSTANTS(:,51).*ALGEBRAIC(:,181)).*power(STATES(:,43), 3.00000)).*CONSTANTS(:,21);
    ALGEBRAIC(:,191) =  ( exp( (CONSTANTS(:,51) - 1.00000).*ALGEBRAIC(:,181)).*CONSTANTS(:,122)).*STATES(:,4);
    ALGEBRAIC(:,192) = 1.00000+ CONSTANTS(:,53).*exp( (CONSTANTS(:,51) - 1.00000).*ALGEBRAIC(:,181));
    ALGEBRAIC(:,193) = ( ( CONSTANTS(:,52).*CONSTANTS(:,123)).*(ALGEBRAIC(:,190) - ALGEBRAIC(:,191)))./( CONSTANTS(:,121).*ALGEBRAIC(:,192));
    ALGEBRAIC(:,106) = ( CONSTANTS(:,57).*STATES(:,4))./(CONSTANTS(:,58)+STATES(:,4));
    ALGEBRAIC(:,195) =   - 2.00000.*ALGEBRAIC(:,193)+ALGEBRAIC(:,106);
    RATES(:,4) =  ALGEBRAIC(:,97).*(((ALGEBRAIC(:,13) - ALGEBRAIC(:,201)) - ALGEBRAIC(:,52)) -  ( ALGEBRAIC(:,195).*0.500000).*CONSTANTS(:,104));
    ALGEBRAIC(:,115) =  CONSTANTS(:,112).*log(CONSTANTS(:,22)./STATES(:,20));
    ALGEBRAIC(:,151) =  CONSTANTS(:,112).*log(CONSTANTS(:,23)./STATES(:,43));
    ALGEBRAIC(:,166) =  ( CONSTANTS(:,32).*((((STATES(:,32)+STATES(:,33))+STATES(:,34))+STATES(:,35))+STATES(:,27))).*(STATES(:,22) - (ALGEBRAIC(:,151)./3.00000+( 2.00000.*ALGEBRAIC(:,115))./3.00000));
    ALGEBRAIC(:,194) = 1.00000+ 0.124500.*exp(  - 0.100000.*ALGEBRAIC(:,181));
    ALGEBRAIC(:,196) =  ( 0.0365000.*CONSTANTS(:,125)).*exp(  - 1.33000.*ALGEBRAIC(:,181));
    ALGEBRAIC(:,198) = 1.00000./(ALGEBRAIC(:,194)+ALGEBRAIC(:,196));
    ALGEBRAIC(:,103) = 1.00000+power(CONSTANTS(:,56)./STATES(:,43), 1.50000);
    ALGEBRAIC(:,200) =  ( CONSTANTS(:,54).*ALGEBRAIC(:,198)).*(CONSTANTS(:,124)./ALGEBRAIC(:,103));
    ALGEBRAIC(:,180) =  ( CONSTANTS(:,84).*(STATES(:,79)+STATES(:,70))).*(STATES(:,22) - ALGEBRAIC(:,151));
    ALGEBRAIC(:,179) =  ( CONSTANTS(:,81).*(STATES(:,66)+STATES(:,57))).*(STATES(:,22) - ALGEBRAIC(:,151));
    ALGEBRAIC(:,203) = ((ALGEBRAIC(:,180)+ALGEBRAIC(:,179))+ALGEBRAIC(:,166)./3.00000)+ 3.00000.*(ALGEBRAIC(:,193)+ALGEBRAIC(:,200));
    RATES(:,43) =   - CONSTANTS(:,104).*ALGEBRAIC(:,203);
    ALGEBRAIC(:,204) =  CONSTANTS(:,20).*ALGEBRAIC(:,181);
    ALGEBRAIC(:,187) =  0.00100000.*exp( 2.00000.*ALGEBRAIC(:,181)) -  CONSTANTS(:,21).*0.341000;
    ALGEBRAIC(:,189) = exp( 2.00000.*ALGEBRAIC(:,181)) - 1.00000;
    ALGEBRAIC(:,205) =  ( ( CONSTANTS(:,118).*4.00000).*ALGEBRAIC(:,204)).*(ALGEBRAIC(:,187)./ALGEBRAIC(:,189));
    ALGEBRAIC(:,207) = piecewise({ALGEBRAIC(:,205)>0.00000, 0.00000 }, ALGEBRAIC(:,205));
    ALGEBRAIC(:,208) = CONSTANTS(:,120)./(1.00000+ALGEBRAIC(:,207)./CONSTANTS(:,116));
    ALGEBRAIC(:,183) =  STATES(:,20).*exp(ALGEBRAIC(:,181)) - CONSTANTS(:,22);
    ALGEBRAIC(:,185) = exp(ALGEBRAIC(:,181)) - 1.00000;
    ALGEBRAIC(:,209) =  ( ( ( ALGEBRAIC(:,208).*STATES(:,21)).*STATES(:,23)).*ALGEBRAIC(:,204)).*(ALGEBRAIC(:,183)./ALGEBRAIC(:,185));
    ALGEBRAIC(:,101) = 1.00000./(0.968100+exp((STATES(:,22)+82.1862)./15.8864));
    ALGEBRAIC(:,118) =  ( ( CONSTANTS(:,34).*power(( CONSTANTS(:,22).*1.00000), 1.0 ./ 2)).*ALGEBRAIC(:,101)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,121) =  ( ( CONSTANTS(:,46).*CONSTANTS(:,110)).*STATES(:,40)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,126) =  ( ( CONSTANTS(:,48).*STATES(:,42)).*STATES(:,41)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,133) =  ( CONSTANTS(:,59).*(1.00000./(1.00000+exp( - (STATES(:,22) - 20.0000)./12.0000)))).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,140) =  ( CONSTANTS(:,60).*STATES(:,52)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,112) =  piecewise({(VOI - CONSTANTS(:,79)) -  CONSTANTS(:,80).*floor((VOI - CONSTANTS(:,79))./CONSTANTS(:,80))<CONSTANTS(:,77), 1.00000 }, 0.00000).*CONSTANTS(:,111);
    ALGEBRAIC(:,211) = (((((((ALGEBRAIC(:,121)+ALGEBRAIC(:,126))+ALGEBRAIC(:,118))+ALGEBRAIC(:,209))+( 2.00000.*ALGEBRAIC(:,166))./3.00000)+ALGEBRAIC(:,133))+ALGEBRAIC(:,112)) -  2.00000.*ALGEBRAIC(:,200))+ALGEBRAIC(:,140);
    RATES(:,20) =   - CONSTANTS(:,104).*ALGEBRAIC(:,211);
    ALGEBRAIC(:,212) =  ( CONSTANTS(:,95).*(STATES(:,80)+STATES(:,7))).*(STATES(:,1) - STATES(:,3));
    ALGEBRAIC(:,60) = ( CONSTANTS(:,10).*CONSTANTS(:,13))./power(STATES(:,1)+CONSTANTS(:,13), 2.00000);
    ALGEBRAIC(:,67) = 1.00000./(1.00000+ALGEBRAIC(:,60));
    RATES(:,1) =  ALGEBRAIC(:,67).*(ALGEBRAIC(:,1) - ALGEBRAIC(:,212));
    ALGEBRAIC(:,206) =  ( ALGEBRAIC(:,205).*STATES(:,23)).*STATES(:,21);
    ALGEBRAIC(:,72) = ( CONSTANTS(:,9).*CONSTANTS(:,12))./power(STATES(:,3)+CONSTANTS(:,12), 2.00000);
    ALGEBRAIC(:,77) = ( CONSTANTS(:,11).*CONSTANTS(:,14))./power(STATES(:,3)+CONSTANTS(:,14), 2.00000);
    ALGEBRAIC(:,82) = 1.00000./((1.00000+ALGEBRAIC(:,72))+ALGEBRAIC(:,77));
    ALGEBRAIC(:,214) = ( ALGEBRAIC(:,212).*CONSTANTS(:,15))./CONSTANTS(:,17) - ( ALGEBRAIC(:,13).*CONSTANTS(:,18))./CONSTANTS(:,17);
    ALGEBRAIC(:,210) =  ( ( ( (ALGEBRAIC(:,205)./CONSTANTS(:,118)).*CONSTANTS(:,31)).*STATES(:,25)).*STATES(:,25)).*STATES(:,24);
    RATES(:,3) =  ALGEBRAIC(:,82).*((ALGEBRAIC(:,214) -  ALGEBRAIC(:,206).*CONSTANTS(:,114)) -  ALGEBRAIC(:,210).*CONSTANTS(:,114));
    ALGEBRAIC(:,213) = ((((((ALGEBRAIC(:,180)+ALGEBRAIC(:,179))+ALGEBRAIC(:,206))+ALGEBRAIC(:,210))+ALGEBRAIC(:,209))+ALGEBRAIC(:,121))+ALGEBRAIC(:,126))+ALGEBRAIC(:,166);
    ALGEBRAIC(:,202) = (((ALGEBRAIC(:,118)+ALGEBRAIC(:,193))+ALGEBRAIC(:,200))+ALGEBRAIC(:,140))+ALGEBRAIC(:,133);
    ALGEBRAIC(:,109) = ALGEBRAIC(:,106);
    ALGEBRAIC(:,215) = (ALGEBRAIC(:,213)+ALGEBRAIC(:,202))+ALGEBRAIC(:,109);
    RATES(:,22) =  - ((ALGEBRAIC(:,215)+CONSTANTS(:,78))+ALGEBRAIC(:,112));
   RATES = RATES';
end

% Calculate algebraic variables
function ALGEBRAIC = computeAlgebraic(ALGEBRAIC, CONSTANTS, STATES, VOI)
    statesSize = size(STATES);
    statesColumnCount = statesSize(2);
    if ( statesColumnCount == 1)
        STATES = STATES';
        utilOnes = 1;
    else
        statesRowCount = statesSize(1);
        utilOnes = ones(statesRowCount, 1);
    end
    ALGEBRAIC(:,3) = 1.00000./(0.00336336./(0.500000+exp(STATES(:,22)./ - 5.53900))+ 0.00779047.*exp(STATES(:,22)./ - 49.5104));
    ALGEBRAIC(:,15) = CONSTANTS(:,29)./(1.00000+exp((STATES(:,22)+28.5000)./7.80000))+(1.00000 - CONSTANTS(:,29));
    ALGEBRAIC(:,4) = 1.00000./(1.00000+exp((STATES(:,22)+75.6000)./6.20000));
    ALGEBRAIC(:,16) = piecewise({STATES(:,22)< - 60.0000, 500.000 }, 18.3000+ 0.00500000.*exp( - STATES(:,22)./6.20000));
    ALGEBRAIC(:,5) = 1.00000./(1.00000+exp( - (STATES(:,22)+48.4000)./5.20000));
    ALGEBRAIC(:,17) = piecewise({STATES(:,22)< - 56.0000,  2.44000.*exp((STATES(:,22)+120.000)./40.0000) }, 1.34000+ 0.0350000.*exp( - STATES(:,22)./11.8000));
    ALGEBRAIC(:,6) =  ( CONSTANTS(:,47).*CONSTANTS(:,35)).*exp( CONSTANTS(:,42).*STATES(:,22));
    ALGEBRAIC(:,18) =  ( CONSTANTS(:,47).*CONSTANTS(:,36)).*exp( CONSTANTS(:,105).*STATES(:,22));
    ALGEBRAIC(:,8) = piecewise({STATES(:,22)==21.0000, 0.000146000./0.0780000 }, ( 0.000146000.*(STATES(:,22) - 21.0000))./(1.00000 - exp(  - 0.0780000.*(STATES(:,22) - 21.0000))));
    ALGEBRAIC(:,20) =  0.000910000.*exp(  - 0.0280000.*STATES(:,22));
    ALGEBRAIC(:,9) = piecewise({STATES(:,22)== - 11.0000, 3.30000e-05./0.130000 }, ( 3.30000e-05.*(STATES(:,22)+11.0000))./(1.00000 - exp(  - 0.130000.*(STATES(:,22)+11.0000))));
    ALGEBRAIC(:,21) =  0.000100000.*exp(  - 0.0150000.*STATES(:,22));
    ALGEBRAIC(:,25) = power( STATES(:,3).*1000.00, 4.00000);
    ALGEBRAIC(:,26) =  CONSTANTS(:,3).*STATES(:,5);
    ALGEBRAIC(:,29) =  ALGEBRAIC(:,6).*STATES(:,36)+ CONSTANTS(:,109).*STATES(:,38);
    ALGEBRAIC(:,35) =  (ALGEBRAIC(:,18)+CONSTANTS(:,108)).*STATES(:,37);
    ALGEBRAIC(:,39) = power( STATES(:,3).*1000.00, 3.00000);
    ALGEBRAIC(:,40) =  CONSTANTS(:,5).*STATES(:,6);
    ALGEBRAIC(:,19) =  ( CONSTANTS(:,47).*CONSTANTS(:,37)).*exp( CONSTANTS(:,43).*STATES(:,22));
    ALGEBRAIC(:,28) =  ( CONSTANTS(:,47).*CONSTANTS(:,40)).*exp( CONSTANTS(:,107).*STATES(:,22));
    ALGEBRAIC(:,48) =  ALGEBRAIC(:,19).*STATES(:,38)+ ALGEBRAIC(:,28).*STATES(:,39);
    ALGEBRAIC(:,34) =  ( CONSTANTS(:,47).*CONSTANTS(:,38)).*exp( CONSTANTS(:,106).*STATES(:,22));
    ALGEBRAIC(:,42) =  ( CONSTANTS(:,47).*CONSTANTS(:,39)).*exp( CONSTANTS(:,44).*STATES(:,22));
    ALGEBRAIC(:,56) =  (ALGEBRAIC(:,34)+ALGEBRAIC(:,42)).*STATES(:,40);
    ALGEBRAIC(:,7) =  ( CONSTANTS(:,47).*CONSTANTS(:,41)).*exp( CONSTANTS(:,45).*STATES(:,22));
    ALGEBRAIC(:,47) = ( ( ALGEBRAIC(:,34).*ALGEBRAIC(:,28)).*ALGEBRAIC(:,7))./( ALGEBRAIC(:,19).*ALGEBRAIC(:,42));
    ALGEBRAIC(:,54) = ( CONSTANTS(:,108).*STATES(:,37)+ ALGEBRAIC(:,34).*STATES(:,40))+ ALGEBRAIC(:,47).*STATES(:,39);
    ALGEBRAIC(:,62) =  ((ALGEBRAIC(:,7)+ALGEBRAIC(:,19))+CONSTANTS(:,109)).*STATES(:,38);
    ALGEBRAIC(:,55) =  ALGEBRAIC(:,7).*STATES(:,38)+ ALGEBRAIC(:,42).*STATES(:,40);
    ALGEBRAIC(:,63) =  (ALGEBRAIC(:,47)+ALGEBRAIC(:,28)).*STATES(:,39);
    ALGEBRAIC(:,11) = 2.80200./( 0.210000.*exp( - STATES(:,22)./17.0000)+ 0.230000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,65) =  0.400000.*exp( - STATES(:,22)./20.3000);
    ALGEBRAIC(:,12) = 3.80200./( 0.102700.*exp( - STATES(:,22)./17.0000)+ 0.200000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,66) =  0.191700.*exp( - STATES(:,22)./20.3000);
    ALGEBRAIC(:,23) = 2.80200./( 0.230000.*exp( - STATES(:,22)./15.0000)+ 0.250000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,70) =  0.400000.*exp( - (STATES(:,22) - 5.00000)./20.3000);
    ALGEBRAIC(:,24) = 3.80200./( 0.102700.*exp( - STATES(:,22)./15.0000)+ 0.230000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,71) =  0.200000.*exp( - (STATES(:,22) - 5.00000)./20.3000);
    ALGEBRAIC(:,31) = 2.80200./( 0.250000.*exp( - STATES(:,22)./12.0000)+ 0.270000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,75) = ( 0.400000.*exp( - (STATES(:,22) - 10.0000)./20.3000))./4.50000;
    ALGEBRAIC(:,32) = 3.80200./( 0.102700.*exp( - STATES(:,22)./12.0000)+ 0.250000.*exp( - STATES(:,22)./150.000));
    ALGEBRAIC(:,76) =  0.220000.*exp( - (STATES(:,22) - 10.0000)./20.3000);
    ALGEBRAIC(:,44) =  ( 3.79330e-07.*exp( - STATES(:,22)./7.60000)).*3.00000;
    ALGEBRAIC(:,80) = 0.00840000+ 2.00000e-05.*STATES(:,22);
    ALGEBRAIC(:,45) =  3.79330e-07.*exp( - STATES(:,22)./7.70000);
    ALGEBRAIC(:,81) = 0.00840000+ 2.00000e-05.*STATES(:,22);
    ALGEBRAIC(:,37) = ( 9.17800.*exp(STATES(:,22)./29.6800))./4.50000;
    ALGEBRAIC(:,85) = ( ( ALGEBRAIC(:,44).*ALGEBRAIC(:,37)).*ALGEBRAIC(:,31))./( ALGEBRAIC(:,80).*ALGEBRAIC(:,75));
    ALGEBRAIC(:,38) =  9.17800.*exp(STATES(:,22)./29.6800);
    ALGEBRAIC(:,86) = ( ( ALGEBRAIC(:,45).*ALGEBRAIC(:,38)).*ALGEBRAIC(:,32))./( ALGEBRAIC(:,81).*ALGEBRAIC(:,76));
    ALGEBRAIC(:,50) =  ( (ALGEBRAIC(:,37)./100.000).*1.50000).*0.285000;
    ALGEBRAIC(:,90) = ALGEBRAIC(:,44)./5.00000;
    ALGEBRAIC(:,51) = ALGEBRAIC(:,38)./100.000;
    ALGEBRAIC(:,91) = ALGEBRAIC(:,45);
    ALGEBRAIC(:,58) =  (ALGEBRAIC(:,37)./95000.0).*80.0000;
    ALGEBRAIC(:,95) = (ALGEBRAIC(:,44)./30.0000)./10.0000;
    ALGEBRAIC(:,59) = ALGEBRAIC(:,38)./95000.0;
    ALGEBRAIC(:,96) = ALGEBRAIC(:,45)./50.0000;
    ALGEBRAIC(:,2) =  ( ( 4.00000.*1.20000).*0.416000).*exp( 0.0120000.*(STATES(:,22) - 35.0000));
    ALGEBRAIC(:,14) =  4.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,116) =  ( 0.600000.*0.0923300).*STATES(:,3);
    ALGEBRAIC(:,119) = ALGEBRAIC(:,116);
    ALGEBRAIC(:,123) =  (ALGEBRAIC(:,14)+ALGEBRAIC(:,119)).*STATES(:,10);
    ALGEBRAIC(:,78) =  ( ( 4.00000.*0.450000).*0.0490000).*exp(  - 0.0650000.*(STATES(:,22) - 22.0000));
    ALGEBRAIC(:,83) = ALGEBRAIC(:,78);
    ALGEBRAIC(:,128) =  ALGEBRAIC(:,83).*STATES(:,11)+ CONSTANTS(:,103).*STATES(:,15);
    ALGEBRAIC(:,46) =  CONSTANTS(:,25).*ALGEBRAIC(:,2);
    ALGEBRAIC(:,53) =  4.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,124) =  (ALGEBRAIC(:,53)+CONSTANTS(:,103)).*STATES(:,15);
    ALGEBRAIC(:,100) = ALGEBRAIC(:,78)./CONSTANTS(:,26);
    ALGEBRAIC(:,104) = ALGEBRAIC(:,100);
    ALGEBRAIC(:,130) =  ALGEBRAIC(:,104).*STATES(:,16)+ ALGEBRAIC(:,119).*STATES(:,10);
    ALGEBRAIC(:,27) =  3.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,122) =  CONSTANTS(:,25).*ALGEBRAIC(:,119);
    ALGEBRAIC(:,129) =  ((ALGEBRAIC(:,83)+ALGEBRAIC(:,27))+ALGEBRAIC(:,122)).*STATES(:,11);
    ALGEBRAIC(:,88) =  2.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,135) = ( ALGEBRAIC(:,14).*STATES(:,10)+ ALGEBRAIC(:,88).*STATES(:,12))+ CONSTANTS(:,113).*STATES(:,16);
    ALGEBRAIC(:,61) =  3.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,131) =  ((ALGEBRAIC(:,104)+ALGEBRAIC(:,61))+CONSTANTS(:,113)).*STATES(:,16);
    ALGEBRAIC(:,107) =  2.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,137) = ( ALGEBRAIC(:,53).*STATES(:,15)+ ALGEBRAIC(:,107).*STATES(:,17))+ ALGEBRAIC(:,122).*STATES(:,11);
    ALGEBRAIC(:,33) =  2.00000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,127) =  CONSTANTS(:,25).*ALGEBRAIC(:,122);
    ALGEBRAIC(:,136) =  ((ALGEBRAIC(:,88)+ALGEBRAIC(:,33))+ALGEBRAIC(:,127)).*STATES(:,12);
    ALGEBRAIC(:,93) =  3.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,141) = ( ALGEBRAIC(:,27).*STATES(:,11)+ ALGEBRAIC(:,93).*STATES(:,13))+ CONSTANTS(:,115).*STATES(:,17);
    ALGEBRAIC(:,68) =  2.00000.*ALGEBRAIC(:,46);
    ALGEBRAIC(:,138) =  ((ALGEBRAIC(:,107)+ALGEBRAIC(:,68))+CONSTANTS(:,115)).*STATES(:,17);
    ALGEBRAIC(:,110) =  3.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,144) = ( ALGEBRAIC(:,61).*STATES(:,16)+ ALGEBRAIC(:,110).*STATES(:,18))+ ALGEBRAIC(:,127).*STATES(:,12);
    ALGEBRAIC(:,41) = ALGEBRAIC(:,2);
    ALGEBRAIC(:,134) =  CONSTANTS(:,25).*ALGEBRAIC(:,127);
    ALGEBRAIC(:,142) =  ((ALGEBRAIC(:,93)+ALGEBRAIC(:,41))+ALGEBRAIC(:,134)).*STATES(:,13);
    ALGEBRAIC(:,98) =  4.00000.*ALGEBRAIC(:,78);
    ALGEBRAIC(:,152) = ( ALGEBRAIC(:,33).*STATES(:,12)+ ALGEBRAIC(:,98).*STATES(:,14))+ CONSTANTS(:,117).*STATES(:,18);
    ALGEBRAIC(:,73) = ALGEBRAIC(:,46);
    ALGEBRAIC(:,145) =  ((ALGEBRAIC(:,110)+ALGEBRAIC(:,73))+CONSTANTS(:,117)).*STATES(:,18);
    ALGEBRAIC(:,113) =  4.00000.*ALGEBRAIC(:,100);
    ALGEBRAIC(:,154) = ( ALGEBRAIC(:,68).*STATES(:,17)+ ALGEBRAIC(:,113).*STATES(:,19))+ ALGEBRAIC(:,134).*STATES(:,13);
    ALGEBRAIC(:,143) =  CONSTANTS(:,25).*ALGEBRAIC(:,134);
    ALGEBRAIC(:,153) =  ((ALGEBRAIC(:,98)+CONSTANTS(:,27))+ALGEBRAIC(:,143)).*STATES(:,14);
    ALGEBRAIC(:,167) = ( ALGEBRAIC(:,41).*STATES(:,13)+ CONSTANTS(:,28).*STATES(:,21))+ CONSTANTS(:,119).*STATES(:,19);
    ALGEBRAIC(:,155) =  (ALGEBRAIC(:,113)+CONSTANTS(:,119)).*STATES(:,19);
    ALGEBRAIC(:,168) =  ALGEBRAIC(:,73).*STATES(:,18)+ ALGEBRAIC(:,143).*STATES(:,14);
    ALGEBRAIC(:,10) =  CONSTANTS(:,63).*exp( CONSTANTS(:,61).*STATES(:,22));
    ALGEBRAIC(:,22) =  4.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,139) =  CONSTANTS(:,71).*exp( CONSTANTS(:,72).*STATES(:,22));
    ALGEBRAIC(:,146) = ALGEBRAIC(:,139);
    ALGEBRAIC(:,156) =  (ALGEBRAIC(:,22)+ALGEBRAIC(:,146)).*STATES(:,44);
    ALGEBRAIC(:,102) =  CONSTANTS(:,70).*exp(  - CONSTANTS(:,69).*STATES(:,22));
    ALGEBRAIC(:,105) = ALGEBRAIC(:,102);
    ALGEBRAIC(:,74) =  CONSTANTS(:,64).*exp(  - CONSTANTS(:,62).*STATES(:,22));
    ALGEBRAIC(:,79) = ALGEBRAIC(:,74);
    ALGEBRAIC(:,169) =  ALGEBRAIC(:,105).*STATES(:,45)+ ALGEBRAIC(:,79).*STATES(:,48);
    ALGEBRAIC(:,30) =  3.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,147) =  CONSTANTS(:,73).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,157) =  ((ALGEBRAIC(:,30)+ALGEBRAIC(:,105))+ALGEBRAIC(:,147)).*STATES(:,45);
    ALGEBRAIC(:,108) =  2.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,84) = ALGEBRAIC(:,74)./CONSTANTS(:,65);
    ALGEBRAIC(:,170) = ( ALGEBRAIC(:,108).*STATES(:,46)+ ALGEBRAIC(:,84).*STATES(:,49))+ ALGEBRAIC(:,22).*STATES(:,44);
    ALGEBRAIC(:,36) =  2.00000.*ALGEBRAIC(:,10);
    ALGEBRAIC(:,148) =  CONSTANTS(:,74).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,158) =  ((ALGEBRAIC(:,36)+ALGEBRAIC(:,108))+ALGEBRAIC(:,148)).*STATES(:,46);
    ALGEBRAIC(:,111) =  3.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,89) = ALGEBRAIC(:,74)./CONSTANTS(:,66);
    ALGEBRAIC(:,171) = ( ALGEBRAIC(:,111).*STATES(:,47)+ ALGEBRAIC(:,89).*STATES(:,50))+ ALGEBRAIC(:,30).*STATES(:,45);
    ALGEBRAIC(:,149) =  CONSTANTS(:,75).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,43) = ALGEBRAIC(:,10);
    ALGEBRAIC(:,159) =  ((ALGEBRAIC(:,43)+ALGEBRAIC(:,111))+ALGEBRAIC(:,149)).*STATES(:,47);
    ALGEBRAIC(:,94) = ALGEBRAIC(:,74)./CONSTANTS(:,67);
    ALGEBRAIC(:,132) =  4.00000.*ALGEBRAIC(:,102);
    ALGEBRAIC(:,172) = ( ALGEBRAIC(:,132).*STATES(:,52)+ ALGEBRAIC(:,94).*STATES(:,51))+ ALGEBRAIC(:,36).*STATES(:,46);
    ALGEBRAIC(:,49) =  ( 4.00000.*CONSTANTS(:,65)).*ALGEBRAIC(:,10);
    ALGEBRAIC(:,160) =  (ALGEBRAIC(:,79)+ALGEBRAIC(:,49)).*STATES(:,48);
    ALGEBRAIC(:,114) = ALGEBRAIC(:,102)./CONSTANTS(:,73);
    ALGEBRAIC(:,173) =  ALGEBRAIC(:,146).*STATES(:,44)+ ALGEBRAIC(:,114).*STATES(:,49);
    ALGEBRAIC(:,57) = ( ( 3.00000.*CONSTANTS(:,66)).*ALGEBRAIC(:,10))./CONSTANTS(:,65);
    ALGEBRAIC(:,161) =  ((ALGEBRAIC(:,57)+ALGEBRAIC(:,84))+ALGEBRAIC(:,114)).*STATES(:,49);
    ALGEBRAIC(:,117) = ( ( 2.00000.*CONSTANTS(:,73)).*ALGEBRAIC(:,102))./CONSTANTS(:,74);
    ALGEBRAIC(:,174) = ( ALGEBRAIC(:,117).*STATES(:,50)+ ALGEBRAIC(:,147).*STATES(:,45))+ ALGEBRAIC(:,49).*STATES(:,48);
    ALGEBRAIC(:,64) = ( ( 2.00000.*CONSTANTS(:,67)).*ALGEBRAIC(:,10))./CONSTANTS(:,66);
    ALGEBRAIC(:,162) =  ((ALGEBRAIC(:,64)+ALGEBRAIC(:,89))+ALGEBRAIC(:,117)).*STATES(:,50);
    ALGEBRAIC(:,120) = ( ( 3.00000.*CONSTANTS(:,74)).*ALGEBRAIC(:,102))./CONSTANTS(:,75);
    ALGEBRAIC(:,175) = ( ALGEBRAIC(:,120).*STATES(:,51)+ ALGEBRAIC(:,148).*STATES(:,46))+ ALGEBRAIC(:,57).*STATES(:,49);
    ALGEBRAIC(:,69) = ( CONSTANTS(:,68).*ALGEBRAIC(:,10))./CONSTANTS(:,67);
    ALGEBRAIC(:,163) =  ((ALGEBRAIC(:,69)+ALGEBRAIC(:,94))+ALGEBRAIC(:,120)).*STATES(:,51);
    ALGEBRAIC(:,125) = ( ( 4.00000.*CONSTANTS(:,75)).*ALGEBRAIC(:,102))./CONSTANTS(:,76);
    ALGEBRAIC(:,176) = ( ALGEBRAIC(:,125).*STATES(:,53)+ ALGEBRAIC(:,149).*STATES(:,47))+ ALGEBRAIC(:,64).*STATES(:,50);
    ALGEBRAIC(:,150) =  CONSTANTS(:,76).*ALGEBRAIC(:,139);
    ALGEBRAIC(:,165) =  (ALGEBRAIC(:,132)+ALGEBRAIC(:,150)).*STATES(:,52);
    ALGEBRAIC(:,99) = ALGEBRAIC(:,74)./CONSTANTS(:,68);
    ALGEBRAIC(:,178) =  ALGEBRAIC(:,43).*STATES(:,47)+ ALGEBRAIC(:,99).*STATES(:,53);
    ALGEBRAIC(:,164) =  (ALGEBRAIC(:,99)+ALGEBRAIC(:,125)).*STATES(:,53);
    ALGEBRAIC(:,177) =  ALGEBRAIC(:,150).*STATES(:,52)+ ALGEBRAIC(:,69).*STATES(:,51);
    ALGEBRAIC(:,181) = STATES(:,22)./CONSTANTS(:,112);
    ALGEBRAIC(:,182) = ( 0.000171200.*exp(  - 1.46500.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,184) = ( 26.1700.*exp( 1.46500.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,186) = ( 287.500.*exp( 1.24200.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,188) = ( 0.0402500.*exp(  - 1.24200.*ALGEBRAIC(:,181)))./1000.00;
    ALGEBRAIC(:,1) = (STATES(:,2) - STATES(:,1))./CONSTANTS(:,7);
    ALGEBRAIC(:,197) = power(STATES(:,4)./CONSTANTS(:,97), CONSTANTS(:,99));
    ALGEBRAIC(:,199) = power(STATES(:,2)./CONSTANTS(:,98), CONSTANTS(:,100));
    ALGEBRAIC(:,201) = ( CONSTANTS(:,96).*( CONSTANTS(:,101).*ALGEBRAIC(:,197) -  CONSTANTS(:,102).*ALGEBRAIC(:,199)))./((1.00000+ALGEBRAIC(:,197))+ALGEBRAIC(:,199));
    ALGEBRAIC(:,52) =  CONSTANTS(:,2).*RATES(:,6)+ CONSTANTS(:,1).*RATES(:,5);
    ALGEBRAIC(:,13) = (STATES(:,3) - STATES(:,4))./CONSTANTS(:,8);
    ALGEBRAIC(:,87) = ( CONSTANTS(:,9).*CONSTANTS(:,12))./power(STATES(:,4)+CONSTANTS(:,12), 2.00000);
    ALGEBRAIC(:,92) = ( CONSTANTS(:,11).*CONSTANTS(:,14))./power(STATES(:,4)+CONSTANTS(:,14), 2.00000);
    ALGEBRAIC(:,97) = 1.00000./((1.00000+ALGEBRAIC(:,87))+ALGEBRAIC(:,92));
    ALGEBRAIC(:,190) =  ( exp( CONSTANTS(:,51).*ALGEBRAIC(:,181)).*power(STATES(:,43), 3.00000)).*CONSTANTS(:,21);
    ALGEBRAIC(:,191) =  ( exp( (CONSTANTS(:,51) - 1.00000).*ALGEBRAIC(:,181)).*CONSTANTS(:,122)).*STATES(:,4);
    ALGEBRAIC(:,192) = 1.00000+ CONSTANTS(:,53).*exp( (CONSTANTS(:,51) - 1.00000).*ALGEBRAIC(:,181));
    ALGEBRAIC(:,193) = ( ( CONSTANTS(:,52).*CONSTANTS(:,123)).*(ALGEBRAIC(:,190) - ALGEBRAIC(:,191)))./( CONSTANTS(:,121).*ALGEBRAIC(:,192));
    ALGEBRAIC(:,106) = ( CONSTANTS(:,57).*STATES(:,4))./(CONSTANTS(:,58)+STATES(:,4));
    ALGEBRAIC(:,195) =   - 2.00000.*ALGEBRAIC(:,193)+ALGEBRAIC(:,106);
    ALGEBRAIC(:,115) =  CONSTANTS(:,112).*log(CONSTANTS(:,22)./STATES(:,20));
    ALGEBRAIC(:,151) =  CONSTANTS(:,112).*log(CONSTANTS(:,23)./STATES(:,43));
    ALGEBRAIC(:,166) =  ( CONSTANTS(:,32).*((((STATES(:,32)+STATES(:,33))+STATES(:,34))+STATES(:,35))+STATES(:,27))).*(STATES(:,22) - (ALGEBRAIC(:,151)./3.00000+( 2.00000.*ALGEBRAIC(:,115))./3.00000));
    ALGEBRAIC(:,194) = 1.00000+ 0.124500.*exp(  - 0.100000.*ALGEBRAIC(:,181));
    ALGEBRAIC(:,196) =  ( 0.0365000.*CONSTANTS(:,125)).*exp(  - 1.33000.*ALGEBRAIC(:,181));
    ALGEBRAIC(:,198) = 1.00000./(ALGEBRAIC(:,194)+ALGEBRAIC(:,196));
    ALGEBRAIC(:,103) = 1.00000+power(CONSTANTS(:,56)./STATES(:,43), 1.50000);
    ALGEBRAIC(:,200) =  ( CONSTANTS(:,54).*ALGEBRAIC(:,198)).*(CONSTANTS(:,124)./ALGEBRAIC(:,103));
    ALGEBRAIC(:,180) =  ( CONSTANTS(:,84).*(STATES(:,79)+STATES(:,70))).*(STATES(:,22) - ALGEBRAIC(:,151));
    ALGEBRAIC(:,179) =  ( CONSTANTS(:,81).*(STATES(:,66)+STATES(:,57))).*(STATES(:,22) - ALGEBRAIC(:,151));
    ALGEBRAIC(:,203) = ((ALGEBRAIC(:,180)+ALGEBRAIC(:,179))+ALGEBRAIC(:,166)./3.00000)+ 3.00000.*(ALGEBRAIC(:,193)+ALGEBRAIC(:,200));
    ALGEBRAIC(:,204) =  CONSTANTS(:,20).*ALGEBRAIC(:,181);
    ALGEBRAIC(:,187) =  0.00100000.*exp( 2.00000.*ALGEBRAIC(:,181)) -  CONSTANTS(:,21).*0.341000;
    ALGEBRAIC(:,189) = exp( 2.00000.*ALGEBRAIC(:,181)) - 1.00000;
    ALGEBRAIC(:,205) =  ( ( CONSTANTS(:,118).*4.00000).*ALGEBRAIC(:,204)).*(ALGEBRAIC(:,187)./ALGEBRAIC(:,189));
    ALGEBRAIC(:,207) = piecewise({ALGEBRAIC(:,205)>0.00000, 0.00000 }, ALGEBRAIC(:,205));
    ALGEBRAIC(:,208) = CONSTANTS(:,120)./(1.00000+ALGEBRAIC(:,207)./CONSTANTS(:,116));
    ALGEBRAIC(:,183) =  STATES(:,20).*exp(ALGEBRAIC(:,181)) - CONSTANTS(:,22);
    ALGEBRAIC(:,185) = exp(ALGEBRAIC(:,181)) - 1.00000;
    ALGEBRAIC(:,209) =  ( ( ( ALGEBRAIC(:,208).*STATES(:,21)).*STATES(:,23)).*ALGEBRAIC(:,204)).*(ALGEBRAIC(:,183)./ALGEBRAIC(:,185));
    ALGEBRAIC(:,101) = 1.00000./(0.968100+exp((STATES(:,22)+82.1862)./15.8864));
    ALGEBRAIC(:,118) =  ( ( CONSTANTS(:,34).*power(( CONSTANTS(:,22).*1.00000), 1.0 ./ 2)).*ALGEBRAIC(:,101)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,121) =  ( ( CONSTANTS(:,46).*CONSTANTS(:,110)).*STATES(:,40)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,126) =  ( ( CONSTANTS(:,48).*STATES(:,42)).*STATES(:,41)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,133) =  ( CONSTANTS(:,59).*(1.00000./(1.00000+exp( - (STATES(:,22) - 20.0000)./12.0000)))).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,140) =  ( CONSTANTS(:,60).*STATES(:,52)).*(STATES(:,22) - ALGEBRAIC(:,115));
    ALGEBRAIC(:,112) =  piecewise({(VOI - CONSTANTS(:,79)) -  CONSTANTS(:,80).*floor((VOI - CONSTANTS(:,79))./CONSTANTS(:,80))<CONSTANTS(:,77), 1.00000 }, 0.00000).*CONSTANTS(:,111);
    ALGEBRAIC(:,211) = (((((((ALGEBRAIC(:,121)+ALGEBRAIC(:,126))+ALGEBRAIC(:,118))+ALGEBRAIC(:,209))+( 2.00000.*ALGEBRAIC(:,166))./3.00000)+ALGEBRAIC(:,133))+ALGEBRAIC(:,112)) -  2.00000.*ALGEBRAIC(:,200))+ALGEBRAIC(:,140);
    ALGEBRAIC(:,212) =  ( CONSTANTS(:,95).*(STATES(:,80)+STATES(:,7))).*(STATES(:,1) - STATES(:,3));
    ALGEBRAIC(:,60) = ( CONSTANTS(:,10).*CONSTANTS(:,13))./power(STATES(:,1)+CONSTANTS(:,13), 2.00000);
    ALGEBRAIC(:,67) = 1.00000./(1.00000+ALGEBRAIC(:,60));
    ALGEBRAIC(:,206) =  ( ALGEBRAIC(:,205).*STATES(:,23)).*STATES(:,21);
    ALGEBRAIC(:,72) = ( CONSTANTS(:,9).*CONSTANTS(:,12))./power(STATES(:,3)+CONSTANTS(:,12), 2.00000);
    ALGEBRAIC(:,77) = ( CONSTANTS(:,11).*CONSTANTS(:,14))./power(STATES(:,3)+CONSTANTS(:,14), 2.00000);
    ALGEBRAIC(:,82) = 1.00000./((1.00000+ALGEBRAIC(:,72))+ALGEBRAIC(:,77));
    ALGEBRAIC(:,214) = ( ALGEBRAIC(:,212).*CONSTANTS(:,15))./CONSTANTS(:,17) - ( ALGEBRAIC(:,13).*CONSTANTS(:,18))./CONSTANTS(:,17);
    ALGEBRAIC(:,210) =  ( ( ( (ALGEBRAIC(:,205)./CONSTANTS(:,118)).*CONSTANTS(:,31)).*STATES(:,25)).*STATES(:,25)).*STATES(:,24);
    ALGEBRAIC(:,213) = ((((((ALGEBRAIC(:,180)+ALGEBRAIC(:,179))+ALGEBRAIC(:,206))+ALGEBRAIC(:,210))+ALGEBRAIC(:,209))+ALGEBRAIC(:,121))+ALGEBRAIC(:,126))+ALGEBRAIC(:,166);
    ALGEBRAIC(:,202) = (((ALGEBRAIC(:,118)+ALGEBRAIC(:,193))+ALGEBRAIC(:,200))+ALGEBRAIC(:,140))+ALGEBRAIC(:,133);
    ALGEBRAIC(:,109) = ALGEBRAIC(:,106);
    ALGEBRAIC(:,215) = (ALGEBRAIC(:,213)+ALGEBRAIC(:,202))+ALGEBRAIC(:,109);
end

% Compute result of a piecewise function
function x = piecewise(cases, default)
    set = [0];
    for i = 1:2:length(cases)
        if (length(cases{i+1}) == 1)
            x(cases{i} & ~set,:) = cases{i+1};
        else
            x(cases{i} & ~set,:) = cases{i+1}(cases{i} & ~set);
        end
        set = set | cases{i};
        if(set), break, end
    end
    if (length(default) == 1)
        x(~set,:) = default;
    else
        x(~set,:) = default(~set);
    end
end

% Pad out or shorten strings to a set length
function strout = strpad(strin)
    req_length = 160;
    insize = size(strin,2);
    if insize > req_length
        strout = strin(1:req_length);
    else
        strout = [strin, blanks(req_length - insize)];
    end
end

Source
Derived from workspace Sampson-Iyer-Marks-Kass-2010 at changeset 7e0450c5e3cd.
Collaboration
To begin collaborating on this work, please use your git client and issue this command:
License
The terms of use/license for this work is unspecified.