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 58 entries in the algebraic variable array.
C There are a total of 12 entries in each of the rate and state variable arrays.
C There are a total of 60 entries in the constant variable array.
C
C
C VOI is time in component environment (ms).
C STATES(1) is V in component membrane (mV).
C CONSTS(1) is R in component membrane (gas_constant_units).
C CONSTS(2) is T in component membrane (kelvin).
C CONSTS(3) is F in component membrane (faradays_constant_units).
C ALGBRC(54) is dV_dt in component membrane (mV_per_ms).
C CONSTS(4) is Cm in component membrane (uF_per_mm2).
C ALGBRC(4) is I_st in component membrane (uA_per_mm2).
C ALGBRC(15) is i_Na in component fast_sodium_current (uA_per_mm2).
C ALGBRC(27) is i_Ca_L in component L_type_Ca_channel (uA_per_mm2).
C ALGBRC(30) is i_K in component time_dependent_potassium_current (uA_per_mm2).
C ALGBRC(53) is i_NaCa in component Na_Ca_exchanger (uA_per_mm2).
C ALGBRC(35) is i_K1 in component time_independent_potassium_current (uA_per_mm2).
C ALGBRC(38) is i_Kp in component plateau_potassium_current (uA_per_mm2).
C ALGBRC(39) is i_p_Ca in component sarcolemmal_calcium_pump (uA_per_mm2).
C ALGBRC(41) is i_Na_b in component sodium_background_current (uA_per_mm2).
C ALGBRC(43) is i_Ca_b in component calcium_background_current (uA_per_mm2).
C ALGBRC(45) is i_NaK in component sodium_potassium_pump (uA_per_mm2).
C ALGBRC(52) is i_ns_Ca in component non_specific_calcium_activated_current (uA_per_mm2).
C CONSTS(5) is stimPeriod in component membrane (dimensionless).
C CONSTS(6) is stimDuration in component membrane (dimensionless).
C CONSTS(7) is stimCurrent in component membrane (dimensionless).
C ALGBRC(11) is E_Na in component fast_sodium_current (mV).
C CONSTS(8) is g_Na in component fast_sodium_current (mS_per_mm2).
C STATES(2) is Nai in component ionic_concentrations (mM).
C CONSTS(9) is Nao in component ionic_concentrations (mM).
C STATES(3) is m in component fast_sodium_current_m_gate (dimensionless).
C STATES(4) is h in component fast_sodium_current_h_gate (dimensionless).
C STATES(5) is j in component fast_sodium_current_j_gate (dimensionless).
C ALGBRC(1) is alpha_m in component fast_sodium_current_m_gate (per_ms).
C ALGBRC(8) is beta_m in component fast_sodium_current_m_gate (per_ms).
C ALGBRC(2) is alpha_h in component fast_sodium_current_h_gate (per_ms).
C ALGBRC(9) is beta_h in component fast_sodium_current_h_gate (per_ms).
C ALGBRC(3) is alpha_j in component fast_sodium_current_j_gate (per_ms).
C ALGBRC(10) is beta_j in component fast_sodium_current_j_gate (per_ms).
C ALGBRC(24) is i_CaCa in component L_type_Ca_channel (uA_per_mm2).
C ALGBRC(26) is i_CaK in component L_type_Ca_channel (uA_per_mm2).
C ALGBRC(25) is i_CaNa in component L_type_Ca_channel (uA_per_mm2).
C CONSTS(10) is gamma_Nai in component L_type_Ca_channel (dimensionless).
C CONSTS(11) is gamma_Nao in component L_type_Ca_channel (dimensionless).
C CONSTS(12) is gamma_Ki in component L_type_Ca_channel (dimensionless).
C CONSTS(13) is gamma_Ko in component L_type_Ca_channel (dimensionless).
C ALGBRC(18) is I_CaCa in component L_type_Ca_channel (uA_per_mm2).
C ALGBRC(22) is I_CaK in component L_type_Ca_channel (uA_per_mm2).
C ALGBRC(21) is I_CaNa in component L_type_Ca_channel (uA_per_mm2).
C CONSTS(14) is P_Ca in component L_type_Ca_channel (mm_per_ms).
C CONSTS(15) is P_Na in component L_type_Ca_channel (mm_per_ms).
C CONSTS(16) is P_K in component L_type_Ca_channel (mm_per_ms).
C CONSTS(17) is gamma_Cai in component L_type_Ca_channel (dimensionless).
C CONSTS(18) is gamma_Cao in component L_type_Ca_channel (dimensionless).
C STATES(6) is Cai in component ionic_concentrations (mM).
C CONSTS(19) is Cao in component ionic_concentrations (mM).
C CONSTS(20) is Ko in component ionic_concentrations (mM).
C STATES(7) is Ki in component ionic_concentrations (mM).
C STATES(8) is d in component L_type_Ca_channel_d_gate (dimensionless).
C STATES(9) is f in component L_type_Ca_channel_f_gate (dimensionless).
C ALGBRC(23) is f_Ca in component L_type_Ca_channel_f_Ca_gate (dimensionless).
C ALGBRC(16) is alpha_d in component L_type_Ca_channel_d_gate (per_ms).
C ALGBRC(19) is beta_d in component L_type_Ca_channel_d_gate (per_ms).
C ALGBRC(5) is d_infinity in component L_type_Ca_channel_d_gate (dimensionless).
C ALGBRC(12) is tau_d in component L_type_Ca_channel_d_gate (ms).
C ALGBRC(17) is alpha_f in component L_type_Ca_channel_f_gate (per_ms).
C ALGBRC(20) is beta_f in component L_type_Ca_channel_f_gate (per_ms).
C ALGBRC(6) is f_infinity in component L_type_Ca_channel_f_gate (dimensionless).
C ALGBRC(13) is tau_f in component L_type_Ca_channel_f_gate (ms).
C CONSTS(21) is Km_Ca in component L_type_Ca_channel_f_Ca_gate (mM).
C CONSTS(22) is g_K_max in component time_dependent_potassium_current (mS_per_mm2).
C CONSTS(55) is g_K in component time_dependent_potassium_current (mS_per_mm2).
C ALGBRC(28) is E_K in component time_dependent_potassium_current (mV).
C CONSTS(23) is PR_NaK in component time_dependent_potassium_current (dimensionless).
C STATES(10) is X in component time_dependent_potassium_current_X_gate (dimensionless).
C ALGBRC(29) is Xi in component time_dependent_potassium_current_Xi_gate (dimensionless).
C ALGBRC(7) is alpha_X in component time_dependent_potassium_current_X_gate (per_ms).
C ALGBRC(14) is beta_X in component time_dependent_potassium_current_X_gate (per_ms).
C ALGBRC(31) is E_K1 in component time_independent_potassium_current (mV).
C CONSTS(24) is g_K1_max in component time_independent_potassium_current (mS_per_mm2).
C CONSTS(56) is g_K1 in component time_independent_potassium_current (mS_per_mm2).
C ALGBRC(34) is K1_infinity in component time_independent_potassium_current_K1_gate (dimensionless).
C ALGBRC(32) is alpha_K1 in component time_independent_potassium_current_K1_gate (per_ms).
C ALGBRC(33) is beta_K1 in component time_independent_potassium_current_K1_gate (per_ms).
C ALGBRC(36) is E_Kp in component plateau_potassium_current (mV).
C CONSTS(25) is g_Kp in component plateau_potassium_current (mS_per_mm2).
C ALGBRC(37) is Kp in component plateau_potassium_current (dimensionless).
C CONSTS(26) is K_mpCa in component sarcolemmal_calcium_pump (mM).
C CONSTS(27) is I_pCa in component sarcolemmal_calcium_pump (uA_per_mm2).
C CONSTS(28) is g_Nab in component sodium_background_current (mS_per_mm2).
C ALGBRC(40) is E_NaN in component sodium_background_current (mV).
C CONSTS(29) is g_Cab in component calcium_background_current (mS_per_mm2).
C ALGBRC(42) is E_CaN in component calcium_background_current (mV).
C CONSTS(30) is I_NaK in component sodium_potassium_pump (uA_per_mm2).
C ALGBRC(44) is f_NaK in component sodium_potassium_pump (dimensionless).
C CONSTS(31) is K_mNai in component sodium_potassium_pump (mM).
C CONSTS(32) is K_mKo in component sodium_potassium_pump (mM).
C CONSTS(57) is sigma in component sodium_potassium_pump (dimensionless).
C ALGBRC(49) is i_ns_Na in component non_specific_calcium_activated_current (uA_per_mm2).
C ALGBRC(51) is i_ns_K in component non_specific_calcium_activated_current (uA_per_mm2).
C CONSTS(33) is P_ns_Ca in component non_specific_calcium_activated_current (mm_per_ms).
C ALGBRC(48) is I_ns_Na in component non_specific_calcium_activated_current (uA_per_mm2).
C ALGBRC(50) is I_ns_K in component non_specific_calcium_activated_current (uA_per_mm2).
C CONSTS(34) is K_m_ns_Ca in component non_specific_calcium_activated_current (mM).
C ALGBRC(47) is Vns in component non_specific_calcium_activated_current (mV).
C ALGBRC(46) is EnsCa in component non_specific_calcium_activated_current (mV).
C CONSTS(35) is K_NaCa in component Na_Ca_exchanger (uA_per_mm2).
C CONSTS(36) is K_mNa in component Na_Ca_exchanger (mM).
C CONSTS(37) is K_mCa in component Na_Ca_exchanger (mM).
C CONSTS(38) is K_sat in component Na_Ca_exchanger (dimensionless).
C CONSTS(39) is eta in component Na_Ca_exchanger (dimensionless).
C ALGBRC(55) is i_rel in component calcium_fluxes_in_the_SR (mM_per_ms).
C ALGBRC(56) is i_up in component calcium_fluxes_in_the_SR (mM_per_ms).
C ALGBRC(57) is i_leak in component calcium_fluxes_in_the_SR (mM_per_ms).
C ALGBRC(58) is i_tr in component calcium_fluxes_in_the_SR (mM_per_ms).
C CONSTS(60) is G_rel in component calcium_fluxes_in_the_SR (per_ms).
C CONSTS(58) is G_rel_peak in component calcium_fluxes_in_the_SR (per_ms).
C CONSTS(40) is G_rel_max in component calcium_fluxes_in_the_SR (per_ms).
C CONSTS(41) is tau_on in component calcium_fluxes_in_the_SR (ms).
C CONSTS(42) is tau_off in component calcium_fluxes_in_the_SR (ms).
C CONSTS(43) is t_CICR in component calcium_fluxes_in_the_SR (ms).
C CONSTS(44) is tau_tr in component calcium_fluxes_in_the_SR (ms).
C CONSTS(45) is K_mrel in component calcium_fluxes_in_the_SR (mM).
C CONSTS(46) is K_mup in component calcium_fluxes_in_the_SR (mM).
C CONSTS(59) is K_leak in component calcium_fluxes_in_the_SR (per_ms).
C CONSTS(47) is I_up in component calcium_fluxes_in_the_SR (mM_per_ms).
C CONSTS(48) is Ca_NSR_max in component calcium_fluxes_in_the_SR (mM).
C CONSTS(49) is delta_Ca_i2 in component calcium_fluxes_in_the_SR (mM).
C CONSTS(50) is delta_Ca_ith in component calcium_fluxes_in_the_SR (mM).
C STATES(11) is Ca_JSR in component ionic_concentrations (mM).
C STATES(12) is Ca_NSR in component ionic_concentrations (mM).
C CONSTS(51) is Am in component ionic_concentrations (per_mm).
C CONSTS(52) is V_myo in component ionic_concentrations (dimensionless).
C CONSTS(53) is V_JSR in component ionic_concentrations (dimensionless).
C CONSTS(54) is V_NSR in component ionic_concentrations (dimensionless).
C RATES(1) is d/dt V in component membrane (mV).
C RATES(3) is d/dt m in component fast_sodium_current_m_gate (dimensionless).
C RATES(4) is d/dt h in component fast_sodium_current_h_gate (dimensionless).
C RATES(5) is d/dt j in component fast_sodium_current_j_gate (dimensionless).
C RATES(8) is d/dt d in component L_type_Ca_channel_d_gate (dimensionless).
C RATES(9) is d/dt f in component L_type_Ca_channel_f_gate (dimensionless).
C RATES(10) is d/dt X in component time_dependent_potassium_current_X_gate (dimensionless).
C RATES(2) is d/dt Nai in component ionic_concentrations (mM).
C RATES(6) is d/dt Cai in component ionic_concentrations (mM).
C RATES(7) is d/dt Ki in component ionic_concentrations (mM).
C RATES(11) is d/dt Ca_JSR in component ionic_concentrations (mM).
C RATES(12) is d/dt Ca_NSR in component ionic_concentrations (mM).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = -84.624
      CONSTS(1) = 8.3145e3
      CONSTS(2) = 310.0
      CONSTS(3) = 96845.0
      CONSTS(4) = 0.01
      CONSTS(5) = 1e3
      CONSTS(6) = 0.5
      CONSTS(7) = 0.5
      CONSTS(8) = 0.16
      STATES(2) = 10.0
      CONSTS(9) = 140.0
      STATES(3) = 0.0
      STATES(4) = 1.0
      STATES(5) = 1.0
      CONSTS(10) = 0.75
      CONSTS(11) = 0.75
      CONSTS(12) = 0.75
      CONSTS(13) = 0.75
      CONSTS(14) = 5.4e-6
      CONSTS(15) = 6.75e-9
      CONSTS(16) = 1.93e-9
      CONSTS(17) = 1.0
      CONSTS(18) = 0.34
      STATES(6) = 0.12e-3
      CONSTS(19) = 1.8
      CONSTS(20) = 5.4
      STATES(7) = 145.0
      STATES(8) = 0.0
      STATES(9) = 1.0
      CONSTS(21) = 0.6e-3
      CONSTS(22) = 2.82e-3
      CONSTS(23) = 0.01833
      STATES(10) = 0.0
      CONSTS(24) = 7.5e-3
      CONSTS(25) = 1.83e-4
      CONSTS(26) = 0.5e-3
      CONSTS(27) = 1.15e-2
      CONSTS(28) = 1.41e-5
      CONSTS(29) = 3.016e-5
      CONSTS(30) = 1.5e-2
      CONSTS(31) = 10.0
      CONSTS(32) = 1.5
      CONSTS(33) = 1.75e-9
      CONSTS(34) = 1.2e-3
      CONSTS(35) = 20.0
      CONSTS(36) = 87.5
      CONSTS(37) = 1.38
      CONSTS(38) = 0.1
      CONSTS(39) = 0.35
      CONSTS(40) = 60.0
      CONSTS(41) = 2.0
      CONSTS(42) = 2.0
      CONSTS(43) = 0.0
      CONSTS(44) = 180.0
      CONSTS(45) = 0.8e-3
      CONSTS(46) = 0.92e-3
      CONSTS(47) = 0.005
      CONSTS(48) = 15.0
      CONSTS(49) = 0.0
      CONSTS(50) = 0.18e-3
      STATES(11) = 1.8
      STATES(12) = 1.8
      CONSTS(51) = 200
      CONSTS(52) = 0.68
      CONSTS(53) = 0.0048
      CONSTS(54) = 0.0552
      CONSTS(55) =  CONSTS(22)* (CONSTS(20)/5.40000) ** (1.0 / 2)
      CONSTS(56) =  CONSTS(24)* (CONSTS(20)/5.40000) ** (1.0 / 2)
      CONSTS(57) =  (1.00000/7.00000)*(EXP(CONSTS(9)/67.3000) - 1.00000)
      CONSTS(58) = TERNRY(CONSTS(49).LT.CONSTS(50), 0.00000, CONSTS(40))
      CONSTS(59) = CONSTS(47)/CONSTS(48)
      CONSTS(60) =  CONSTS(58)*((CONSTS(49) - CONSTS(50))/((CONSTS(45)+CONSTS(49)) - CONSTS(50)))*(1.00000 - EXP(- (CONSTS(43)/CONSTS(41))))*EXP(- (CONSTS(43)/CONSTS(42)))
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( -0.100000*(STATES(1)+47.1300)))
      ALGBRC(8) =  0.0800000*EXP(- STATES(1)/11.0000)
      RATES(3) =  ALGBRC(1)*(1.00000 - STATES(3)) -  ALGBRC(8)*STATES(3)
      ALGBRC(2) = TERNRY(STATES(1).LT.-40.0000,  0.135000*EXP((80.0000+STATES(1))/-6.80000), 0.00000)
      ALGBRC(9) = TERNRY(STATES(1).LT.-40.0000,  3.56000*EXP( 0.0790000*STATES(1))+ 310000.*EXP( 0.350000*STATES(1)), 1.00000/( 0.130000*(1.00000+EXP((STATES(1)+10.6600)/-11.1000))))
      RATES(4) =  ALGBRC(2)*(1.00000 - STATES(4)) -  ALGBRC(9)*STATES(4)
      ALGBRC(3) = TERNRY(STATES(1).LT.-40.0000,  ( -127140.*EXP( 0.244400*STATES(1)) -  3.47400e-05*EXP( -0.0439100*STATES(1)))*((STATES(1)+37.7800)/(1.00000+EXP( 0.311000*(STATES(1)+79.2300)))), 0.00000)
      ALGBRC(10) = TERNRY(STATES(1).LT.-40.0000, ( 0.121200*EXP( -0.0105200*STATES(1)))/(1.00000+EXP( -0.137800*(STATES(1)+40.1400))), ( 0.300000*EXP( -2.53500e-07*STATES(1)))/(1.00000+EXP( -0.100000*(STATES(1)+32.0000))))
      RATES(5) =  ALGBRC(3)*(1.00000 - STATES(5)) -  ALGBRC(10)*STATES(5)
      ALGBRC(7) = ( 7.19000e-05*(STATES(1)+30.0000))/(1.00000 - EXP( -0.148000*(STATES(1)+30.0000)))
      ALGBRC(14) = ( 0.000131000*(STATES(1)+30.0000))/(-1.00000+EXP( 0.0687000*(STATES(1)+30.0000)))
      RATES(10) =  ALGBRC(7)*(1.00000 - STATES(10)) -  ALGBRC(14)*STATES(10)
      ALGBRC(5) = 1.00000/(1.00000+EXP(- ((STATES(1)+10.0000)/6.24000)))
      ALGBRC(12) =  ALGBRC(5)*((1.00000 - EXP(- ((STATES(1)+10.0000)/6.24000)))/( 0.0350000*(STATES(1)+10.0000)))
      ALGBRC(16) = ALGBRC(5)/ALGBRC(12)
      ALGBRC(19) = (1.00000 - ALGBRC(5))/ALGBRC(12)
      RATES(8) =  ALGBRC(16)*(1.00000 - STATES(8)) -  ALGBRC(19)*STATES(8)
      ALGBRC(6) = 1.00000/(1.00000+EXP((STATES(1)+35.0600)/8.60000))+0.600000/(1.00000+EXP((50.0000 - STATES(1))/20.0000))
      ALGBRC(13) = 1.00000/( 0.0197000*EXP(-  0.0337000*(STATES(1)+10.0000) ** 2.00000)+0.0200000)
      ALGBRC(17) = ALGBRC(6)/ALGBRC(13)
      ALGBRC(20) = (1.00000 - ALGBRC(6))/ALGBRC(13)
      RATES(9) =  ALGBRC(17)*(1.00000 - STATES(9)) -  ALGBRC(20)*STATES(9)
      ALGBRC(28) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(20)+ CONSTS(23)*CONSTS(9))/(STATES(7)+ CONSTS(23)*STATES(2)))
      ALGBRC(29) = 1.00000/(1.00000+EXP((STATES(1) - 56.2600)/32.1000))
      ALGBRC(30) =  CONSTS(55)*STATES(10) ** 2.00000*ALGBRC(29)*(STATES(1) - ALGBRC(28))
      ALGBRC(31) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(20)/STATES(7))
      ALGBRC(32) = 1.02000/(1.00000+EXP( 0.238500*((STATES(1) - ALGBRC(31)) - 59.2150)))
      ALGBRC(33) = ( 0.491240*EXP( 0.0803200*((STATES(1)+5.47600) - ALGBRC(31)))+EXP( 0.0617500*(STATES(1) - (ALGBRC(31)+594.310))))/(1.00000+EXP( -0.514300*((STATES(1) - ALGBRC(31))+4.75300)))
      ALGBRC(34) = ALGBRC(32)/(ALGBRC(32)+ALGBRC(33))
      ALGBRC(35) =  CONSTS(56)*ALGBRC(34)*(STATES(1) - ALGBRC(31))
      ALGBRC(36) = ALGBRC(31)
      ALGBRC(37) = 1.00000/(1.00000+EXP((7.48800 - STATES(1))/5.98000))
      ALGBRC(38) =  CONSTS(25)*ALGBRC(37)*(STATES(1) - ALGBRC(36))
      ALGBRC(44) = 1.00000/((1.00000+ 0.124500*EXP( -0.100000*(( STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))+ 0.0365000*CONSTS(57)*EXP(- (( STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))
      ALGBRC(45) =  CONSTS(30)*ALGBRC(44)*(1.00000/(1.00000+CONSTS(31)/STATES(2) ** 1.50000))*(CONSTS(20)/(CONSTS(20)+CONSTS(32)))
      ALGBRC(22) =  CONSTS(16)*1.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(12)*STATES(7)*EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(13)*CONSTS(20))/(EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(23) = 1.00000/(1.00000+STATES(6)/CONSTS(21) ** 2.00000)
      ALGBRC(26) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(22)
      ALGBRC(46) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(20)+CONSTS(9))/(STATES(7)+STATES(2)))
      ALGBRC(47) = STATES(1) - ALGBRC(46)
      ALGBRC(50) =  CONSTS(33)*1.00000 ** 2.00000*(( ALGBRC(47)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(12)*STATES(7)*EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(13)*CONSTS(20))/(EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(51) =  ALGBRC(50)*(1.00000/(1.00000+CONSTS(34)/STATES(6) ** 3.00000))
      RATES(7) =  - (ALGBRC(26)+ALGBRC(30)+ALGBRC(35)+ALGBRC(38)+ALGBRC(51)+- ( ALGBRC(45)*2.00000))*(CONSTS(51)/( CONSTS(52)*CONSTS(3)))
      ALGBRC(11) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(9)/STATES(2))
      ALGBRC(15) =  CONSTS(8)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(11))
      ALGBRC(53) =  CONSTS(35)*(1.00000/(CONSTS(36) ** 3.00000+CONSTS(9) ** 3.00000))*(1.00000/(CONSTS(37)+CONSTS(19)))*(1.00000/(1.00000+ CONSTS(38)*EXP( (CONSTS(39) - 1.00000)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))))*( EXP( CONSTS(39)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))*STATES(2) ** 3.00000*CONSTS(19) -  EXP( (CONSTS(39) - 1.00000)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))*CONSTS(9) ** 3.00000*STATES(6))
      ALGBRC(40) = ALGBRC(11)
      ALGBRC(41) =  CONSTS(28)*(STATES(1) - ALGBRC(40))
      ALGBRC(21) =  CONSTS(15)*1.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(10)*STATES(2)*EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(11)*CONSTS(9))/(EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(25) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(21)
      ALGBRC(48) =  CONSTS(33)*1.00000 ** 2.00000*(( ALGBRC(47)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(10)*STATES(2)*EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(11)*CONSTS(9))/(EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(49) =  ALGBRC(48)*(1.00000/(1.00000+CONSTS(34)/STATES(6) ** 3.00000))
      RATES(2) =  - (ALGBRC(15)+ALGBRC(25)+ALGBRC(41)+ALGBRC(49)+ ALGBRC(53)*3.00000+ ALGBRC(45)*3.00000)*(CONSTS(51)/( CONSTS(52)*CONSTS(3)))
      ALGBRC(4) = TERNRY( INT(MOD(VOI, CONSTS(5))).LT.CONSTS(6), CONSTS(7), 0.00000)
      ALGBRC(18) =  CONSTS(14)*2.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(17)*STATES(6)*EXP(( 2.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(18)*CONSTS(19))/(EXP(( 2.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(24) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(18)
      ALGBRC(27) = ALGBRC(24)+ALGBRC(26)+ALGBRC(25)
      ALGBRC(39) =  CONSTS(27)*(STATES(6)/(CONSTS(26)+STATES(6)))
      ALGBRC(42) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(19)/STATES(6))
      ALGBRC(43) =  CONSTS(29)*(STATES(1) - ALGBRC(42))
      ALGBRC(52) = ALGBRC(49)+ALGBRC(51)
      ALGBRC(54) = (ALGBRC(4) - (ALGBRC(15)+ALGBRC(27)+ALGBRC(30)+ALGBRC(35)+ALGBRC(38)+ALGBRC(53)+ALGBRC(39)+ALGBRC(41)+ALGBRC(43)+ALGBRC(45)+ALGBRC(52)))/CONSTS(4)
      RATES(1) = ALGBRC(54)
      ALGBRC(55) =  CONSTS(60)*(STATES(11) - STATES(6))
      ALGBRC(56) =  CONSTS(47)*(STATES(6)/(STATES(6)+CONSTS(46)))
      ALGBRC(57) =  CONSTS(59)*STATES(12)
      RATES(6) =  - ((ALGBRC(24)+ALGBRC(39)+ALGBRC(43)) - ALGBRC(53))*(CONSTS(51)/( 2.00000*CONSTS(52)*CONSTS(3)))+ ALGBRC(55)*(CONSTS(53)/CONSTS(52))+ (ALGBRC(57) - ALGBRC(56))*(CONSTS(54)/CONSTS(52))
      ALGBRC(58) = (STATES(12) - STATES(11))/CONSTS(44)
      RATES(11) = - (ALGBRC(55) -  ALGBRC(58)*(CONSTS(54)/CONSTS(53)))
      RATES(12) = - ((ALGBRC(57)+ALGBRC(58)) - ALGBRC(56))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( -0.100000*(STATES(1)+47.1300)))
      ALGBRC(8) =  0.0800000*EXP(- STATES(1)/11.0000)
      ALGBRC(2) = TERNRY(STATES(1).LT.-40.0000,  0.135000*EXP((80.0000+STATES(1))/-6.80000), 0.00000)
      ALGBRC(9) = TERNRY(STATES(1).LT.-40.0000,  3.56000*EXP( 0.0790000*STATES(1))+ 310000.*EXP( 0.350000*STATES(1)), 1.00000/( 0.130000*(1.00000+EXP((STATES(1)+10.6600)/-11.1000))))
      ALGBRC(3) = TERNRY(STATES(1).LT.-40.0000,  ( -127140.*EXP( 0.244400*STATES(1)) -  3.47400e-05*EXP( -0.0439100*STATES(1)))*((STATES(1)+37.7800)/(1.00000+EXP( 0.311000*(STATES(1)+79.2300)))), 0.00000)
      ALGBRC(10) = TERNRY(STATES(1).LT.-40.0000, ( 0.121200*EXP( -0.0105200*STATES(1)))/(1.00000+EXP( -0.137800*(STATES(1)+40.1400))), ( 0.300000*EXP( -2.53500e-07*STATES(1)))/(1.00000+EXP( -0.100000*(STATES(1)+32.0000))))
      ALGBRC(7) = ( 7.19000e-05*(STATES(1)+30.0000))/(1.00000 - EXP( -0.148000*(STATES(1)+30.0000)))
      ALGBRC(14) = ( 0.000131000*(STATES(1)+30.0000))/(-1.00000+EXP( 0.0687000*(STATES(1)+30.0000)))
      ALGBRC(5) = 1.00000/(1.00000+EXP(- ((STATES(1)+10.0000)/6.24000)))
      ALGBRC(12) =  ALGBRC(5)*((1.00000 - EXP(- ((STATES(1)+10.0000)/6.24000)))/( 0.0350000*(STATES(1)+10.0000)))
      ALGBRC(16) = ALGBRC(5)/ALGBRC(12)
      ALGBRC(19) = (1.00000 - ALGBRC(5))/ALGBRC(12)
      ALGBRC(6) = 1.00000/(1.00000+EXP((STATES(1)+35.0600)/8.60000))+0.600000/(1.00000+EXP((50.0000 - STATES(1))/20.0000))
      ALGBRC(13) = 1.00000/( 0.0197000*EXP(-  0.0337000*(STATES(1)+10.0000) ** 2.00000)+0.0200000)
      ALGBRC(17) = ALGBRC(6)/ALGBRC(13)
      ALGBRC(20) = (1.00000 - ALGBRC(6))/ALGBRC(13)
      ALGBRC(28) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(20)+ CONSTS(23)*CONSTS(9))/(STATES(7)+ CONSTS(23)*STATES(2)))
      ALGBRC(29) = 1.00000/(1.00000+EXP((STATES(1) - 56.2600)/32.1000))
      ALGBRC(30) =  CONSTS(55)*STATES(10) ** 2.00000*ALGBRC(29)*(STATES(1) - ALGBRC(28))
      ALGBRC(31) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(20)/STATES(7))
      ALGBRC(32) = 1.02000/(1.00000+EXP( 0.238500*((STATES(1) - ALGBRC(31)) - 59.2150)))
      ALGBRC(33) = ( 0.491240*EXP( 0.0803200*((STATES(1)+5.47600) - ALGBRC(31)))+EXP( 0.0617500*(STATES(1) - (ALGBRC(31)+594.310))))/(1.00000+EXP( -0.514300*((STATES(1) - ALGBRC(31))+4.75300)))
      ALGBRC(34) = ALGBRC(32)/(ALGBRC(32)+ALGBRC(33))
      ALGBRC(35) =  CONSTS(56)*ALGBRC(34)*(STATES(1) - ALGBRC(31))
      ALGBRC(36) = ALGBRC(31)
      ALGBRC(37) = 1.00000/(1.00000+EXP((7.48800 - STATES(1))/5.98000))
      ALGBRC(38) =  CONSTS(25)*ALGBRC(37)*(STATES(1) - ALGBRC(36))
      ALGBRC(44) = 1.00000/((1.00000+ 0.124500*EXP( -0.100000*(( STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))+ 0.0365000*CONSTS(57)*EXP(- (( STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))
      ALGBRC(45) =  CONSTS(30)*ALGBRC(44)*(1.00000/(1.00000+CONSTS(31)/STATES(2) ** 1.50000))*(CONSTS(20)/(CONSTS(20)+CONSTS(32)))
      ALGBRC(22) =  CONSTS(16)*1.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(12)*STATES(7)*EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(13)*CONSTS(20))/(EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(23) = 1.00000/(1.00000+STATES(6)/CONSTS(21) ** 2.00000)
      ALGBRC(26) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(22)
      ALGBRC(46) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(20)+CONSTS(9))/(STATES(7)+STATES(2)))
      ALGBRC(47) = STATES(1) - ALGBRC(46)
      ALGBRC(50) =  CONSTS(33)*1.00000 ** 2.00000*(( ALGBRC(47)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(12)*STATES(7)*EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(13)*CONSTS(20))/(EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(51) =  ALGBRC(50)*(1.00000/(1.00000+CONSTS(34)/STATES(6) ** 3.00000))
      ALGBRC(11) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(9)/STATES(2))
      ALGBRC(15) =  CONSTS(8)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(11))
      ALGBRC(53) =  CONSTS(35)*(1.00000/(CONSTS(36) ** 3.00000+CONSTS(9) ** 3.00000))*(1.00000/(CONSTS(37)+CONSTS(19)))*(1.00000/(1.00000+ CONSTS(38)*EXP( (CONSTS(39) - 1.00000)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))))*( EXP( CONSTS(39)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))*STATES(2) ** 3.00000*CONSTS(19) -  EXP( (CONSTS(39) - 1.00000)*STATES(1)*(CONSTS(3)/( CONSTS(1)*CONSTS(2))))*CONSTS(9) ** 3.00000*STATES(6))
      ALGBRC(40) = ALGBRC(11)
      ALGBRC(41) =  CONSTS(28)*(STATES(1) - ALGBRC(40))
      ALGBRC(21) =  CONSTS(15)*1.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(10)*STATES(2)*EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(11)*CONSTS(9))/(EXP(( 1.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(25) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(21)
      ALGBRC(48) =  CONSTS(33)*1.00000 ** 2.00000*(( ALGBRC(47)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(10)*STATES(2)*EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(11)*CONSTS(9))/(EXP(( 1.00000*ALGBRC(47)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(49) =  ALGBRC(48)*(1.00000/(1.00000+CONSTS(34)/STATES(6) ** 3.00000))
      ALGBRC(4) = TERNRY( INT(MOD(VOI, CONSTS(5))).LT.CONSTS(6), CONSTS(7), 0.00000)
      ALGBRC(18) =  CONSTS(14)*2.00000 ** 2.00000*(( STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( CONSTS(17)*STATES(6)*EXP(( 2.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) -  CONSTS(18)*CONSTS(19))/(EXP(( 2.00000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))) - 1.00000))
      ALGBRC(24) =  STATES(8)*STATES(9)*ALGBRC(23)*ALGBRC(18)
      ALGBRC(27) = ALGBRC(24)+ALGBRC(26)+ALGBRC(25)
      ALGBRC(39) =  CONSTS(27)*(STATES(6)/(CONSTS(26)+STATES(6)))
      ALGBRC(42) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(19)/STATES(6))
      ALGBRC(43) =  CONSTS(29)*(STATES(1) - ALGBRC(42))
      ALGBRC(52) = ALGBRC(49)+ALGBRC(51)
      ALGBRC(54) = (ALGBRC(4) - (ALGBRC(15)+ALGBRC(27)+ALGBRC(30)+ALGBRC(35)+ALGBRC(38)+ALGBRC(53)+ALGBRC(39)+ALGBRC(41)+ALGBRC(43)+ALGBRC(45)+ALGBRC(52)))/CONSTS(4)
      ALGBRC(55) =  CONSTS(60)*(STATES(11) - STATES(6))
      ALGBRC(56) =  CONSTS(47)*(STATES(6)/(STATES(6)+CONSTS(46)))
      ALGBRC(57) =  CONSTS(59)*STATES(12)
      ALGBRC(58) = (STATES(12) - STATES(11))/CONSTS(44)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END