Generated Code

The following is f77 code generated by the CellML API from this CellML file. (Back to language selection)

The raw code is available.

C
C There are a total of 82 entries in the algebraic variable array.
C There are a total of 22 entries in each of the rate and state variable arrays.
C There are a total of 83 entries in the constant variable array.
C
C
C CONSTS(1) is I_hold in component interface (pA_per_pF).
C CONSTS(2) is I_test in component interface (pA_per_pF).
C CONSTS(3) is test_start in component interface (msec).
C CONSTS(4) is test_end in component interface (msec).
C ALGBRC(1) is Ist in component interface (pA_per_pF).
C VOI is time in component environment (msec).
C ALGBRC(80) is I_tot in component membrane_potential (pA_per_pF).
C ALGBRC(62) is I_Ca_tot in component membrane_potential (pA_per_pF).
C STATES(1) is v in component membrane_potential (mV).
C CONSTS(68) is Cm in component parameters (uF_per_cm2).
C ALGBRC(43) is ina in component I_Na (pA_per_pF).
C ALGBRC(50) is ical in component I_CaL (pA_per_pF).
C ALGBRC(52) is icat in component I_CaT (pA_per_pF).
C ALGBRC(53) is ib in component I_b (pA_per_pF).
C ALGBRC(54) is ik1 in component I_K1 (pA_per_pF).
C ALGBRC(55) is ik2 in component I_K2 (pA_per_pF).
C ALGBRC(56) is ika in component I_Ka (pA_per_pF).
C ALGBRC(57) is iBKa in component I_BKa (pA_per_pF).
C ALGBRC(58) is iBKab in component I_BKab (pA_per_pF).
C ALGBRC(59) is ih in component I_h (pA_per_pF).
C ALGBRC(60) is icl in component I_Cl (pA_per_pF).
C ALGBRC(64) is insna in component I_ns (pA_per_pF).
C ALGBRC(61) is insca in component I_ns (pA_per_pF).
C ALGBRC(66) is insk in component I_ns (pA_per_pF).
C ALGBRC(68) is inak in component I_NaK (pA_per_pF).
C ALGBRC(77) is inaca in component I_NaCa (pA_per_pF).
C ALGBRC(81) is J_tot in component Ca_Concentrations (mM_per_msec).
C ALGBRC(63) is J_Ca_mem in component Ca_Concentrations (mM_per_msec).
C STATES(2) is cai in component Ca_Concentrations (mM).
C ALGBRC(76) is jnaca in component J_NaCa (mM_per_msec).
C ALGBRC(78) is jpmca in component J_PMCA (mM_per_msec).
C CONSTS(63) is buff in component parameters (dimensionless).
C CONSTS(64) is AV in component parameters (cm2_per_uL).
C CONSTS(65) is zca in component parameters (dimensionless).
C CONSTS(67) is frdy in component parameters (coulomb_per_mole).
C ALGBRC(65) is jcamem_plot in component Ca_Concentrations (M_per_msec).
C ALGBRC(82) is jpmca_plot in component Ca_Concentrations (M_per_msec).
C ALGBRC(79) is jnaca_plot in component Ca_Concentrations (M_per_msec).
C CONSTS(5) is conversion in component Ca_Concentrations (mM_to_M).
C CONSTS(12) is ki in component parameters (mM).
C CONSTS(54) is nai in component parameters (mM).
C CONSTS(57) is cli in component parameters (mM).
C CONSTS(58) is ko in component parameters (mM).
C CONSTS(13) is cao in component parameters (mM).
C CONSTS(59) is nao in component parameters (mM).
C CONSTS(61) is clo in component parameters (mM).
C CONSTS(14) is mgo in component parameters (mM).
C CONSTS(15) is zna in component parameters (dimensionless).
C CONSTS(16) is zk in component parameters (dimensionless).
C CONSTS(66) is R in component parameters (joule_per_kelvin_per_kilomole).
C CONSTS(69) is temp in component parameters (kelvin).
C CONSTS(17) is gna in component parameters (nS_per_pF).
C CONSTS(18) is gcal in component parameters (nS_per_pF).
C CONSTS(19) is ecal in component parameters (mV).
C CONSTS(20) is kmca in component parameters (mM).
C CONSTS(21) is gcat in component parameters (nS_per_pF).
C CONSTS(22) is ecat in component parameters (mV).
C CONSTS(23) is gkca in component parameters (nS_per_pF).
C CONSTS(24) is gb in component parameters (nS_per_pF).
C CONSTS(25) is gk1 in component parameters (nS_per_pF).
C CONSTS(26) is gk2 in component parameters (nS_per_pF).
C CONSTS(27) is gbka in component parameters (dimensionless).
C CONSTS(28) is gbkab in component parameters (dimensionless).
C CONSTS(29) is gka in component parameters (nS_per_pF).
C CONSTS(30) is gcl in component parameters (nS_per_pF).
C CONSTS(31) is gh in component parameters (nS_per_pF).
C CONSTS(32) is gns in component parameters (nS_per_pF).
C CONSTS(33) is PnsK in component parameters (dimensionless).
C CONSTS(34) is PnsNa in component parameters (dimensionless).
C CONSTS(35) is PnsCa in component parameters (dimensionless).
C CONSTS(36) is PnsCs in component parameters (dimensionless).
C CONSTS(37) is gnsCa in component parameters (dimensionless).
C CONSTS(38) is gnsNa in component parameters (dimensionless).
C CONSTS(39) is gnsK in component parameters (dimensionless).
C CONSTS(40) is gnsCs in component parameters (dimensionless).
C CONSTS(70) is ginak in component parameters (pA_per_pF).
C CONSTS(75) is nakKmko in component parameters (mM).
C CONSTS(77) is nakKmnai in component parameters (mM).
C CONSTS(71) is PK in component parameters (dimensionless).
C CONSTS(76) is PNa in component parameters (dimensionless).
C CONSTS(41) is Jpmca in component parameters (mM_per_msec).
C CONSTS(42) is Kmpmca in component parameters (mM).
C CONSTS(43) is npmca in component parameters (dimensionless).
C CONSTS(79) is Jnaca in component parameters (mM_per_msec).
C CONSTS(44) is Kmallo in component parameters (mM).
C CONSTS(45) is nallo in component parameters (dimensionless).
C CONSTS(80) is ksat in component parameters (dimensionless).
C CONSTS(81) is xgamma in component parameters (dimensionless).
C CONSTS(46) is Kmnai in component parameters (mM).
C CONSTS(47) is Kmcai in component parameters (mM).
C CONSTS(48) is Kmnao in component parameters (mM).
C CONSTS(49) is Kmcao in component parameters (mM).
C CONSTS(50) is Fmax in component parameters (uN).
C CONSTS(51) is FKm in component parameters (nM).
C CONSTS(52) is Fn in component parameters (dimensionless).
C ALGBRC(19) is vFRT in component parameters (dimensionless).
C CONSTS(72) is ena in component parameters (mV).
C CONSTS(73) is ek in component parameters (mV).
C CONSTS(78) is eh in component parameters (mV).
C CONSTS(74) is ecl in component parameters (mV).
C ALGBRC(38) is enscc in component parameters (mV).
C ALGBRC(2) is wss in component Ca_dependent_Force (dimensionless).
C ALGBRC(20) is wtc in component Ca_dependent_Force (msec).
C CONSTS(6) is conversion in component Ca_dependent_Force (nM_to_mM).
C ALGBRC(3) is Force in component Ca_dependent_Force (uN).
C STATES(3) is w in component Ca_dependent_Force (dimensionless).
C ALGBRC(4) is mss in component I_Na (dimensionless).
C ALGBRC(5) is hss in component I_Na (dimensionless).
C ALGBRC(21) is mtc in component I_Na (msec).
C ALGBRC(22) is htc in component I_Na (msec).
C STATES(4) is m in component I_Na (dimensionless).
C STATES(5) is h in component I_Na (dimensionless).
C ALGBRC(6) is dss in component I_CaL (dimensionless).
C ALGBRC(7) is fss in component I_CaL (dimensionless).
C ALGBRC(48) is fca in component I_CaL (dimensionless).
C ALGBRC(23) is dtc in component I_CaL (msec).
C CONSTS(53) is f1tc in component I_CaL (msec).
C ALGBRC(24) is f2tc in component I_CaL (msec).
C STATES(6) is d in component I_CaL (dimensionless).
C STATES(7) is f1 in component I_CaL (dimensionless).
C STATES(8) is f2 in component I_CaL (dimensionless).
C ALGBRC(8) is bss in component I_CaT (dimensionless).
C ALGBRC(9) is gss in component I_CaT (dimensionless).
C ALGBRC(25) is btc in component I_CaT (msec).
C ALGBRC(26) is gtc in component I_CaT (msec).
C STATES(9) is b in component I_CaT (dimensionless).
C STATES(10) is g in component I_CaT (dimensionless).
C ALGBRC(10) is qss in component I_K1 (dimensionless).
C ALGBRC(11) is rss in component I_K1 (dimensionless).
C ALGBRC(27) is qtc in component I_K1 (msec).
C ALGBRC(28) is r1tc in component I_K1 (msec).
C ALGBRC(29) is r2tc in component I_K1 (msec).
C STATES(11) is q in component I_K1 (dimensionless).
C STATES(12) is r1 in component I_K1 (dimensionless).
C STATES(13) is r2 in component I_K1 (dimensionless).
C ALGBRC(12) is pss in component I_K2 (dimensionless).
C ALGBRC(13) is kss in component I_K2 (dimensionless).
C ALGBRC(30) is ptc in component I_K2 (msec).
C ALGBRC(31) is k1tc in component I_K2 (msec).
C ALGBRC(32) is k2tc in component I_K2 (msec).
C STATES(14) is p in component I_K2 (dimensionless).
C STATES(15) is k1 in component I_K2 (dimensionless).
C STATES(16) is k2 in component I_K2 (dimensionless).
C ALGBRC(14) is sss in component I_Ka (dimensionless).
C ALGBRC(15) is xss in component I_Ka (dimensionless).
C ALGBRC(33) is stc in component I_Ka (msec).
C ALGBRC(34) is xtc in component I_Ka (msec).
C STATES(17) is s in component I_Ka (dimensionless).
C STATES(18) is x in component I_Ka (dimensionless).
C ALGBRC(16) is xass_z in component I_BKa (dimensionless).
C ALGBRC(35) is xass_vh in component I_BKa (mV).
C CONSTS(7) is conversion in component I_BKa (mM_to_M).
C ALGBRC(39) is xass in component I_BKa (dimensionless).
C ALGBRC(44) is xatc in component I_BKa (msec).
C STATES(19) is xa in component I_BKa (dimensionless).
C ALGBRC(17) is xabss_z in component I_BKab (dimensionless).
C ALGBRC(36) is xabss_vh in component I_BKab (mV).
C CONSTS(8) is conversion in component I_BKab (mM_to_M).
C ALGBRC(40) is xabss in component I_BKab (dimensionless).
C ALGBRC(45) is xabtc in component I_BKab (msec).
C STATES(20) is xab in component I_BKab (dimensionless).
C ALGBRC(18) is yss in component I_h (dimensionless).
C ALGBRC(46) is ytc in component I_h (msec).
C ALGBRC(37) is ya in component I_h (per_msec).
C ALGBRC(41) is yb in component I_h (per_msec).
C STATES(21) is y in component I_h (dimensionless).
C ALGBRC(49) is css in component I_Cl (dimensionless).
C ALGBRC(51) is ctc in component I_Cl (msec).
C ALGBRC(42) is K1cl in component I_Cl (mM).
C ALGBRC(47) is K2cl in component I_Cl (dimensionless).
C STATES(22) is c in component I_Cl (dimensionless).
C CONSTS(55) is fmg in component I_ns (dimensionless).
C CONSTS(62) is gs_nao in component I_ns (dimensionless).
C CONSTS(56) is gs_cao in component I_ns (dimensionless).
C CONSTS(60) is gs_ko in component I_ns (dimensionless).
C CONSTS(9) is tinyamount in component I_ns (mM).
C ALGBRC(67) is fnak in component I_NaK (dimensionless).
C CONSTS(82) is knak in component I_NaK (dimensionless).
C CONSTS(83) is nnak in component I_NaK (dimensionless).
C CONSTS(10) is inaca_sign in component I_NaCa (dimensionless).
C ALGBRC(69) is f1naca in component J_NaCa (dimensionless).
C ALGBRC(70) is f2naca in component J_NaCa (dimensionless).
C ALGBRC(71) is fallo in component J_NaCa (dimensionless).
C ALGBRC(72) is naca_Eup in component J_NaCa (mM4).
C ALGBRC(73) is naca_Ed1 in component J_NaCa (dimensionless).
C ALGBRC(74) is naca_Ed2 in component J_NaCa (mM4).
C ALGBRC(75) is naca_Ed3 in component J_NaCa (mM4).
C CONSTS(11) is jnaca_sign in component J_NaCa (dimensionless).
C RATES(1) is d/dt v in component membrane_potential (mV).
C RATES(2) is d/dt cai in component Ca_Concentrations (mM).
C RATES(3) is d/dt w in component Ca_dependent_Force (dimensionless).
C RATES(4) is d/dt m in component I_Na (dimensionless).
C RATES(5) is d/dt h in component I_Na (dimensionless).
C RATES(6) is d/dt d in component I_CaL (dimensionless).
C RATES(7) is d/dt f1 in component I_CaL (dimensionless).
C RATES(8) is d/dt f2 in component I_CaL (dimensionless).
C RATES(9) is d/dt b in component I_CaT (dimensionless).
C RATES(10) is d/dt g in component I_CaT (dimensionless).
C RATES(11) is d/dt q in component I_K1 (dimensionless).
C RATES(12) is d/dt r1 in component I_K1 (dimensionless).
C RATES(13) is d/dt r2 in component I_K1 (dimensionless).
C RATES(14) is d/dt p in component I_K2 (dimensionless).
C RATES(15) is d/dt k1 in component I_K2 (dimensionless).
C RATES(16) is d/dt k2 in component I_K2 (dimensionless).
C RATES(17) is d/dt s in component I_Ka (dimensionless).
C RATES(18) is d/dt x in component I_Ka (dimensionless).
C RATES(19) is d/dt xa in component I_BKa (dimensionless).
C RATES(20) is d/dt xab in component I_BKab (dimensionless).
C RATES(21) is d/dt y in component I_h (dimensionless).
C RATES(22) is d/dt c in component I_Cl (dimensionless).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 0
      CONSTS(2) = -0.5
      CONSTS(3) = 1000
      CONSTS(4) = 3000
      STATES(1) = -53.90915441282156
      STATES(2) = 0.0001161881607214449
      CONSTS(5) = 1000
      CONSTS(6) = 1e-6
      STATES(3) = 0.2345238135343783
      STATES(4) = 0.1253518889572223
      STATES(5) = 0.404599170710196
      STATES(6) = 0.01036961357784695
      STATES(7) = 0.9065941499695301
      STATES(8) = 0.9065967263076083
      STATES(9) = 0.508117603077852
      STATES(10) = 0.03582573962705717
      STATES(11) = 0.2060363247740295
      STATES(12) = 0.1922244113609531
      STATES(13) = 0.1932803618375963
      STATES(14) = 0.1174074734567931
      STATES(15) = 0.9968385770271651
      STATES(16) = 0.9968408069904307
      STATES(17) = 0.0307583106982354
      STATES(18) = 0.08785242843398365
      CONSTS(7) = 1000.0
      STATES(19) = 0.0003569126518797985
      CONSTS(8) = 1000.0
      STATES(20) = 0.002220456569762898
      STATES(21) = 0.002604864867063448
      STATES(22) = 0.0003764413740731269
      CONSTS(9) = 1e-8
      CONSTS(10) = -1
      CONSTS(11) = -1
      CONSTS(12) = 140.000
      CONSTS(13) = 2.50000
      CONSTS(14) = 0.500000
      CONSTS(15) = 1.00000
      CONSTS(16) = 1.00000
      CONSTS(17) = 0.00000
      CONSTS(18) = 0.600000
      CONSTS(19) = 45.0000
      CONSTS(20) = 0.00100000
      CONSTS(21) = 0.0580000
      CONSTS(22) = 42.0000
      CONSTS(23) = 0.800000
      CONSTS(24) = 0.00400000
      CONSTS(25) = 0.520000
      CONSTS(26) = 0.0320000
      CONSTS(27) = 0.200000
      CONSTS(28) = 0.100000
      CONSTS(29) = 0.160000
      CONSTS(30) = 0.187500
      CONSTS(31) = 0.0542000
      CONSTS(32) = 0.0123000
      CONSTS(33) = 1.30000
      CONSTS(34) = 0.900000
      CONSTS(35) = 0.890000
      CONSTS(36) = 1.00000
      CONSTS(37) = 0.500000
      CONSTS(38) = 1.00000
      CONSTS(39) = 1.19000
      CONSTS(40) = 1.60000
      CONSTS(41) = 3.50000e-07
      CONSTS(42) = 0.000500000
      CONSTS(43) = 2.00000
      CONSTS(44) = 0.000300000
      CONSTS(45) = 4.00000
      CONSTS(46) = 30.0000
      CONSTS(47) = 0.00700000
      CONSTS(48) = 87.5000
      CONSTS(49) = 1.30000
      CONSTS(50) = 3.00000
      CONSTS(51) = 161.301
      CONSTS(52) = 3.60205
      CONSTS(53) = 12.0000
      CONSTS(54) = 4.00000
      CONSTS(55) = 0.108043+0.903902/(1.00000+CONSTS(14)/0.281007 ** 1.29834)
      CONSTS(56) = ( (1.00000/0.000525000)*0.0300000)/(1.00000+150.000/(CONSTS(13)+CONSTS(9)) ** 2.00000)
      CONSTS(57) = 46.0000
      CONSTS(58) = 6.00000
      CONSTS(59) = 130.000
      CONSTS(60) = ( (1.00000/0.0123000)*0.0300000)/(1.00000+150.000/(CONSTS(58)+CONSTS(9)) ** 2.00000)
      CONSTS(61) = 130.000
      CONSTS(62) = ( (1.00000/0.0123000)*0.0300000)/(1.00000+150.000/(CONSTS(59)+CONSTS(9)) ** 2.00000)
      CONSTS(63) = 0.0150000
      CONSTS(64) = 4.00000
      CONSTS(65) = 2.00000
      CONSTS(66) = 8314.00
      CONSTS(67) = 96485.0
      CONSTS(68) = 1.00000
      CONSTS(69) = 308.000
      CONSTS(70) = 1.70000
      CONSTS(71) = 1.00000
      CONSTS(72) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log(CONSTS(59)/CONSTS(54))
      CONSTS(73) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log(CONSTS(58)/CONSTS(12))
      CONSTS(74) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log(CONSTS(57)/CONSTS(61))
      CONSTS(75) = 2.00000
      CONSTS(76) = 0.350000
      CONSTS(77) = 22.0000
      CONSTS(78) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log((CONSTS(58)+ (CONSTS(76)/CONSTS(71))*CONSTS(59))/(CONSTS(12)+ (CONSTS(76)/CONSTS(71))*CONSTS(54)))
      CONSTS(79) = 3.50000e-06
      CONSTS(80) = 0.270000
      CONSTS(81) = 0.350000
      CONSTS(82) = 1.00000/(1.00000+CONSTS(75)/CONSTS(58) ** 1.50000)
      CONSTS(83) = 1.00000/(1.00000+CONSTS(77)/CONSTS(54) ** 2.00000)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(7) = 1.00000/(1.00000+EXP((STATES(1)+38.0000)/7.00000))
      RATES(7) = (ALGBRC(7) - STATES(7))/CONSTS(53)
      ALGBRC(2) = 1.00000/(1.00000+( CONSTS(51)*CONSTS(6))/STATES(2) ** CONSTS(52))
      ALGBRC(20) =  4000.00*(0.234845+(1.00000 - 0.234845)/(1.00000+STATES(2)/( CONSTS(51)*CONSTS(6)) ** CONSTS(52)))
      RATES(3) = (ALGBRC(2) - STATES(3))/ALGBRC(20)
      ALGBRC(4) = 1.00000/(1.00000+EXP(- (STATES(1)+35.9584)/9.24013))
      ALGBRC(21) = 0.250000+7.00000/(1.00000+EXP((STATES(1)+38.0000)/10.0000))
      RATES(4) = (ALGBRC(4) - STATES(4))/ALGBRC(21)
      ALGBRC(5) = 1.00000/(1.00000+EXP((STATES(1)+57.0000)/8.00000))
      ALGBRC(22) = 0.900000+1002.85/(1.00000+(STATES(1)+47.5000)/1.50000 ** 2.00000)
      RATES(5) = (ALGBRC(5) - STATES(5))/ALGBRC(22)
      ALGBRC(6) = 1.00000/(1.00000+EXP(- (STATES(1)+22.0000)/7.00000))
      ALGBRC(23) = 2.29000+5.70000/(1.00000+(STATES(1)+29.9700)/9.00000 ** 2.00000)
      RATES(6) = (ALGBRC(6) - STATES(6))/ALGBRC(23)
      ALGBRC(24) =  90.9699*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1)+13.9629)/45.3782))*(1.00000+EXP(- (STATES(1)+9.49866)/3.39450))))
      RATES(8) = (ALGBRC(7) - STATES(8))/ALGBRC(24)
      ALGBRC(8) = 1.00000/(1.00000+EXP(- (STATES(1)+54.2300)/9.88000))
      ALGBRC(25) = 0.450000+3.90000/(1.00000+(STATES(1)+66.0000)/26.0000 ** 2.00000)
      RATES(9) = (ALGBRC(8) - STATES(9))/ALGBRC(25)
      ALGBRC(9) = 0.0200000+0.980000/(1.00000+EXP((STATES(1)+72.9780)/4.64000))
      ALGBRC(26) =  150.000*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 417.430)/203.180))*(1.00000+EXP(- (STATES(1)+61.1100)/8.07000))))
      RATES(10) = (ALGBRC(9) - STATES(10))/ALGBRC(26)
      ALGBRC(10) = 0.978613/(1.00000+EXP(- (STATES(1)+18.6736)/26.6606))
      ALGBRC(27) = 500.000/(1.00000+(STATES(1)+60.7100)/15.7900 ** 2.00000)
      RATES(11) = (ALGBRC(10) - STATES(11))/ALGBRC(27)
      ALGBRC(11) = 1.00000/(1.00000+EXP((STATES(1)+63.0000)/6.30000))
      ALGBRC(28) = 5000.00/(1.00000+(STATES(1)+62.7133)/35.8611 ** 2.00000)
      RATES(12) = (ALGBRC(11) - STATES(12))/ALGBRC(28)
      ALGBRC(29) = 30000.0+220000./(1.00000+EXP((STATES(1)+22.0000)/4.00000))
      RATES(13) = (ALGBRC(11) - STATES(13))/ALGBRC(29)
      ALGBRC(12) = 0.948000/(1.00000+EXP(- (STATES(1)+17.9100)/18.4000))
      ALGBRC(30) = 100.000/(1.00000+(STATES(1)+64.1000)/28.6700 ** 2.00000)
      RATES(14) = (ALGBRC(12) - STATES(14))/ALGBRC(30)
      ALGBRC(13) = 1.00000/(1.00000+EXP((STATES(1)+21.2000)/5.70000))
      ALGBRC(31) =  1.00000e+06*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 315.000)/50.0000))*(1.00000+EXP(- (STATES(1)+74.9000)/8.00000))))
      RATES(15) = (ALGBRC(13) - STATES(15))/ALGBRC(31)
      ALGBRC(32) =  2.50000e+06*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 132.868)/25.3992))*(1.00000+EXP(- (STATES(1)+24.9203)/2.67915))))
      RATES(16) = (ALGBRC(13) - STATES(16))/ALGBRC(32)
      ALGBRC(14) = 1.00000/(1.00000+EXP(- (STATES(1)+27.7900)/7.57000))
      ALGBRC(33) = 17.0000/(1.00000+(STATES(1)+20.5232)/35.0000 ** 2.00000)
      RATES(17) = (ALGBRC(14) - STATES(17))/ALGBRC(33)
      ALGBRC(15) = 0.0200000+0.980000/(1.00000+EXP((STATES(1)+69.5000)/6.00000))
      ALGBRC(34) = 7.50000+10.0000/(1.00000+(STATES(1)+34.1765)/120.000 ** 2.00000)
      RATES(18) = (ALGBRC(15) - STATES(18))/ALGBRC(34)
      ALGBRC(16) = - 0.749234/(1.00000+( STATES(2)*CONSTS(7) - 0.0630535)/0.161942 ** 2.00000)+8.38384/(1.00000+( STATES(2)*CONSTS(7)+1538.29)/739.057 ** 2.00000)
      ALGBRC(35) = 5011.47/(1.00000+( STATES(2)*CONSTS(7)+0.237503)/0.000239278 ** 0.422910) - 37.5137
      ALGBRC(39) = 1.00000/(1.00000+EXP(( - ALGBRC(16)*CONSTS(67)*(STATES(1) - ALGBRC(35)))/( CONSTS(66)*CONSTS(69))))
      ALGBRC(44) = 2.40914/(1.00000+(STATES(1) - 158.779)/- 52.1497 ** 2.00000)
      RATES(19) = (ALGBRC(39) - STATES(19))/ALGBRC(44)
      ALGBRC(17) = - 0.681249/(1.00000+( STATES(2)*CONSTS(8) - 0.218988)/0.428335 ** 2.00000)+1.40001/(1.00000+( STATES(2)*CONSTS(8)+228.710)/684.946 ** 2.00000)
      ALGBRC(36) = 8540.23/(1.00000+( STATES(2)*CONSTS(8)+0.401189)/0.00399115 ** 0.668054) - 109.275
      ALGBRC(40) = 1.00000/(1.00000+EXP(( - ALGBRC(17)*CONSTS(67)*(STATES(1) - ALGBRC(36)))/( CONSTS(66)*CONSTS(69))))
      ALGBRC(45) = 13.8049/(1.00000+(STATES(1) - 153.019)/66.4952 ** 2.00000)
      RATES(20) = (ALGBRC(40) - STATES(20))/ALGBRC(45)
      ALGBRC(18) = 1.00000/(1.00000+EXP((STATES(1)+105.390)/8.65530))
      ALGBRC(37) =  3.50000e-06*EXP( - 0.0497000*STATES(1))
      ALGBRC(41) =  0.0400300*EXP( 0.0521100*STATES(1))
      ALGBRC(46) = 1.00000/(ALGBRC(37)+ALGBRC(41))
      RATES(21) = (ALGBRC(18) - STATES(21))/ALGBRC(46)
      ALGBRC(19) = ( STATES(1)*CONSTS(67))/( CONSTS(66)*CONSTS(69))
      ALGBRC(42) =  0.000600000*EXP( 2.53000*ALGBRC(19))
      ALGBRC(47) =  0.100000*EXP( - 5.00000*ALGBRC(19))
      ALGBRC(49) = 1.00000/(1.00000+ ALGBRC(47)*(ALGBRC(42)/STATES(2) ** 2.00000+ALGBRC(42)/STATES(2)+1.00000))
      ALGBRC(51) = - 160.000+210.000/(1.00000+EXP((STATES(1)+4.56000)/11.6200))+170.000/(1.00000+EXP(- (STATES(1)+25.5000)/11.6200))
      RATES(22) = (ALGBRC(49) - STATES(22))/ALGBRC(51)
      ALGBRC(1) = TERNRY(VOI.GT.CONSTS(3).AND.VOI.LT.CONSTS(4), CONSTS(2), CONSTS(1))
      ALGBRC(43) =  CONSTS(17)*STATES(4)*STATES(4)*STATES(4)*STATES(5)*(STATES(1) - CONSTS(72))
      ALGBRC(48) = 1.00000/(1.00000+STATES(2)/CONSTS(20) ** 4.00000)
      ALGBRC(50) =  CONSTS(18)*ALGBRC(48)*STATES(6)*STATES(6)*( 0.800000*STATES(7)+ 0.200000*STATES(8))*(STATES(1) - CONSTS(19))
      ALGBRC(52) =  CONSTS(21)*STATES(9)*STATES(9)*STATES(10)*(STATES(1) - CONSTS(22))
      ALGBRC(53) =  CONSTS(24)*(STATES(1) - CONSTS(73))
      ALGBRC(54) =  CONSTS(25)*STATES(11)*STATES(11)*( 0.380000*STATES(12)+ 0.630000*STATES(13))*(STATES(1) - CONSTS(73))
      ALGBRC(55) =  CONSTS(26)*STATES(14)*STATES(14)*( 0.750000*STATES(15)+ 0.250000*STATES(16))*(STATES(1) - CONSTS(73))
      ALGBRC(56) =  CONSTS(29)*STATES(17)*STATES(18)*(STATES(1) - CONSTS(73))
      ALGBRC(57) =  CONSTS(23)*CONSTS(27)*STATES(19)*(STATES(1) - CONSTS(73))
      ALGBRC(58) =  CONSTS(23)*CONSTS(28)*STATES(20)*(STATES(1) - CONSTS(73))
      ALGBRC(59) =  CONSTS(31)*STATES(21)*(STATES(1) - CONSTS(78))
      ALGBRC(60) =  CONSTS(30)*STATES(22)*(STATES(1) - CONSTS(74))
      ALGBRC(38) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log(( CONSTS(33)*CONSTS(58)+ CONSTS(34)*CONSTS(59)+( 4.00000*CONSTS(35)*CONSTS(13))/(1.00000+EXP(ALGBRC(19))))/( CONSTS(33)*CONSTS(12)+ CONSTS(34)*CONSTS(54)+( 4.00000*CONSTS(35)*STATES(2))/(1.00000+EXP(ALGBRC(19)))))
      ALGBRC(64) =  CONSTS(55)*CONSTS(62)*CONSTS(38)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(61) =  CONSTS(55)*CONSTS(56)*CONSTS(37)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(66) =  CONSTS(55)*CONSTS(60)*CONSTS(39)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(67) = 1.00000/(1.00000+ 0.124500*EXP( - 0.100000*ALGBRC(19))+ 0.00219000*EXP(CONSTS(59)/49.7100)*EXP( - 1.90000*ALGBRC(19)))
      ALGBRC(68) =  CONSTS(70)*CONSTS(82)*CONSTS(83)*ALGBRC(67)
      ALGBRC(71) = 1.00000/(1.00000+CONSTS(44)/STATES(2) ** CONSTS(45))
      ALGBRC(69) = EXP( (CONSTS(81) - 1.00000)*ALGBRC(19))
      ALGBRC(70) = EXP( CONSTS(81)*ALGBRC(19))
      ALGBRC(72) =  CONSTS(54) ** 3.00000*CONSTS(13)*ALGBRC(70) -  CONSTS(59) ** 3.00000*STATES(2)*ALGBRC(69)
      ALGBRC(73) = 1.00000+ CONSTS(80)*ALGBRC(69)
      ALGBRC(74) =  CONSTS(49)*CONSTS(54) ** 3.00000+ CONSTS(48) ** 3.00000*STATES(2)+ CONSTS(46) ** 3.00000*CONSTS(13)*(1.00000+STATES(2)/CONSTS(47))
      ALGBRC(75) =  CONSTS(13)*CONSTS(54) ** 3.00000+ CONSTS(59) ** 3.00000*STATES(2)+ CONSTS(59) ** 3.00000*CONSTS(47)*(1.00000+CONSTS(54)/CONSTS(46) ** 3.00000)
      ALGBRC(76) = ( CONSTS(11)*CONSTS(79)*ALGBRC(71)*ALGBRC(72))/( ALGBRC(73)*(ALGBRC(74)+ALGBRC(75)))
      ALGBRC(77) =  (( 0.500000*CONSTS(65)*CONSTS(67))/( CONSTS(64)*CONSTS(68)*CONSTS(63)))*CONSTS(10)*ALGBRC(76)
      ALGBRC(80) = ALGBRC(43)+ALGBRC(59)+ALGBRC(77)+ALGBRC(68)+ALGBRC(50)+ALGBRC(52)+ALGBRC(60)+ALGBRC(54)+ALGBRC(55)+ALGBRC(56)+ALGBRC(57)+ALGBRC(58)+ALGBRC(64)+ALGBRC(66)+ALGBRC(61)+ALGBRC(53)
      RATES(1) = - (ALGBRC(80)+ALGBRC(1))
      ALGBRC(62) = ALGBRC(50)+ALGBRC(52)+ALGBRC(61)
      ALGBRC(63) =  (( CONSTS(64)*CONSTS(68)*CONSTS(63))/( CONSTS(65)*CONSTS(67)))*ALGBRC(62)
      ALGBRC(78) = CONSTS(41)/(1.00000+CONSTS(42)/STATES(2) ** CONSTS(43))
      ALGBRC(81) = ALGBRC(63)+ALGBRC(76)+ALGBRC(78)
      RATES(2) = - ALGBRC(81)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(7) = 1.00000/(1.00000+EXP((STATES(1)+38.0000)/7.00000))
      ALGBRC(2) = 1.00000/(1.00000+( CONSTS(51)*CONSTS(6))/STATES(2) ** CONSTS(52))
      ALGBRC(20) =  4000.00*(0.234845+(1.00000 - 0.234845)/(1.00000+STATES(2)/( CONSTS(51)*CONSTS(6)) ** CONSTS(52)))
      ALGBRC(4) = 1.00000/(1.00000+EXP(- (STATES(1)+35.9584)/9.24013))
      ALGBRC(21) = 0.250000+7.00000/(1.00000+EXP((STATES(1)+38.0000)/10.0000))
      ALGBRC(5) = 1.00000/(1.00000+EXP((STATES(1)+57.0000)/8.00000))
      ALGBRC(22) = 0.900000+1002.85/(1.00000+(STATES(1)+47.5000)/1.50000 ** 2.00000)
      ALGBRC(6) = 1.00000/(1.00000+EXP(- (STATES(1)+22.0000)/7.00000))
      ALGBRC(23) = 2.29000+5.70000/(1.00000+(STATES(1)+29.9700)/9.00000 ** 2.00000)
      ALGBRC(24) =  90.9699*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1)+13.9629)/45.3782))*(1.00000+EXP(- (STATES(1)+9.49866)/3.39450))))
      ALGBRC(8) = 1.00000/(1.00000+EXP(- (STATES(1)+54.2300)/9.88000))
      ALGBRC(25) = 0.450000+3.90000/(1.00000+(STATES(1)+66.0000)/26.0000 ** 2.00000)
      ALGBRC(9) = 0.0200000+0.980000/(1.00000+EXP((STATES(1)+72.9780)/4.64000))
      ALGBRC(26) =  150.000*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 417.430)/203.180))*(1.00000+EXP(- (STATES(1)+61.1100)/8.07000))))
      ALGBRC(10) = 0.978613/(1.00000+EXP(- (STATES(1)+18.6736)/26.6606))
      ALGBRC(27) = 500.000/(1.00000+(STATES(1)+60.7100)/15.7900 ** 2.00000)
      ALGBRC(11) = 1.00000/(1.00000+EXP((STATES(1)+63.0000)/6.30000))
      ALGBRC(28) = 5000.00/(1.00000+(STATES(1)+62.7133)/35.8611 ** 2.00000)
      ALGBRC(29) = 30000.0+220000./(1.00000+EXP((STATES(1)+22.0000)/4.00000))
      ALGBRC(12) = 0.948000/(1.00000+EXP(- (STATES(1)+17.9100)/18.4000))
      ALGBRC(30) = 100.000/(1.00000+(STATES(1)+64.1000)/28.6700 ** 2.00000)
      ALGBRC(13) = 1.00000/(1.00000+EXP((STATES(1)+21.2000)/5.70000))
      ALGBRC(31) =  1.00000e+06*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 315.000)/50.0000))*(1.00000+EXP(- (STATES(1)+74.9000)/8.00000))))
      ALGBRC(32) =  2.50000e+06*(1.00000 - 1.00000/( (1.00000+EXP((STATES(1) - 132.868)/25.3992))*(1.00000+EXP(- (STATES(1)+24.9203)/2.67915))))
      ALGBRC(14) = 1.00000/(1.00000+EXP(- (STATES(1)+27.7900)/7.57000))
      ALGBRC(33) = 17.0000/(1.00000+(STATES(1)+20.5232)/35.0000 ** 2.00000)
      ALGBRC(15) = 0.0200000+0.980000/(1.00000+EXP((STATES(1)+69.5000)/6.00000))
      ALGBRC(34) = 7.50000+10.0000/(1.00000+(STATES(1)+34.1765)/120.000 ** 2.00000)
      ALGBRC(16) = - 0.749234/(1.00000+( STATES(2)*CONSTS(7) - 0.0630535)/0.161942 ** 2.00000)+8.38384/(1.00000+( STATES(2)*CONSTS(7)+1538.29)/739.057 ** 2.00000)
      ALGBRC(35) = 5011.47/(1.00000+( STATES(2)*CONSTS(7)+0.237503)/0.000239278 ** 0.422910) - 37.5137
      ALGBRC(39) = 1.00000/(1.00000+EXP(( - ALGBRC(16)*CONSTS(67)*(STATES(1) - ALGBRC(35)))/( CONSTS(66)*CONSTS(69))))
      ALGBRC(44) = 2.40914/(1.00000+(STATES(1) - 158.779)/- 52.1497 ** 2.00000)
      ALGBRC(17) = - 0.681249/(1.00000+( STATES(2)*CONSTS(8) - 0.218988)/0.428335 ** 2.00000)+1.40001/(1.00000+( STATES(2)*CONSTS(8)+228.710)/684.946 ** 2.00000)
      ALGBRC(36) = 8540.23/(1.00000+( STATES(2)*CONSTS(8)+0.401189)/0.00399115 ** 0.668054) - 109.275
      ALGBRC(40) = 1.00000/(1.00000+EXP(( - ALGBRC(17)*CONSTS(67)*(STATES(1) - ALGBRC(36)))/( CONSTS(66)*CONSTS(69))))
      ALGBRC(45) = 13.8049/(1.00000+(STATES(1) - 153.019)/66.4952 ** 2.00000)
      ALGBRC(18) = 1.00000/(1.00000+EXP((STATES(1)+105.390)/8.65530))
      ALGBRC(37) =  3.50000e-06*EXP( - 0.0497000*STATES(1))
      ALGBRC(41) =  0.0400300*EXP( 0.0521100*STATES(1))
      ALGBRC(46) = 1.00000/(ALGBRC(37)+ALGBRC(41))
      ALGBRC(19) = ( STATES(1)*CONSTS(67))/( CONSTS(66)*CONSTS(69))
      ALGBRC(42) =  0.000600000*EXP( 2.53000*ALGBRC(19))
      ALGBRC(47) =  0.100000*EXP( - 5.00000*ALGBRC(19))
      ALGBRC(49) = 1.00000/(1.00000+ ALGBRC(47)*(ALGBRC(42)/STATES(2) ** 2.00000+ALGBRC(42)/STATES(2)+1.00000))
      ALGBRC(51) = - 160.000+210.000/(1.00000+EXP((STATES(1)+4.56000)/11.6200))+170.000/(1.00000+EXP(- (STATES(1)+25.5000)/11.6200))
      ALGBRC(1) = TERNRY(VOI.GT.CONSTS(3).AND.VOI.LT.CONSTS(4), CONSTS(2), CONSTS(1))
      ALGBRC(43) =  CONSTS(17)*STATES(4)*STATES(4)*STATES(4)*STATES(5)*(STATES(1) - CONSTS(72))
      ALGBRC(48) = 1.00000/(1.00000+STATES(2)/CONSTS(20) ** 4.00000)
      ALGBRC(50) =  CONSTS(18)*ALGBRC(48)*STATES(6)*STATES(6)*( 0.800000*STATES(7)+ 0.200000*STATES(8))*(STATES(1) - CONSTS(19))
      ALGBRC(52) =  CONSTS(21)*STATES(9)*STATES(9)*STATES(10)*(STATES(1) - CONSTS(22))
      ALGBRC(53) =  CONSTS(24)*(STATES(1) - CONSTS(73))
      ALGBRC(54) =  CONSTS(25)*STATES(11)*STATES(11)*( 0.380000*STATES(12)+ 0.630000*STATES(13))*(STATES(1) - CONSTS(73))
      ALGBRC(55) =  CONSTS(26)*STATES(14)*STATES(14)*( 0.750000*STATES(15)+ 0.250000*STATES(16))*(STATES(1) - CONSTS(73))
      ALGBRC(56) =  CONSTS(29)*STATES(17)*STATES(18)*(STATES(1) - CONSTS(73))
      ALGBRC(57) =  CONSTS(23)*CONSTS(27)*STATES(19)*(STATES(1) - CONSTS(73))
      ALGBRC(58) =  CONSTS(23)*CONSTS(28)*STATES(20)*(STATES(1) - CONSTS(73))
      ALGBRC(59) =  CONSTS(31)*STATES(21)*(STATES(1) - CONSTS(78))
      ALGBRC(60) =  CONSTS(30)*STATES(22)*(STATES(1) - CONSTS(74))
      ALGBRC(38) =  (( CONSTS(66)*CONSTS(69))/CONSTS(67))*log(( CONSTS(33)*CONSTS(58)+ CONSTS(34)*CONSTS(59)+( 4.00000*CONSTS(35)*CONSTS(13))/(1.00000+EXP(ALGBRC(19))))/( CONSTS(33)*CONSTS(12)+ CONSTS(34)*CONSTS(54)+( 4.00000*CONSTS(35)*STATES(2))/(1.00000+EXP(ALGBRC(19)))))
      ALGBRC(64) =  CONSTS(55)*CONSTS(62)*CONSTS(38)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(61) =  CONSTS(55)*CONSTS(56)*CONSTS(37)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(66) =  CONSTS(55)*CONSTS(60)*CONSTS(39)*CONSTS(32)*(STATES(1) - ALGBRC(38))
      ALGBRC(67) = 1.00000/(1.00000+ 0.124500*EXP( - 0.100000*ALGBRC(19))+ 0.00219000*EXP(CONSTS(59)/49.7100)*EXP( - 1.90000*ALGBRC(19)))
      ALGBRC(68) =  CONSTS(70)*CONSTS(82)*CONSTS(83)*ALGBRC(67)
      ALGBRC(71) = 1.00000/(1.00000+CONSTS(44)/STATES(2) ** CONSTS(45))
      ALGBRC(69) = EXP( (CONSTS(81) - 1.00000)*ALGBRC(19))
      ALGBRC(70) = EXP( CONSTS(81)*ALGBRC(19))
      ALGBRC(72) =  CONSTS(54) ** 3.00000*CONSTS(13)*ALGBRC(70) -  CONSTS(59) ** 3.00000*STATES(2)*ALGBRC(69)
      ALGBRC(73) = 1.00000+ CONSTS(80)*ALGBRC(69)
      ALGBRC(74) =  CONSTS(49)*CONSTS(54) ** 3.00000+ CONSTS(48) ** 3.00000*STATES(2)+ CONSTS(46) ** 3.00000*CONSTS(13)*(1.00000+STATES(2)/CONSTS(47))
      ALGBRC(75) =  CONSTS(13)*CONSTS(54) ** 3.00000+ CONSTS(59) ** 3.00000*STATES(2)+ CONSTS(59) ** 3.00000*CONSTS(47)*(1.00000+CONSTS(54)/CONSTS(46) ** 3.00000)
      ALGBRC(76) = ( CONSTS(11)*CONSTS(79)*ALGBRC(71)*ALGBRC(72))/( ALGBRC(73)*(ALGBRC(74)+ALGBRC(75)))
      ALGBRC(77) =  (( 0.500000*CONSTS(65)*CONSTS(67))/( CONSTS(64)*CONSTS(68)*CONSTS(63)))*CONSTS(10)*ALGBRC(76)
      ALGBRC(80) = ALGBRC(43)+ALGBRC(59)+ALGBRC(77)+ALGBRC(68)+ALGBRC(50)+ALGBRC(52)+ALGBRC(60)+ALGBRC(54)+ALGBRC(55)+ALGBRC(56)+ALGBRC(57)+ALGBRC(58)+ALGBRC(64)+ALGBRC(66)+ALGBRC(61)+ALGBRC(53)
      ALGBRC(62) = ALGBRC(50)+ALGBRC(52)+ALGBRC(61)
      ALGBRC(63) =  (( CONSTS(64)*CONSTS(68)*CONSTS(63))/( CONSTS(65)*CONSTS(67)))*ALGBRC(62)
      ALGBRC(78) = CONSTS(41)/(1.00000+CONSTS(42)/STATES(2) ** CONSTS(43))
      ALGBRC(81) = ALGBRC(63)+ALGBRC(76)+ALGBRC(78)
      ALGBRC(3) =  CONSTS(50)*(STATES(3) - 0.234500)
      ALGBRC(65) =  ALGBRC(63)*CONSTS(5)
      ALGBRC(79) =  ALGBRC(76)*CONSTS(5)
      ALGBRC(82) =  ALGBRC(78)*CONSTS(5)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END