C C There are a total of 28 entries in the algebraic variable array. C There are a total of 8 entries in each of the rate and state variable arrays. C There are a total of 31 entries in the constant variable array. C C C VOI is time in component environment (second). C STATES(1) is wi in component wi (micrometre). C CONSTS(1) is Lp in component model_parameters (cm_per_millimolar_second). C CONSTS(2) is Xi in component model_parameters (millimolar_micrometre). C ALGBRC(11) is Nao in component model_parameters (millimolar). C ALGBRC(7) is Ko in component model_parameters (millimolar). C ALGBRC(14) is Clo in component model_parameters (millimolar). C ALGBRC(19) is HCO3o in component model_parameters (millimolar). C ALGBRC(9) is Nai in component model_parameters (millimolar). C ALGBRC(6) is Ki in component model_parameters (millimolar). C ALGBRC(13) is Cli in component model_parameters (millimolar). C ALGBRC(18) is HCO3i in component model_parameters (millimolar). C ALGBRC(1) is wo in component wo (micrometre). C CONSTS(3) is w_tot in component wo (micrometre). C STATES(2) is N_Nai in component N_Nai (millimolar_micrometre). C ALGBRC(26) is dN_Nai_dt in component N_Nai (millimolar_micrometre_per_second). C CONSTS(4) is gNa in component model_parameters (per_ohm_cm2). C ALGBRC(12) is ENa in component Nernst_potentials (volt). C ALGBRC(21) is Vm in component membrane (volt). C ALGBRC(10) is J_NaKATPase in component J_NaKATPase (mole_per_cm2_second). C CONSTS(5) is F in component model_parameters (C_per_mol). C CONSTS(6) is theta_NKCC1 in component model_parameters (dimensionless). C ALGBRC(17) is J_NKCC1 in component J_NKCC1 (millimolar_micrometre_per_second). C CONSTS(7) is theta_NBC in component model_parameters (dimensionless). C ALGBRC(25) is J_NBC in component J_NBC (millimolar_micrometre_per_second). C STATES(3) is N_Ki in component N_Ki (millimolar_micrometre). C ALGBRC(22) is dN_Ki_dt in component N_Ki (millimolar_micrometre_per_second). C CONSTS(8) is gK in component model_parameters (per_ohm_cm2). C ALGBRC(8) is EK in component Nernst_potentials (volt). C CONSTS(9) is theta_KCC1 in component model_parameters (dimensionless). C ALGBRC(16) is J_KCC1 in component J_KCC1 (millimolar_micrometre_per_second). C STATES(4) is N_HCO3i in component N_HCO3i (millimolar_micrometre). C ALGBRC(28) is dN_HCO3i_dt in component N_HCO3i (millimolar_micrometre_per_second). C STATES(5) is N_Cli in component N_Cli (millimolar_micrometre). C STATES(6) is N_Nao in component N_Nao (millimolar_micrometre). C ALGBRC(5) is y in component model_parameters (dimensionless). C CONSTS(10) is kc in component model_parameters (micrometre_millimolar_per_second). C STATES(7) is N_Ko in component N_Ko (millimolar_micrometre). C STATES(8) is N_HCO3o in component N_HCO3o (millimolar_micrometre). C ALGBRC(2) is N_Clo in component N_Clo (millimolar_micrometre). C ALGBRC(15) is ECl in component Nernst_potentials (volt). C CONSTS(11) is T in component model_parameters (kelvin). C CONSTS(12) is R in component model_parameters (J_per_mol_K). C CONSTS(13) is gKCC1 in component J_KCC1 (per_ohm_cm2). C ALGBRC(3) is ft in component J_KCC1 (dimensionless). C CONSTS(14) is gNBC in component J_NBC (per_ohm_cm2). C ALGBRC(20) is ENBC in component ENBC (volt). C CONSTS(15) is gNKCC1 in component J_NKCC1 (per_ohm_cm2). C ALGBRC(4) is ft in component J_NKCC1 (dimensionless). C CONSTS(16) is zNBC in component ENBC (dimensionless). C CONSTS(17) is gCl in component model_parameters (per_ohm_cm2). C CONSTS(18) is Pmax in component J_NaKATPase (mole_per_cm2_second). C CONSTS(19) is K_Nai in component J_NaKATPase (millimolar). C CONSTS(20) is K_Ko in component J_NaKATPase (millimolar). C ALGBRC(23) is I_K in component I_K (millimolar_micrometre_per_second). C CONSTS(21) is nA in component model_parameters (per_mole). C CONSTS(22) is elementary_charge in component model_parameters (C). C ALGBRC(24) is I_Cl in component I_Cl (millimolar_micrometre_per_second). C ALGBRC(27) is I_Na in component I_Na (millimolar_micrometre_per_second). C CONSTS(23) is t0 in component model_parameters (second). C CONSTS(24) is t1 in component model_parameters (second). C CONSTS(25) is t2 in component model_parameters (second). C CONSTS(26) is alpha in component model_parameters (dimensionless). C CONSTS(27) is beta in component model_parameters (dimensionless). C CONSTS(28) is deltaT in component model_parameters (second). C CONSTS(29) is gamma_alpha_beta in component model_parameters (dimensionless). C CONSTS(30) is gamma_alpha in component model_parameters (dimensionless). C CONSTS(31) is gamma_beta in component model_parameters (dimensionless). C RATES(1) is d/dt wi in component wi (micrometre). C RATES(2) is d/dt N_Nai in component N_Nai (millimolar_micrometre). C RATES(3) is d/dt N_Ki in component N_Ki (millimolar_micrometre). C RATES(4) is d/dt N_HCO3i in component N_HCO3i (millimolar_micrometre). C RATES(5) is d/dt N_Cli in component N_Cli (millimolar_micrometre). C RATES(6) is d/dt N_Nao in component N_Nao (millimolar_micrometre). C RATES(7) is d/dt N_Ko in component N_Ko (millimolar_micrometre). C RATES(8) is d/dt N_HCO3o in component N_HCO3o (millimolar_micrometre). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) STATES(1) = 0.061 CONSTS(1) = 2.1e-4 CONSTS(2) = 12.41 CONSTS(3) = 0.0879 STATES(2) = 0.99796 CONSTS(4) = 1.314e-4 CONSTS(5) = 9.649e4 CONSTS(6) = 1 CONSTS(7) = 1 STATES(3) = 5.52782 CONSTS(8) = 0.004 CONSTS(9) = 1 STATES(4) = 0.58804 STATES(5) = 0.32879 STATES(6) = 4.301041 CONSTS(10) = 7.35e-2 STATES(7) = 0.0807 STATES(8) = 0.432552 CONSTS(11) = 300 CONSTS(12) = 8.315 CONSTS(13) = 1e-6 CONSTS(14) = 9.03e-5 CONSTS(15) = 5.54e-6 CONSTS(16) = -1 CONSTS(17) = 8.797e-5 CONSTS(18) = 1.4207e-10 CONSTS(19) = 10 CONSTS(20) = 1.5 CONSTS(21) = 6.0221415e23 CONSTS(22) = 1.6e-19 CONSTS(23) = 10 CONSTS(24) = 20 CONSTS(25) = 30 CONSTS(26) = 2 CONSTS(27) = 14 CONSTS(28) = CONSTS(24) - CONSTS(23) CONSTS(29) = factorial((CONSTS(26)+CONSTS(27)) - 1.00000) CONSTS(30) = factorial(CONSTS(26) - 1.00000) CONSTS(31) = factorial(CONSTS(27) - 1.00000) RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(1) = CONSTS(3) - STATES(1) ALGBRC(11) = TERNRY(STATES(6)/ALGBRC(1).GT.0.00000, STATES(6)/ALGBRC(1), 1.00000e-180) ALGBRC(7) = TERNRY(STATES(7)/ALGBRC(1).GT.0.00000, STATES(7)/ALGBRC(1), 1.00000e-180) ALGBRC(2) = (STATES(6)+STATES(7)) - STATES(8) ALGBRC(14) = TERNRY(ALGBRC(2)/ALGBRC(1).GT.0.00000, ALGBRC(2)/ALGBRC(1), 1.00000e-180) ALGBRC(19) = TERNRY(STATES(8)/ALGBRC(1).GT.0.00000, STATES(8)/ALGBRC(1), 1.00000e-180) ALGBRC(9) = TERNRY(STATES(2)/STATES(1).GT.0.00000, STATES(2)/STATES(1), 1.00000e-180) ALGBRC(6) = TERNRY(STATES(3)/STATES(1).GT.0.00000, STATES(3)/STATES(1), 1.00000e-180) ALGBRC(13) = TERNRY(STATES(5)/STATES(1).GT.0.00000, STATES(5)/STATES(1), 1.00000e-180) ALGBRC(18) = TERNRY(STATES(4)/STATES(1).GT.0.00000, STATES(4)/STATES(1), 1.00000e-180) RATES(1) = 1.00000*CONSTS(1)*((ALGBRC(9)+ALGBRC(6)+ALGBRC(13)+ALGBRC(18)+CONSTS(2)/STATES(1)) - (ALGBRC(11)+ALGBRC(7)+ALGBRC(14)+ALGBRC(19))) ALGBRC(12) = (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(11)/ALGBRC(9)) ALGBRC(10) = ( (( CONSTS(18)*ALGBRC(9) ** 1.50000)/(ALGBRC(9) ** 1.50000+CONSTS(19) ** 1.50000))*ALGBRC(7))/(ALGBRC(7)+CONSTS(20)) ALGBRC(8) = (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(7)/ALGBRC(6)) ALGBRC(15) = (( CONSTS(12)*CONSTS(11))/( - 1.00000*CONSTS(5)))*log(ALGBRC(14)/ALGBRC(13)) ALGBRC(20) = (( CONSTS(12)*CONSTS(11))/( CONSTS(16)*CONSTS(5)))*log(( (ALGBRC(11)/ALGBRC(9))*ALGBRC(19) ** 2.00000)/ALGBRC(18) ** 2.00000) ALGBRC(21) = (( CONSTS(4)*ALGBRC(12)+ CONSTS(8)*ALGBRC(8)+ CONSTS(17)*ALGBRC(15)+ CONSTS(7)*CONSTS(14)*ALGBRC(20)) - ALGBRC(10)*CONSTS(5))/(CONSTS(4)+CONSTS(8)+CONSTS(17)+ CONSTS(7)*CONSTS(14)) ALGBRC(4) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000) ALGBRC(17) = (( (( 1.00000e+10*CONSTS(15)*ALGBRC(4))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log( (( (ALGBRC(11)/ALGBRC(9))*ALGBRC(7))/ALGBRC(6))*ALGBRC(14)/ALGBRC(13) ** 2.00000) ALGBRC(3) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000) ALGBRC(16) = (( (( 1.00000e+10*CONSTS(13)*ALGBRC(3))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log(( ALGBRC(7)*ALGBRC(14))/( ALGBRC(6)*ALGBRC(13))) ALGBRC(5) = TERNRY(VOI.GE.CONSTS(23).AND.VOI.LE.CONSTS(24), (CONSTS(29)/( CONSTS(30)*CONSTS(31)))*1.00000 - (VOI - CONSTS(23))/CONSTS(28) ** CONSTS(27) - 1.00000*(VOI - CONSTS(23))/CONSTS(28) ** CONSTS(26) - 1.00000, TERNRY(VOI.GT.CONSTS(24).AND.VOI.LT.CONSTS(25), -1.00000, 0.00000) RATES(7) = ( (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8))+ CONSTS(10)*ALGBRC(5)) - ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10)) ALGBRC(22) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10)) - (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8)) RATES(3) = ALGBRC(22) ALGBRC(25) = (( 1.00000e+10*CONSTS(14))/CONSTS(5))*(ALGBRC(21) - ALGBRC(20)) RATES(6) = 1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10)) - ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)+ CONSTS(10)*ALGBRC(5)) RATES(8) = - 2.00000*CONSTS(7)*ALGBRC(25) ALGBRC(26) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)) - 1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10)) RATES(2) = ALGBRC(26) ALGBRC(28) = 2.00000*CONSTS(7)*ALGBRC(25) RATES(4) = ALGBRC(28) RATES(5) = ALGBRC(22)+ALGBRC(26)+ALGBRC(28) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(1) = CONSTS(3) - STATES(1) ALGBRC(11) = TERNRY(STATES(6)/ALGBRC(1).GT.0.00000, STATES(6)/ALGBRC(1), 1.00000e-180) ALGBRC(7) = TERNRY(STATES(7)/ALGBRC(1).GT.0.00000, STATES(7)/ALGBRC(1), 1.00000e-180) ALGBRC(2) = (STATES(6)+STATES(7)) - STATES(8) ALGBRC(14) = TERNRY(ALGBRC(2)/ALGBRC(1).GT.0.00000, ALGBRC(2)/ALGBRC(1), 1.00000e-180) ALGBRC(19) = TERNRY(STATES(8)/ALGBRC(1).GT.0.00000, STATES(8)/ALGBRC(1), 1.00000e-180) ALGBRC(9) = TERNRY(STATES(2)/STATES(1).GT.0.00000, STATES(2)/STATES(1), 1.00000e-180) ALGBRC(6) = TERNRY(STATES(3)/STATES(1).GT.0.00000, STATES(3)/STATES(1), 1.00000e-180) ALGBRC(13) = TERNRY(STATES(5)/STATES(1).GT.0.00000, STATES(5)/STATES(1), 1.00000e-180) ALGBRC(18) = TERNRY(STATES(4)/STATES(1).GT.0.00000, STATES(4)/STATES(1), 1.00000e-180) ALGBRC(12) = (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(11)/ALGBRC(9)) ALGBRC(10) = ( (( CONSTS(18)*ALGBRC(9) ** 1.50000)/(ALGBRC(9) ** 1.50000+CONSTS(19) ** 1.50000))*ALGBRC(7))/(ALGBRC(7)+CONSTS(20)) ALGBRC(8) = (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(7)/ALGBRC(6)) ALGBRC(15) = (( CONSTS(12)*CONSTS(11))/( - 1.00000*CONSTS(5)))*log(ALGBRC(14)/ALGBRC(13)) ALGBRC(20) = (( CONSTS(12)*CONSTS(11))/( CONSTS(16)*CONSTS(5)))*log(( (ALGBRC(11)/ALGBRC(9))*ALGBRC(19) ** 2.00000)/ALGBRC(18) ** 2.00000) ALGBRC(21) = (( CONSTS(4)*ALGBRC(12)+ CONSTS(8)*ALGBRC(8)+ CONSTS(17)*ALGBRC(15)+ CONSTS(7)*CONSTS(14)*ALGBRC(20)) - ALGBRC(10)*CONSTS(5))/(CONSTS(4)+CONSTS(8)+CONSTS(17)+ CONSTS(7)*CONSTS(14)) ALGBRC(4) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000) ALGBRC(17) = (( (( 1.00000e+10*CONSTS(15)*ALGBRC(4))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log( (( (ALGBRC(11)/ALGBRC(9))*ALGBRC(7))/ALGBRC(6))*ALGBRC(14)/ALGBRC(13) ** 2.00000) ALGBRC(3) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000) ALGBRC(16) = (( (( 1.00000e+10*CONSTS(13)*ALGBRC(3))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log(( ALGBRC(7)*ALGBRC(14))/( ALGBRC(6)*ALGBRC(13))) ALGBRC(5) = TERNRY(VOI.GE.CONSTS(23).AND.VOI.LE.CONSTS(24), (CONSTS(29)/( CONSTS(30)*CONSTS(31)))*1.00000 - (VOI - CONSTS(23))/CONSTS(28) ** CONSTS(27) - 1.00000*(VOI - CONSTS(23))/CONSTS(28) ** CONSTS(26) - 1.00000, TERNRY(VOI.GT.CONSTS(24).AND.VOI.LT.CONSTS(25), -1.00000, 0.00000) ALGBRC(22) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10)) - (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8)) ALGBRC(25) = (( 1.00000e+10*CONSTS(14))/CONSTS(5))*(ALGBRC(21) - ALGBRC(20)) ALGBRC(26) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)) - 1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10)) ALGBRC(28) = 2.00000*CONSTS(7)*ALGBRC(25) ALGBRC(23) = ( 1.00000e+10*2.00000*ALGBRC(10)*CONSTS(5))/( CONSTS(22)*CONSTS(21)) - (( 1.00000e+10*CONSTS(8))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(8)) ALGBRC(24) = (( 1.00000e+10*CONSTS(17))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(15)) ALGBRC(27) = ALGBRC(25) - ( (( 1.00000e+10*CONSTS(4))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(12))+( 1.00000e+10*3.00000*ALGBRC(10)*CONSTS(5))/( CONSTS(22)*CONSTS(21))) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END