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 75 entries in the algebraic variable array.
C There are a total of 21 entries in each of the rate and state variable arrays.
C There are a total of 49 entries in the constant variable array.
C
C
C VOI is time in component environment (millisecond).
C STATES(1) is V in component membrane (millivolt).
C CONSTS(1) is R in component membrane (joule_per_mole_kelvin).
C CONSTS(2) is T in component membrane (kelvin).
C CONSTS(3) is F in component membrane (coulomb_per_millimole).
C CONSTS(4) is Cm in component membrane (picoF).
C ALGBRC(1) is i_st in component membrane (picoA).
C ALGBRC(31) is i_Na in component fast_sodium_current (picoA).
C ALGBRC(51) is i_K1 in component time_independent_potassium_current (picoA).
C ALGBRC(52) is i_to in component transient_outward_K_current (picoA).
C ALGBRC(54) is i_Kur in component ultrarapid_delayed_rectifier_K_current (picoA).
C ALGBRC(55) is i_Kr in component rapid_delayed_rectifier_K_current (picoA).
C ALGBRC(56) is i_Ks in component slow_delayed_rectifier_K_current (picoA).
C ALGBRC(57) is i_Ca_L in component L_type_Ca_channel (picoA).
C ALGBRC(65) is i_CaP in component sarcolemmal_calcium_pump_current (picoA).
C ALGBRC(59) is i_NaK in component sodium_potassium_pump (picoA).
C ALGBRC(64) is i_NaCa in component Na_Ca_exchanger_current (picoA).
C ALGBRC(62) is i_B_Na in component background_currents (picoA).
C ALGBRC(63) is i_B_Ca in component background_currents (picoA).
C CONSTS(5) is stim_start in component membrane (millisecond).
C CONSTS(6) is stim_end in component membrane (millisecond).
C CONSTS(7) is stim_period in component membrane (millisecond).
C CONSTS(8) is stim_duration in component membrane (millisecond).
C CONSTS(9) is stim_amplitude in component membrane (picoA).
C ALGBRC(18) is E_Na in component fast_sodium_current (millivolt).
C CONSTS(10) is g_Na in component fast_sodium_current (nanoS_per_picoF).
C STATES(2) is Na_i in component intracellular_ion_concentrations (millimolar).
C CONSTS(11) is Na_o in component standard_ionic_concentrations (millimolar).
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(2) is alpha_m in component fast_sodium_current_m_gate (per_millisecond).
C ALGBRC(19) is beta_m in component fast_sodium_current_m_gate (per_millisecond).
C ALGBRC(32) is m_inf in component fast_sodium_current_m_gate (dimensionless).
C ALGBRC(42) is tau_m in component fast_sodium_current_m_gate (millisecond).
C ALGBRC(3) is alpha_h in component fast_sodium_current_h_gate (per_millisecond).
C ALGBRC(20) is beta_h in component fast_sodium_current_h_gate (per_millisecond).
C ALGBRC(33) is h_inf in component fast_sodium_current_h_gate (dimensionless).
C ALGBRC(43) is tau_h in component fast_sodium_current_h_gate (millisecond).
C ALGBRC(4) is alpha_j in component fast_sodium_current_j_gate (per_millisecond).
C ALGBRC(21) is beta_j in component fast_sodium_current_j_gate (per_millisecond).
C ALGBRC(34) is j_inf in component fast_sodium_current_j_gate (dimensionless).
C ALGBRC(44) is tau_j in component fast_sodium_current_j_gate (millisecond).
C ALGBRC(41) is E_K in component time_independent_potassium_current (millivolt).
C CONSTS(12) is g_K1 in component time_independent_potassium_current (nanoS_per_picoF).
C CONSTS(13) is K_o in component standard_ionic_concentrations (millimolar).
C STATES(6) is K_i in component intracellular_ion_concentrations (millimolar).
C CONSTS(14) is K_Q10 in component transient_outward_K_current (dimensionless).
C CONSTS(15) is g_to in component transient_outward_K_current (nanoS_per_picoF).
C STATES(7) is oa in component transient_outward_K_current_oa_gate (dimensionless).
C STATES(8) is oi in component transient_outward_K_current_oi_gate (dimensionless).
C ALGBRC(5) is alpha_oa in component transient_outward_K_current_oa_gate (per_millisecond).
C ALGBRC(22) is beta_oa in component transient_outward_K_current_oa_gate (per_millisecond).
C ALGBRC(35) is tau_oa in component transient_outward_K_current_oa_gate (millisecond).
C ALGBRC(45) is oa_infinity in component transient_outward_K_current_oa_gate (dimensionless).
C ALGBRC(6) is alpha_oi in component transient_outward_K_current_oi_gate (per_millisecond).
C ALGBRC(23) is beta_oi in component transient_outward_K_current_oi_gate (per_millisecond).
C ALGBRC(36) is tau_oi in component transient_outward_K_current_oi_gate (millisecond).
C ALGBRC(46) is oi_infinity in component transient_outward_K_current_oi_gate (dimensionless).
C ALGBRC(53) is g_Kur in component ultrarapid_delayed_rectifier_K_current (nanoS_per_picoF).
C STATES(9) is ua in component ultrarapid_delayed_rectifier_K_current_ua_gate (dimensionless).
C STATES(10) is ui in component ultrarapid_delayed_rectifier_K_current_ui_gate (dimensionless).
C ALGBRC(7) is alpha_ua in component ultrarapid_delayed_rectifier_K_current_ua_gate (per_millisecond).
C ALGBRC(24) is beta_ua in component ultrarapid_delayed_rectifier_K_current_ua_gate (per_millisecond).
C ALGBRC(37) is tau_ua in component ultrarapid_delayed_rectifier_K_current_ua_gate (millisecond).
C ALGBRC(47) is ua_infinity in component ultrarapid_delayed_rectifier_K_current_ua_gate (dimensionless).
C ALGBRC(8) is alpha_ui in component ultrarapid_delayed_rectifier_K_current_ui_gate (per_millisecond).
C ALGBRC(25) is beta_ui in component ultrarapid_delayed_rectifier_K_current_ui_gate (per_millisecond).
C ALGBRC(38) is tau_ui in component ultrarapid_delayed_rectifier_K_current_ui_gate (millisecond).
C ALGBRC(48) is ui_infinity in component ultrarapid_delayed_rectifier_K_current_ui_gate (dimensionless).
C CONSTS(16) is g_Kr in component rapid_delayed_rectifier_K_current (nanoS_per_picoF).
C STATES(11) is xr in component rapid_delayed_rectifier_K_current_xr_gate (dimensionless).
C ALGBRC(9) is alpha_xr in component rapid_delayed_rectifier_K_current_xr_gate (per_millisecond).
C ALGBRC(26) is beta_xr in component rapid_delayed_rectifier_K_current_xr_gate (per_millisecond).
C ALGBRC(39) is tau_xr in component rapid_delayed_rectifier_K_current_xr_gate (millisecond).
C ALGBRC(49) is xr_infinity in component rapid_delayed_rectifier_K_current_xr_gate (dimensionless).
C CONSTS(17) is g_Ks in component slow_delayed_rectifier_K_current (nanoS_per_picoF).
C STATES(12) is xs in component slow_delayed_rectifier_K_current_xs_gate (dimensionless).
C ALGBRC(10) is alpha_xs in component slow_delayed_rectifier_K_current_xs_gate (per_millisecond).
C ALGBRC(27) is beta_xs in component slow_delayed_rectifier_K_current_xs_gate (per_millisecond).
C ALGBRC(40) is tau_xs in component slow_delayed_rectifier_K_current_xs_gate (millisecond).
C ALGBRC(50) is xs_infinity in component slow_delayed_rectifier_K_current_xs_gate (dimensionless).
C CONSTS(18) is g_Ca_L in component L_type_Ca_channel (nanoS_per_picoF).
C STATES(13) is Ca_i in component intracellular_ion_concentrations (millimolar).
C STATES(14) is d in component L_type_Ca_channel_d_gate (dimensionless).
C STATES(15) is f in component L_type_Ca_channel_f_gate (dimensionless).
C STATES(16) is f_Ca in component L_type_Ca_channel_f_Ca_gate (dimensionless).
C ALGBRC(11) is d_infinity in component L_type_Ca_channel_d_gate (dimensionless).
C ALGBRC(28) is tau_d in component L_type_Ca_channel_d_gate (millisecond).
C ALGBRC(12) is f_infinity in component L_type_Ca_channel_f_gate (dimensionless).
C ALGBRC(29) is tau_f in component L_type_Ca_channel_f_gate (millisecond).
C ALGBRC(13) is f_Ca_infinity in component L_type_Ca_channel_f_Ca_gate (dimensionless).
C CONSTS(45) is tau_f_Ca in component L_type_Ca_channel_f_Ca_gate (millisecond).
C CONSTS(19) is Km_Na_i in component sodium_potassium_pump (millimolar).
C CONSTS(20) is Km_K_o in component sodium_potassium_pump (millimolar).
C CONSTS(21) is i_NaK_max in component sodium_potassium_pump (picoA_per_picoF).
C ALGBRC(58) is f_NaK in component sodium_potassium_pump (dimensionless).
C CONSTS(46) is sigma in component sodium_potassium_pump (dimensionless).
C ALGBRC(61) is i_B_K in component background_currents (picoA).
C CONSTS(22) is g_B_Na in component background_currents (nanoS_per_picoF).
C CONSTS(23) is g_B_Ca in component background_currents (nanoS_per_picoF).
C CONSTS(24) is g_B_K in component background_currents (nanoS_per_picoF).
C ALGBRC(60) is E_Ca in component background_currents (millivolt).
C CONSTS(25) is Ca_o in component standard_ionic_concentrations (millimolar).
C CONSTS(26) is I_NaCa_max in component Na_Ca_exchanger_current (picoA_per_picoF).
C CONSTS(27) is K_mNa in component Na_Ca_exchanger_current (millimolar).
C CONSTS(28) is K_mCa in component Na_Ca_exchanger_current (millimolar).
C CONSTS(29) is K_sat in component Na_Ca_exchanger_current (dimensionless).
C CONSTS(30) is gamma in component Na_Ca_exchanger_current (dimensionless).
C CONSTS(31) is i_CaP_max in component sarcolemmal_calcium_pump_current (picoA_per_picoF).
C ALGBRC(66) is i_rel in component Ca_release_current_from_JSR (millimolar_per_millisecond).
C ALGBRC(67) is Fn in component Ca_release_current_from_JSR (dimensionless).
C CONSTS(32) is K_rel in component Ca_release_current_from_JSR (per_millisecond).
C CONSTS(48) is V_rel in component intracellular_ion_concentrations (micrometre_3).
C STATES(17) is Ca_rel in component intracellular_ion_concentrations (millimolar).
C STATES(18) is u in component Ca_release_current_from_JSR_u_gate (dimensionless).
C STATES(19) is v in component Ca_release_current_from_JSR_v_gate (dimensionless).
C STATES(20) is w in component Ca_release_current_from_JSR_w_gate (dimensionless).
C CONSTS(47) is tau_u in component Ca_release_current_from_JSR_u_gate (millisecond).
C ALGBRC(69) is u_infinity in component Ca_release_current_from_JSR_u_gate (dimensionless).
C ALGBRC(70) is tau_v in component Ca_release_current_from_JSR_v_gate (millisecond).
C ALGBRC(72) is v_infinity in component Ca_release_current_from_JSR_v_gate (dimensionless).
C ALGBRC(14) is tau_w in component Ca_release_current_from_JSR_w_gate (millisecond).
C ALGBRC(30) is w_infinity in component Ca_release_current_from_JSR_w_gate (dimensionless).
C ALGBRC(68) is i_tr in component transfer_current_from_NSR_to_JSR (millimolar_per_millisecond).
C CONSTS(33) is tau_tr in component transfer_current_from_NSR_to_JSR (millisecond).
C STATES(21) is Ca_up in component intracellular_ion_concentrations (millimolar).
C CONSTS(34) is I_up_max in component Ca_uptake_current_by_the_NSR (millimolar_per_millisecond).
C ALGBRC(71) is i_up in component Ca_uptake_current_by_the_NSR (millimolar_per_millisecond).
C CONSTS(35) is K_up in component Ca_uptake_current_by_the_NSR (millimolar).
C ALGBRC(73) is i_up_leak in component Ca_leak_current_by_the_NSR (millimolar_per_millisecond).
C CONSTS(36) is Ca_up_max in component Ca_leak_current_by_the_NSR (millimolar).
C CONSTS(37) is CMDN_max in component Ca_buffers (millimolar).
C CONSTS(38) is TRPN_max in component Ca_buffers (millimolar).
C CONSTS(39) is CSQN_max in component Ca_buffers (millimolar).
C CONSTS(40) is Km_CMDN in component Ca_buffers (millimolar).
C CONSTS(41) is Km_TRPN in component Ca_buffers (millimolar).
C CONSTS(42) is Km_CSQN in component Ca_buffers (millimolar).
C ALGBRC(15) is Ca_CMDN in component Ca_buffers (millimolar).
C ALGBRC(16) is Ca_TRPN in component Ca_buffers (millimolar).
C ALGBRC(17) is Ca_CSQN in component Ca_buffers (millimolar).
C CONSTS(43) is V_cell in component intracellular_ion_concentrations (micrometre_3).
C CONSTS(44) is V_i in component intracellular_ion_concentrations (micrometre_3).
C CONSTS(49) is V_up in component intracellular_ion_concentrations (micrometre_3).
C ALGBRC(74) is B1 in component intracellular_ion_concentrations (millimolar_per_millisecond).
C ALGBRC(75) is B2 in component intracellular_ion_concentrations (dimensionless).
C RATES(1) is d/dt V in component membrane (millivolt).
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(7) is d/dt oa in component transient_outward_K_current_oa_gate (dimensionless).
C RATES(8) is d/dt oi in component transient_outward_K_current_oi_gate (dimensionless).
C RATES(9) is d/dt ua in component ultrarapid_delayed_rectifier_K_current_ua_gate (dimensionless).
C RATES(10) is d/dt ui in component ultrarapid_delayed_rectifier_K_current_ui_gate (dimensionless).
C RATES(11) is d/dt xr in component rapid_delayed_rectifier_K_current_xr_gate (dimensionless).
C RATES(12) is d/dt xs in component slow_delayed_rectifier_K_current_xs_gate (dimensionless).
C RATES(14) is d/dt d in component L_type_Ca_channel_d_gate (dimensionless).
C RATES(15) is d/dt f in component L_type_Ca_channel_f_gate (dimensionless).
C RATES(16) is d/dt f_Ca in component L_type_Ca_channel_f_Ca_gate (dimensionless).
C RATES(18) is d/dt u in component Ca_release_current_from_JSR_u_gate (dimensionless).
C RATES(19) is d/dt v in component Ca_release_current_from_JSR_v_gate (dimensionless).
C RATES(20) is d/dt w in component Ca_release_current_from_JSR_w_gate (dimensionless).
C RATES(2) is d/dt Na_i in component intracellular_ion_concentrations (millimolar).
C RATES(6) is d/dt K_i in component intracellular_ion_concentrations (millimolar).
C RATES(13) is d/dt Ca_i in component intracellular_ion_concentrations (millimolar).
C RATES(21) is d/dt Ca_up in component intracellular_ion_concentrations (millimolar).
C RATES(17) is d/dt Ca_rel in component intracellular_ion_concentrations (millimolar).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = -81.18
      CONSTS(1) = 8.3143
      CONSTS(2) = 310
      CONSTS(3) = 96.4867
      CONSTS(4) = 100
      CONSTS(5) = 50
      CONSTS(6) = 50000
      CONSTS(7) = 1000
      CONSTS(8) = 2
      CONSTS(9) = -2000
      CONSTS(10) = 7.8
      STATES(2) = 1.117e+01
      CONSTS(11) = 140
      STATES(3) = 2.908e-3
      STATES(4) = 9.649e-1
      STATES(5) = 9.775e-1
      CONSTS(12) = 0.09
      CONSTS(13) = 5.4
      STATES(6) = 1.39e+02
      CONSTS(14) = 3
      CONSTS(15) = 0.1652
      STATES(7) = 3.043e-2
      STATES(8) = 9.992e-1
      STATES(9) = 4.966e-3
      STATES(10) = 9.986e-1
      CONSTS(16) = 0.029411765
      STATES(11) = 3.296e-5
      CONSTS(17) = 0.12941176
      STATES(12) = 1.869e-2
      CONSTS(18) = 0.12375
      STATES(13) = 1.013e-4
      STATES(14) = 1.367e-4
      STATES(15) = 9.996e-1
      STATES(16) = 7.755e-1
      CONSTS(19) = 10
      CONSTS(20) = 1.5
      CONSTS(21) = 0.59933874
      CONSTS(22) = 0.0006744375
      CONSTS(23) = 0.001131
      CONSTS(24) = 0
      CONSTS(25) = 1.8
      CONSTS(26) = 1600
      CONSTS(27) = 87.5
      CONSTS(28) = 1.38
      CONSTS(29) = 0.1
      CONSTS(30) = 0.35
      CONSTS(31) = 0.275
      CONSTS(32) = 30
      STATES(17) = 1.488
      STATES(18) = 2.35e-112
      STATES(19) = 1
      STATES(20) = 0.9992
      CONSTS(33) = 180
      STATES(21) = 1.488
      CONSTS(34) = 0.005
      CONSTS(35) = 0.00092
      CONSTS(36) = 15
      CONSTS(37) = 0.05
      CONSTS(38) = 0.07
      CONSTS(39) = 10
      CONSTS(40) = 0.00238
      CONSTS(41) = 0.0005
      CONSTS(42) = 0.8
      CONSTS(43) = 20100
      CONSTS(44) =  CONSTS(43)*0.680000
      CONSTS(45) = 2.00000
      CONSTS(46) =  (1.00000/7.00000)*(EXP(CONSTS(11)/67.3000) - 1.00000)
      CONSTS(47) = 8.00000
      CONSTS(48) =  0.00480000*CONSTS(43)
      CONSTS(49) =  0.0552000*CONSTS(43)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(13) = 1.00000+STATES(13)/0.000350000 ** - 1.00000
      RATES(16) = (ALGBRC(13) - STATES(16))/CONSTS(45)
      ALGBRC(11) = 1.00000+EXP((STATES(1)+10.0000)/- 8.00000) ** - 1.00000
      ALGBRC(28) = TERNRY(ABS(STATES(1)+10.0000).LT.1.00000e-10, 4.57900/(1.00000+EXP((STATES(1)+10.0000)/- 6.24000)), (1.00000 - EXP((STATES(1)+10.0000)/- 6.24000))/( 0.0350000*(STATES(1)+10.0000)*(1.00000+EXP((STATES(1)+10.0000)/- 6.24000))))
      RATES(14) = (ALGBRC(11) - STATES(14))/ALGBRC(28)
      ALGBRC(12) = EXP(- (STATES(1)+28.0000)/6.90000)/(1.00000+EXP(- (STATES(1)+28.0000)/6.90000))
      ALGBRC(29) =  9.00000* 0.0197000*EXP( - 0.0337000 ** 2.00000*STATES(1)+10.0000 ** 2.00000)+0.0200000 ** - 1.00000
      RATES(15) = (ALGBRC(12) - STATES(15))/ALGBRC(29)
      ALGBRC(14) = TERNRY(ABS(STATES(1) - 7.90000).LT.1.00000e-10, ( 6.00000*0.200000)/1.30000, ( 6.00000*(1.00000 - EXP(- (STATES(1) - 7.90000)/5.00000)))/( (1.00000+ 0.300000*EXP(- (STATES(1) - 7.90000)/5.00000))*1.00000*(STATES(1) - 7.90000)))
      ALGBRC(30) = 1.00000 - 1.00000+EXP(- (STATES(1) - 40.0000)/17.0000) ** - 1.00000
      RATES(20) = (ALGBRC(30) - STATES(20))/ALGBRC(14)
      ALGBRC(2) = TERNRY(STATES(1).EQ.- 47.1300, 3.20000, ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( - 0.100000*(STATES(1)+47.1300))))
      ALGBRC(19) =  0.0800000*EXP(- STATES(1)/11.0000)
      ALGBRC(32) = ALGBRC(2)/(ALGBRC(2)+ALGBRC(19))
      ALGBRC(42) = 1.00000/(ALGBRC(2)+ALGBRC(19))
      RATES(3) = (ALGBRC(32) - STATES(3))/ALGBRC(42)
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000,  0.135000*EXP((STATES(1)+80.0000)/- 6.80000), 0.00000)
      ALGBRC(20) = 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(33) = ALGBRC(3)/(ALGBRC(3)+ALGBRC(20))
      ALGBRC(43) = 1.00000/(ALGBRC(3)+ALGBRC(20))
      RATES(4) = (ALGBRC(33) - STATES(4))/ALGBRC(43)
      ALGBRC(4) = 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(21) = 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(34) = ALGBRC(4)/(ALGBRC(4)+ALGBRC(21))
      ALGBRC(44) = 1.00000/(ALGBRC(4)+ALGBRC(21))
      RATES(5) = (ALGBRC(34) - STATES(5))/ALGBRC(44)
      ALGBRC(5) =  0.650000*EXP((STATES(1) - - 10.0000)/- 8.50000)+EXP(((STATES(1) - - 10.0000) - 40.0000)/- 59.0000) ** - 1.00000
      ALGBRC(22) =  0.650000*2.50000+EXP(((STATES(1) - - 10.0000)+72.0000)/17.0000) ** - 1.00000
      ALGBRC(35) = ALGBRC(5)+ALGBRC(22) ** - 1.00000/CONSTS(14)
      ALGBRC(45) = 1.00000+EXP(((STATES(1) - - 10.0000)+10.4700)/- 17.5400) ** - 1.00000
      RATES(7) = (ALGBRC(45) - STATES(7))/ALGBRC(35)
      ALGBRC(6) = 18.5300+ 1.00000*EXP(((STATES(1) - - 10.0000)+103.700)/10.9500) ** - 1.00000
      ALGBRC(23) = 35.5600+ 1.00000*EXP(((STATES(1) - - 10.0000) - 8.74000)/- 7.44000) ** - 1.00000
      ALGBRC(36) = ALGBRC(6)+ALGBRC(23) ** - 1.00000/CONSTS(14)
      ALGBRC(46) = 1.00000+EXP(((STATES(1) - - 10.0000)+33.1000)/5.30000) ** - 1.00000
      RATES(8) = (ALGBRC(46) - STATES(8))/ALGBRC(36)
      ALGBRC(7) =  0.650000*EXP((STATES(1) - - 10.0000)/- 8.50000)+EXP(((STATES(1) - - 10.0000) - 40.0000)/- 59.0000) ** - 1.00000
      ALGBRC(24) =  0.650000*2.50000+EXP(((STATES(1) - - 10.0000)+72.0000)/17.0000) ** - 1.00000
      ALGBRC(37) = ALGBRC(7)+ALGBRC(24) ** - 1.00000/CONSTS(14)
      ALGBRC(47) = 1.00000+EXP(((STATES(1) - - 10.0000)+20.3000)/- 9.60000) ** - 1.00000
      RATES(9) = (ALGBRC(47) - STATES(9))/ALGBRC(37)
      ALGBRC(8) = 21.0000+ 1.00000*EXP(((STATES(1) - - 10.0000) - 195.000)/- 28.0000) ** - 1.00000
      ALGBRC(25) = 1.00000/EXP(((STATES(1) - - 10.0000) - 168.000)/- 16.0000)
      ALGBRC(38) = ALGBRC(8)+ALGBRC(25) ** - 1.00000/CONSTS(14)
      ALGBRC(48) = 1.00000+EXP(((STATES(1) - - 10.0000) - 109.450)/27.4800) ** - 1.00000
      RATES(10) = (ALGBRC(48) - STATES(10))/ALGBRC(38)
      ALGBRC(9) = TERNRY(ABS(STATES(1)+14.1000).LT.1.00000e-10, 0.00150000, ( 0.000300000*(STATES(1)+14.1000))/(1.00000 - EXP((STATES(1)+14.1000)/- 5.00000)))
      ALGBRC(26) = TERNRY(ABS(STATES(1) - 3.33280).LT.1.00000e-10, 0.000378361, ( 7.38980e-05*(STATES(1) - 3.33280))/(EXP((STATES(1) - 3.33280)/5.12370) - 1.00000))
      ALGBRC(39) = ALGBRC(9)+ALGBRC(26) ** - 1.00000
      ALGBRC(49) = 1.00000+EXP((STATES(1)+14.1000)/- 6.50000) ** - 1.00000
      RATES(11) = (ALGBRC(49) - STATES(11))/ALGBRC(39)
      ALGBRC(10) = TERNRY(ABS(STATES(1) - 19.9000).LT.1.00000e-10, 0.000680000, ( 4.00000e-05*(STATES(1) - 19.9000))/(1.00000 - EXP((STATES(1) - 19.9000)/- 17.0000)))
      ALGBRC(27) = TERNRY(ABS(STATES(1) - 19.9000).LT.1.00000e-10, 0.000315000, ( 3.50000e-05*(STATES(1) - 19.9000))/(EXP((STATES(1) - 19.9000)/9.00000) - 1.00000))
      ALGBRC(40) =  0.500000*ALGBRC(10)+ALGBRC(27) ** - 1.00000
      ALGBRC(50) = 1.00000+EXP((STATES(1) - 19.9000)/- 12.7000) ** - 0.500000
      RATES(12) = (ALGBRC(50) - STATES(12))/ALGBRC(40)
      ALGBRC(41) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(13)/STATES(6))
      ALGBRC(51) = ( CONSTS(4)*CONSTS(12)*(STATES(1) - ALGBRC(41)))/(1.00000+EXP( 0.0700000*(STATES(1)+80.0000)))
      ALGBRC(52) =  CONSTS(4)*CONSTS(15)*STATES(7) ** 3.00000*STATES(8)*(STATES(1) - ALGBRC(41))
      ALGBRC(53) = 0.00500000+0.0500000/(1.00000+EXP((STATES(1) - 15.0000)/- 13.0000))
      ALGBRC(54) =  CONSTS(4)*ALGBRC(53)*STATES(9) ** 3.00000*STATES(10)*(STATES(1) - ALGBRC(41))
      ALGBRC(55) = ( CONSTS(4)*CONSTS(16)*STATES(11)*(STATES(1) - ALGBRC(41)))/(1.00000+EXP((STATES(1)+15.0000)/22.4000))
      ALGBRC(56) =  CONSTS(4)*CONSTS(17)*STATES(12) ** 2.00000*(STATES(1) - ALGBRC(41))
      ALGBRC(58) = 1.00000+ 0.124500*EXP(( - 0.100000*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))+ 0.0365000*CONSTS(46)*EXP(( - CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) ** - 1.00000
      ALGBRC(59) = ( (( CONSTS(4)*CONSTS(21)*ALGBRC(58)*1.00000)/(1.00000+CONSTS(19)/STATES(2) ** 1.50000))*CONSTS(13))/(CONSTS(13)+CONSTS(20))
      ALGBRC(61) =  CONSTS(4)*CONSTS(24)*(STATES(1) - ALGBRC(41))
      RATES(6) = ( 2.00000*ALGBRC(59) - (ALGBRC(51)+ALGBRC(52)+ALGBRC(54)+ALGBRC(55)+ALGBRC(56)+ALGBRC(61)))/( CONSTS(44)*CONSTS(3))
      ALGBRC(18) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(11)/STATES(2))
      ALGBRC(31) =  CONSTS(4)*CONSTS(10)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(18))
      ALGBRC(64) = ( CONSTS(4)*CONSTS(26)*( EXP(( CONSTS(30)*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))*STATES(2) ** 3.00000*CONSTS(25) -  EXP(( (CONSTS(30) - 1.00000)*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))*CONSTS(11) ** 3.00000*STATES(13)))/( (CONSTS(27) ** 3.00000+CONSTS(11) ** 3.00000)*(CONSTS(28)+CONSTS(25))*(1.00000+ CONSTS(29)*EXP(( (CONSTS(30) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))
      ALGBRC(62) =  CONSTS(4)*CONSTS(22)*(STATES(1) - ALGBRC(18))
      RATES(2) = ( - 3.00000*ALGBRC(59) - ( 3.00000*ALGBRC(64)+ALGBRC(62)+ALGBRC(31)))/( CONSTS(44)*CONSTS(3))
      ALGBRC(1) = TERNRY(VOI.GE.CONSTS(5).AND.VOI.LE.CONSTS(6).AND.(VOI - CONSTS(5)) -  INT((VOI - CONSTS(5))/CONSTS(7))*CONSTS(7).LE.CONSTS(8), CONSTS(9), 0.00000)
      ALGBRC(57) =  CONSTS(4)*CONSTS(18)*STATES(14)*STATES(15)*STATES(16)*(STATES(1) - 65.0000)
      ALGBRC(65) = ( CONSTS(4)*CONSTS(31)*STATES(13))/(0.000500000+STATES(13))
      ALGBRC(60) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(25)/STATES(13))
      ALGBRC(63) =  CONSTS(4)*CONSTS(23)*(STATES(1) - ALGBRC(60))
      RATES(1) = - (ALGBRC(31)+ALGBRC(51)+ALGBRC(52)+ALGBRC(54)+ALGBRC(55)+ALGBRC(56)+ALGBRC(62)+ALGBRC(63)+ALGBRC(59)+ALGBRC(65)+ALGBRC(64)+ALGBRC(57)+ALGBRC(1))/CONSTS(4)
      ALGBRC(66) =  CONSTS(32)*STATES(18) ** 2.00000*STATES(19)*STATES(20)*(STATES(17) - STATES(13))
      ALGBRC(68) = (STATES(21) - STATES(17))/CONSTS(33)
      RATES(17) =  (ALGBRC(68) - ALGBRC(66))*1.00000+( CONSTS(39)*CONSTS(42))/STATES(17)+CONSTS(42) ** 2.00000 ** - 1.00000
      ALGBRC(67) =  1000.00*( 1.00000e-15*CONSTS(48)*ALGBRC(66) -  (1.00000e-15/( 2.00000*CONSTS(3)))*( 0.500000*ALGBRC(57) -  0.200000*ALGBRC(64)))
      ALGBRC(69) = 1.00000+EXP(- (ALGBRC(67) - 3.41750e-13)/1.36700e-15) ** - 1.00000
      RATES(18) = (ALGBRC(69) - STATES(18))/CONSTS(47)
      ALGBRC(70) = 1.91000+ 2.09000*1.00000+EXP(- (ALGBRC(67) - 3.41750e-13)/1.36700e-15) ** - 1.00000
      ALGBRC(72) = 1.00000 - 1.00000+EXP(- (ALGBRC(67) - 6.83500e-14)/1.36700e-15) ** - 1.00000
      RATES(19) = (ALGBRC(72) - STATES(19))/ALGBRC(70)
      ALGBRC(71) = CONSTS(34)/(1.00000+CONSTS(35)/STATES(13))
      ALGBRC(73) = ( CONSTS(34)*STATES(21))/CONSTS(36)
      RATES(21) = ALGBRC(71) - (ALGBRC(73)+( ALGBRC(68)*CONSTS(48))/CONSTS(49))
      ALGBRC(74) = ( 2.00000*ALGBRC(64) - (ALGBRC(65)+ALGBRC(57)+ALGBRC(63)))/( 2.00000*CONSTS(44)*CONSTS(3))+( CONSTS(49)*(ALGBRC(73) - ALGBRC(71))+ ALGBRC(66)*CONSTS(48))/CONSTS(44)
      ALGBRC(75) = 1.00000+( CONSTS(38)*CONSTS(41))/STATES(13)+CONSTS(41) ** 2.00000+( CONSTS(37)*CONSTS(40))/STATES(13)+CONSTS(40) ** 2.00000
      RATES(13) = ALGBRC(74)/ALGBRC(75)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(13) = 1.00000+STATES(13)/0.000350000 ** - 1.00000
      ALGBRC(11) = 1.00000+EXP((STATES(1)+10.0000)/- 8.00000) ** - 1.00000
      ALGBRC(28) = TERNRY(ABS(STATES(1)+10.0000).LT.1.00000e-10, 4.57900/(1.00000+EXP((STATES(1)+10.0000)/- 6.24000)), (1.00000 - EXP((STATES(1)+10.0000)/- 6.24000))/( 0.0350000*(STATES(1)+10.0000)*(1.00000+EXP((STATES(1)+10.0000)/- 6.24000))))
      ALGBRC(12) = EXP(- (STATES(1)+28.0000)/6.90000)/(1.00000+EXP(- (STATES(1)+28.0000)/6.90000))
      ALGBRC(29) =  9.00000* 0.0197000*EXP( - 0.0337000 ** 2.00000*STATES(1)+10.0000 ** 2.00000)+0.0200000 ** - 1.00000
      ALGBRC(14) = TERNRY(ABS(STATES(1) - 7.90000).LT.1.00000e-10, ( 6.00000*0.200000)/1.30000, ( 6.00000*(1.00000 - EXP(- (STATES(1) - 7.90000)/5.00000)))/( (1.00000+ 0.300000*EXP(- (STATES(1) - 7.90000)/5.00000))*1.00000*(STATES(1) - 7.90000)))
      ALGBRC(30) = 1.00000 - 1.00000+EXP(- (STATES(1) - 40.0000)/17.0000) ** - 1.00000
      ALGBRC(2) = TERNRY(STATES(1).EQ.- 47.1300, 3.20000, ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( - 0.100000*(STATES(1)+47.1300))))
      ALGBRC(19) =  0.0800000*EXP(- STATES(1)/11.0000)
      ALGBRC(32) = ALGBRC(2)/(ALGBRC(2)+ALGBRC(19))
      ALGBRC(42) = 1.00000/(ALGBRC(2)+ALGBRC(19))
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000,  0.135000*EXP((STATES(1)+80.0000)/- 6.80000), 0.00000)
      ALGBRC(20) = 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(33) = ALGBRC(3)/(ALGBRC(3)+ALGBRC(20))
      ALGBRC(43) = 1.00000/(ALGBRC(3)+ALGBRC(20))
      ALGBRC(4) = 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(21) = 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(34) = ALGBRC(4)/(ALGBRC(4)+ALGBRC(21))
      ALGBRC(44) = 1.00000/(ALGBRC(4)+ALGBRC(21))
      ALGBRC(5) =  0.650000*EXP((STATES(1) - - 10.0000)/- 8.50000)+EXP(((STATES(1) - - 10.0000) - 40.0000)/- 59.0000) ** - 1.00000
      ALGBRC(22) =  0.650000*2.50000+EXP(((STATES(1) - - 10.0000)+72.0000)/17.0000) ** - 1.00000
      ALGBRC(35) = ALGBRC(5)+ALGBRC(22) ** - 1.00000/CONSTS(14)
      ALGBRC(45) = 1.00000+EXP(((STATES(1) - - 10.0000)+10.4700)/- 17.5400) ** - 1.00000
      ALGBRC(6) = 18.5300+ 1.00000*EXP(((STATES(1) - - 10.0000)+103.700)/10.9500) ** - 1.00000
      ALGBRC(23) = 35.5600+ 1.00000*EXP(((STATES(1) - - 10.0000) - 8.74000)/- 7.44000) ** - 1.00000
      ALGBRC(36) = ALGBRC(6)+ALGBRC(23) ** - 1.00000/CONSTS(14)
      ALGBRC(46) = 1.00000+EXP(((STATES(1) - - 10.0000)+33.1000)/5.30000) ** - 1.00000
      ALGBRC(7) =  0.650000*EXP((STATES(1) - - 10.0000)/- 8.50000)+EXP(((STATES(1) - - 10.0000) - 40.0000)/- 59.0000) ** - 1.00000
      ALGBRC(24) =  0.650000*2.50000+EXP(((STATES(1) - - 10.0000)+72.0000)/17.0000) ** - 1.00000
      ALGBRC(37) = ALGBRC(7)+ALGBRC(24) ** - 1.00000/CONSTS(14)
      ALGBRC(47) = 1.00000+EXP(((STATES(1) - - 10.0000)+20.3000)/- 9.60000) ** - 1.00000
      ALGBRC(8) = 21.0000+ 1.00000*EXP(((STATES(1) - - 10.0000) - 195.000)/- 28.0000) ** - 1.00000
      ALGBRC(25) = 1.00000/EXP(((STATES(1) - - 10.0000) - 168.000)/- 16.0000)
      ALGBRC(38) = ALGBRC(8)+ALGBRC(25) ** - 1.00000/CONSTS(14)
      ALGBRC(48) = 1.00000+EXP(((STATES(1) - - 10.0000) - 109.450)/27.4800) ** - 1.00000
      ALGBRC(9) = TERNRY(ABS(STATES(1)+14.1000).LT.1.00000e-10, 0.00150000, ( 0.000300000*(STATES(1)+14.1000))/(1.00000 - EXP((STATES(1)+14.1000)/- 5.00000)))
      ALGBRC(26) = TERNRY(ABS(STATES(1) - 3.33280).LT.1.00000e-10, 0.000378361, ( 7.38980e-05*(STATES(1) - 3.33280))/(EXP((STATES(1) - 3.33280)/5.12370) - 1.00000))
      ALGBRC(39) = ALGBRC(9)+ALGBRC(26) ** - 1.00000
      ALGBRC(49) = 1.00000+EXP((STATES(1)+14.1000)/- 6.50000) ** - 1.00000
      ALGBRC(10) = TERNRY(ABS(STATES(1) - 19.9000).LT.1.00000e-10, 0.000680000, ( 4.00000e-05*(STATES(1) - 19.9000))/(1.00000 - EXP((STATES(1) - 19.9000)/- 17.0000)))
      ALGBRC(27) = TERNRY(ABS(STATES(1) - 19.9000).LT.1.00000e-10, 0.000315000, ( 3.50000e-05*(STATES(1) - 19.9000))/(EXP((STATES(1) - 19.9000)/9.00000) - 1.00000))
      ALGBRC(40) =  0.500000*ALGBRC(10)+ALGBRC(27) ** - 1.00000
      ALGBRC(50) = 1.00000+EXP((STATES(1) - 19.9000)/- 12.7000) ** - 0.500000
      ALGBRC(41) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(13)/STATES(6))
      ALGBRC(51) = ( CONSTS(4)*CONSTS(12)*(STATES(1) - ALGBRC(41)))/(1.00000+EXP( 0.0700000*(STATES(1)+80.0000)))
      ALGBRC(52) =  CONSTS(4)*CONSTS(15)*STATES(7) ** 3.00000*STATES(8)*(STATES(1) - ALGBRC(41))
      ALGBRC(53) = 0.00500000+0.0500000/(1.00000+EXP((STATES(1) - 15.0000)/- 13.0000))
      ALGBRC(54) =  CONSTS(4)*ALGBRC(53)*STATES(9) ** 3.00000*STATES(10)*(STATES(1) - ALGBRC(41))
      ALGBRC(55) = ( CONSTS(4)*CONSTS(16)*STATES(11)*(STATES(1) - ALGBRC(41)))/(1.00000+EXP((STATES(1)+15.0000)/22.4000))
      ALGBRC(56) =  CONSTS(4)*CONSTS(17)*STATES(12) ** 2.00000*(STATES(1) - ALGBRC(41))
      ALGBRC(58) = 1.00000+ 0.124500*EXP(( - 0.100000*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))+ 0.0365000*CONSTS(46)*EXP(( - CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) ** - 1.00000
      ALGBRC(59) = ( (( CONSTS(4)*CONSTS(21)*ALGBRC(58)*1.00000)/(1.00000+CONSTS(19)/STATES(2) ** 1.50000))*CONSTS(13))/(CONSTS(13)+CONSTS(20))
      ALGBRC(61) =  CONSTS(4)*CONSTS(24)*(STATES(1) - ALGBRC(41))
      ALGBRC(18) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(11)/STATES(2))
      ALGBRC(31) =  CONSTS(4)*CONSTS(10)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(18))
      ALGBRC(64) = ( CONSTS(4)*CONSTS(26)*( EXP(( CONSTS(30)*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))*STATES(2) ** 3.00000*CONSTS(25) -  EXP(( (CONSTS(30) - 1.00000)*CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2)))*CONSTS(11) ** 3.00000*STATES(13)))/( (CONSTS(27) ** 3.00000+CONSTS(11) ** 3.00000)*(CONSTS(28)+CONSTS(25))*(1.00000+ CONSTS(29)*EXP(( (CONSTS(30) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))))
      ALGBRC(62) =  CONSTS(4)*CONSTS(22)*(STATES(1) - ALGBRC(18))
      ALGBRC(1) = TERNRY(VOI.GE.CONSTS(5).AND.VOI.LE.CONSTS(6).AND.(VOI - CONSTS(5)) -  INT((VOI - CONSTS(5))/CONSTS(7))*CONSTS(7).LE.CONSTS(8), CONSTS(9), 0.00000)
      ALGBRC(57) =  CONSTS(4)*CONSTS(18)*STATES(14)*STATES(15)*STATES(16)*(STATES(1) - 65.0000)
      ALGBRC(65) = ( CONSTS(4)*CONSTS(31)*STATES(13))/(0.000500000+STATES(13))
      ALGBRC(60) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(25)/STATES(13))
      ALGBRC(63) =  CONSTS(4)*CONSTS(23)*(STATES(1) - ALGBRC(60))
      ALGBRC(66) =  CONSTS(32)*STATES(18) ** 2.00000*STATES(19)*STATES(20)*(STATES(17) - STATES(13))
      ALGBRC(68) = (STATES(21) - STATES(17))/CONSTS(33)
      ALGBRC(67) =  1000.00*( 1.00000e-15*CONSTS(48)*ALGBRC(66) -  (1.00000e-15/( 2.00000*CONSTS(3)))*( 0.500000*ALGBRC(57) -  0.200000*ALGBRC(64)))
      ALGBRC(69) = 1.00000+EXP(- (ALGBRC(67) - 3.41750e-13)/1.36700e-15) ** - 1.00000
      ALGBRC(70) = 1.91000+ 2.09000*1.00000+EXP(- (ALGBRC(67) - 3.41750e-13)/1.36700e-15) ** - 1.00000
      ALGBRC(72) = 1.00000 - 1.00000+EXP(- (ALGBRC(67) - 6.83500e-14)/1.36700e-15) ** - 1.00000
      ALGBRC(71) = CONSTS(34)/(1.00000+CONSTS(35)/STATES(13))
      ALGBRC(73) = ( CONSTS(34)*STATES(21))/CONSTS(36)
      ALGBRC(74) = ( 2.00000*ALGBRC(64) - (ALGBRC(65)+ALGBRC(57)+ALGBRC(63)))/( 2.00000*CONSTS(44)*CONSTS(3))+( CONSTS(49)*(ALGBRC(73) - ALGBRC(71))+ ALGBRC(66)*CONSTS(48))/CONSTS(44)
      ALGBRC(75) = 1.00000+( CONSTS(38)*CONSTS(41))/STATES(13)+CONSTS(41) ** 2.00000+( CONSTS(37)*CONSTS(40))/STATES(13)+CONSTS(40) ** 2.00000
      ALGBRC(15) = ( CONSTS(37)*STATES(13))/(STATES(13)+CONSTS(40))
      ALGBRC(16) = ( CONSTS(38)*STATES(13))/(STATES(13)+CONSTS(41))
      ALGBRC(17) = ( CONSTS(39)*STATES(17))/(STATES(17)+CONSTS(42))
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END