C C There are a total of 9 entries in the algebraic variable array. C There are a total of 7 entries in each of the rate and state variable arrays. C There are a total of 26 entries in the constant variable array. C C C VOI is time in component Environment (second). C ALGBRC(1) is P_L in component PluralPressureFunction (mmHg). C ALGBRC(2) is dP_Ldt in component PluralPressureFunction (mmHg_per_second). C CONSTS(1) is P_m in component PluralPressureFunction (mmHg). C CONSTS(24) is R in component PluralPressureFunction (mmHg_second_per_litre). C CONSTS(2) is omega in component PluralPressureFunction (radian_per_second). C CONSTS(3) is V_T in component PluralPressureFunction (litre). C CONSTS(4) is E in component PluralPressureFunction (mmHg_per_second). C CONSTS(5) is P_m in component lungMechanics (mmHg). C STATES(1) is V_A in component lungMechanics (litre). C CONSTS(6) is E in component lungMechanics (mmHg_per_second). C STATES(2) is P_A in component lungMechanics (mmHg). C CONSTS(7) is R in component lungMechanics (mmHg_second_per_litre). C ALGBRC(7) is Q_A in component gasExchange (litre_per_second). C ALGBRC(4) is q in component lungMechanics (litre_per_second). C CONSTS(8) is D_o in component gasExchange (mole_per_second_mmHg). C STATES(3) is f_o in component gasExchange (dimensionless). C ALGBRC(8) is f_oi in component gasExchange (dimensionless). C CONSTS(9) is D_c in component gasExchange (mole_per_second_mmHg). C STATES(4) is f_c in component gasExchange (dimensionless). C ALGBRC(9) is f_ci in component gasExchange (dimensionless). C CONSTS(10) is P_w in component gasExchange (mmHg). C ALGBRC(5) is p_ao in component gasExchange (mmHg). C STATES(5) is p_o in component gasTransport (mmHg). C ALGBRC(6) is p_ac in component gasExchange (mmHg). C CONSTS(11) is f_om in component gasExchange (dimensionless). C CONSTS(12) is f_cm in component gasExchange (dimensionless). C STATES(6) is p_c in component gasTransport (mmHg). C CONSTS(13) is V_D in component gasExchange (litre). C CONSTS(14) is V_T in component gasExchange (litre). C ALGBRC(3) is df_satdp in component gasTransport (dimensionless). C CONSTS(15) is L in component gasTransport (dimensionless). C CONSTS(16) is K_T in component gasTransport (litre_per_mole). C CONSTS(17) is K_R in component gasTransport (litre_per_mole). C CONSTS(18) is sigma in component gasTransport (mole_per_litre_mmHg). C CONSTS(19) is V_c in component gasTransport (litre). C CONSTS(20) is T_h in component gasTransport (mole_per_litre). C CONSTS(25) is delta in component gasTransport (dimensionless). C CONSTS(26) is h in component gasTransport (mole_per_litre). C CONSTS(21) is l_2 in component gasTransport (litre_per_second_mole). C CONSTS(22) is r_2 in component gasTransport (per_second). C CONSTS(23) is sigma_c in component gasTransport (mole_per_litre_mmHg). C STATES(7) is z in component gasTransport (dimensionless). C RATES(2) is d/dt P_A in component lungMechanics (mmHg). C RATES(1) is d/dt V_A in component lungMechanics (litre). C RATES(3) is d/dt f_o in component gasExchange (dimensionless). C RATES(4) is d/dt f_c in component gasExchange (dimensionless). C RATES(5) is d/dt p_o in component gasTransport (mmHg). C RATES(6) is d/dt p_c in component gasTransport (mmHg). C RATES(7) is d/dt z in component gasTransport (dimensionless). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) CONSTS(1) = 760 CONSTS(2) = 1.256637 CONSTS(3) = 0.41 CONSTS(4) = 2.5 CONSTS(5) = 760 STATES(1) = 1 CONSTS(6) = 2.5 STATES(2) = 760 CONSTS(7) = 1 CONSTS(8) = 0.0000156 STATES(3) = 0.1368 CONSTS(9) = 0.0000316 STATES(4) = 0.05263 CONSTS(10) = 47 STATES(5) = 40 CONSTS(11) = 0.21 CONSTS(12) = 0 STATES(6) = 46 CONSTS(13) = 0.151 CONSTS(14) = 0.41 CONSTS(15) = 171200000 CONSTS(16) = 10000 CONSTS(17) = 3600000 CONSTS(18) = 0.0000014 CONSTS(19) = 0.071 CONSTS(20) = 0.002 CONSTS(21) = 164000 CONSTS(22) = 0.12 CONSTS(23) = 0.000033 STATES(7) = 0.00000044219 CONSTS(24) = ( 2.00000* 3.14159265358979*1.00000)/5.00000 CONSTS(25) = 10.0000 ** 1.90000 CONSTS(26) = 1.00000*10.0000 ** - 7.40000 RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) RATES(7) = ( CONSTS(25)*CONSTS(22)*CONSTS(23)*STATES(6))/1.00000 - CONSTS(25)*CONSTS(21)*CONSTS(26)*STATES(7) ALGBRC(1) = (CONSTS(1) - (( CONSTS(24)*CONSTS(2)*CONSTS(3))/2.00000)* sin(( CONSTS(2)*VOI)/1.00000)) - CONSTS(4)*(2.50000 - (( CONSTS(3)*1.00000)/2.00000)*cos(( CONSTS(2)*VOI)/1.00000)) RATES(1) = ((CONSTS(5) - ALGBRC(1)) - ( STATES(1)*CONSTS(6))/1.00000)/CONSTS(7) ALGBRC(3) = ( ( CONSTS(15)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 4.00000+1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 4.00000)*( 3.00000*CONSTS(15)*CONSTS(16) ** 2.00000*CONSTS(18) ** 2.00000*STATES(5)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 2.00000+ CONSTS(15)*CONSTS(16)*CONSTS(18)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ 3.00000*CONSTS(17) ** 2.00000*CONSTS(18) ** 2.00000*STATES(5)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 2.00000+ CONSTS(17)*CONSTS(18)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000) - ( CONSTS(15)*CONSTS(16)*CONSTS(18)*STATES(5)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ CONSTS(17)*CONSTS(18)*STATES(5)*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000)*( 4.00000*CONSTS(15)*CONSTS(16)*CONSTS(18)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ 4.00000*CONSTS(17)*CONSTS(18)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000))/ CONSTS(15)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 4.00000+1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 4.00000 ** 2.00000 RATES(5) = (CONSTS(8)/( CONSTS(18)*CONSTS(19)))*1.00000+ (( 4.00000*CONSTS(20))/CONSTS(18))*ALGBRC(3) ** - 1.00000*( STATES(3)*(STATES(2) - CONSTS(10)) - STATES(5)) ALGBRC(6) = STATES(4)*(STATES(2) - CONSTS(10)) RATES(6) = ( (CONSTS(9)/( CONSTS(23)*CONSTS(19)))*(ALGBRC(6) - STATES(6))+ (( 1.00000*CONSTS(25)*CONSTS(21))/CONSTS(23))*CONSTS(26)*STATES(7)) - CONSTS(25)*CONSTS(22)*STATES(6) ALGBRC(2) = (( - CONSTS(24)*CONSTS(2) ** 2.00000*CONSTS(3))/( 2.00000*1.00000))*cos(( CONSTS(2)*VOI)/1.00000) - CONSTS(4)*(2.50000 - (CONSTS(3)/2.00000)* sin(( CONSTS(2)*VOI)/1.00000)) ALGBRC(4) = (CONSTS(5) - STATES(2))/CONSTS(7) ALGBRC(5) = STATES(3)*(STATES(2) - CONSTS(10)) ALGBRC(7) = ALGBRC(4)+ 1.00000*CONSTS(9)*(STATES(6) - ALGBRC(6))+ 1.00000*CONSTS(8)*(STATES(5) - ALGBRC(5)) RATES(2) = ( CONSTS(5)*CONSTS(6)*ALGBRC(7))/( STATES(2)*1.00000)+ALGBRC(2) ALGBRC(8) = TERNRY(CONSTS(14).GE.CONSTS(13), ( STATES(3)*CONSTS(13)+ CONSTS(11)*(CONSTS(14) - CONSTS(13)))/CONSTS(14), STATES(3)) RATES(3) = (1.00000/STATES(1))*(( 1.00000*CONSTS(8)*(STATES(5) - ALGBRC(5))+ (ALGBRC(8) - STATES(3))*ALGBRC(4)) - STATES(3)*( 1.00000*CONSTS(9)*(STATES(6) - ALGBRC(6))+ 1.00000*CONSTS(8)*(STATES(5) - ALGBRC(5)))) ALGBRC(9) = TERNRY(CONSTS(14).GE.CONSTS(13), ( STATES(4)*CONSTS(13)+ CONSTS(12)*(CONSTS(14) - CONSTS(13)))/CONSTS(14), STATES(4)) RATES(4) = (1.00000/STATES(1))*(( 1.00000*CONSTS(9)*(STATES(6) - ALGBRC(6))+ (ALGBRC(9) - STATES(4))*ALGBRC(4)) - STATES(4)*( 1.00000*CONSTS(8)*(STATES(5) - ALGBRC(5))+ 1.00000*CONSTS(9)*(STATES(6) - ALGBRC(6)))) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(1) = (CONSTS(1) - (( CONSTS(24)*CONSTS(2)*CONSTS(3))/2.00000)* sin(( CONSTS(2)*VOI)/1.00000)) - CONSTS(4)*(2.50000 - (( CONSTS(3)*1.00000)/2.00000)*cos(( CONSTS(2)*VOI)/1.00000)) ALGBRC(3) = ( ( CONSTS(15)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 4.00000+1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 4.00000)*( 3.00000*CONSTS(15)*CONSTS(16) ** 2.00000*CONSTS(18) ** 2.00000*STATES(5)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 2.00000+ CONSTS(15)*CONSTS(16)*CONSTS(18)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ 3.00000*CONSTS(17) ** 2.00000*CONSTS(18) ** 2.00000*STATES(5)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 2.00000+ CONSTS(17)*CONSTS(18)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000) - ( CONSTS(15)*CONSTS(16)*CONSTS(18)*STATES(5)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ CONSTS(17)*CONSTS(18)*STATES(5)*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000)*( 4.00000*CONSTS(15)*CONSTS(16)*CONSTS(18)*1.00000*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 3.00000+ 4.00000*CONSTS(17)*CONSTS(18)*1.00000*1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 3.00000))/ CONSTS(15)*1.00000+ CONSTS(16)*CONSTS(18)*STATES(5) ** 4.00000+1.00000+ CONSTS(17)*CONSTS(18)*STATES(5) ** 4.00000 ** 2.00000 ALGBRC(6) = STATES(4)*(STATES(2) - CONSTS(10)) ALGBRC(2) = (( - CONSTS(24)*CONSTS(2) ** 2.00000*CONSTS(3))/( 2.00000*1.00000))*cos(( CONSTS(2)*VOI)/1.00000) - CONSTS(4)*(2.50000 - (CONSTS(3)/2.00000)* sin(( CONSTS(2)*VOI)/1.00000)) ALGBRC(4) = (CONSTS(5) - STATES(2))/CONSTS(7) ALGBRC(5) = STATES(3)*(STATES(2) - CONSTS(10)) ALGBRC(7) = ALGBRC(4)+ 1.00000*CONSTS(9)*(STATES(6) - ALGBRC(6))+ 1.00000*CONSTS(8)*(STATES(5) - ALGBRC(5)) ALGBRC(8) = TERNRY(CONSTS(14).GE.CONSTS(13), ( STATES(3)*CONSTS(13)+ CONSTS(11)*(CONSTS(14) - CONSTS(13)))/CONSTS(14), STATES(3)) ALGBRC(9) = TERNRY(CONSTS(14).GE.CONSTS(13), ( STATES(4)*CONSTS(13)+ CONSTS(12)*(CONSTS(14) - CONSTS(13)))/CONSTS(14), STATES(4)) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END