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 88 entries in the algebraic variable array.
C There are a total of 14 entries in each of the rate and state variable arrays.
C There are a total of 51 entries in the constant variable array.
C
C
C VOI is time in component environment (millisecond).
C STATES(1) is Vm in component membrane (millivolt).
C ALGBRC(77) is I_tot in component membrane (picoampere).
C CONSTS(1) is I_ext in component membrane (picoampere).
C CONSTS(2) is Cm in component membrane (picofarad).
C ALGBRC(37) is I_Ki in component I_Ki (picoampere).
C ALGBRC(49) is I_CaL in component I_CaL (picoampere).
C ALGBRC(60) is I_VDDR in component I_VDDR (picoampere).
C ALGBRC(65) is I_AI in component I_AI (picoampere).
C ALGBRC(71) is I_NaCa in component I_NaCa (picoampere).
C ALGBRC(73) is I_NaK in component I_NaK (picoampere).
C ALGBRC(74) is I_PMCA in component I_PMCA (picoampere).
C STATES(2) is Na_i in component internal_ion_concentrations (millimolar).
C STATES(3) is K_i in component internal_ion_concentrations (millimolar).
C ALGBRC(1) is Ca_i in component internal_ion_concentrations (millimolar).
C ALGBRC(3) is Na_CF in component internal_ion_concentrations (millimolar).
C ALGBRC(8) is K_CF in component internal_ion_concentrations (millimolar).
C ALGBRC(12) is Ca_CF in component internal_ion_concentrations (millimolar).
C ALGBRC(75) is Inet_Na in component internal_ion_concentrations (picoampere).
C ALGBRC(76) is Inet_K in component internal_ion_concentrations (picoampere).
C ALGBRC(78) is Inet_Ca in component internal_ion_concentrations (picoampere).
C STATES(4) is Cai_A in component internal_ion_concentrations (millimolar).
C ALGBRC(46) is I_CaL_Na in component I_CaL (picoampere).
C ALGBRC(43) is I_CaL_K in component I_CaL (picoampere).
C ALGBRC(40) is I_CaL_Ca in component I_CaL (picoampere).
C ALGBRC(64) is I_AI_Na in component I_AI (picoampere).
C ALGBRC(63) is I_AI_K in component I_AI (picoampere).
C ALGBRC(62) is I_AI_Ca in component I_AI (picoampere).
C ALGBRC(87) is I_IP3R in component I_IP3R (picoampere).
C ALGBRC(81) is I_up in component I_up (picoampere).
C ALGBRC(85) is I_leak in component I_leak (picoampere).
C CONSTS(3) is Vi in component model_parameters (micrometre3).
C CONSTS(4) is T in component model_parameters (kelvin).
C CONSTS(5) is R in component model_parameters (coulomb_millivolt_kelvin_millimole).
C CONSTS(6) is F in component model_parameters (coulomb_millimole).
C CONSTS(7) is Na_o in component model_parameters (millimolar).
C CONSTS(8) is K_o in component model_parameters (millimolar).
C CONSTS(9) is Ca_o in component model_parameters (millimolar).
C CONSTS(10) is ZNa in component model_parameters (dimensionless).
C CONSTS(11) is ZK in component model_parameters (dimensionless).
C CONSTS(12) is ZCa in component model_parameters (dimensionless).
C ALGBRC(21) is fU in component I_Ki (dimensionless).
C ALGBRC(15) is E_K in component I_Ki (millivolt).
C CONSTS(13) is g_Ki in component I_Ki (picoampere_per_millivolt).
C ALGBRC(17) is mu in component I_Ki (dimensionless).
C ALGBRC(19) is lambda in component I_Ki (dimensionless).
C ALGBRC(35) is n in component I_Ki_n_gate (dimensionless).
C ALGBRC(23) is n_1 in component I_Ki_n_gate (dimensionless).
C ALGBRC(31) is n_2 in component I_Ki_n_gate (dimensionless).
C ALGBRC(33) is n_3 in component I_Ki_n_gate (dimensionless).
C ALGBRC(25) is a in component I_Ki_n_gate (dimensionless).
C ALGBRC(27) is b in component I_Ki_n_gate (dimensionless).
C ALGBRC(29) is AB in component I_Ki_n_gate (dimensionless).
C CONSTS(14) is PCaL in component I_CaL (picoampere_per_millimolar).
C STATES(5) is m in component I_CaL_m_gate (dimensionless).
C STATES(6) is h in component I_CaL_h_gate (dimensionless).
C ALGBRC(2) is alpha_m in component I_CaL_m_gate (first_order_rate_constant).
C ALGBRC(4) is beta_m in component I_CaL_m_gate (first_order_rate_constant).
C ALGBRC(5) is alpha_h in component I_CaL_h_gate (first_order_rate_constant).
C ALGBRC(9) is beta_h in component I_CaL_h_gate (first_order_rate_constant).
C CONSTS(15) is PVDDR in component I_VDDR (picoampere_per_millimolar).
C ALGBRC(54) is m in component I_VDDR_m_gate (dimensionless).
C ALGBRC(59) is h in component I_VDDR_h_gate (dimensionless).
C ALGBRC(52) is alpha_m in component I_VDDR_m_gate (first_order_rate_constant).
C ALGBRC(53) is beta_m in component I_VDDR_m_gate (first_order_rate_constant).
C ALGBRC(50) is m2 in component I_VDDR_m_gate (first_order_rate_constant).
C ALGBRC(51) is m3 in component I_VDDR_m_gate (dimensionless).
C ALGBRC(57) is alpha_h in component I_VDDR_h_gate (first_order_rate_constant).
C ALGBRC(58) is beta_h in component I_VDDR_h_gate (first_order_rate_constant).
C ALGBRC(55) is h2 in component I_VDDR_h_gate (first_order_rate_constant).
C ALGBRC(56) is h3 in component I_VDDR_h_gate (dimensionless).
C ALGBRC(61) is po in component I_AI (dimensionless).
C CONSTS(16) is PAI in component I_AI (picoampere_per_millimolar).
C CONSTS(17) is Km_Ca_i in component I_AI (millimolar).
C CONSTS(18) is PNaCa in component I_NaCa (picoampere).
C CONSTS(19) is Km_Na_i in component I_NaCa (millimolar3).
C CONSTS(20) is Km_Na_o in component I_NaCa (millimolar3).
C CONSTS(21) is Km_Ca_i in component I_NaCa (millimolar).
C CONSTS(22) is Km_Ca_o in component I_NaCa (millimolar).
C CONSTS(43) is p_E2Na in component I_NaCa (dimensionless).
C ALGBRC(66) is p_E1Na in component I_NaCa (dimensionless).
C ALGBRC(67) is p_E1Ca in component I_NaCa (dimensionless).
C CONSTS(44) is p_E2Ca in component I_NaCa (dimensionless).
C STATES(7) is y in component I_NaCa_y_gate (dimensionless).
C ALGBRC(68) is m in component I_NaCa_y_gate (dimensionless).
C ALGBRC(70) is h in component I_NaCa_y_gate (dimensionless).
C ALGBRC(72) is alpha_y in component I_NaCa_y_gate (first_order_rate_constant).
C ALGBRC(69) is beta_y in component I_NaCa_y_gate (first_order_rate_constant).
C CONSTS(23) is pNaK in component I_NaK (picoampere).
C CONSTS(24) is Km_Na_i in component I_NaK (millimolar).
C CONSTS(25) is Km_K_o in component I_NaK (millimolar).
C CONSTS(26) is pPMCA in component I_PMCA (picoampere).
C CONSTS(27) is Km_Ca_i in component I_PMCA (millimolar).
C CONSTS(28) is Pup in component I_up (picoampere_millisecond).
C CONSTS(29) is Km_Ca_i in component I_up (millimolar).
C CONSTS(30) is Km_Ca_o in component I_up (millimolar).
C ALGBRC(84) is p_E2 in component I_up (first_order_rate_constant).
C ALGBRC(82) is p_E1 in component I_up (first_order_rate_constant).
C ALGBRC(79) is p_E1Ca in component I_up (first_order_rate_constant).
C ALGBRC(80) is p_E2Ca in component I_up (first_order_rate_constant).
C STATES(8) is Ca_up in component calcium_concentrations_in_the_SR (millimolar).
C STATES(9) is y in component I_up_y_gate (dimensionless).
C ALGBRC(86) is alpha_y in component I_up_y_gate (first_order_rate_constant).
C ALGBRC(88) is beta_y in component I_up_y_gate (first_order_rate_constant).
C ALGBRC(83) is I_tr in component I_tr (picoampere).
C CONSTS(31) is ptr in component I_tr (picoampere_per_millimolar).
C STATES(10) is Ca_rel in component calcium_concentrations_in_the_SR (millimolar).
C CONSTS(32) is pleak in component I_leak (picoampere_per_millimolar).
C CONSTS(33) is PIP3R in component I_IP3R (picoampere_per_millimolar).
C ALGBRC(6) is kco in component I_IP3R (first_order_rate_constant).
C CONSTS(34) is koi in component I_IP3R (first_order_rate_constant).
C ALGBRC(10) is kic in component I_IP3R (first_order_rate_constant).
C CONSTS(35) is kci in component I_IP3R (first_order_rate_constant).
C ALGBRC(26) is SC_0 in component I_IP3R (first_order_rate_constant).
C ALGBRC(39) is SC_3 in component I_IP3R (dimensionless).
C ALGBRC(38) is SC_2 in component I_IP3R (dimensionless).
C ALGBRC(28) is SC_1 in component I_IP3R (first_order_rate_constant).
C STATES(11) is m in component I_IP3R (dimensionless).
C STATES(12) is h in component I_IP3R (dimensionless).
C ALGBRC(47) is m_original in component I_IP3R (dimensionless).
C ALGBRC(48) is h_original in component I_IP3R (dimensionless).
C ALGBRC(41) is stO in component I_IP3R (dimensionless).
C ALGBRC(42) is stA in component I_IP3R (dimensionless).
C ALGBRC(44) is ndO in component I_IP3R (dimensionless).
C ALGBRC(45) is ndA in component I_IP3R (dimensionless).
C ALGBRC(18) is OrgO_N4 in component I_IP3R (first_order_rate_constant).
C ALGBRC(20) is OrgA_N4 in component I_IP3R (first_order_rate_constant).
C ALGBRC(30) is state_c1 in component I_IP3R (first_order_rate_constant).
C ALGBRC(32) is state_c2 in component I_IP3R (first_order_rate_constant).
C ALGBRC(34) is state_c3 in component I_IP3R (first_order_rate_constant).
C CONSTS(48) is state_d1 in component I_IP3R (first_order_rate_constant).
C ALGBRC(36) is state_d2 in component I_IP3R (first_order_rate_constant).
C CONSTS(49) is state_d3 in component I_IP3R (first_order_rate_constant).
C ALGBRC(22) is state_bf in component I_IP3R (first_order_rate_constant).
C ALGBRC(24) is state_sbf in component I_IP3R (per_millisecond2).
C CONSTS(42) is kab in component I_IP3R (first_order_rate_constant).
C CONSTS(45) is kba in component I_IP3R (first_order_rate_constant).
C ALGBRC(13) is kbc in component I_IP3R (first_order_rate_constant).
C CONSTS(46) is kcb in component I_IP3R (first_order_rate_constant).
C CONSTS(47) is kac in component I_IP3R (first_order_rate_constant).
C ALGBRC(16) is kca in component I_IP3R (first_order_rate_constant).
C CONSTS(36) is dt in component I_IP3R (millisecond).
C CONSTS(37) is dt_CellML in component I_IP3R (millisecond).
C STATES(13) is IP3 in component IP3_metabolism (millimolar).
C CONSTS(50) is Vup in component model_parameters (micrometre3).
C CONSTS(51) is Vrel in component model_parameters (micrometre3).
C STATES(14) is PIP2 in component IP3_metabolism (millimolar).
C ALGBRC(7) is PIP2_IP3 in component IP3_metabolism (first_order_rate_constant).
C ALGBRC(11) is IP3_PIP2 in component IP3_metabolism (first_order_rate_constant).
C CONSTS(38) is IP3_IP4 in component IP3_metabolism (first_order_rate_constant).
C CONSTS(39) is PIP2_IP4 in component IP3_metabolism (first_order_rate_constant).
C ALGBRC(14) is IP4_PIP2 in component IP3_metabolism (first_order_rate_constant).
C CONSTS(40) is IP3total in component IP3_metabolism (millimolar).
C CONSTS(41) is Km_Ca_i in component IP3_metabolism (millimolar).
C RATES(1) is d/dt Vm in component membrane (millivolt).
C RATES(2) is d/dt Na_i in component internal_ion_concentrations (millimolar).
C RATES(3) is d/dt K_i in component internal_ion_concentrations (millimolar).
C RATES(4) is d/dt Cai_A in component internal_ion_concentrations (millimolar).
C RATES(5) is d/dt m in component I_CaL_m_gate (dimensionless).
C RATES(6) is d/dt h in component I_CaL_h_gate (dimensionless).
C RATES(7) is d/dt y in component I_NaCa_y_gate (dimensionless).
C RATES(9) is d/dt y in component I_up_y_gate (dimensionless).
C RATES(11) is d/dt m in component I_IP3R (dimensionless).
C RATES(12) is d/dt h in component I_IP3R (dimensionless).
C RATES(8) is d/dt Ca_up in component calcium_concentrations_in_the_SR (millimolar).
C RATES(10) is d/dt Ca_rel in component calcium_concentrations_in_the_SR (millimolar).
C RATES(13) is d/dt IP3 in component IP3_metabolism (millimolar).
C RATES(14) is d/dt PIP2 in component IP3_metabolism (millimolar).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = -68.0
      CONSTS(1) = 0.0
      CONSTS(2) = 25.0
      STATES(2) = 5.4
      STATES(3) = 140.0
      STATES(4) = 0.0035
      CONSTS(3) = 715.5
      CONSTS(4) = 309.15
      CONSTS(5) = 8.314
      CONSTS(6) = 96.485
      CONSTS(7) = 140.0
      CONSTS(8) = 5.4
      CONSTS(9) = 1.8
      CONSTS(10) = 1.0
      CONSTS(11) = 1.0
      CONSTS(12) = 2.0
      CONSTS(13) = 4.32
      CONSTS(14) = 5.76
      STATES(5) = 0.0
      STATES(6) = 0.0
      CONSTS(15) = 7.92
      CONSTS(16) = 15.61
      CONSTS(17) = 0.003
      CONSTS(18) = 8.458
      CONSTS(19) = 670.0
      CONSTS(20) = 670000.0
      CONSTS(21) = 0.00138
      CONSTS(22) = 1.38
      STATES(7) = 0.9459136
      CONSTS(23) = 79.0
      CONSTS(24) = 11.0
      CONSTS(25) = 0.27
      CONSTS(26) = 927.4
      CONSTS(27) = 0.008
      CONSTS(28) = 7728.0
      CONSTS(29) = 0.08
      CONSTS(30) = 0.002
      STATES(8) = 4.6
      STATES(9) = 0.1
      CONSTS(31) = 20.5
      STATES(10) = 13.1
      CONSTS(32) = 0.45
      CONSTS(33) = 217.2
      CONSTS(34) = 0.02
      CONSTS(35) = 0.000849
      STATES(11) = 0.0
      STATES(12) = 1.0
      CONSTS(36) = 0.2
      CONSTS(37) = 0.01
      STATES(13) = 0.0002682
      STATES(14) = 0.002664
      CONSTS(38) = 0.004
      CONSTS(39) = 0.00
      CONSTS(40) = 0.0033
      CONSTS(41) = 0.00001
      CONSTS(42) = CONSTS(34)
      CONSTS(43) = 1.00000/(1.00000+(1.00000+CONSTS(9)/CONSTS(22))/(CONSTS(7) ** 3.00000/CONSTS(20)))
      CONSTS(44) = 1.00000/(1.00000+(1.00000+CONSTS(7) ** 3.00000/CONSTS(20))/(CONSTS(9)/CONSTS(22)))
      CONSTS(45) = 0.00000
      CONSTS(46) = CONSTS(35)
      CONSTS(47) = 0.00000
      CONSTS(48) = - (CONSTS(45)+CONSTS(42)+CONSTS(47))
      CONSTS(49) = CONSTS(45)
      CONSTS(50) =  0.100000*CONSTS(3)
      CONSTS(51) =  0.0100000*CONSTS(3)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(2) = TERNRY(STATES(1).EQ.-30.0000,  0.00217500*((STATES(1)+30.0000)/(1.00000 - EXP((STATES(1)+30.0000)/- 2.50000))), 0.00418927)
      ALGBRC(4) = TERNRY(STATES(1).EQ.0.00000, 0.00157896,  0.000631500*(STATES(1)/(EXP(STATES(1)/2.50000) - 1.00000)))
      RATES(5) =  ALGBRC(2)*(1.00000 - STATES(5)) -  ALGBRC(4)*STATES(5)
      ALGBRC(5) = TERNRY(STATES(1).EQ.-34.0000, 1.00010e-05,  1.77500e-06*((STATES(1)+34.0000)/(EXP((STATES(1)+34.0000)/5.63300) - 1.00000)))
      ALGBRC(1) = TERNRY(STATES(4).LE.0.00000, 1.00000e-12, STATES(4))
      ALGBRC(9) =  0.427000*ALGBRC(1)*((STATES(1)+64.0000)/(EXP((STATES(1)+44.0000)/- 4.16000)+1.00000))
      RATES(6) =  ALGBRC(5)*(1.00000 - STATES(6)) -  ALGBRC(9)*STATES(6)
      ALGBRC(7) =  0.200000*EXP((STATES(1)+48.5000)/18.1000)*(ALGBRC(1)/(ALGBRC(1)+CONSTS(41)))
      ALGBRC(11) =  0.500000*EXP((STATES(1)+100.000)/-28.5000)
      RATES(13) =  ALGBRC(7)*STATES(14) -  (ALGBRC(11)+CONSTS(38))*STATES(13)
      ALGBRC(14) =  0.00350000*EXP((STATES(1)+100.000)/-25.5000)
      RATES(14) = ( ALGBRC(11)*STATES(13)+ ALGBRC(14)*(CONSTS(40) - (STATES(13)+STATES(14)))) -  (CONSTS(39)+ALGBRC(7))*STATES(14)
      ALGBRC(10) =  0.0250000*STATES(13)/0.00100000 ** 3.00000*(STATES(10)/1.00000)
      ALGBRC(13) = ALGBRC(10)
      ALGBRC(6) =  0.147000*ALGBRC(1)/5.70000e-05 ** 3.00000
      ALGBRC(16) = ALGBRC(6)
      ALGBRC(22) = CONSTS(42)+CONSTS(45)+CONSTS(47)+ALGBRC(16)+ALGBRC(13)+CONSTS(46)
      ALGBRC(24) = ALGBRC(22) ** 2.00000 -  4.00000*( (ALGBRC(13)+CONSTS(46)+ALGBRC(16))*(CONSTS(45)+CONSTS(42)+CONSTS(47)) -  (CONSTS(47) - ALGBRC(13))*(ALGBRC(16)+CONSTS(45)))
      ALGBRC(26) = (ALGBRC(22)+ABS(ALGBRC(24)) ** 0.500000)/2.00000
      ALGBRC(30) = CONSTS(47) - ALGBRC(13)
      ALGBRC(32) = - (ALGBRC(13)+CONSTS(46)+ALGBRC(16))
      ALGBRC(34) = ALGBRC(13)
      ALGBRC(36) = ALGBRC(16) - CONSTS(45)
      ALGBRC(38) = ( ALGBRC(32)*CONSTS(49) -  ALGBRC(34)*ALGBRC(36))/( ALGBRC(30)*ALGBRC(36) -  ALGBRC(32)*CONSTS(48))
      ALGBRC(28) = (ALGBRC(22) - ABS(ALGBRC(24)) ** 0.500000)/2.00000
      ALGBRC(18) =  ALGBRC(6)*STATES(12) -  CONSTS(34)*STATES(11)
      ALGBRC(41) = ((ALGBRC(18)+ ALGBRC(28)*STATES(11)) -  ALGBRC(38)*ALGBRC(28))/(ALGBRC(28) - ALGBRC(26))
      ALGBRC(44) = ((ALGBRC(18)+ ALGBRC(26)*STATES(11)) -  ALGBRC(38)*ALGBRC(26))/(ALGBRC(26) - ALGBRC(28))
      ALGBRC(47) =  ALGBRC(41)*EXP( - ALGBRC(26)*CONSTS(36))+ ALGBRC(44)*EXP( - ALGBRC(28)*CONSTS(36))+ALGBRC(38)
      RATES(11) = (ALGBRC(47) - STATES(11))/CONSTS(37)
      ALGBRC(39) = ( ALGBRC(30)*CONSTS(49) -  ALGBRC(34)*CONSTS(48))/( ALGBRC(32)*CONSTS(48) -  ALGBRC(30)*ALGBRC(36))
      ALGBRC(20) =  ALGBRC(10)*(1.00000 - (STATES(12)+STATES(11))) -  (CONSTS(35)+ALGBRC(6))*STATES(12)
      ALGBRC(42) = ((ALGBRC(20)+ ALGBRC(28)*STATES(12)) -  ALGBRC(39)*ALGBRC(28))/(ALGBRC(28) - ALGBRC(26))
      ALGBRC(45) = ((ALGBRC(20)+ ALGBRC(26)*STATES(12)) -  ALGBRC(39)*ALGBRC(26))/(ALGBRC(26) - ALGBRC(28))
      ALGBRC(48) =  ALGBRC(42)*EXP( - ALGBRC(26)*CONSTS(36))+ ALGBRC(45)*EXP( - ALGBRC(28)*CONSTS(36))+ALGBRC(39)
      RATES(12) = (ALGBRC(48) - STATES(12))/CONSTS(37)
      ALGBRC(70) =  CONSTS(43)*EXP( (0.320000 - 1.00000)*(STATES(1)/(( CONSTS(5)*CONSTS(4))/CONSTS(6))))
      ALGBRC(72) =  1.00000*(ALGBRC(70)+CONSTS(44))
      ALGBRC(67) = 1.00000/(1.00000+(1.00000+STATES(2) ** 3.00000/CONSTS(19))/(ALGBRC(1)/CONSTS(21)))
      ALGBRC(66) = 1.00000/(1.00000+(1.00000+ALGBRC(1)/CONSTS(21))/(STATES(2) ** 3.00000/CONSTS(19)))
      ALGBRC(68) =  ALGBRC(66)*EXP( 0.320000*(STATES(1)/(( CONSTS(5)*CONSTS(4))/CONSTS(6))))
      ALGBRC(69) =  1.00000*(ALGBRC(68)+ALGBRC(67))
      RATES(7) =  ALGBRC(72)*(1.00000 - STATES(7)) -  ALGBRC(69)*STATES(7)
      ALGBRC(71) =  CONSTS(18)*( ALGBRC(68)*STATES(7) -  ALGBRC(70)*(1.00000 - STATES(7)))
      ALGBRC(73) =  (CONSTS(23)/(1.00000+CONSTS(24)/STATES(2) ** 1.36000))*((1.00000 - (STATES(1)+50.0000)/250.000 ** 2.00000)/(1.00000+CONSTS(25)/CONSTS(8)))
      ALGBRC(3) =  (( CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((STATES(2) -  CONSTS(7)*EXP(( - CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(46) =  5.00000e-05*CONSTS(14)*ALGBRC(3)*STATES(5)*STATES(6)
      ALGBRC(61) = 0.00170000+(1.00000 - 0.00170000)/(1.00000+CONSTS(17)/ALGBRC(1))
      ALGBRC(64) =  0.400000*CONSTS(16)*ALGBRC(3)*ALGBRC(61)
      ALGBRC(75) = ALGBRC(46)+ALGBRC(64)+ 3.00000*ALGBRC(73)+ 3.00000*ALGBRC(71)
      RATES(2) = - ALGBRC(75)/( CONSTS(10)*CONSTS(6)*CONSTS(3))
      ALGBRC(15) =  (( CONSTS(5)*CONSTS(4))/( 1.00000*CONSTS(6)))*log(CONSTS(8)/STATES(3))
      ALGBRC(17) =  3.30000*EXP((STATES(1) - (ALGBRC(15)+6.00000))/15.0000)
      ALGBRC(19) =  26.0000*EXP((STATES(1) - (ALGBRC(15)+6.00000))/52.0000)
      ALGBRC(21) = ALGBRC(17)/(ALGBRC(17)+ALGBRC(19))
      ALGBRC(23) = 1.00000/(1.00000+ 0.100000*EXP((STATES(1) - ALGBRC(15))/15.0000)+ 0.0480000*EXP((STATES(1) - ALGBRC(15))/7.00000))
      ALGBRC(25) = 2.50000/( 4.70000*EXP((STATES(1) - ALGBRC(15))/28.7000))
      ALGBRC(27) = 2.50000/( 6.00000*EXP((ALGBRC(15) - STATES(1))/25.8000))
      ALGBRC(29) = ALGBRC(25)+ALGBRC(27)
      ALGBRC(31) =  ALGBRC(23)*ALGBRC(29)
      ALGBRC(33) = ALGBRC(29) - ALGBRC(31)
      ALGBRC(35) = ALGBRC(31)/( (ALGBRC(31)+ALGBRC(33))*1.00000 - ALGBRC(21) ** 3.00000)
      ALGBRC(37) =  CONSTS(13)*CONSTS(8)/5.40000 ** 0.620000*(STATES(1) - ALGBRC(15))*ALGBRC(35)*ALGBRC(21)
      ALGBRC(8) =  (( CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((STATES(3) -  CONSTS(8)*EXP(( - CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(43) =  0.00100000*CONSTS(14)*ALGBRC(8)*STATES(5)*STATES(6)
      ALGBRC(63) =  0.360000*CONSTS(16)*ALGBRC(8)*ALGBRC(61)
      ALGBRC(76) = (ALGBRC(37)+ALGBRC(43)+ALGBRC(63)) -  2.00000*ALGBRC(73)
      RATES(3) = - ALGBRC(76)/( CONSTS(11)*CONSTS(6)*CONSTS(3))
      ALGBRC(12) =  (( CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((ALGBRC(1) -  CONSTS(9)*EXP(( - CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(40) =  CONSTS(14)*ALGBRC(12)*STATES(5)*STATES(6)
      ALGBRC(49) = ALGBRC(40)+ALGBRC(43)+ALGBRC(46)
      ALGBRC(50) = 1.00000/(1.00000+EXP(- (STATES(1)+23.0000)/6.10000))
      ALGBRC(51) =  (4.43000 - 0.660000)*EXP(- STATES(1)+150.000 ** 2.00000/7118.00)+0.660000
      ALGBRC(52) = ALGBRC(50)/(ALGBRC(51)+10.0000 ** -20.0000)
      ALGBRC(53) = (1.00000 - ALGBRC(50))/(ALGBRC(51)+10.0000 ** -20.0000)
      ALGBRC(54) = ALGBRC(52)/(ALGBRC(52)+ALGBRC(53))
      ALGBRC(55) = 1.00000/(1.00000+EXP(- (STATES(1)+75.0000)/- 6.60000))
      ALGBRC(56) =  (40.8000 - 0.840000)*EXP(- STATES(1)+106.000 ** 2.00000/2292.00)+0.840000
      ALGBRC(57) = ALGBRC(55)/(ALGBRC(56)+10.0000 ** -20.0000)
      ALGBRC(58) = (1.00000 - ALGBRC(55))/(ALGBRC(56)+10.0000 ** -20.0000)
      ALGBRC(59) = ALGBRC(57)/(ALGBRC(57)+ALGBRC(58))
      ALGBRC(60) =  CONSTS(15)*ALGBRC(12)*ALGBRC(54)*ALGBRC(59)
      ALGBRC(62) =  CONSTS(16)*ALGBRC(12)*ALGBRC(61)
      ALGBRC(65) = ALGBRC(62)+ALGBRC(63)+ALGBRC(64)
      ALGBRC(74) = CONSTS(26)/(1.00000+CONSTS(27)/ALGBRC(1) ** 2.00000)
      ALGBRC(77) = ALGBRC(71)+ALGBRC(73)+ALGBRC(74)+ALGBRC(60)+ALGBRC(65)+ALGBRC(37)+ALGBRC(49)
      RATES(1) = - (ALGBRC(77)+CONSTS(1))/CONSTS(2)
      ALGBRC(79) = 0.0100000/(1.00000+CONSTS(29)/STATES(8))
      ALGBRC(80) = 1.00000/(1.00000+CONSTS(30)/ALGBRC(1))
      ALGBRC(81) =  1.50000*CONSTS(28)*( ALGBRC(80)*(1.00000 - STATES(9)) -  ALGBRC(79)*STATES(9))
      ALGBRC(85) =  CONSTS(32)*(STATES(8) - ALGBRC(1))
      ALGBRC(83) =  2.80000*CONSTS(31)*(STATES(8) - STATES(10))
      RATES(8) = (ALGBRC(81) - (ALGBRC(83)+ALGBRC(85)))/( CONSTS(12)*CONSTS(50)*CONSTS(6))
      ALGBRC(78) = (ALGBRC(40)+ALGBRC(60)+ALGBRC(62)+ALGBRC(74)) -  2.00000*ALGBRC(71)
      ALGBRC(87) =  CONSTS(33)*(STATES(10) - ALGBRC(1))*STATES(11)
      RATES(4) = - ((ALGBRC(78)+ALGBRC(81)) - (ALGBRC(87)+ALGBRC(85)))/( CONSTS(12)*CONSTS(6)*CONSTS(3))
      ALGBRC(84) = 0.0100000/(1.00000+ALGBRC(1)/CONSTS(30))
      ALGBRC(86) = ALGBRC(80)+ALGBRC(84)
      ALGBRC(82) = 1.00000/(1.00000+STATES(8)/CONSTS(29))
      ALGBRC(88) = ALGBRC(79)+ALGBRC(82)
      RATES(9) =  ALGBRC(86)*(1.00000 - STATES(9)) -  ALGBRC(88)*STATES(9)
      RATES(10) = (ALGBRC(83) - ALGBRC(87))/( CONSTS(12)*CONSTS(51)*CONSTS(6))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(2) = TERNRY(STATES(1).EQ.-30.0000,  0.00217500*((STATES(1)+30.0000)/(1.00000 - EXP((STATES(1)+30.0000)/- 2.50000))), 0.00418927)
      ALGBRC(4) = TERNRY(STATES(1).EQ.0.00000, 0.00157896,  0.000631500*(STATES(1)/(EXP(STATES(1)/2.50000) - 1.00000)))
      ALGBRC(5) = TERNRY(STATES(1).EQ.-34.0000, 1.00010e-05,  1.77500e-06*((STATES(1)+34.0000)/(EXP((STATES(1)+34.0000)/5.63300) - 1.00000)))
      ALGBRC(1) = TERNRY(STATES(4).LE.0.00000, 1.00000e-12, STATES(4))
      ALGBRC(9) =  0.427000*ALGBRC(1)*((STATES(1)+64.0000)/(EXP((STATES(1)+44.0000)/- 4.16000)+1.00000))
      ALGBRC(7) =  0.200000*EXP((STATES(1)+48.5000)/18.1000)*(ALGBRC(1)/(ALGBRC(1)+CONSTS(41)))
      ALGBRC(11) =  0.500000*EXP((STATES(1)+100.000)/-28.5000)
      ALGBRC(14) =  0.00350000*EXP((STATES(1)+100.000)/-25.5000)
      ALGBRC(10) =  0.0250000*STATES(13)/0.00100000 ** 3.00000*(STATES(10)/1.00000)
      ALGBRC(13) = ALGBRC(10)
      ALGBRC(6) =  0.147000*ALGBRC(1)/5.70000e-05 ** 3.00000
      ALGBRC(16) = ALGBRC(6)
      ALGBRC(22) = CONSTS(42)+CONSTS(45)+CONSTS(47)+ALGBRC(16)+ALGBRC(13)+CONSTS(46)
      ALGBRC(24) = ALGBRC(22) ** 2.00000 -  4.00000*( (ALGBRC(13)+CONSTS(46)+ALGBRC(16))*(CONSTS(45)+CONSTS(42)+CONSTS(47)) -  (CONSTS(47) - ALGBRC(13))*(ALGBRC(16)+CONSTS(45)))
      ALGBRC(26) = (ALGBRC(22)+ABS(ALGBRC(24)) ** 0.500000)/2.00000
      ALGBRC(30) = CONSTS(47) - ALGBRC(13)
      ALGBRC(32) = - (ALGBRC(13)+CONSTS(46)+ALGBRC(16))
      ALGBRC(34) = ALGBRC(13)
      ALGBRC(36) = ALGBRC(16) - CONSTS(45)
      ALGBRC(38) = ( ALGBRC(32)*CONSTS(49) -  ALGBRC(34)*ALGBRC(36))/( ALGBRC(30)*ALGBRC(36) -  ALGBRC(32)*CONSTS(48))
      ALGBRC(28) = (ALGBRC(22) - ABS(ALGBRC(24)) ** 0.500000)/2.00000
      ALGBRC(18) =  ALGBRC(6)*STATES(12) -  CONSTS(34)*STATES(11)
      ALGBRC(41) = ((ALGBRC(18)+ ALGBRC(28)*STATES(11)) -  ALGBRC(38)*ALGBRC(28))/(ALGBRC(28) - ALGBRC(26))
      ALGBRC(44) = ((ALGBRC(18)+ ALGBRC(26)*STATES(11)) -  ALGBRC(38)*ALGBRC(26))/(ALGBRC(26) - ALGBRC(28))
      ALGBRC(47) =  ALGBRC(41)*EXP( - ALGBRC(26)*CONSTS(36))+ ALGBRC(44)*EXP( - ALGBRC(28)*CONSTS(36))+ALGBRC(38)
      ALGBRC(39) = ( ALGBRC(30)*CONSTS(49) -  ALGBRC(34)*CONSTS(48))/( ALGBRC(32)*CONSTS(48) -  ALGBRC(30)*ALGBRC(36))
      ALGBRC(20) =  ALGBRC(10)*(1.00000 - (STATES(12)+STATES(11))) -  (CONSTS(35)+ALGBRC(6))*STATES(12)
      ALGBRC(42) = ((ALGBRC(20)+ ALGBRC(28)*STATES(12)) -  ALGBRC(39)*ALGBRC(28))/(ALGBRC(28) - ALGBRC(26))
      ALGBRC(45) = ((ALGBRC(20)+ ALGBRC(26)*STATES(12)) -  ALGBRC(39)*ALGBRC(26))/(ALGBRC(26) - ALGBRC(28))
      ALGBRC(48) =  ALGBRC(42)*EXP( - ALGBRC(26)*CONSTS(36))+ ALGBRC(45)*EXP( - ALGBRC(28)*CONSTS(36))+ALGBRC(39)
      ALGBRC(70) =  CONSTS(43)*EXP( (0.320000 - 1.00000)*(STATES(1)/(( CONSTS(5)*CONSTS(4))/CONSTS(6))))
      ALGBRC(72) =  1.00000*(ALGBRC(70)+CONSTS(44))
      ALGBRC(67) = 1.00000/(1.00000+(1.00000+STATES(2) ** 3.00000/CONSTS(19))/(ALGBRC(1)/CONSTS(21)))
      ALGBRC(66) = 1.00000/(1.00000+(1.00000+ALGBRC(1)/CONSTS(21))/(STATES(2) ** 3.00000/CONSTS(19)))
      ALGBRC(68) =  ALGBRC(66)*EXP( 0.320000*(STATES(1)/(( CONSTS(5)*CONSTS(4))/CONSTS(6))))
      ALGBRC(69) =  1.00000*(ALGBRC(68)+ALGBRC(67))
      ALGBRC(71) =  CONSTS(18)*( ALGBRC(68)*STATES(7) -  ALGBRC(70)*(1.00000 - STATES(7)))
      ALGBRC(73) =  (CONSTS(23)/(1.00000+CONSTS(24)/STATES(2) ** 1.36000))*((1.00000 - (STATES(1)+50.0000)/250.000 ** 2.00000)/(1.00000+CONSTS(25)/CONSTS(8)))
      ALGBRC(3) =  (( CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((STATES(2) -  CONSTS(7)*EXP(( - CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(10)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(46) =  5.00000e-05*CONSTS(14)*ALGBRC(3)*STATES(5)*STATES(6)
      ALGBRC(61) = 0.00170000+(1.00000 - 0.00170000)/(1.00000+CONSTS(17)/ALGBRC(1))
      ALGBRC(64) =  0.400000*CONSTS(16)*ALGBRC(3)*ALGBRC(61)
      ALGBRC(75) = ALGBRC(46)+ALGBRC(64)+ 3.00000*ALGBRC(73)+ 3.00000*ALGBRC(71)
      ALGBRC(15) =  (( CONSTS(5)*CONSTS(4))/( 1.00000*CONSTS(6)))*log(CONSTS(8)/STATES(3))
      ALGBRC(17) =  3.30000*EXP((STATES(1) - (ALGBRC(15)+6.00000))/15.0000)
      ALGBRC(19) =  26.0000*EXP((STATES(1) - (ALGBRC(15)+6.00000))/52.0000)
      ALGBRC(21) = ALGBRC(17)/(ALGBRC(17)+ALGBRC(19))
      ALGBRC(23) = 1.00000/(1.00000+ 0.100000*EXP((STATES(1) - ALGBRC(15))/15.0000)+ 0.0480000*EXP((STATES(1) - ALGBRC(15))/7.00000))
      ALGBRC(25) = 2.50000/( 4.70000*EXP((STATES(1) - ALGBRC(15))/28.7000))
      ALGBRC(27) = 2.50000/( 6.00000*EXP((ALGBRC(15) - STATES(1))/25.8000))
      ALGBRC(29) = ALGBRC(25)+ALGBRC(27)
      ALGBRC(31) =  ALGBRC(23)*ALGBRC(29)
      ALGBRC(33) = ALGBRC(29) - ALGBRC(31)
      ALGBRC(35) = ALGBRC(31)/( (ALGBRC(31)+ALGBRC(33))*1.00000 - ALGBRC(21) ** 3.00000)
      ALGBRC(37) =  CONSTS(13)*CONSTS(8)/5.40000 ** 0.620000*(STATES(1) - ALGBRC(15))*ALGBRC(35)*ALGBRC(21)
      ALGBRC(8) =  (( CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((STATES(3) -  CONSTS(8)*EXP(( - CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(11)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(43) =  0.00100000*CONSTS(14)*ALGBRC(8)*STATES(5)*STATES(6)
      ALGBRC(63) =  0.360000*CONSTS(16)*ALGBRC(8)*ALGBRC(61)
      ALGBRC(76) = (ALGBRC(37)+ALGBRC(43)+ALGBRC(63)) -  2.00000*ALGBRC(73)
      ALGBRC(12) =  (( CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))*((ALGBRC(1) -  CONSTS(9)*EXP(( - CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4))))/(1.00000 - EXP(( - CONSTS(12)*CONSTS(6)*STATES(1))/( CONSTS(5)*CONSTS(4)))))
      ALGBRC(40) =  CONSTS(14)*ALGBRC(12)*STATES(5)*STATES(6)
      ALGBRC(49) = ALGBRC(40)+ALGBRC(43)+ALGBRC(46)
      ALGBRC(50) = 1.00000/(1.00000+EXP(- (STATES(1)+23.0000)/6.10000))
      ALGBRC(51) =  (4.43000 - 0.660000)*EXP(- STATES(1)+150.000 ** 2.00000/7118.00)+0.660000
      ALGBRC(52) = ALGBRC(50)/(ALGBRC(51)+10.0000 ** -20.0000)
      ALGBRC(53) = (1.00000 - ALGBRC(50))/(ALGBRC(51)+10.0000 ** -20.0000)
      ALGBRC(54) = ALGBRC(52)/(ALGBRC(52)+ALGBRC(53))
      ALGBRC(55) = 1.00000/(1.00000+EXP(- (STATES(1)+75.0000)/- 6.60000))
      ALGBRC(56) =  (40.8000 - 0.840000)*EXP(- STATES(1)+106.000 ** 2.00000/2292.00)+0.840000
      ALGBRC(57) = ALGBRC(55)/(ALGBRC(56)+10.0000 ** -20.0000)
      ALGBRC(58) = (1.00000 - ALGBRC(55))/(ALGBRC(56)+10.0000 ** -20.0000)
      ALGBRC(59) = ALGBRC(57)/(ALGBRC(57)+ALGBRC(58))
      ALGBRC(60) =  CONSTS(15)*ALGBRC(12)*ALGBRC(54)*ALGBRC(59)
      ALGBRC(62) =  CONSTS(16)*ALGBRC(12)*ALGBRC(61)
      ALGBRC(65) = ALGBRC(62)+ALGBRC(63)+ALGBRC(64)
      ALGBRC(74) = CONSTS(26)/(1.00000+CONSTS(27)/ALGBRC(1) ** 2.00000)
      ALGBRC(77) = ALGBRC(71)+ALGBRC(73)+ALGBRC(74)+ALGBRC(60)+ALGBRC(65)+ALGBRC(37)+ALGBRC(49)
      ALGBRC(79) = 0.0100000/(1.00000+CONSTS(29)/STATES(8))
      ALGBRC(80) = 1.00000/(1.00000+CONSTS(30)/ALGBRC(1))
      ALGBRC(81) =  1.50000*CONSTS(28)*( ALGBRC(80)*(1.00000 - STATES(9)) -  ALGBRC(79)*STATES(9))
      ALGBRC(85) =  CONSTS(32)*(STATES(8) - ALGBRC(1))
      ALGBRC(83) =  2.80000*CONSTS(31)*(STATES(8) - STATES(10))
      ALGBRC(78) = (ALGBRC(40)+ALGBRC(60)+ALGBRC(62)+ALGBRC(74)) -  2.00000*ALGBRC(71)
      ALGBRC(87) =  CONSTS(33)*(STATES(10) - ALGBRC(1))*STATES(11)
      ALGBRC(84) = 0.0100000/(1.00000+ALGBRC(1)/CONSTS(30))
      ALGBRC(86) = ALGBRC(80)+ALGBRC(84)
      ALGBRC(82) = 1.00000/(1.00000+STATES(8)/CONSTS(29))
      ALGBRC(88) = ALGBRC(79)+ALGBRC(82)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END