C C There are a total of 15 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 40 entries in the constant variable array. C C C VOI is time in component environment (second). C CONSTS(1) is cap in component parameters (nanofarad). C CONSTS(2) is cc1lin in component parameters (per_second). C CONSTS(3) is cc_2 in component parameters (per_second). C CONSTS(4) is ck1lin in component parameters (per_second). C CONSTS(5) is ck_2 in component parameters (per_second). C CONSTS(6) is clmax in component parameters (nanosiemens). C CONSTS(7) is cnmax in component parameters (nanosiemens). C CONSTS(8) is cx1lin in component parameters (per_second). C CONSTS(9) is cx2 in component parameters (per_second). C CONSTS(10) is ef in component parameters (per_second). C CONSTS(11) is gl in component parameters (nanosiemens). C CONSTS(12) is hmc_1 in component parameters (uM). C CONSTS(13) is hmc_2 in component parameters (uM). C CONSTS(14) is inf in component parameters (uM_per_picocoulomb). C CONSTS(15) is inhmax in component parameters (dimensionless). C CONSTS(16) is k_1 in component parameters (per_uM_per_second). C CONSTS(17) is k_2 in component parameters (per_second). C CONSTS(18) is kI in component parameters (uM). C CONSTS(19) is kinh in component parameters (uM). C CONSTS(20) is kinhcng in component parameters (uM). C CONSTS(21) is n_1 in component parameters (dimensionless). C CONSTS(22) is n_2 in component parameters (dimensionless). C CONSTS(23) is nI in component parameters (dimensionless). C CONSTS(24) is ninh in component parameters (dimensionless). C CONSTS(25) is ninhcng in component parameters (dimensionless). C CONSTS(26) is pd in component parameters (per_second). C CONSTS(27) is r_1 in component parameters (per_second). C CONSTS(28) is r_2 in component parameters (per_second). C CONSTS(29) is smax in component parameters (uM_per_second). C CONSTS(30) is V_Cl in component parameters (millivolt). C CONSTS(31) is V_cng in component parameters (millivolt). C CONSTS(32) is V_l in component parameters (millivolt). C CONSTS(40) is F_vol in component parameters (picocoulomb_per_uM). C CONSTS(33) is F in component parameters (coulombs_per_mole). C CONSTS(34) is C_vol in component parameters (liter). C ALGBRC(10) is O_stim in component O_stim (uM). C CONSTS(35) is od in component O_stim (uM). C CONSTS(36) is t_0 in component O_stim (second). C CONSTS(37) is t_1 in component O_stim (second). C ALGBRC(1) is H_0 in component O_stim (dimensionless). C ALGBRC(6) is H_1 in component O_stim (dimensionless). C STATES(1) is bLR in component bLR (dimensionless). C CONSTS(38) is R_tot in component bLR (dimensionless). C STATES(2) is aG in component aG (dimensionless). C CONSTS(39) is G_tot in component aG (dimensionless). C ALGBRC(2) is k_G in component k_G (per_second). C ALGBRC(7) is r_G in component r_G (per_second). C STATES(3) is cAMP in component cAMP (uM). C ALGBRC(3) is synth in component synth (uM_per_second). C ALGBRC(8) is degrad in component degrad (uM_per_second). C STATES(4) is aCaMK in component aCaMK (uM). C STATES(5) is Ca in component Ca (uM). C ALGBRC(11) is I_CNG in component I_CNG (nanoampere). C ALGBRC(13) is J_NCX in component J_NCX (uM_per_second). C ALGBRC(4) is cc_1 in component cc_1 (uM_per_second). C STATES(6) is CaCaM in component CaCaM (uM). C ALGBRC(5) is ck_1 in component ck_1 (uM_per_second). C STATES(7) is V in component V (millivolt). C ALGBRC(12) is I_ClCa in component I_ClCa (nanoampere). C ALGBRC(14) is I_NCX in component I_NCX (nanoampere). C ALGBRC(15) is I_other in component I_other (nanoampere). C ALGBRC(9) is inhcng in component inhcng (dimensionless). C RATES(1) is d/dt bLR in component bLR (dimensionless). C RATES(2) is d/dt aG in component aG (dimensionless). C RATES(3) is d/dt cAMP in component cAMP (uM). C RATES(5) is d/dt Ca in component Ca (uM). C RATES(6) is d/dt CaCaM in component CaCaM (uM). C RATES(4) is d/dt aCaMK in component aCaMK (uM). C RATES(7) is d/dt V in component V (millivolt). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) CONSTS(1) = 0.004 CONSTS(2) = 0.88 CONSTS(3) = 26 CONSTS(4) = 13 CONSTS(5) = 0.9 CONSTS(6) = 1 CONSTS(7) = 1 CONSTS(8) = 1 CONSTS(9) = 13 CONSTS(10) = 2 CONSTS(11) = 6 CONSTS(12) = 2 CONSTS(13) = 3 CONSTS(14) = 1.9 CONSTS(15) = 5 CONSTS(16) = 0.06 CONSTS(17) = 20 CONSTS(18) = 0.7 CONSTS(19) = 2 CONSTS(20) = 1 CONSTS(21) = 2 CONSTS(22) = 2 CONSTS(23) = 2 CONSTS(24) = 1.5 CONSTS(25) = 1.3 CONSTS(26) = 20 CONSTS(27) = 10 CONSTS(28) = 5 CONSTS(29) = 71 CONSTS(30) = -50 CONSTS(31) = 0 CONSTS(32) = -70 CONSTS(33) = 9.649e4 CONSTS(34) = 1e-13 CONSTS(35) = 20 CONSTS(36) = 0.5 CONSTS(37) = 1.5 STATES(1) = 0 CONSTS(38) = 1 STATES(2) = 0 CONSTS(39) = 1 STATES(3) = 1.35648992164649e-88 STATES(4) = 6.60756525051462e-8 STATES(5) = 5.09073088043779e-12 STATES(6) = 1.86113118246926e-13 STATES(7) = -70 CONSTS(40) = (1.00000e+12/1.00000)*(1.00000/1000.00)*CONSTS(33)*CONSTS(34) RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(4) = CONSTS(2)*STATES(5) RATES(6) = ALGBRC(4) - CONSTS(3)*STATES(6) ALGBRC(5) = CONSTS(4)*STATES(6) RATES(4) = ALGBRC(5) - CONSTS(5)*STATES(4) ALGBRC(2) = CONSTS(17)*STATES(1) ALGBRC(7) = CONSTS(28)*STATES(2) RATES(2) = ALGBRC(2)*(CONSTS(39) - STATES(2)) - ALGBRC(7) ALGBRC(3) = ( STATES(2)*CONSTS(29))/(1.00000+STATES(4)/CONSTS(19) ** CONSTS(24)) ALGBRC(8) = CONSTS(26)*STATES(3) RATES(3) = ALGBRC(3) - ALGBRC(8) ALGBRC(1) = TERNRY(VOI.LT.CONSTS(36), 0.00000, 1.00000) ALGBRC(6) = TERNRY(VOI.LT.CONSTS(37), 0.00000, 1.00000) ALGBRC(10) = CONSTS(35)*(ALGBRC(1) - ALGBRC(6)) RATES(1) = CONSTS(16)*ALGBRC(10)*(CONSTS(38) - STATES(1)) - CONSTS(27)*STATES(1) ALGBRC(9) = 1.00000+( (CONSTS(15) - 1.00000)*STATES(6) ** CONSTS(25))/(STATES(6) ** CONSTS(25)+CONSTS(20) ** CONSTS(25)) ALGBRC(11) = (( CONSTS(7)*STATES(3) ** CONSTS(21))/(STATES(3) ** CONSTS(21)+ ALGBRC(9)*CONSTS(12) ** CONSTS(21)))*(1.00000/1000.00)*(CONSTS(31) - STATES(7)) ALGBRC(13) = CONSTS(10)*STATES(5) RATES(5) = ( (1000.00/1.00000)*CONSTS(14)*ALGBRC(11) - ALGBRC(13)) - (ALGBRC(4) - CONSTS(3)*STATES(6)) ALGBRC(12) = (( CONSTS(6)*STATES(5) ** CONSTS(22))/(STATES(5) ** CONSTS(22)+CONSTS(13) ** CONSTS(22)))*(1.00000/1000.00)*(CONSTS(30) - STATES(7)) ALGBRC(14) = (1.00000/1000.00)*CONSTS(40)*ALGBRC(13) ALGBRC(15) = CONSTS(11)*(1.00000/1000.00)*(CONSTS(32) - STATES(7)) RATES(7) = (1000.00/1.00000)*(1.00000/CONSTS(1))*(ALGBRC(11)+ALGBRC(12)+ALGBRC(14)+ALGBRC(15)) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(4) = CONSTS(2)*STATES(5) ALGBRC(5) = CONSTS(4)*STATES(6) ALGBRC(2) = CONSTS(17)*STATES(1) ALGBRC(7) = CONSTS(28)*STATES(2) ALGBRC(3) = ( STATES(2)*CONSTS(29))/(1.00000+STATES(4)/CONSTS(19) ** CONSTS(24)) ALGBRC(8) = CONSTS(26)*STATES(3) ALGBRC(1) = TERNRY(VOI.LT.CONSTS(36), 0.00000, 1.00000) ALGBRC(6) = TERNRY(VOI.LT.CONSTS(37), 0.00000, 1.00000) ALGBRC(10) = CONSTS(35)*(ALGBRC(1) - ALGBRC(6)) ALGBRC(9) = 1.00000+( (CONSTS(15) - 1.00000)*STATES(6) ** CONSTS(25))/(STATES(6) ** CONSTS(25)+CONSTS(20) ** CONSTS(25)) ALGBRC(11) = (( CONSTS(7)*STATES(3) ** CONSTS(21))/(STATES(3) ** CONSTS(21)+ ALGBRC(9)*CONSTS(12) ** CONSTS(21)))*(1.00000/1000.00)*(CONSTS(31) - STATES(7)) ALGBRC(13) = CONSTS(10)*STATES(5) ALGBRC(12) = (( CONSTS(6)*STATES(5) ** CONSTS(22))/(STATES(5) ** CONSTS(22)+CONSTS(13) ** CONSTS(22)))*(1.00000/1000.00)*(CONSTS(30) - STATES(7)) ALGBRC(14) = (1.00000/1000.00)*CONSTS(40)*ALGBRC(13) ALGBRC(15) = CONSTS(11)*(1.00000/1000.00)*(CONSTS(32) - STATES(7)) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END