/* There are a total of 11 entries in the algebraic variable array. There are a total of 2 entries in each of the rate and state variable arrays. There are a total of 11 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * CONSTANTS[0] is VPF in component pulmonary_O2_uptake (litre). * CONSTANTS[1] is DOB in component pulmonary_O2_uptake (mL_per_minute). * CONSTANTS[2] is QRO in component pulmonary_O2_uptake (L_per_minute). * CONSTANTS[3] is RMO in component pulmonary_O2_uptake (mL_per_minute). * CONSTANTS[4] is HM in component pulmonary_O2_uptake (dimensionless). * CONSTANTS[9] is O2UTIL in component total_O2_utilization (mL_per_minute). * ALGEBRAIC[5] is O2VAD2 in component progressive_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). * ALGEBRAIC[4] is O2VTS2 in component acute_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). * ALGEBRAIC[7] is ALVENT in component alveolar_ventilation (L_per_minute). * CONSTANTS[5] is VNTSTM in component parameter_values (dimensionless). * ALGEBRAIC[8] is PO2ALV in component alveolar_PO2 (mmHg). * CONSTANTS[6] is PO2AMB in component parameter_values (mmHg). * ALGEBRAIC[1] is PO2ART in component arterial_PO2 (mmHg). * ALGEBRAIC[9] is O2DFS in component respiratory_O2_diffusion_into_capillaries (mL_per_minute). * CONSTANTS[7] is PL2 in component parameter_values (L_mL_per_minute_per_mmHg). * CONSTANTS[8] is VPTISS in component parameter_values (litre). * CONSTANTS[10] is RSPDFC in component respiratory_O2_diffusion_into_capillaries (mL_per_minute_per_mmHg). * STATES[0] is OVA in component O2_volume_of_arterial_blood (mL_per_L). * ALGEBRAIC[10] is DOVA in component O2_volume_of_arterial_blood (mL_per_L_per_minute). * ALGEBRAIC[0] is OSA in component arterial_PO2 (dimensionless). * ALGEBRAIC[3] is O2VTST in component acute_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). * ALGEBRAIC[2] is O2VTST1 in component acute_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). * ALGEBRAIC[6] is DO2VAD in component progressive_chemoreceptor_adaptation_of_alveolar_ventilation (per_minute). * STATES[1] is O2VAD1 in component progressive_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). * RATES[0] is d/dt OVA in component O2_volume_of_arterial_blood (mL_per_L). * RATES[1] is d/dt O2VAD1 in component progressive_chemoreceptor_adaptation_of_alveolar_ventilation (dimensionless). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 0.0123238; CONSTANTS[1] = 163.508; CONSTANTS[2] = 4.97838; CONSTANTS[3] = 56.8057; CONSTANTS[4] = 40.0381; CONSTANTS[5] = 1; CONSTANTS[6] = 150; CONSTANTS[7] = 1.8; CONSTANTS[8] = 0.0175; STATES[0] = 204.497; STATES[1] = 2.368e-07; CONSTANTS[9] = CONSTANTS[1]+CONSTANTS[3]; CONSTANTS[10] = CONSTANTS[7]/(CONSTANTS[8]+CONSTANTS[0]); } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = (STATES[0]/CONSTANTS[4])/5.25000; ALGEBRAIC[1] = (ALGEBRAIC[0]>1.00000 ? 114.000+ (ALGEBRAIC[0] - 1.00000)*6667.00 : ALGEBRAIC[0]>0.936000&&ALGEBRAIC[0]<=1.00000 ? 74.0000+ (ALGEBRAIC[0] - 0.936000)*625.000 : ALGEBRAIC[0]>0.800000&&ALGEBRAIC[0]<=0.936000 ? 46.0000+ (ALGEBRAIC[0] - 0.800000)*205.882 : ALGEBRAIC[0]*57.5000); ALGEBRAIC[2] = (ALGEBRAIC[1] - 67.0000)/30.0000; ALGEBRAIC[3] = (ALGEBRAIC[2]>1.00000 ? 1.00000 : ALGEBRAIC[2]<0.600000 ? 0.600000 : ALGEBRAIC[2]); ALGEBRAIC[4] = 1.00000/ALGEBRAIC[3]; ALGEBRAIC[6] = ( (ALGEBRAIC[4] - 1.00000)*3.00000 - STATES[1])*0.000500000; RATES[1] = ALGEBRAIC[6]; ALGEBRAIC[5] = STATES[1]+1.00000; ALGEBRAIC[7] = CONSTANTS[9]*CONSTANTS[5]*0.0266670*ALGEBRAIC[4]*ALGEBRAIC[5]; ALGEBRAIC[8] = CONSTANTS[6] - (CONSTANTS[9]/ALGEBRAIC[7])/0.761000; ALGEBRAIC[9] = (ALGEBRAIC[8] - ALGEBRAIC[1])*CONSTANTS[10]; ALGEBRAIC[10] = (ALGEBRAIC[9] - CONSTANTS[9])/( CONSTANTS[2]*1.00000); RATES[0] = ALGEBRAIC[10]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = (STATES[0]/CONSTANTS[4])/5.25000; ALGEBRAIC[1] = (ALGEBRAIC[0]>1.00000 ? 114.000+ (ALGEBRAIC[0] - 1.00000)*6667.00 : ALGEBRAIC[0]>0.936000&&ALGEBRAIC[0]<=1.00000 ? 74.0000+ (ALGEBRAIC[0] - 0.936000)*625.000 : ALGEBRAIC[0]>0.800000&&ALGEBRAIC[0]<=0.936000 ? 46.0000+ (ALGEBRAIC[0] - 0.800000)*205.882 : ALGEBRAIC[0]*57.5000); ALGEBRAIC[2] = (ALGEBRAIC[1] - 67.0000)/30.0000; ALGEBRAIC[3] = (ALGEBRAIC[2]>1.00000 ? 1.00000 : ALGEBRAIC[2]<0.600000 ? 0.600000 : ALGEBRAIC[2]); ALGEBRAIC[4] = 1.00000/ALGEBRAIC[3]; ALGEBRAIC[6] = ( (ALGEBRAIC[4] - 1.00000)*3.00000 - STATES[1])*0.000500000; ALGEBRAIC[5] = STATES[1]+1.00000; ALGEBRAIC[7] = CONSTANTS[9]*CONSTANTS[5]*0.0266670*ALGEBRAIC[4]*ALGEBRAIC[5]; ALGEBRAIC[8] = CONSTANTS[6] - (CONSTANTS[9]/ALGEBRAIC[7])/0.761000; ALGEBRAIC[9] = (ALGEBRAIC[8] - ALGEBRAIC[1])*CONSTANTS[10]; ALGEBRAIC[10] = (ALGEBRAIC[9] - CONSTANTS[9])/( CONSTANTS[2]*1.00000); }