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 51 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 57 entries in the constant variable array.
C
C
C VOI is time in component environment (ms).
C STATES(1) is V in component cell (mV).
C CONSTS(1) is R in component cell (joule_per_mole_kelvin).
C CONSTS(2) is T in component cell (kelvin).
C CONSTS(3) is F in component cell (coulomb_per_millimole).
C CONSTS(44) is FonRT in component cell (per_mV).
C CONSTS(4) is Cm in component cell (pF).
C CONSTS(5) is failing in component cell (dimensionless).
C ALGBRC(22) is i_Na in component INa (uA_per_uF).
C ALGBRC(25) is i_Ca in component ICa (uA_per_uF).
C ALGBRC(27) is i_to in component Ito (uA_per_uF).
C ALGBRC(32) is i_Kr in component IKr (uA_per_uF).
C ALGBRC(29) is i_Ks in component IKs (uA_per_uF).
C ALGBRC(37) is i_K1 in component IK1 (uA_per_uF).
C ALGBRC(42) is i_NaCa in component INaCa (uA_per_uF).
C ALGBRC(41) is i_NaK in component INaK (uA_per_uF).
C ALGBRC(39) is i_b_Na in component INab (uA_per_uF).
C ALGBRC(38) is i_b_Ca in component ICab (uA_per_uF).
C ALGBRC(45) is dVdt in component cell (mV_per_ms).
C ALGBRC(43) is I_tot in component cell (uA_per_uF).
C ALGBRC(11) is i_Stim in component cell (uA_per_uF).
C CONSTS(6) is stim_offset in component cell (ms).
C CONSTS(7) is stim_period in component cell (ms).
C CONSTS(8) is stim_duration in component cell (ms).
C CONSTS(9) is stim_amplitude in component cell (uA_per_uF).
C ALGBRC(1) is past in component cell (ms).
C CONSTS(10) is V_clamp in component cell (dimensionless).
C CONSTS(11) is V_hold in component cell (mV).
C CONSTS(12) is V_step in component cell (mV).
C ALGBRC(21) is E_Na in component INa (mV).
C CONSTS(13) is g_Na in component INa (mS_per_uF).
C STATES(2) is Nai in component Ionic_concentrations (mM).
C CONSTS(14) is Nao in component Ionic_concentrations (mM).
C STATES(3) is m in component INa_m_gate (dimensionless).
C STATES(4) is h in component INa_h_gate (dimensionless).
C STATES(5) is j in component INa_j_gate (dimensionless).
C ALGBRC(2) is alpha_m in component INa_m_gate (per_ms).
C ALGBRC(12) is beta_m in component INa_m_gate (per_ms).
C ALGBRC(3) is alpha_h in component INa_h_gate (per_ms).
C ALGBRC(13) is beta_h in component INa_h_gate (per_ms).
C ALGBRC(4) is alpha_j in component INa_j_gate (per_ms).
C ALGBRC(14) is beta_j in component INa_j_gate (per_ms).
C ALGBRC(23) is E_Ca in component ICa (mV).
C CONSTS(15) is g_Ca_max in component ICa (mS_per_uF).
C STATES(6) is Cai in component Ionic_concentrations (mM).
C CONSTS(16) is Cao in component Ionic_concentrations (mM).
C STATES(7) is d in component ICa_d_gate (dimensionless).
C STATES(8) is f in component ICa_f_gate (dimensionless).
C ALGBRC(24) is f_Ca in component ICa_f_Ca_gate (dimensionless).
C ALGBRC(5) is alpha_d in component ICa_d_gate (per_ms).
C ALGBRC(15) is beta_d in component ICa_d_gate (per_ms).
C ALGBRC(6) is alpha_f in component ICa_f_gate (per_ms).
C ALGBRC(16) is beta_f in component ICa_f_gate (per_ms).
C CONSTS(17) is Km_Ca in component ICa_f_Ca_gate (mM).
C CONSTS(45) is g_to_max in component Ito (mS_per_uF).
C ALGBRC(26) is E_to in component Ito (mV).
C STATES(9) is Ki in component Ionic_concentrations (mM).
C CONSTS(18) is Ko in component Ionic_concentrations (mM).
C STATES(10) is t in component Ito_t_gate (dimensionless).
C STATES(11) is r in component Ito_r_gate (dimensionless).
C ALGBRC(7) is alpha_r in component Ito_r_gate (per_ms).
C ALGBRC(17) is beta_r in component Ito_r_gate (per_ms).
C ALGBRC(8) is alpha_t in component Ito_t_gate (per_ms).
C ALGBRC(18) is beta_t in component Ito_t_gate (per_ms).
C CONSTS(19) is g_Ks_max in component IKs (mS_per_uF).
C ALGBRC(28) is E_Ks in component IKs (mV).
C STATES(12) is Xs in component IKs_Xs_gate (dimensionless).
C ALGBRC(9) is alpha_Xs in component IKs_Xs_gate (per_ms).
C ALGBRC(19) is beta_Xs in component IKs_Xs_gate (per_ms).
C CONSTS(20) is g_Kr_max in component IKr (mS_per_uF).
C ALGBRC(31) is rik in component IKr (dimensionless).
C ALGBRC(30) is E_K in component IKr (mV).
C STATES(13) is Xr in component IKr_Xr_gate (dimensionless).
C ALGBRC(10) is alpha_Xr in component IKr_Xr_gate (per_ms).
C ALGBRC(20) is beta_Xr in component IKr_Xr_gate (per_ms).
C ALGBRC(33) is E_K1 in component IK1 (mV).
C CONSTS(46) is g_K1_max in component IK1 (mS_per_uF).
C ALGBRC(36) is K1_infinity in component IK1_K1_gate (dimensionless).
C ALGBRC(34) is alpha_K1 in component IK1_K1_gate (per_ms).
C ALGBRC(35) is beta_K1 in component IK1_K1_gate (per_ms).
C CONSTS(47) is g_b_Ca_max in component ICab (mS_per_uF).
C CONSTS(48) is g_b_Na_max in component INab (mS_per_uF).
C CONSTS(49) is I_NaK_max in component INaK (uA_per_uF).
C ALGBRC(40) is f_NaK in component INaK (dimensionless).
C CONSTS(21) is K_mNai in component INaK (mM).
C CONSTS(22) is K_mKo in component INaK (mM).
C CONSTS(50) is sigma in component INaK (dimensionless).
C CONSTS(51) is K_NaCa in component INaCa (uA_per_uF).
C CONSTS(23) is K_mNa in component INaCa (mM).
C CONSTS(24) is K_mCa in component INaCa (mM).
C CONSTS(25) is K_sat in component INaCa (dimensionless).
C CONSTS(26) is eta in component INaCa (dimensionless).
C ALGBRC(46) is i_rel in component Irel (mM_per_ms).
C ALGBRC(44) is G_rel in component Irel (per_ms).
C CONSTS(27) is G_rel_max in component Irel (per_ms).
C CONSTS(28) is G_rel_overload in component Irel (per_ms).
C CONSTS(29) is K_mrel in component Irel (mM).
C CONSTS(30) is delta_Ca_ith in component Irel (mM).
C CONSTS(31) is K_mCSQN in component calcium_buffers_in_the_JSR (mM).
C STATES(14) is Ca_JSR in component Ionic_concentrations (mM).
C CONSTS(55) is V_myo in component Ionic_concentrations (fL).
C CONSTS(57) is V_JSR in component Ionic_concentrations (fL).
C STATES(15) is APtrack in component Irel (dimensionless).
C STATES(16) is APtrack2 in component Irel (dimensionless).
C STATES(17) is APtrack3 in component Irel (dimensionless).
C STATES(18) is Cainfluxtrack in component Irel (mM).
C STATES(19) is OVRLDtrack in component Irel (dimensionless).
C STATES(20) is OVRLDtrack2 in component Irel (dimensionless).
C STATES(21) is OVRLDtrack3 in component Irel (dimensionless).
C CONSTS(32) is CSQNthresh in component Irel (mM).
C CONSTS(33) is Logicthresh in component Irel (dimensionless).
C ALGBRC(47) is i_up in component Iup (mM_per_ms).
C CONSTS(52) is I_up_max in component Iup (mM_per_ms).
C CONSTS(34) is K_mup in component Iup (mM).
C ALGBRC(48) is i_leak in component Ileak (mM_per_ms).
C CONSTS(53) is K_leak in component Ileak (per_ms).
C STATES(22) is Ca_NSR in component Ionic_concentrations (mM).
C ALGBRC(50) is i_tr in component Itr (mM_per_ms).
C CONSTS(35) is tau_tr in component Itr (ms).
C CONSTS(36) is K_mTn in component calcium_buffers_in_the_myoplasm (mM).
C CONSTS(37) is K_mCMDN in component calcium_buffers_in_the_myoplasm (mM).
C CONSTS(38) is Tn_max in component calcium_buffers_in_the_myoplasm (mM).
C CONSTS(39) is CMDN_max in component calcium_buffers_in_the_myoplasm (mM).
C CONSTS(40) is buffon in component calcium_buffers_in_the_myoplasm (dimensionless).
C ALGBRC(49) is Cai_bufc in component calcium_buffers_in_the_myoplasm (dimensionless).
C CONSTS(41) is CSQN_max in component calcium_buffers_in_the_JSR (mM).
C ALGBRC(51) is Ca_JSR_bufc in component calcium_buffers_in_the_JSR (dimensionless).
C CONSTS(42) is preplength in component Ionic_concentrations (um).
C CONSTS(43) is radius in component Ionic_concentrations (um).
C CONSTS(54) is volume in component Ionic_concentrations (fL).
C CONSTS(56) is V_NSR in component Ionic_concentrations (fL).
C RATES(1) is d/dt V in component cell (mV).
C RATES(3) is d/dt m in component INa_m_gate (dimensionless).
C RATES(4) is d/dt h in component INa_h_gate (dimensionless).
C RATES(5) is d/dt j in component INa_j_gate (dimensionless).
C RATES(7) is d/dt d in component ICa_d_gate (dimensionless).
C RATES(8) is d/dt f in component ICa_f_gate (dimensionless).
C RATES(11) is d/dt r in component Ito_r_gate (dimensionless).
C RATES(10) is d/dt t in component Ito_t_gate (dimensionless).
C RATES(12) is d/dt Xs in component IKs_Xs_gate (dimensionless).
C RATES(13) is d/dt Xr in component IKr_Xr_gate (dimensionless).
C RATES(15) is d/dt APtrack in component Irel (dimensionless).
C RATES(16) is d/dt APtrack2 in component Irel (dimensionless).
C RATES(17) is d/dt APtrack3 in component Irel (dimensionless).
C RATES(18) is d/dt Cainfluxtrack in component Irel (mM).
C RATES(19) is d/dt OVRLDtrack in component Irel (dimensionless).
C RATES(20) is d/dt OVRLDtrack2 in component Irel (dimensionless).
C RATES(21) is d/dt OVRLDtrack3 in component Irel (dimensionless).
C RATES(2) is d/dt Nai in component Ionic_concentrations (mM).
C RATES(9) is d/dt Ki in component Ionic_concentrations (mM).
C RATES(6) is d/dt Cai in component Ionic_concentrations (mM).
C RATES(14) is d/dt Ca_JSR in component Ionic_concentrations (mM).
C RATES(22) is d/dt Ca_NSR in component Ionic_concentrations (mM).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = -90.7796417483135
      CONSTS(1) = 8.3143
      CONSTS(2) = 310.15
      CONSTS(3) = 96.4867
      CONSTS(4) = 153.4
      CONSTS(5) = 0
      CONSTS(6) = 0
      CONSTS(7) = 1000
      CONSTS(8) = 3
      CONSTS(9) = -15
      CONSTS(10) = 0
      CONSTS(11) = -60
      CONSTS(12) = 0
      CONSTS(13) = 16
      STATES(2) = 10
      CONSTS(14) = 138
      STATES(3) = 0.000585525582501575
      STATES(4) = 0.995865529216237
      STATES(5) = 0.997011204496203
      CONSTS(15) = 0.064
      STATES(6) = 0.0002
      CONSTS(16) = 2
      STATES(7) = 2.50653215966786e-10
      STATES(8) = 0.92130376850548
      CONSTS(17) = 0.0006
      STATES(9) = 140
      CONSTS(18) = 4
      STATES(10) = 0.999897251531651
      STATES(11) = 1.75032478501027e-5
      CONSTS(19) = 0.02
      STATES(12) = 0.00885658064818147
      CONSTS(20) = 0.015
      STATES(13) = 0.000215523048438941
      CONSTS(21) = 10
      CONSTS(22) = 1.5
      CONSTS(23) = 87.5
      CONSTS(24) = 1.38
      CONSTS(25) = 0.1
      CONSTS(26) = 0.35
      CONSTS(27) = 22
      CONSTS(28) = 3
      CONSTS(29) = 0.0008
      CONSTS(30) = 5e-6
      CONSTS(31) = 0.8
      STATES(14) = 2.5
      STATES(15) = -1.372158997089e-136
      STATES(16) = -7.58517896402761e-136
      STATES(17) = 4.82035353592764e-5
      STATES(18) = -7.71120176147331e-138
      STATES(19) = 1e-6
      STATES(20) = 1e-6
      STATES(21) = 1e-6
      CONSTS(32) = 0.7
      CONSTS(33) = 0.98
      CONSTS(34) = 0.00092
      STATES(22) = 2.5
      CONSTS(35) = 180
      CONSTS(36) = 0.0005
      CONSTS(37) = 0.00238
      CONSTS(38) = 0.07
      CONSTS(39) = 0.05
      CONSTS(40) = 1
      CONSTS(41) = 10
      CONSTS(42) = 100
      CONSTS(43) = 11
      CONSTS(44) = CONSTS(3)/( CONSTS(1)*CONSTS(2))
      CONSTS(45) = TERNRY(CONSTS(5).EQ.0.00000, 0.300000, 0.191000)
      CONSTS(46) = TERNRY(CONSTS(5).EQ.0.00000, 2.50000, 2.00000)
      CONSTS(47) = TERNRY(CONSTS(5).EQ.0.00000, 0.000850000, 0.00130000)
      CONSTS(48) = TERNRY(CONSTS(5).EQ.0.00000, 0.00100000, 0.00000)
      CONSTS(49) = TERNRY(CONSTS(5).EQ.0.00000, 1.30000, 0.750000)
      CONSTS(50) =  (1.00000/7.00000)*(EXP(CONSTS(14)/67.3000) - 1.00000)
      CONSTS(51) = TERNRY(CONSTS(5).EQ.0.00000, 1000.00, 1650.00)
      CONSTS(52) = TERNRY(CONSTS(5).EQ.0.00000, 0.00450000, 0.00150000)
      CONSTS(53) = TERNRY(CONSTS(5).EQ.0.00000, 0.000260000, 0.000170000)
      CONSTS(54) =   3.14159265358979*CONSTS(42)*CONSTS(43) ** 2.00000
      CONSTS(55) =  0.680000*CONSTS(54)
      CONSTS(56) =  0.0552000*CONSTS(54)
      CONSTS(57) =  0.00480000*CONSTS(54)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(16) = TERNRY(STATES(15).LT.0.200000.AND.STATES(15).GT.0.180000,  100.000*(1.00000 - STATES(16)) -  0.500000*STATES(16),  - 0.500000*STATES(16))
      RATES(17) = TERNRY(STATES(15).LT.0.200000.AND.STATES(15).GT.0.180000,  100.000*(1.00000 - STATES(17)) -  0.500000*STATES(17),  - 0.0100000*STATES(17))
      RATES(19) = TERNRY(1.00000/(1.00000+CONSTS(31)/STATES(14)).GT.CONSTS(32).AND.STATES(21).LT.0.370000.AND.STATES(17).LT.0.370000,  0.00000*50.0000*(1.00000 - STATES(19)),  - 0.00000*0.500000*STATES(19))
      RATES(20) = TERNRY(STATES(19).GT.CONSTS(33).AND.STATES(20).LT.CONSTS(33),  0.00000*50.0000*(1.00000 - STATES(20)),  - 0.00000*0.500000*STATES(20))
      RATES(21) = TERNRY(STATES(19).GT.CONSTS(33).AND.STATES(21).LT.CONSTS(33),  0.00000*50.0000*(1.00000 - STATES(21)),  - 0.00000*0.0100000*STATES(21))
      ALGBRC(2) = TERNRY(ABS(STATES(1)+47.1300).GT.0.00100000, ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( - 0.100000*(STATES(1)+47.1300))), 3.20000)
      ALGBRC(12) =  0.0800000*EXP(- STATES(1)/11.0000)
      RATES(3) =  ALGBRC(2)*(1.00000 - STATES(3)) -  ALGBRC(12)*STATES(3)
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000,  0.135000*EXP((80.0000+STATES(1))/- 6.80000), 0.00000)
      ALGBRC(13) = 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(3)*(1.00000 - STATES(4)) -  ALGBRC(13)*STATES(4)
      ALGBRC(4) = TERNRY(STATES(1).LT.- 40.0000, ( ( - 127140.*EXP( 0.244000*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(14) = 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(4)*(1.00000 - STATES(5)) -  ALGBRC(14)*STATES(5)
      ALGBRC(5) =  (14.9859/( 16.6813* ( 2.00000* 3.14159265358979) ** (1.0 / 2)))*EXP(- (STATES(1) - 22.3600)/16.6813 ** 2.00000/2.00000)
      ALGBRC(15) = 0.147100 -  (5.30000/( 14.9300* ( 2.00000* 3.14159265358979) ** (1.0 / 2)))*EXP(- (STATES(1) - 6.27440)/14.9300 ** 2.00000/2.00000)
      RATES(7) =  ALGBRC(5)*(1.00000 - STATES(7)) -  ALGBRC(15)*STATES(7)
      ALGBRC(6) = 0.00687200/(1.00000+EXP((STATES(1) - 6.15460)/6.12230))
      ALGBRC(16) = ( 0.0687000*EXP( - 0.108100*(STATES(1)+9.82550))+0.0112000)/(1.00000+EXP( - 0.277900*(STATES(1)+9.82550)))+0.000547400
      RATES(8) =  ALGBRC(6)*(1.00000 - STATES(8)) -  ALGBRC(16)*STATES(8)
      ALGBRC(7) = ( 0.526600*EXP( - 0.0166000*(STATES(1) - 42.2912)))/(1.00000+EXP( - 0.0943000*(STATES(1) - 42.2912)))
      ALGBRC(17) = ( 5.18600e-05*STATES(1)+ 0.514900*EXP( - 0.134400*(STATES(1) - 5.00270)))/(1.00000+EXP( - 0.134800*(STATES(1) - 5.18600e-05)))
      RATES(11) =  ALGBRC(7)*(1.00000 - STATES(11)) -  ALGBRC(17)*STATES(11)
      ALGBRC(8) = ( 5.61200e-05*STATES(1)+ 0.0721000*EXP( - 0.173000*(STATES(1)+34.2531)))/(1.00000+EXP( - 0.173200*(STATES(1)+34.2531)))
      ALGBRC(18) = ( 0.000121500*STATES(1)+ 0.0767000*EXP( - 1.66000e-09*(STATES(1)+34.0235)))/(1.00000+EXP( - 0.160400*(STATES(1)+34.0235)))
      RATES(10) =  ALGBRC(8)*(1.00000 - STATES(10)) -  ALGBRC(18)*STATES(10)
      ALGBRC(9) = 0.00301300/(1.00000+EXP((7.44540 - (STATES(1)+10.0000))/14.3171))
      ALGBRC(19) = 0.00587000/(1.00000+EXP((5.95000+STATES(1)+10.0000)/15.8200))
      RATES(12) =  ALGBRC(9)*(1.00000 - STATES(12)) -  ALGBRC(19)*STATES(12)
      ALGBRC(10) = ( 0.00500000*EXP( 0.000526600*(STATES(1)+4.06700)))/(1.00000+EXP( - 0.126200*(STATES(1)+4.06700)))
      ALGBRC(20) = ( 0.0160000*EXP( 0.00160000*(STATES(1)+65.6600)))/(1.00000+EXP( 0.0783000*(STATES(1)+65.6600)))
      RATES(13) =  ALGBRC(10)*(1.00000 - STATES(13)) -  ALGBRC(20)*STATES(13)
      ALGBRC(26) = log(( 0.0430000*CONSTS(14)+CONSTS(18))/( 0.0430000*STATES(2)+STATES(9)))/CONSTS(44)
      ALGBRC(27) =  CONSTS(45)*STATES(11)*STATES(10)*(STATES(1) - ALGBRC(26))
      ALGBRC(31) = 1.00000/(1.00000+EXP((STATES(1)+26.0000)/23.0000))
      ALGBRC(30) = log(CONSTS(18)/STATES(9))/CONSTS(44)
      ALGBRC(32) =  CONSTS(20)*STATES(13)*ALGBRC(31)*(STATES(1) - ALGBRC(30))
      ALGBRC(28) = log(( 0.0183300*CONSTS(14)+CONSTS(18))/( 0.0183300*STATES(2)+STATES(9)))/CONSTS(44)
      ALGBRC(29) =  CONSTS(19)*STATES(12) ** 2.00000*(STATES(1) - ALGBRC(28))
      ALGBRC(33) = log(CONSTS(18)/STATES(9))/CONSTS(44)
      ALGBRC(34) = 0.100000/(1.00000+EXP( 0.0600000*(STATES(1) - (ALGBRC(33)+200.000))))
      ALGBRC(35) = ( 3.00000*EXP( 0.000200000*(STATES(1)+100.000+- ALGBRC(33)))+ 1.00000*EXP( 0.100000*(STATES(1) - (10.0000+ALGBRC(33)))))/(1.00000+EXP( - 0.500000*(STATES(1) - ALGBRC(33))))
      ALGBRC(36) = ALGBRC(34)/(ALGBRC(34)+ALGBRC(35))
      ALGBRC(37) =  CONSTS(46)*ALGBRC(36)*(STATES(1) - ALGBRC(33))
      ALGBRC(40) = 1.00000/(1.00000+ 0.124500*EXP( - 0.100000*STATES(1)*CONSTS(44))+ 0.0365000*CONSTS(50)*EXP( - STATES(1)*CONSTS(44)))
      ALGBRC(41) = ( (( CONSTS(49)*ALGBRC(40)*1.00000)/(1.00000+CONSTS(21)/STATES(2) ** 1.50000))*CONSTS(18))/(CONSTS(18)+CONSTS(22))
      ALGBRC(1) =  INT(VOI/CONSTS(7))*CONSTS(7)
      ALGBRC(11) = TERNRY(VOI - ALGBRC(1).GE.CONSTS(6).AND.VOI - ALGBRC(1).LE.CONSTS(6)+CONSTS(8), CONSTS(9), 0.00000)
      RATES(9) = ( - 1.00000*CONSTS(4)*((ALGBRC(27)+ALGBRC(32)+ALGBRC(37)+ALGBRC(11)+ALGBRC(29)) -  2.00000*ALGBRC(41)))/( CONSTS(55)*CONSTS(3))
      ALGBRC(23) = log(CONSTS(16)/STATES(6))/( 2.00000*CONSTS(44))
      ALGBRC(24) = CONSTS(17)/(CONSTS(17)+STATES(6))
      ALGBRC(25) =  CONSTS(15)*STATES(7)*STATES(8)*ALGBRC(24)*(STATES(1) - ALGBRC(23))
      ALGBRC(42) =  (( (( (( CONSTS(51)*1.00000)/(CONSTS(23) ** 3.00000+CONSTS(14) ** 3.00000))*1.00000)/(CONSTS(24)+CONSTS(16)))*1.00000)/(1.00000+ CONSTS(25)*EXP( (CONSTS(26) - 1.00000)*STATES(1)*CONSTS(44))))*( EXP( CONSTS(26)*STATES(1)*CONSTS(44))*STATES(2) ** 3.00000*CONSTS(16) -  EXP( (CONSTS(26) - 1.00000)*STATES(1)*CONSTS(44))*CONSTS(14) ** 3.00000*STATES(6))
      ALGBRC(38) =  CONSTS(47)*(STATES(1) - ALGBRC(23))
      RATES(18) = TERNRY(STATES(15).GT.0.200000, ( - CONSTS(4)*((ALGBRC(25) - ALGBRC(42))+ALGBRC(38)))/( 2.00000*CONSTS(55)*CONSTS(3)), TERNRY(STATES(16).GT.0.0100000.AND.STATES(15).LE.0.200000, 0.00000,  - 0.500000*STATES(18))
      ALGBRC(21) = log(CONSTS(14)/STATES(2))/CONSTS(44)
      ALGBRC(22) =  CONSTS(13)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(21))
      ALGBRC(39) =  CONSTS(48)*(STATES(1) - ALGBRC(21))
      RATES(2) = ( - 1.00000*CONSTS(4)*(ALGBRC(22)+ALGBRC(39)+ ALGBRC(42)*3.00000+ ALGBRC(41)*3.00000))/( CONSTS(55)*CONSTS(3))
      ALGBRC(43) = ALGBRC(22)+ALGBRC(25)+ALGBRC(27)+ALGBRC(32)+ALGBRC(29)+ALGBRC(37)+ALGBRC(42)+ALGBRC(41)+ALGBRC(39)+ALGBRC(38)+ALGBRC(11)
      ALGBRC(45) = TERNRY(CONSTS(10).EQ.1.00000.AND.(VOI.LE.500.000.OR.VOI.GT.800.000), (CONSTS(11) - STATES(1))/1.00000, TERNRY(CONSTS(10).EQ.1.00000.AND.VOI.GT.500.000.AND.VOI.LE.800.000, (CONSTS(12) - STATES(1))/1.00000,  - 1.00000*ALGBRC(43))
      RATES(1) = ALGBRC(45)
      RATES(15) = TERNRY(ALGBRC(45).GT.150.000,  100.000*(1.00000 - STATES(15)) -  0.500000*STATES(15),  - 0.500000*STATES(15))
      ALGBRC(44) = TERNRY(STATES(18).GT.CONSTS(30),  (( 1.00000*CONSTS(27)*(STATES(18) - CONSTS(30)))/((CONSTS(29)+STATES(18)) - CONSTS(30)))*(1.00000 - STATES(16))*STATES(16), TERNRY(STATES(18).LE.CONSTS(30).AND.STATES(20).GT.0.00000,  0.00000*CONSTS(28)*(1.00000 - STATES(20))*STATES(20), 0.00000)
      ALGBRC(46) =  ALGBRC(44)*(STATES(14) - STATES(6))
      ALGBRC(47) = ( CONSTS(52)*STATES(6))/(STATES(6)+CONSTS(34))
      ALGBRC(48) =  CONSTS(53)*STATES(22)
      ALGBRC(49) = 1.00000/(1.00000+ CONSTS(40)*(( CONSTS(39)*CONSTS(37))/CONSTS(37)+STATES(6) ** 2.00000+( CONSTS(38)*CONSTS(36))/CONSTS(36)+STATES(6) ** 2.00000))
      RATES(6) =  ALGBRC(49)*(( - CONSTS(4)*((ALGBRC(25) -  2.00000*ALGBRC(42))+ALGBRC(38)))/( 2.00000*CONSTS(55)*CONSTS(3))+( ALGBRC(46)*CONSTS(57))/CONSTS(55)+( (ALGBRC(48) - ALGBRC(47))*CONSTS(56))/CONSTS(55))
      ALGBRC(50) = ( 1.00000*(STATES(22) - STATES(14)))/CONSTS(35)
      RATES(22) =  - 1.00000*((ALGBRC(48)+ (CONSTS(57)/CONSTS(56))*ALGBRC(50)) - ALGBRC(47))
      ALGBRC(51) = 1.00000/(1.00000+( CONSTS(41)*CONSTS(31))/CONSTS(31)+STATES(14) ** 2.00000)
      RATES(14) =  ALGBRC(51)*(ALGBRC(50) - ALGBRC(46))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(2) = TERNRY(ABS(STATES(1)+47.1300).GT.0.00100000, ( 0.320000*(STATES(1)+47.1300))/(1.00000 - EXP( - 0.100000*(STATES(1)+47.1300))), 3.20000)
      ALGBRC(12) =  0.0800000*EXP(- STATES(1)/11.0000)
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000,  0.135000*EXP((80.0000+STATES(1))/- 6.80000), 0.00000)
      ALGBRC(13) = 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(4) = TERNRY(STATES(1).LT.- 40.0000, ( ( - 127140.*EXP( 0.244000*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(14) = 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(5) =  (14.9859/( 16.6813* ( 2.00000* 3.14159265358979) ** (1.0 / 2)))*EXP(- (STATES(1) - 22.3600)/16.6813 ** 2.00000/2.00000)
      ALGBRC(15) = 0.147100 -  (5.30000/( 14.9300* ( 2.00000* 3.14159265358979) ** (1.0 / 2)))*EXP(- (STATES(1) - 6.27440)/14.9300 ** 2.00000/2.00000)
      ALGBRC(6) = 0.00687200/(1.00000+EXP((STATES(1) - 6.15460)/6.12230))
      ALGBRC(16) = ( 0.0687000*EXP( - 0.108100*(STATES(1)+9.82550))+0.0112000)/(1.00000+EXP( - 0.277900*(STATES(1)+9.82550)))+0.000547400
      ALGBRC(7) = ( 0.526600*EXP( - 0.0166000*(STATES(1) - 42.2912)))/(1.00000+EXP( - 0.0943000*(STATES(1) - 42.2912)))
      ALGBRC(17) = ( 5.18600e-05*STATES(1)+ 0.514900*EXP( - 0.134400*(STATES(1) - 5.00270)))/(1.00000+EXP( - 0.134800*(STATES(1) - 5.18600e-05)))
      ALGBRC(8) = ( 5.61200e-05*STATES(1)+ 0.0721000*EXP( - 0.173000*(STATES(1)+34.2531)))/(1.00000+EXP( - 0.173200*(STATES(1)+34.2531)))
      ALGBRC(18) = ( 0.000121500*STATES(1)+ 0.0767000*EXP( - 1.66000e-09*(STATES(1)+34.0235)))/(1.00000+EXP( - 0.160400*(STATES(1)+34.0235)))
      ALGBRC(9) = 0.00301300/(1.00000+EXP((7.44540 - (STATES(1)+10.0000))/14.3171))
      ALGBRC(19) = 0.00587000/(1.00000+EXP((5.95000+STATES(1)+10.0000)/15.8200))
      ALGBRC(10) = ( 0.00500000*EXP( 0.000526600*(STATES(1)+4.06700)))/(1.00000+EXP( - 0.126200*(STATES(1)+4.06700)))
      ALGBRC(20) = ( 0.0160000*EXP( 0.00160000*(STATES(1)+65.6600)))/(1.00000+EXP( 0.0783000*(STATES(1)+65.6600)))
      ALGBRC(26) = log(( 0.0430000*CONSTS(14)+CONSTS(18))/( 0.0430000*STATES(2)+STATES(9)))/CONSTS(44)
      ALGBRC(27) =  CONSTS(45)*STATES(11)*STATES(10)*(STATES(1) - ALGBRC(26))
      ALGBRC(31) = 1.00000/(1.00000+EXP((STATES(1)+26.0000)/23.0000))
      ALGBRC(30) = log(CONSTS(18)/STATES(9))/CONSTS(44)
      ALGBRC(32) =  CONSTS(20)*STATES(13)*ALGBRC(31)*(STATES(1) - ALGBRC(30))
      ALGBRC(28) = log(( 0.0183300*CONSTS(14)+CONSTS(18))/( 0.0183300*STATES(2)+STATES(9)))/CONSTS(44)
      ALGBRC(29) =  CONSTS(19)*STATES(12) ** 2.00000*(STATES(1) - ALGBRC(28))
      ALGBRC(33) = log(CONSTS(18)/STATES(9))/CONSTS(44)
      ALGBRC(34) = 0.100000/(1.00000+EXP( 0.0600000*(STATES(1) - (ALGBRC(33)+200.000))))
      ALGBRC(35) = ( 3.00000*EXP( 0.000200000*(STATES(1)+100.000+- ALGBRC(33)))+ 1.00000*EXP( 0.100000*(STATES(1) - (10.0000+ALGBRC(33)))))/(1.00000+EXP( - 0.500000*(STATES(1) - ALGBRC(33))))
      ALGBRC(36) = ALGBRC(34)/(ALGBRC(34)+ALGBRC(35))
      ALGBRC(37) =  CONSTS(46)*ALGBRC(36)*(STATES(1) - ALGBRC(33))
      ALGBRC(40) = 1.00000/(1.00000+ 0.124500*EXP( - 0.100000*STATES(1)*CONSTS(44))+ 0.0365000*CONSTS(50)*EXP( - STATES(1)*CONSTS(44)))
      ALGBRC(41) = ( (( CONSTS(49)*ALGBRC(40)*1.00000)/(1.00000+CONSTS(21)/STATES(2) ** 1.50000))*CONSTS(18))/(CONSTS(18)+CONSTS(22))
      ALGBRC(1) =  INT(VOI/CONSTS(7))*CONSTS(7)
      ALGBRC(11) = TERNRY(VOI - ALGBRC(1).GE.CONSTS(6).AND.VOI - ALGBRC(1).LE.CONSTS(6)+CONSTS(8), CONSTS(9), 0.00000)
      ALGBRC(23) = log(CONSTS(16)/STATES(6))/( 2.00000*CONSTS(44))
      ALGBRC(24) = CONSTS(17)/(CONSTS(17)+STATES(6))
      ALGBRC(25) =  CONSTS(15)*STATES(7)*STATES(8)*ALGBRC(24)*(STATES(1) - ALGBRC(23))
      ALGBRC(42) =  (( (( (( CONSTS(51)*1.00000)/(CONSTS(23) ** 3.00000+CONSTS(14) ** 3.00000))*1.00000)/(CONSTS(24)+CONSTS(16)))*1.00000)/(1.00000+ CONSTS(25)*EXP( (CONSTS(26) - 1.00000)*STATES(1)*CONSTS(44))))*( EXP( CONSTS(26)*STATES(1)*CONSTS(44))*STATES(2) ** 3.00000*CONSTS(16) -  EXP( (CONSTS(26) - 1.00000)*STATES(1)*CONSTS(44))*CONSTS(14) ** 3.00000*STATES(6))
      ALGBRC(38) =  CONSTS(47)*(STATES(1) - ALGBRC(23))
      ALGBRC(21) = log(CONSTS(14)/STATES(2))/CONSTS(44)
      ALGBRC(22) =  CONSTS(13)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(21))
      ALGBRC(39) =  CONSTS(48)*(STATES(1) - ALGBRC(21))
      ALGBRC(43) = ALGBRC(22)+ALGBRC(25)+ALGBRC(27)+ALGBRC(32)+ALGBRC(29)+ALGBRC(37)+ALGBRC(42)+ALGBRC(41)+ALGBRC(39)+ALGBRC(38)+ALGBRC(11)
      ALGBRC(45) = TERNRY(CONSTS(10).EQ.1.00000.AND.(VOI.LE.500.000.OR.VOI.GT.800.000), (CONSTS(11) - STATES(1))/1.00000, TERNRY(CONSTS(10).EQ.1.00000.AND.VOI.GT.500.000.AND.VOI.LE.800.000, (CONSTS(12) - STATES(1))/1.00000,  - 1.00000*ALGBRC(43))
      ALGBRC(44) = TERNRY(STATES(18).GT.CONSTS(30),  (( 1.00000*CONSTS(27)*(STATES(18) - CONSTS(30)))/((CONSTS(29)+STATES(18)) - CONSTS(30)))*(1.00000 - STATES(16))*STATES(16), TERNRY(STATES(18).LE.CONSTS(30).AND.STATES(20).GT.0.00000,  0.00000*CONSTS(28)*(1.00000 - STATES(20))*STATES(20), 0.00000)
      ALGBRC(46) =  ALGBRC(44)*(STATES(14) - STATES(6))
      ALGBRC(47) = ( CONSTS(52)*STATES(6))/(STATES(6)+CONSTS(34))
      ALGBRC(48) =  CONSTS(53)*STATES(22)
      ALGBRC(49) = 1.00000/(1.00000+ CONSTS(40)*(( CONSTS(39)*CONSTS(37))/CONSTS(37)+STATES(6) ** 2.00000+( CONSTS(38)*CONSTS(36))/CONSTS(36)+STATES(6) ** 2.00000))
      ALGBRC(50) = ( 1.00000*(STATES(22) - STATES(14)))/CONSTS(35)
      ALGBRC(51) = 1.00000/(1.00000+( CONSTS(41)*CONSTS(31))/CONSTS(31)+STATES(14) ** 2.00000)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END