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 =12;
end
% There are a total of 1 entries in each of the rate and state variable arrays.
% There are a total of 557 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_CONSTANTS(:,1) = strpad('VP in component input_values (litre)');
    LEGEND_CONSTANTS(:,2) = strpad('A1K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,3) = strpad('A2K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,4) = strpad('A3K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,5) = strpad('A4K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,6) = strpad('A4K2 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,7) = strpad('AARK in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,8) = strpad('AARLL in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,9) = strpad('ADHINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,10) = strpad('ADHKLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,11) = strpad('ADHKUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,12) = strpad('ADHPAM in component parameter_values (per_mmHg2)');
    LEGEND_CONSTANTS(:,13) = strpad('ADHPUL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,14) = strpad('ADHTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,15) = strpad('ADHVLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,16) = strpad('ADHVUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,17) = strpad('AH10 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,18) = strpad('AH11 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,19) = strpad('AH9 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,20) = strpad('AHMNAR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,21) = strpad('AHTHM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,22) = strpad('ALCLK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,23) = strpad('ALDINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,24) = strpad('ALDKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,25) = strpad('ALDMM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,26) = strpad('AM1LL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,27) = strpad('AM1UL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,28) = strpad('AMCSNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,29) = strpad('AMKM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,30) = strpad('AMKMUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,31) = strpad('AMM1LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,32) = strpad('AMM4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,33) = strpad('AMNALL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,34) = strpad('AMNAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,35) = strpad('AMNAUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,36) = strpad('AMT in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,37) = strpad('ANCSNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,38) = strpad('ANGINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,39) = strpad('ANGKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,40) = strpad('ANMALD in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,41) = strpad('ANMAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,42) = strpad('ANMARL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,43) = strpad('ANMEM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,44) = strpad('ANMKEL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,45) = strpad('ANMKEM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,46) = strpad('ANMLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,47) = strpad('ANMNAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,48) = strpad('ANMSLT in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,49) = strpad('ANMTM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,50) = strpad('ANMUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,51) = strpad('ANPTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,52) = strpad('ANPXAF in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,53) = strpad('ANPXUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,54) = strpad('ANT in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,55) = strpad('ANULL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,56) = strpad('ANUM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,57) = strpad('ANUVM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,58) = strpad('ANV in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,59) = strpad('ANXM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,60) = strpad('ANY in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,61) = strpad('AR1LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,62) = strpad('AR2LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,63) = strpad('ARF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,64) = strpad('AUC1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,65) = strpad('AUDMP in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,66) = strpad('AUK in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,67) = strpad('AUL in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,68) = strpad('AULPM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,69) = strpad('AUM1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,70) = strpad('AUM2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,71) = strpad('AUMAX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,72) = strpad('AUMIN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,73) = strpad('AUMK1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,74) = strpad('AUN1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,75) = strpad('AURG in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,76) = strpad('AUS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,77) = strpad('AUSLP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,78) = strpad('AUTO in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,79) = strpad('AUTOGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,80) = strpad('AUTOSN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,81) = strpad('AUX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,82) = strpad('BAROTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,83) = strpad('CFC in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,84) = strpad('CKEEX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,85) = strpad('CMPTSS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,86) = strpad('CN2 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,87) = strpad('CN7 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,88) = strpad('CNR in component parameter_values (monovalent_mEq_per_litre)');
    LEGEND_CONSTANTS(:,89) = strpad('CPF in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,90) = strpad('CPK in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,91) = strpad('CPR in component parameter_values (gram_per_L)');
    LEGEND_CONSTANTS(:,92) = strpad('CV in component parameter_values (L_per_mmHg)');
    LEGEND_CONSTANTS(:,93) = strpad('CRRFLX in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,94) = strpad('DIURET in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,95) = strpad('DHDTR in component parameter_values (per_mmHg_per_minute)');
    LEGEND_CONSTANTS(:,96) = strpad('DTNAR in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,97) = strpad('DTNARL in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,98) = strpad('EARK in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,99) = strpad('EARLL in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,100) = strpad('EFAFR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,101) = strpad('EXC in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,102) = strpad('EXCML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,103) = strpad('EXCXP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,104) = strpad('EXCXP2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,105) = strpad('EXE in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,106) = strpad('GCOPF in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,107) = strpad('GFLC in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,108) = strpad('GFNDMP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,109) = strpad('GFNLL in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,110) = strpad('GPPD in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,111) = strpad('HM6 in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,112) = strpad('HM8 in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,113) = strpad('HTAUML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,114) = strpad('KORGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,115) = strpad('KORNER in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,116) = strpad('KORREN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,117) = strpad('KORTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,118) = strpad('LPDE in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,119) = strpad('LPK in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,120) = strpad('LPPR in component parameter_values (gram_per_minute)');
    LEGEND_CONSTANTS(:,121) = strpad('MDFL1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,122) = strpad('MDFLKM in component parameter_values (monovalent_mEq_per_litre)');
    LEGEND_CONSTANTS(:,123) = strpad('MDFLW2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,124) = strpad('MDFLWX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,125) = strpad('MDMP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,126) = strpad('O2A in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,127) = strpad('O2CHMO in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,128) = strpad('OMM in component parameter_values (mL_per_minute)');
    LEGEND_CONSTANTS(:,129) = strpad('PA4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,130) = strpad('PAEX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,131) = strpad('PCE in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,132) = strpad('PCR in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,133) = strpad('PR1LL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,134) = strpad('PGHF in component parameter_values (L_mmHg_per_gram)');
    LEGEND_CONSTANTS(:,135) = strpad('PK2 in component parameter_values (mmHg_per_mL)');
    LEGEND_CONSTANTS(:,136) = strpad('PL2 in component parameter_values (L_mL_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,137) = strpad('PLDF in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,138) = strpad('PM5 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,139) = strpad('PO2ADV in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,140) = strpad('POK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,141) = strpad('POM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,142) = strpad('POM2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,143) = strpad('PON in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,144) = strpad('POR in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,145) = strpad('POZ in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,146) = strpad('PXTP in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,147) = strpad('QAOLM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,148) = strpad('QRF in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,149) = strpad('RABSC in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,150) = strpad('RAM in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,151) = strpad('RAPRSP in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,152) = strpad('RAR in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,153) = strpad('RCDFDP in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,154) = strpad('RCDFPC in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,155) = strpad('REK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,156) = strpad('RFABKM in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,157) = strpad('RFABDM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,158) = strpad('RFABDP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,159) = strpad('RFCDFT in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,160) = strpad('RKC in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,161) = strpad('RNAGTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,162) = strpad('RNAUAD in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,163) = strpad('RPS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,164) = strpad('RTPPR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,165) = strpad('RTPPRS in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,166) = strpad('RTSPRS in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,167) = strpad('RVRS in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,168) = strpad('RVSM in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,169) = strpad('SR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,170) = strpad('SR2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,171) = strpad('SRK in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,172) = strpad('SRK2 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,173) = strpad('STA in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,174) = strpad('TENSGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,175) = strpad('TENSTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,176) = strpad('TIMETR in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,177) = strpad('TRNSFS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,178) = strpad('TRPL in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,179) = strpad('TSSLML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,180) = strpad('TSSLTC in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,181) = strpad('TVDDL in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,182) = strpad('U in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,183) = strpad('VID1 in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,184) = strpad('VIDML in component parameter_values (litre2_per_monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,185) = strpad('VNTSTM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,186) = strpad('VP1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,187) = strpad('VPTISS in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,188) = strpad('VTSF in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,189) = strpad('VV9 in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,190) = strpad('X in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,191) = strpad('Z in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,192) = strpad('Z4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,193) = strpad('Z5 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,194) = strpad('Z6 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,195) = strpad('Z7 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,196) = strpad('Z10 in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,197) = strpad('Z11 in component parameter_values (per_mmHg2)');
    LEGEND_CONSTANTS(:,198) = strpad('Z12 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,199) = strpad('Z13 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,200) = strpad('Z14 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,201) = strpad('Z16 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,202) = strpad('Z18 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,203) = strpad('Z19 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,204) = strpad('KID in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,205) = strpad('URFORM in component parameter_values (mOsm_per_minute)');
    LEGEND_CONSTANTS(:,206) = strpad('AUV in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,207) = strpad('AUY in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,208) = strpad('O2M in component parameter_values (mL_per_minute)');
    LEGEND_CONSTANTS(:,209) = strpad('NID in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,210) = strpad('ATRFBM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,211) = strpad('GBL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,212) = strpad('RNAUGN in component parameter_values (minute_per_L)');
    LEGEND_CONSTANTS(:,213) = strpad('RNAULL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,214) = strpad('RNAUUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,215) = strpad('HSR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,216) = strpad('HSL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,217) = strpad('HMK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,218) = strpad('PO2AMB in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,219) = strpad('HKM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,220) = strpad('DR in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,221) = strpad('ANPKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,222) = strpad('RMULT1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,223) = strpad('GLPCA in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,224) = strpad('RFN in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,225) = strpad('RFABX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,226) = strpad('ANPINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,227) = strpad('FIS in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,228) = strpad('CPPD in component parameter_values (gram_per_L)');
    LEGEND_CONSTANTS(:,229) = strpad('TRRBC in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,230) = strpad('HYL in component parameter_values (gram)');
    LEGEND_CONSTANTS(:,231) = strpad('ATRVM in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,232) = strpad('ADHC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,233) = strpad('AHY_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,234) = strpad('AMC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,235) = strpad('AMM1T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,236) = strpad('AMM2_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,237) = strpad('ANC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,238) = strpad('ANPC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,239) = strpad('ANX1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,240) = strpad('AR1T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,241) = strpad('AR2T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,242) = strpad('AR3T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,243) = strpad('AU1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,244) = strpad('AU4_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,245) = strpad('AU6_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,246) = strpad('DTKA_init in component state_variables (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,247) = strpad('HMD1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,248) = strpad('HPL_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,249) = strpad('HPR_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,250) = strpad('KTOT_init in component state_variables (monovalent_mEq)');
    LEGEND_CONSTANTS(:,251) = strpad('NAE_init in component state_variables (monovalent_mEq)');
    LEGEND_CONSTANTS(:,252) = strpad('O2VAD1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,253) = strpad('OSV_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,254) = strpad('OVA_init in component state_variables (mL_per_L)');
    LEGEND_CONSTANTS(:,255) = strpad('OVS_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,256) = strpad('PAR1_init in component state_variables (mmHg)');
    LEGEND_CONSTANTS(:,257) = strpad('PC_init in component state_variables (mmHg)');
    LEGEND_CONSTANTS(:,258) = strpad('PLUR_init in component state_variables (mOsm)');
    LEGEND_CONSTANTS(:,259) = strpad('PPR1_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,260) = strpad('PRP_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,261) = strpad('QO2T_init in component state_variables (mL)');
    LEGEND_CONSTANTS(:,262) = strpad('QOM1_init in component state_variables (mL)');
    LEGEND_CONSTANTS(:,263) = strpad('RNAUG3_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,264) = strpad('TSP_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,265) = strpad('TVD_init in component state_variables (L_per_minute)');
    LEGEND_CONSTANTS(:,266) = strpad('VAS1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,267) = strpad('VIC_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,268) = strpad('VLA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,269) = strpad('VPA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,270) = strpad('VPF1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,271) = strpad('VP_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,272) = strpad('VRA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,273) = strpad('VRC_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,274) = strpad('VTS2_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,275) = strpad('VTW_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,276) = strpad('VV6_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,277) = strpad('VV7_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,278) = strpad('VVS1_init in component state_variables (litre)');
    LEGEND_VOI = strpad('time in component environment (minute)');
    LEGEND_ALGEBRAIC(:,6) = strpad('VIM in component blood_viscosity (dimensionless)');
    LEGEND_ALGEBRAIC(:,3) = strpad('HM in component hematocrit_fraction (dimensionless)');
    LEGEND_ALGEBRAIC(:,2) = strpad('HM1 in component hematocrit_fraction (dimensionless)');
    LEGEND_STATES(:,1) = strpad('VRC in component RBC_volume (litre)');
    LEGEND_CONSTANTS(:,279) = strpad('A1K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,280) = strpad('A2K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,281) = strpad('A3K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,282) = strpad('A4K in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,283) = strpad('A4K2 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,284) = strpad('AARK in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,285) = strpad('AARLL in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,286) = strpad('ADHINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,287) = strpad('ADHKLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,288) = strpad('ADHKUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,289) = strpad('ADHPAM in component parameter_values (per_mmHg2)');
    LEGEND_CONSTANTS(:,290) = strpad('ADHPUL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,291) = strpad('ADHTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,292) = strpad('ADHVLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,293) = strpad('ADHVUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,294) = strpad('AH10 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,295) = strpad('AH11 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,296) = strpad('AH9 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,297) = strpad('AHMNAR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,298) = strpad('AHTHM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,299) = strpad('ALCLK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,300) = strpad('ALDINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,301) = strpad('ALDKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,302) = strpad('ALDMM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,303) = strpad('AM1LL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,304) = strpad('AM1UL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,305) = strpad('AMCSNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,306) = strpad('AMKM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,307) = strpad('AMKMUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,308) = strpad('AMM1LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,309) = strpad('AMM4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,310) = strpad('AMNALL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,311) = strpad('AMNAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,312) = strpad('AMNAUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,313) = strpad('AMT in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,314) = strpad('ANCSNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,315) = strpad('ANGINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,316) = strpad('ANGKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,317) = strpad('ANMALD in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,318) = strpad('ANMAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,319) = strpad('ANMARL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,320) = strpad('ANMEM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,321) = strpad('ANMKEL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,322) = strpad('ANMKEM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,323) = strpad('ANMLL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,324) = strpad('ANMNAM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,325) = strpad('ANMSLT in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,326) = strpad('ANMTM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,327) = strpad('ANMUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,328) = strpad('ANPTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,329) = strpad('ANPXAF in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,330) = strpad('ANPXUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,331) = strpad('ANT in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,332) = strpad('ANULL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,333) = strpad('ANUM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,334) = strpad('ANUVM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,335) = strpad('ANV in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,336) = strpad('ANXM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,337) = strpad('ANY in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,338) = strpad('AR1LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,339) = strpad('AR2LM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,340) = strpad('ARF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,341) = strpad('AUC1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,342) = strpad('AUDMP in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,343) = strpad('AUK in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,344) = strpad('AUL in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,345) = strpad('AULPM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,346) = strpad('AUM1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,347) = strpad('AUM2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,348) = strpad('AUMAX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,349) = strpad('AUMIN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,350) = strpad('AUMK1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,351) = strpad('AUN1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,352) = strpad('AURG in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,353) = strpad('AUS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,354) = strpad('AUSLP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,355) = strpad('AUTO in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,356) = strpad('AUTOGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,357) = strpad('AUTOSN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,358) = strpad('AUX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,359) = strpad('BAROTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,360) = strpad('CFC in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,361) = strpad('CKEEX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,362) = strpad('CMPTSS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,363) = strpad('CN2 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,364) = strpad('CN7 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,365) = strpad('CNR in component parameter_values (monovalent_mEq_per_litre)');
    LEGEND_CONSTANTS(:,366) = strpad('CPF in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,367) = strpad('CPK in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,368) = strpad('CPR in component parameter_values (gram_per_L)');
    LEGEND_CONSTANTS(:,369) = strpad('CV in component parameter_values (L_per_mmHg)');
    LEGEND_CONSTANTS(:,370) = strpad('CRRFLX in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,371) = strpad('DIURET in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,372) = strpad('DHDTR in component parameter_values (per_mmHg_per_minute)');
    LEGEND_CONSTANTS(:,373) = strpad('DTNAR in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,374) = strpad('DTNARL in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,375) = strpad('EARK in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,376) = strpad('EARLL in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,377) = strpad('EFAFR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,378) = strpad('EXC in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,379) = strpad('EXCML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,380) = strpad('EXCXP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,381) = strpad('EXCXP2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,382) = strpad('EXE in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,383) = strpad('GCOPF in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,384) = strpad('GFLC in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,385) = strpad('GFNDMP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,386) = strpad('GFNLL in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,387) = strpad('GPPD in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,388) = strpad('HM6 in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,389) = strpad('HM8 in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,390) = strpad('HTAUML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,391) = strpad('KORGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,392) = strpad('KORNER in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,393) = strpad('KORREN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,394) = strpad('KORTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,395) = strpad('LPDE in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,396) = strpad('LPK in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,397) = strpad('LPPR in component parameter_values (gram_per_minute)');
    LEGEND_CONSTANTS(:,398) = strpad('MDFL1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,399) = strpad('MDFLKM in component parameter_values (monovalent_mEq_per_litre)');
    LEGEND_CONSTANTS(:,400) = strpad('MDFLW2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,401) = strpad('MDFLWX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,402) = strpad('MDMP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,403) = strpad('O2A in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,404) = strpad('O2CHMO in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,405) = strpad('OMM in component parameter_values (mL_per_minute)');
    LEGEND_CONSTANTS(:,406) = strpad('PA4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,407) = strpad('PAEX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,408) = strpad('PCE in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,409) = strpad('PCR in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,410) = strpad('PR1LL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,411) = strpad('PGHF in component parameter_values (L_mmHg_per_gram)');
    LEGEND_CONSTANTS(:,412) = strpad('PK2 in component parameter_values (mmHg_per_mL)');
    LEGEND_CONSTANTS(:,413) = strpad('PL2 in component parameter_values (L_mL_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,414) = strpad('PLDF in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,415) = strpad('PM5 in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,416) = strpad('PO2ADV in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,417) = strpad('POK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,418) = strpad('POM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,419) = strpad('POM2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,420) = strpad('PON in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,421) = strpad('POR in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,422) = strpad('POZ in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,423) = strpad('PXTP in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,424) = strpad('QAOLM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,425) = strpad('QRF in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,426) = strpad('RABSC in component parameter_values (per_mmHg)');
    LEGEND_CONSTANTS(:,427) = strpad('RAM in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,428) = strpad('RAPRSP in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,429) = strpad('RAR in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,430) = strpad('RCDFDP in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,431) = strpad('RCDFPC in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,432) = strpad('REK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,433) = strpad('RFABKM in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,434) = strpad('RFABDM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,435) = strpad('RFABDP in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,436) = strpad('RFCDFT in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,437) = strpad('RKC in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,438) = strpad('RNAGTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,439) = strpad('RNAUAD in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,440) = strpad('RPS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,441) = strpad('RTPPR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,442) = strpad('RTPPRS in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,443) = strpad('RTSPRS in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,444) = strpad('RVRS in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,445) = strpad('RVSM in component parameter_values (mmHg_minute_per_L)');
    LEGEND_CONSTANTS(:,446) = strpad('SR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,447) = strpad('SR2 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,448) = strpad('SRK in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,449) = strpad('SRK2 in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,450) = strpad('STA in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,451) = strpad('TENSGN in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,452) = strpad('TENSTC in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,453) = strpad('TIMETR in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,454) = strpad('TRNSFS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,455) = strpad('TRPL in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,456) = strpad('TSSLML in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,457) = strpad('TSSLTC in component parameter_values (per_minute)');
    LEGEND_CONSTANTS(:,458) = strpad('TVDDL in component parameter_values (minute)');
    LEGEND_CONSTANTS(:,459) = strpad('U in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,460) = strpad('VID1 in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,461) = strpad('VIDML in component parameter_values (litre2_per_monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,462) = strpad('VNTSTM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,463) = strpad('VP1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,464) = strpad('VPTISS in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,465) = strpad('VTSF in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,466) = strpad('VV9 in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,467) = strpad('X in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,468) = strpad('Z in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,469) = strpad('Z4 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,470) = strpad('Z5 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,471) = strpad('Z6 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,472) = strpad('Z7 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,473) = strpad('Z10 in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,474) = strpad('Z11 in component parameter_values (per_mmHg2)');
    LEGEND_CONSTANTS(:,475) = strpad('Z12 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,476) = strpad('Z13 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,477) = strpad('Z14 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,478) = strpad('Z16 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,479) = strpad('Z18 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,480) = strpad('Z19 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,481) = strpad('KID in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,482) = strpad('URFORM in component parameter_values (mOsm_per_minute)');
    LEGEND_CONSTANTS(:,483) = strpad('AUV in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,484) = strpad('AUY in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,485) = strpad('O2M in component parameter_values (mL_per_minute)');
    LEGEND_CONSTANTS(:,486) = strpad('NID in component parameter_values (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,487) = strpad('ATRFBM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,488) = strpad('GBL in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,489) = strpad('RNAUGN in component parameter_values (minute_per_L)');
    LEGEND_CONSTANTS(:,490) = strpad('RNAULL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,491) = strpad('RNAUUL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,492) = strpad('HSR in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,493) = strpad('HSL in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,494) = strpad('HMK in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,495) = strpad('PO2AMB in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,496) = strpad('HKM in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,497) = strpad('DR in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,498) = strpad('ANPKNS in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,499) = strpad('RMULT1 in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,500) = strpad('GLPCA in component parameter_values (mmHg)');
    LEGEND_CONSTANTS(:,501) = strpad('RFN in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,502) = strpad('RFABX in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,503) = strpad('ANPINF in component parameter_values (dimensionless)');
    LEGEND_CONSTANTS(:,504) = strpad('FIS in component parameter_values (L_per_minute_per_mmHg)');
    LEGEND_CONSTANTS(:,505) = strpad('CPPD in component parameter_values (gram_per_L)');
    LEGEND_CONSTANTS(:,506) = strpad('TRRBC in component parameter_values (L_per_minute)');
    LEGEND_CONSTANTS(:,507) = strpad('HYL in component parameter_values (gram)');
    LEGEND_CONSTANTS(:,508) = strpad('ATRVM in component parameter_values (litre)');
    LEGEND_CONSTANTS(:,509) = strpad('ADHC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,510) = strpad('AHY_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,511) = strpad('AMC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,512) = strpad('AMM1T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,513) = strpad('AMM2_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,514) = strpad('ANC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,515) = strpad('ANPC_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,516) = strpad('ANX1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,517) = strpad('AR1T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,518) = strpad('AR2T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,519) = strpad('AR3T_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,520) = strpad('AU1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,521) = strpad('AU4_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,522) = strpad('AU6_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,523) = strpad('DTKA_init in component state_variables (monovalent_mEq_per_minute)');
    LEGEND_CONSTANTS(:,524) = strpad('HMD1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,525) = strpad('HPL_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,526) = strpad('HPR_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,527) = strpad('KTOT_init in component state_variables (monovalent_mEq)');
    LEGEND_CONSTANTS(:,528) = strpad('NAE_init in component state_variables (monovalent_mEq)');
    LEGEND_CONSTANTS(:,529) = strpad('O2VAD1_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,530) = strpad('OSV_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,531) = strpad('OVA_init in component state_variables (mL_per_L)');
    LEGEND_CONSTANTS(:,532) = strpad('OVS_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,533) = strpad('PAR1_init in component state_variables (mmHg)');
    LEGEND_CONSTANTS(:,534) = strpad('PC_init in component state_variables (mmHg)');
    LEGEND_CONSTANTS(:,535) = strpad('PLUR_init in component state_variables (mOsm)');
    LEGEND_CONSTANTS(:,536) = strpad('PPR1_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,537) = strpad('PRP_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,538) = strpad('QO2T_init in component state_variables (mL)');
    LEGEND_CONSTANTS(:,539) = strpad('QOM1_init in component state_variables (mL)');
    LEGEND_CONSTANTS(:,540) = strpad('RNAUG3_init in component state_variables (dimensionless)');
    LEGEND_CONSTANTS(:,541) = strpad('TSP_init in component state_variables (gram)');
    LEGEND_CONSTANTS(:,542) = strpad('TVD_init in component state_variables (L_per_minute)');
    LEGEND_CONSTANTS(:,543) = strpad('VAS1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,544) = strpad('VIC_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,545) = strpad('VLA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,546) = strpad('VPA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,547) = strpad('VPF1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,548) = strpad('VP_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,549) = strpad('VRA1_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,550) = strpad('VRC_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,551) = strpad('VTS2_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,552) = strpad('VTW_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,553) = strpad('VV6_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,554) = strpad('VV7_init in component state_variables (litre)');
    LEGEND_CONSTANTS(:,555) = strpad('VVS1_init in component state_variables (litre)');
    LEGEND_ALGEBRAIC(:,1) = strpad('VB in component hematocrit_fraction (litre)');
    LEGEND_ALGEBRAIC(:,4) = strpad('VIE in component viscosity_due_to_RBCs (dimensionless)');
    LEGEND_ALGEBRAIC(:,5) = strpad('VIB in component blood_viscosity (dimensionless)');
    LEGEND_ALGEBRAIC(:,9) = strpad('HM7 in component oxygen_stimulation (mmHg)');
    LEGEND_CONSTANTS(:,556) = strpad('PO2AM1 in component oxygen_stimulation (mmHg)');
    LEGEND_ALGEBRAIC(:,7) = strpad('HM3 in component oxygen_stimulation (mmHg)');
    LEGEND_CONSTANTS(:,557) = strpad('HM4 in component oxygen_stimulation (mmHg)');
    LEGEND_ALGEBRAIC(:,8) = strpad('HM5 in component oxygen_stimulation (mmHg)');
    LEGEND_ALGEBRAIC(:,10) = strpad('RC1 in component RBC_production (L_per_minute)');
    LEGEND_ALGEBRAIC(:,11) = strpad('RC2 in component RBC_destruction (L_per_minute)');
    LEGEND_ALGEBRAIC(:,12) = strpad('RCD in component RBC_volume (L_per_minute)');
    LEGEND_RATES(:,1) = strpad('d/dt VRC in component RBC_volume (litre)');
    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 = [];
    CONSTANTS(:,1) = 3.00449;
    CONSTANTS(:,2) = 0.5;
    CONSTANTS(:,3) = 60;
    CONSTANTS(:,4) = 40000;
    CONSTANTS(:,5) = 0.1;
    CONSTANTS(:,6) = 40000;
    CONSTANTS(:,7) = 1;
    CONSTANTS(:,8) = 4;
    CONSTANTS(:,9) = 0;
    CONSTANTS(:,10) = 0.2;
    CONSTANTS(:,11) = 5;
    CONSTANTS(:,12) = 0.3;
    CONSTANTS(:,13) = 85;
    CONSTANTS(:,14) = 15;
    CONSTANTS(:,15) = 0.93617;
    CONSTANTS(:,16) = 2.5;
    CONSTANTS(:,17) = 0.333;
    CONSTANTS(:,18) = 1000;
    CONSTANTS(:,19) = 1;
    CONSTANTS(:,20) = 0.3;
    CONSTANTS(:,21) = 2;
    CONSTANTS(:,22) = 0.3;
    CONSTANTS(:,23) = 0;
    CONSTANTS(:,24) = 0;
    CONSTANTS(:,25) = 2.5;
    CONSTANTS(:,26) = 0;
    CONSTANTS(:,27) = 5;
    CONSTANTS(:,28) = 0.65;
    CONSTANTS(:,29) = 0.5;
    CONSTANTS(:,30) = 12;
    CONSTANTS(:,31) = 0.005;
    CONSTANTS(:,32) = 0.005;
    CONSTANTS(:,33) = 0.04;
    CONSTANTS(:,34) = 0.8;
    CONSTANTS(:,35) = 15;
    CONSTANTS(:,36) = 60;
    CONSTANTS(:,37) = 0.4;
    CONSTANTS(:,38) = 0;
    CONSTANTS(:,39) = 0;
    CONSTANTS(:,40) = 2.5;
    CONSTANTS(:,41) = 1.4;
    CONSTANTS(:,42) = 0.86;
    CONSTANTS(:,43) = 1.6;
    CONSTANTS(:,44) = 0.3;
    CONSTANTS(:,45) = 2;
    CONSTANTS(:,46) = 0.7;
    CONSTANTS(:,47) = 1;
    CONSTANTS(:,48) = 2;
    CONSTANTS(:,49) = 1.5;
    CONSTANTS(:,50) = 1.8;
    CONSTANTS(:,51) = 4;
    CONSTANTS(:,52) = 1.5;
    CONSTANTS(:,53) = 10;
    CONSTANTS(:,54) = 12;
    CONSTANTS(:,55) = 0.8;
    CONSTANTS(:,56) = 6;
    CONSTANTS(:,57) = 0;
    CONSTANTS(:,58) = 5000;
    CONSTANTS(:,59) = 0;
    CONSTANTS(:,60) = -0.2;
    CONSTANTS(:,61) = 0.005;
    CONSTANTS(:,62) = 0.005;
    CONSTANTS(:,63) = 0.5;
    CONSTANTS(:,64) = 0.3;
    CONSTANTS(:,65) = 0.3;
    CONSTANTS(:,66) = 0.004;
    CONSTANTS(:,67) = 1.5;
    CONSTANTS(:,68) = 0;
    CONSTANTS(:,69) = 3;
    CONSTANTS(:,70) = 1;
    CONSTANTS(:,71) = 5.0;
    CONSTANTS(:,72) = 0.4;
    CONSTANTS(:,73) = 0.3;
    CONSTANTS(:,74) = 0.5;
    CONSTANTS(:,75) = 1.0;
    CONSTANTS(:,76) = 1;
    CONSTANTS(:,77) = 1.5;
    CONSTANTS(:,78) = 0;
    CONSTANTS(:,79) = 7;
    CONSTANTS(:,80) = 0.9;
    CONSTANTS(:,81) = 1;
    CONSTANTS(:,82) = 0.16;
    CONSTANTS(:,83) = 0.01167;
    CONSTANTS(:,84) = 4;
    CONSTANTS(:,85) = 2;
    CONSTANTS(:,86) = 0.0212;
    CONSTANTS(:,87) = 0.2;
    CONSTANTS(:,88) = 139;
    CONSTANTS(:,89) = 0.0003;
    CONSTANTS(:,90) = 0.000253;
    CONSTANTS(:,91) = 40;
    CONSTANTS(:,92) = 0.1;
    CONSTANTS(:,93) = 0;
    CONSTANTS(:,94) = 1;
    CONSTANTS(:,95) = 0.05;
    CONSTANTS(:,96) = 0.675;
    CONSTANTS(:,97) = 1e-06;
    CONSTANTS(:,98) = 1;
    CONSTANTS(:,99) = 24;
    CONSTANTS(:,100) = 0;
    CONSTANTS(:,101) = 1;
    CONSTANTS(:,102) = 0.01;
    CONSTANTS(:,103) = 1.0;
    CONSTANTS(:,104) = 0.17;
    CONSTANTS(:,105) = 0;
    CONSTANTS(:,106) = 0.8092;
    CONSTANTS(:,107) = 0.0208333;
    CONSTANTS(:,108) = 3;
    CONSTANTS(:,109) = 0.001;
    CONSTANTS(:,110) = 1.0;
    CONSTANTS(:,111) = 1850;
    CONSTANTS(:,112) = 4.714e-08;
    CONSTANTS(:,113) = 0.4;
    CONSTANTS(:,114) = 1;
    CONSTANTS(:,115) = 0;
    CONSTANTS(:,116) = 0;
    CONSTANTS(:,117) = 10000;
    CONSTANTS(:,118) = 8;
    CONSTANTS(:,119) = 2.728e-14;
    CONSTANTS(:,120) = 0.03;
    CONSTANTS(:,121) = 10;
    CONSTANTS(:,122) = 0.667;
    CONSTANTS(:,123) = 0.005;
    CONSTANTS(:,124) = 0.01;
    CONSTANTS(:,125) = 0;
    CONSTANTS(:,126) = 0.1;
    CONSTANTS(:,127) = 0.01;
    CONSTANTS(:,128) = 57.1;
    CONSTANTS(:,129) = 1;
    CONSTANTS(:,130) = 2;
    CONSTANTS(:,131) = 1;
    CONSTANTS(:,132) = 15;
    CONSTANTS(:,133) = 0;
    CONSTANTS(:,134) = -2;
    CONSTANTS(:,135) = 0.79167;
    CONSTANTS(:,136) = 1.8;
    CONSTANTS(:,137) = 4.2;
    CONSTANTS(:,138) = 30;
    CONSTANTS(:,139) = 0.001;
    CONSTANTS(:,140) = 0.1;
    CONSTANTS(:,141) = 0.04;
    CONSTANTS(:,142) = 2;
    CONSTANTS(:,143) = 0.1;
    CONSTANTS(:,144) = 35;
    CONSTANTS(:,145) = 2;
    CONSTANTS(:,146) = 8;
    CONSTANTS(:,147) = 0.2;
    CONSTANTS(:,148) = 0.15;
    CONSTANTS(:,149) = 0.5;
    CONSTANTS(:,150) = 96.3;
    CONSTANTS(:,151) = 0;
    CONSTANTS(:,152) = 30.52;
    CONSTANTS(:,153) = 2000;
    CONSTANTS(:,154) = 0;
    CONSTANTS(:,155) = 1;
    CONSTANTS(:,156) = 0.03;
    CONSTANTS(:,157) = 0.3;
    CONSTANTS(:,158) = 1;
    CONSTANTS(:,159) = 0;
    CONSTANTS(:,160) = 5.8e-06;
    CONSTANTS(:,161) = 15;
    CONSTANTS(:,162) = 0;
    CONSTANTS(:,163) = 0;
    CONSTANTS(:,164) = 0.9;
    CONSTANTS(:,165) = 15.2;
    CONSTANTS(:,166) = 6;
    CONSTANTS(:,167) = 19.167;
    CONSTANTS(:,168) = 1;
    CONSTANTS(:,169) = 1;
    CONSTANTS(:,170) = 1;
    CONSTANTS(:,171) = 5;
    CONSTANTS(:,172) = 10000;
    CONSTANTS(:,173) = 0;
    CONSTANTS(:,174) = 0;
    CONSTANTS(:,175) = 0.05;
    CONSTANTS(:,176) = 0;
    CONSTANTS(:,177) = 0;
    CONSTANTS(:,178) = 0;
    CONSTANTS(:,179) = 0.15;
    CONSTANTS(:,180) = 0.005;
    CONSTANTS(:,181) = 30;
    CONSTANTS(:,182) = 4;
    CONSTANTS(:,183) = 0.01;
    CONSTANTS(:,184) = 0.01;
    CONSTANTS(:,185) = 1;
    CONSTANTS(:,186) = 0.01;
    CONSTANTS(:,187) = 0.0175;
    CONSTANTS(:,188) = 6;
    CONSTANTS(:,189) = 2.51;
    CONSTANTS(:,190) = 4;
    CONSTANTS(:,191) = 1;
    CONSTANTS(:,192) = 0.5;
    CONSTANTS(:,193) = 0.3;
    CONSTANTS(:,194) = 20;
    CONSTANTS(:,195) = 5;
    CONSTANTS(:,196) = 45;
    CONSTANTS(:,197) = 0.01;
    CONSTANTS(:,198) = 5;
    CONSTANTS(:,199) = 0.625;
    CONSTANTS(:,200) = 5;
    CONSTANTS(:,201) = 5;
    CONSTANTS(:,202) = 5;
    CONSTANTS(:,203) = 5;
    CONSTANTS(:,204) = 0.08;
    CONSTANTS(:,205) = 0.24;
    CONSTANTS(:,206) = 0.55;
    CONSTANTS(:,207) = 0;
    CONSTANTS(:,208) = 164;
    CONSTANTS(:,209) = 0.1;
    CONSTANTS(:,210) = 0;
    CONSTANTS(:,211) = 0;
    CONSTANTS(:,212) = 0.6;
    CONSTANTS(:,213) = 0.3;
    CONSTANTS(:,214) = 10;
    CONSTANTS(:,215) = 1;
    CONSTANTS(:,216) = 1;
    CONSTANTS(:,217) = 90;
    CONSTANTS(:,218) = 150;
    CONSTANTS(:,219) = 0.53333;
    CONSTANTS(:,220) = 0;
    CONSTANTS(:,221) = 0;
    CONSTANTS(:,222) = 1;
    CONSTANTS(:,223) = 1.0;
    CONSTANTS(:,224) = 1.22057;
    CONSTANTS(:,225) = 0.8;
    CONSTANTS(:,226) = 0;
    CONSTANTS(:,227) = 0;
    CONSTANTS(:,228) = 31.9719;
    CONSTANTS(:,229) = 0;
    CONSTANTS(:,230) = 60;
    CONSTANTS(:,231) = 0;
    CONSTANTS(:,232) = 1.0;
    CONSTANTS(:,233) = 0.301963;
    CONSTANTS(:,234) = 1.0;
    CONSTANTS(:,235) = 1.00269;
    CONSTANTS(:,236) = 1.09071;
    CONSTANTS(:,237) = 0.859476;
    CONSTANTS(:,238) = 1.0;
    CONSTANTS(:,239) = 0;
    CONSTANTS(:,240) = 1.02127;
    CONSTANTS(:,241) = 1.01179;
    CONSTANTS(:,242) = 1.1448;
    CONSTANTS(:,243) = 1.00007;
    CONSTANTS(:,244) = -0.060024;
    CONSTANTS(:,245) = 1.00132;
    CONSTANTS(:,246) = 0.0367573;
    CONSTANTS(:,247) = 1;
    CONSTANTS(:,248) = 1.00163;
    CONSTANTS(:,249) = 1.00237;
    CONSTANTS(:,250) = 3622.54;
    CONSTANTS(:,251) = 2109.91;
    CONSTANTS(:,252) = 2.368e-07;
    CONSTANTS(:,253) = 0.694163;
    CONSTANTS(:,254) = 204.497;
    CONSTANTS(:,255) = 0.699673;
    CONSTANTS(:,256) = 103.525;
    CONSTANTS(:,257) = 16.9144;
    CONSTANTS(:,258) = 159.549;
    CONSTANTS(:,259) = 0.419998;
    CONSTANTS(:,260) = 216.243;
    CONSTANTS(:,261) = 72.2362;
    CONSTANTS(:,262) = 48.0839;
    CONSTANTS(:,263) = 0;
    CONSTANTS(:,264) = 279.945;
    CONSTANTS(:,265) = 0.000980838;
    CONSTANTS(:,266) = 0.862514;
    CONSTANTS(:,267) = 25.0404;
    CONSTANTS(:,268) = 0.379883;
    CONSTANTS(:,269) = 0.38131;
    CONSTANTS(:,270) = 0.0123238;
    CONSTANTS(:,271) = 3.00449;
    CONSTANTS(:,272) = 0.100043;
    CONSTANTS(:,273) = 2.00439;
    CONSTANTS(:,274) = 0;
    CONSTANTS(:,275) = 39.8952;
    CONSTANTS(:,276) = 0.0101913;
    CONSTANTS(:,277) = 0.00366525;
    CONSTANTS(:,278) = 3.28246;
    CONSTANTS(:,279) = 0.5;
    CONSTANTS(:,280) = 60;
    CONSTANTS(:,281) = 40000;
    CONSTANTS(:,282) = 0.1;
    CONSTANTS(:,283) = 40000;
    CONSTANTS(:,284) = 1;
    CONSTANTS(:,285) = 4;
    CONSTANTS(:,286) = 0;
    CONSTANTS(:,287) = 0.2;
    CONSTANTS(:,288) = 5;
    CONSTANTS(:,289) = 0.3;
    CONSTANTS(:,290) = 85;
    CONSTANTS(:,291) = 15;
    CONSTANTS(:,292) = 0.93617;
    CONSTANTS(:,293) = 2.5;
    CONSTANTS(:,294) = 0.333;
    CONSTANTS(:,295) = 1000;
    CONSTANTS(:,296) = 1;
    CONSTANTS(:,297) = 0.3;
    CONSTANTS(:,298) = 2;
    CONSTANTS(:,299) = 0.3;
    CONSTANTS(:,300) = 0;
    CONSTANTS(:,301) = 0;
    CONSTANTS(:,302) = 2.5;
    CONSTANTS(:,303) = 0;
    CONSTANTS(:,304) = 5;
    CONSTANTS(:,305) = 0.65;
    CONSTANTS(:,306) = 0.5;
    CONSTANTS(:,307) = 12;
    CONSTANTS(:,308) = 0.005;
    CONSTANTS(:,309) = 0.005;
    CONSTANTS(:,310) = 0.04;
    CONSTANTS(:,311) = 0.8;
    CONSTANTS(:,312) = 15;
    CONSTANTS(:,313) = 60;
    CONSTANTS(:,314) = 0.4;
    CONSTANTS(:,315) = 0;
    CONSTANTS(:,316) = 0;
    CONSTANTS(:,317) = 2.5;
    CONSTANTS(:,318) = 1.4;
    CONSTANTS(:,319) = 0.86;
    CONSTANTS(:,320) = 1.6;
    CONSTANTS(:,321) = 0.3;
    CONSTANTS(:,322) = 2;
    CONSTANTS(:,323) = 0.7;
    CONSTANTS(:,324) = 1;
    CONSTANTS(:,325) = 2;
    CONSTANTS(:,326) = 1.5;
    CONSTANTS(:,327) = 1.8;
    CONSTANTS(:,328) = 4;
    CONSTANTS(:,329) = 1.5;
    CONSTANTS(:,330) = 10;
    CONSTANTS(:,331) = 12;
    CONSTANTS(:,332) = 0.8;
    CONSTANTS(:,333) = 6;
    CONSTANTS(:,334) = 0;
    CONSTANTS(:,335) = 5000;
    CONSTANTS(:,336) = 0;
    CONSTANTS(:,337) = -0.2;
    CONSTANTS(:,338) = 0.005;
    CONSTANTS(:,339) = 0.005;
    CONSTANTS(:,340) = 0.5;
    CONSTANTS(:,341) = 0.3;
    CONSTANTS(:,342) = 0.3;
    CONSTANTS(:,343) = 0.004;
    CONSTANTS(:,344) = 1.5;
    CONSTANTS(:,345) = 0;
    CONSTANTS(:,346) = 3;
    CONSTANTS(:,347) = 1;
    CONSTANTS(:,348) = 5.0;
    CONSTANTS(:,349) = 0.4;
    CONSTANTS(:,350) = 0.3;
    CONSTANTS(:,351) = 0.5;
    CONSTANTS(:,352) = 1.0;
    CONSTANTS(:,353) = 1;
    CONSTANTS(:,354) = 1.5;
    CONSTANTS(:,355) = 0;
    CONSTANTS(:,356) = 7;
    CONSTANTS(:,357) = 0.9;
    CONSTANTS(:,358) = 1;
    CONSTANTS(:,359) = 0.16;
    CONSTANTS(:,360) = 0.01167;
    CONSTANTS(:,361) = 4;
    CONSTANTS(:,362) = 2;
    CONSTANTS(:,363) = 0.0212;
    CONSTANTS(:,364) = 0.2;
    CONSTANTS(:,365) = 139;
    CONSTANTS(:,366) = 0.0003;
    CONSTANTS(:,367) = 0.000253;
    CONSTANTS(:,368) = 40;
    CONSTANTS(:,369) = 0.1;
    CONSTANTS(:,370) = 0;
    CONSTANTS(:,371) = 1;
    CONSTANTS(:,372) = 0.05;
    CONSTANTS(:,373) = 0.675;
    CONSTANTS(:,374) = 1e-06;
    CONSTANTS(:,375) = 1;
    CONSTANTS(:,376) = 24;
    CONSTANTS(:,377) = 0;
    CONSTANTS(:,378) = 1;
    CONSTANTS(:,379) = 0.01;
    CONSTANTS(:,380) = 1.0;
    CONSTANTS(:,381) = 0.17;
    CONSTANTS(:,382) = 0;
    CONSTANTS(:,383) = 0.8092;
    CONSTANTS(:,384) = 0.0208333;
    CONSTANTS(:,385) = 3;
    CONSTANTS(:,386) = 0.001;
    CONSTANTS(:,387) = 1.0;
    CONSTANTS(:,388) = 1850;
    CONSTANTS(:,389) = 4.714e-08;
    CONSTANTS(:,390) = 0.4;
    CONSTANTS(:,391) = 1;
    CONSTANTS(:,392) = 0;
    CONSTANTS(:,393) = 0;
    CONSTANTS(:,394) = 10000;
    CONSTANTS(:,395) = 8;
    CONSTANTS(:,396) = 2.728e-14;
    CONSTANTS(:,397) = 0.03;
    CONSTANTS(:,398) = 10;
    CONSTANTS(:,399) = 0.667;
    CONSTANTS(:,400) = 0.005;
    CONSTANTS(:,401) = 0.01;
    CONSTANTS(:,402) = 0;
    CONSTANTS(:,403) = 0.1;
    CONSTANTS(:,404) = 0.01;
    CONSTANTS(:,405) = 57.1;
    CONSTANTS(:,406) = 1;
    CONSTANTS(:,407) = 2;
    CONSTANTS(:,408) = 1;
    CONSTANTS(:,409) = 15;
    CONSTANTS(:,410) = 0;
    CONSTANTS(:,411) = -2;
    CONSTANTS(:,412) = 0.79167;
    CONSTANTS(:,413) = 1.8;
    CONSTANTS(:,414) = 4.2;
    CONSTANTS(:,415) = 30;
    CONSTANTS(:,416) = 0.001;
    CONSTANTS(:,417) = 0.1;
    CONSTANTS(:,418) = 0.04;
    CONSTANTS(:,419) = 2;
    CONSTANTS(:,420) = 0.1;
    CONSTANTS(:,421) = 35;
    CONSTANTS(:,422) = 2;
    CONSTANTS(:,423) = 8;
    CONSTANTS(:,424) = 0.2;
    CONSTANTS(:,425) = 0.15;
    CONSTANTS(:,426) = 0.5;
    CONSTANTS(:,427) = 96.3;
    CONSTANTS(:,428) = 0;
    CONSTANTS(:,429) = 30.52;
    CONSTANTS(:,430) = 2000;
    CONSTANTS(:,431) = 0;
    CONSTANTS(:,432) = 1;
    CONSTANTS(:,433) = 0.03;
    CONSTANTS(:,434) = 0.3;
    CONSTANTS(:,435) = 1;
    CONSTANTS(:,436) = 0;
    CONSTANTS(:,437) = 5.8e-06;
    CONSTANTS(:,438) = 15;
    CONSTANTS(:,439) = 0;
    CONSTANTS(:,440) = 0;
    CONSTANTS(:,441) = 0.9;
    CONSTANTS(:,442) = 15.2;
    CONSTANTS(:,443) = 6;
    CONSTANTS(:,444) = 19.167;
    CONSTANTS(:,445) = 1;
    CONSTANTS(:,446) = 1;
    CONSTANTS(:,447) = 1;
    CONSTANTS(:,448) = 5;
    CONSTANTS(:,449) = 10000;
    CONSTANTS(:,450) = 0;
    CONSTANTS(:,451) = 0;
    CONSTANTS(:,452) = 0.05;
    CONSTANTS(:,453) = 0;
    CONSTANTS(:,454) = 0;
    CONSTANTS(:,455) = 0;
    CONSTANTS(:,456) = 0.15;
    CONSTANTS(:,457) = 0.005;
    CONSTANTS(:,458) = 30;
    CONSTANTS(:,459) = 4;
    CONSTANTS(:,460) = 0.01;
    CONSTANTS(:,461) = 0.01;
    CONSTANTS(:,462) = 1;
    CONSTANTS(:,463) = 0.01;
    CONSTANTS(:,464) = 0.0175;
    CONSTANTS(:,465) = 6;
    CONSTANTS(:,466) = 2.51;
    CONSTANTS(:,467) = 4;
    CONSTANTS(:,468) = 1;
    CONSTANTS(:,469) = 0.5;
    CONSTANTS(:,470) = 0.3;
    CONSTANTS(:,471) = 20;
    CONSTANTS(:,472) = 5;
    CONSTANTS(:,473) = 45;
    CONSTANTS(:,474) = 0.01;
    CONSTANTS(:,475) = 5;
    CONSTANTS(:,476) = 0.625;
    CONSTANTS(:,477) = 5;
    CONSTANTS(:,478) = 5;
    CONSTANTS(:,479) = 5;
    CONSTANTS(:,480) = 5;
    CONSTANTS(:,481) = 0.08;
    CONSTANTS(:,482) = 0.24;
    CONSTANTS(:,483) = 0.55;
    CONSTANTS(:,484) = 0;
    CONSTANTS(:,485) = 164;
    CONSTANTS(:,486) = 0.1;
    CONSTANTS(:,487) = 0;
    CONSTANTS(:,488) = 0;
    CONSTANTS(:,489) = 0.6;
    CONSTANTS(:,490) = 0.3;
    CONSTANTS(:,491) = 10;
    CONSTANTS(:,492) = 1;
    CONSTANTS(:,493) = 1;
    CONSTANTS(:,494) = 90;
    CONSTANTS(:,495) = 150;
    CONSTANTS(:,496) = 0.53333;
    CONSTANTS(:,497) = 0;
    CONSTANTS(:,498) = 0;
    CONSTANTS(:,499) = 1;
    CONSTANTS(:,500) = 1.0;
    CONSTANTS(:,501) = 1.22057;
    CONSTANTS(:,502) = 0.8;
    CONSTANTS(:,503) = 0;
    CONSTANTS(:,504) = 0;
    CONSTANTS(:,505) = 31.9719;
    CONSTANTS(:,506) = 0;
    CONSTANTS(:,507) = 60;
    CONSTANTS(:,508) = 0;
    CONSTANTS(:,509) = 1.0;
    CONSTANTS(:,510) = 0.301963;
    CONSTANTS(:,511) = 1.0;
    CONSTANTS(:,512) = 1.00269;
    CONSTANTS(:,513) = 1.09071;
    CONSTANTS(:,514) = 0.859476;
    CONSTANTS(:,515) = 1.0;
    CONSTANTS(:,516) = 0;
    CONSTANTS(:,517) = 1.02127;
    CONSTANTS(:,518) = 1.01179;
    CONSTANTS(:,519) = 1.1448;
    CONSTANTS(:,520) = 1.00007;
    CONSTANTS(:,521) = -0.060024;
    CONSTANTS(:,522) = 1.00132;
    CONSTANTS(:,523) = 0.0367573;
    CONSTANTS(:,524) = 1;
    CONSTANTS(:,525) = 1.00163;
    CONSTANTS(:,526) = 1.00237;
    CONSTANTS(:,527) = 3622.54;
    CONSTANTS(:,528) = 2109.91;
    CONSTANTS(:,529) = 2.368e-07;
    CONSTANTS(:,530) = 0.694163;
    CONSTANTS(:,531) = 204.497;
    CONSTANTS(:,532) = 0.699673;
    CONSTANTS(:,533) = 103.525;
    CONSTANTS(:,534) = 16.9144;
    CONSTANTS(:,535) = 159.549;
    CONSTANTS(:,536) = 0.419998;
    CONSTANTS(:,537) = 216.243;
    CONSTANTS(:,538) = 72.2362;
    CONSTANTS(:,539) = 48.0839;
    CONSTANTS(:,540) = 0;
    CONSTANTS(:,541) = 279.945;
    CONSTANTS(:,542) = 0.000980838;
    CONSTANTS(:,543) = 0.862514;
    CONSTANTS(:,544) = 25.0404;
    CONSTANTS(:,545) = 0.379883;
    CONSTANTS(:,546) = 0.38131;
    CONSTANTS(:,547) = 0.0123238;
    CONSTANTS(:,548) = 3.00449;
    CONSTANTS(:,549) = 0.100043;
    CONSTANTS(:,550) = 2.00439;
    CONSTANTS(:,551) = 0;
    CONSTANTS(:,552) = 39.8952;
    CONSTANTS(:,553) = 0.0101913;
    CONSTANTS(:,554) = 0.00366525;
    CONSTANTS(:,555) = 3.28246;
    CONSTANTS(:,556) = piecewise({CONSTANTS(:,495)>80.0000, 80.0000 }, CONSTANTS(:,495));
    CONSTANTS(:,557) = CONSTANTS(:,495) - 40.0000;
    STATES(:,1) = CONSTANTS(:,550);
    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
    ALGEBRAIC(:,1) = CONSTANTS(:,1)+STATES(:,1);
    ALGEBRAIC(:,2) = STATES(:,1)./ALGEBRAIC(:,1);
    ALGEBRAIC(:,3) =  100.000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,7) =  (CONSTANTS(:,556) - 40.0000).*ALGEBRAIC(:,3);
    ALGEBRAIC(:,8) = piecewise({ALGEBRAIC(:,7)+CONSTANTS(:,557)<0.00000, 0.00000 }, ALGEBRAIC(:,7)+CONSTANTS(:,557));
    ALGEBRAIC(:,9) = CONSTANTS(:,388) - ALGEBRAIC(:,8);
    ALGEBRAIC(:,10) = piecewise({ ALGEBRAIC(:,9).*CONSTANTS(:,389).*CONSTANTS(:,432)+5.00000e-06<0.00000, 0.00000 },  ALGEBRAIC(:,9).*CONSTANTS(:,389).*CONSTANTS(:,432)+5.00000e-06);
    ALGEBRAIC(:,4) = ALGEBRAIC(:,3)./( (CONSTANTS(:,494) - ALGEBRAIC(:,3)).*CONSTANTS(:,496));
    ALGEBRAIC(:,5) = ALGEBRAIC(:,4)+1.50000;
    ALGEBRAIC(:,6) =  0.333300.*ALGEBRAIC(:,5);
    ALGEBRAIC(:,11) =  STATES(:,1).*CONSTANTS(:,437).*ALGEBRAIC(:,6);
    ALGEBRAIC(:,12) = (ALGEBRAIC(:,10) - ALGEBRAIC(:,11))+CONSTANTS(:,506);
    RATES(:,1) = ALGEBRAIC(:,12);
   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(:,1) = CONSTANTS(:,1)+STATES(:,1);
    ALGEBRAIC(:,2) = STATES(:,1)./ALGEBRAIC(:,1);
    ALGEBRAIC(:,3) =  100.000.*ALGEBRAIC(:,2);
    ALGEBRAIC(:,7) =  (CONSTANTS(:,556) - 40.0000).*ALGEBRAIC(:,3);
    ALGEBRAIC(:,8) = piecewise({ALGEBRAIC(:,7)+CONSTANTS(:,557)<0.00000, 0.00000 }, ALGEBRAIC(:,7)+CONSTANTS(:,557));
    ALGEBRAIC(:,9) = CONSTANTS(:,388) - ALGEBRAIC(:,8);
    ALGEBRAIC(:,10) = piecewise({ ALGEBRAIC(:,9).*CONSTANTS(:,389).*CONSTANTS(:,432)+5.00000e-06<0.00000, 0.00000 },  ALGEBRAIC(:,9).*CONSTANTS(:,389).*CONSTANTS(:,432)+5.00000e-06);
    ALGEBRAIC(:,4) = ALGEBRAIC(:,3)./( (CONSTANTS(:,494) - ALGEBRAIC(:,3)).*CONSTANTS(:,496));
    ALGEBRAIC(:,5) = ALGEBRAIC(:,4)+1.50000;
    ALGEBRAIC(:,6) =  0.333300.*ALGEBRAIC(:,5);
    ALGEBRAIC(:,11) =  STATES(:,1).*CONSTANTS(:,437).*ALGEBRAIC(:,6);
    ALGEBRAIC(:,12) = (ALGEBRAIC(:,10) - ALGEBRAIC(:,11))+CONSTANTS(:,506);
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