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 71 entries in the algebraic variable array.
C There are a total of 56 entries in each of the rate and state variable arrays.
C There are a total of 105 entries in the constant variable array.
C
C
C VOI is time in component cell (millisecond).
C CONSTS(1) is C_m in component wal_environment (microF_per_cm2).
C CONSTS(2) is gam in component wal_environment (dimensionless).
C CONSTS(3) is R_a in component wal_environment (ohm_cm2).
C CONSTS(4) is tsi in component wal_environment (centi_metre).
C CONSTS(5) is tsi2 in component wal_environment (centi_metre).
C CONSTS(6) is tsi3 in component wal_environment (centi_metre).
C CONSTS(7) is FF in component wal_environment (C_per_mol).
C CONSTS(8) is tau_K in component wal_environment (millisecond).
C CONSTS(9) is tau_Na in component wal_environment (millisecond).
C CONSTS(10) is f_T in component wal_environment (dimensionless).
C CONSTS(11) is tau_K2 in component wal_environment (millisecond).
C CONSTS(12) is tau_Na2 in component wal_environment (millisecond).
C CONSTS(13) is I_K_rest in component wal_environment (microA_per_cm2).
C CONSTS(14) is I_Na_rest in component wal_environment (microA_per_cm2).
C CONSTS(15) is alpha_h_bar in component wal_environment (per_millisecond).
C CONSTS(16) is alpha_m_bar in component wal_environment (per_millisecond_per_millivolt).
C CONSTS(17) is alpha_n_bar in component wal_environment (per_millisecond_per_millivolt).
C CONSTS(18) is beta_h_bar in component wal_environment (per_millisecond).
C CONSTS(19) is beta_m_bar in component wal_environment (per_millisecond).
C CONSTS(20) is beta_n_bar in component wal_environment (per_millisecond).
C CONSTS(21) is V_m in component wal_environment (millivolt).
C CONSTS(22) is V_n in component wal_environment (millivolt).
C CONSTS(23) is V_h in component wal_environment (millivolt).
C CONSTS(24) is V_a in component wal_environment (millivolt).
C CONSTS(25) is V_S_inf in component wal_environment (millivolt).
C CONSTS(26) is V_h_K_inf in component wal_environment (millivolt).
C CONSTS(27) is A_a in component wal_environment (millivolt).
C CONSTS(28) is A_S_inf in component wal_environment (millivolt).
C CONSTS(29) is A_h_K_inf in component wal_environment (millivolt).
C CONSTS(30) is K_alpha_h in component wal_environment (millivolt).
C CONSTS(31) is K_beta_h in component wal_environment (millivolt).
C CONSTS(32) is K_alpha_m in component wal_environment (millivolt).
C CONSTS(33) is K_alpha_n in component wal_environment (millivolt).
C CONSTS(34) is K_beta_m in component wal_environment (millivolt).
C CONSTS(35) is K_beta_n in component wal_environment (millivolt).
C CONSTS(36) is RR in component wal_environment (milliJ_per_degreeK_per_mol).
C CONSTS(37) is TT in component wal_environment (degreeK).
C CONSTS(38) is g_Cl_bar in component wal_environment (milliS_per_cm2).
C CONSTS(39) is g_K_bar in component wal_environment (milliS_per_cm2).
C CONSTS(40) is g_Na_bar in component wal_environment (milliS_per_cm2).
C CONSTS(41) is G_K in component wal_environment (milliS_per_cm2).
C CONSTS(42) is del in component wal_environment (dimensionless).
C CONSTS(43) is K_K in component wal_environment (milliM2).
C CONSTS(44) is K_S in component wal_environment (milliM2).
C CONSTS(45) is K_m_K in component wal_environment (milliM).
C CONSTS(46) is K_m_Na in component wal_environment (milliM).
C CONSTS(47) is S_i in component wal_environment (milliM).
C CONSTS(48) is J_NaK_bar in component wal_environment (micro_mol_per_cm2_per_second).
C CONSTS(49) is V_tau in component wal_environment (millivolt).
C ALGBRC(1) is I_T in component wal_environment (microA_per_cm2).
C STATES(1) is vS in component wal_environment (millivolt).
C STATES(2) is vT in component wal_environment (millivolt).
C ALGBRC(52) is I_ionic_s in component wal_environment (microA_per_cm2).
C ALGBRC(71) is I_ionic_t in component wal_environment (microA_per_cm2).
C STATES(3) is K_t in component wal_environment (milliM).
C STATES(4) is K_i in component wal_environment (milliM).
C STATES(5) is K_e in component wal_environment (milliM).
C STATES(6) is Na_i in component wal_environment (milliM).
C STATES(7) is Na_t in component wal_environment (milliM).
C STATES(8) is Na_e in component wal_environment (milliM).
C ALGBRC(14) is E_K in component wal_environment (millivolt).
C ALGBRC(26) is E_K_t in component wal_environment (millivolt).
C ALGBRC(27) is Cl_i in component wal_environment (milliM).
C ALGBRC(28) is Cl_o in component wal_environment (milliM).
C ALGBRC(29) is Cl_i_t in component wal_environment (milliM).
C ALGBRC(30) is Cl_o_t in component wal_environment (milliM).
C ALGBRC(31) is J_K in component wal_environment (milliV_milliM).
C ALGBRC(32) is J_K_t in component wal_environment (milliV_milliM).
C CONSTS(50) is eta_Cl in component wal_environment (dimensionless).
C CONSTS(51) is eta_IR in component wal_environment (dimensionless).
C CONSTS(52) is eta_DR in component wal_environment (dimensionless).
C CONSTS(53) is eta_Na in component wal_environment (dimensionless).
C CONSTS(54) is eta_NaK in component wal_environment (dimensionless).
C ALGBRC(37) is I_Cl in component sarco_Cl_channel (microA_per_cm2).
C ALGBRC(42) is I_IR in component sarco_IR_channel (microA_per_cm2).
C ALGBRC(44) is I_DR in component sarco_DR_channel (microA_per_cm2).
C ALGBRC(47) is I_Na in component sarco_Na_channel (microA_per_cm2).
C ALGBRC(51) is I_NaK in component sarco_NaK_channel (microA_per_cm2).
C ALGBRC(56) is I_Cl_t in component t_Cl_channel (microA_per_cm2).
C ALGBRC(61) is I_IR_t in component t_IR_channel (microA_per_cm2).
C ALGBRC(63) is I_DR_t in component t_DR_channel (microA_per_cm2).
C ALGBRC(66) is I_Na_t in component t_Na_channel (microA_per_cm2).
C ALGBRC(70) is I_NaK_t in component t_NaK_channel (microA_per_cm2).
C ALGBRC(33) is I_HH in component wal_environment (microA_per_cm2).
C ALGBRC(34) is a in component sarco_Cl_channel (dimensionless).
C ALGBRC(35) is J_Cl in component sarco_Cl_channel (milliV_milliM).
C ALGBRC(36) is g_Cl in component sarco_Cl_channel (milliS_per_cm2).
C ALGBRC(38) is K_R in component sarco_IR_channel (milliM).
C ALGBRC(39) is g_IR_bar in component sarco_IR_channel (milliS_per_cm2).
C ALGBRC(40) is y in component sarco_IR_channel (dimensionless).
C ALGBRC(41) is g_IR in component sarco_IR_channel (milliS_per_cm2).
C ALGBRC(2) is alpha_n in component sarco_DR_channel (per_millisecond).
C ALGBRC(15) is beta_n in component sarco_DR_channel (per_millisecond).
C ALGBRC(3) is h_K_inf in component sarco_DR_channel (dimensionless).
C ALGBRC(16) is tau_h_K in component sarco_DR_channel (millisecond).
C STATES(9) is n in component sarco_DR_channel (dimensionless).
C STATES(10) is h_K in component sarco_DR_channel (dimensionless).
C ALGBRC(43) is g_DR in component sarco_DR_channel (milliS_per_cm2).
C ALGBRC(4) is alpha_h in component sarco_Na_channel (per_millisecond).
C ALGBRC(17) is beta_h in component sarco_Na_channel (per_millisecond).
C ALGBRC(5) is alpha_m in component sarco_Na_channel (per_millisecond).
C ALGBRC(18) is beta_m in component sarco_Na_channel (per_millisecond).
C ALGBRC(6) is S_inf in component sarco_Na_channel (dimensionless).
C ALGBRC(19) is tau_S in component sarco_Na_channel (millisecond).
C STATES(11) is m in component sarco_Na_channel (dimensionless).
C STATES(12) is h in component sarco_Na_channel (dimensionless).
C STATES(13) is S in component sarco_Na_channel (dimensionless).
C ALGBRC(46) is g_Na in component sarco_Na_channel (milliS_per_cm2).
C ALGBRC(45) is J_Na in component sarco_Na_channel (milliV_milliM).
C ALGBRC(48) is sig in component sarco_NaK_channel (dimensionless).
C ALGBRC(49) is f1 in component sarco_NaK_channel (dimensionless).
C ALGBRC(50) is I_NaK_bar in component sarco_NaK_channel (microA_per_cm2).
C ALGBRC(53) is a_t in component t_Cl_channel (dimensionless).
C ALGBRC(54) is J_Cl_t in component t_Cl_channel (milliV_milliM).
C ALGBRC(55) is g_Cl_t in component t_Cl_channel (milliS_per_cm2).
C ALGBRC(57) is K_R_t in component t_IR_channel (milliM).
C ALGBRC(58) is g_IR_bar_t in component t_IR_channel (milliS_per_cm2).
C ALGBRC(59) is y_t in component t_IR_channel (dimensionless).
C ALGBRC(60) is g_IR_t in component t_IR_channel (milliS_per_cm2).
C ALGBRC(7) is alpha_n_t in component t_DR_channel (per_millisecond).
C ALGBRC(20) is beta_n_t in component t_DR_channel (per_millisecond).
C ALGBRC(8) is h_K_inf_t in component t_DR_channel (dimensionless).
C ALGBRC(21) is tau_h_K_t in component t_DR_channel (millisecond).
C STATES(14) is n_t in component t_DR_channel (dimensionless).
C STATES(15) is h_K_t in component t_DR_channel (dimensionless).
C ALGBRC(62) is g_DR_t in component t_DR_channel (milliS_per_cm2).
C ALGBRC(9) is alpha_h_t in component t_Na_channel (per_millisecond).
C ALGBRC(22) is beta_h_t in component t_Na_channel (per_millisecond).
C ALGBRC(10) is alpha_m_t in component t_Na_channel (per_millisecond).
C ALGBRC(23) is beta_m_t in component t_Na_channel (per_millisecond).
C ALGBRC(11) is S_inf_t in component t_Na_channel (dimensionless).
C ALGBRC(24) is tau_S_t in component t_Na_channel (millisecond).
C STATES(16) is m_t in component t_Na_channel (dimensionless).
C STATES(17) is h_t in component t_Na_channel (dimensionless).
C STATES(18) is S_t in component t_Na_channel (dimensionless).
C ALGBRC(65) is g_Na_t in component t_Na_channel (milliS_per_cm2).
C ALGBRC(64) is J_Na_t in component t_Na_channel (milliV_milliM).
C ALGBRC(67) is sig_t in component t_NaK_channel (dimensionless).
C ALGBRC(68) is f1_t in component t_NaK_channel (dimensionless).
C ALGBRC(69) is I_NaK_bar_t in component t_NaK_channel (microA_per_cm2).
C STATES(19) is O_0 in component sternrios (dimensionless).
C STATES(20) is O_1 in component sternrios (dimensionless).
C STATES(21) is O_2 in component sternrios (dimensionless).
C STATES(22) is O_3 in component sternrios (dimensionless).
C STATES(23) is O_4 in component sternrios (dimensionless).
C CONSTS(55) is k_L in component sternrios (per_millisecond).
C CONSTS(56) is k_Lm in component sternrios (per_millisecond).
C CONSTS(57) is f in component sternrios (dimensionless).
C CONSTS(58) is alpha1 in component sternrios (per_millisecond).
C CONSTS(59) is K in component sternrios (millivolt).
C CONSTS(60) is Vbar in component sternrios (millivolt).
C STATES(24) is C_0 in component sternrios (dimensionless).
C STATES(25) is C_1 in component sternrios (dimensionless).
C STATES(26) is C_2 in component sternrios (dimensionless).
C STATES(27) is C_3 in component sternrios (dimensionless).
C STATES(28) is C_4 in component sternrios (dimensionless).
C ALGBRC(12) is k_C in component sternrios (per_millisecond).
C ALGBRC(25) is k_Cm in component sternrios (per_millisecond).
C CONSTS(61) is nu_SR in component razumova (micromolar_per_millisecond_micrometre3).
C CONSTS(62) is K_SR in component razumova (micromolar).
C CONSTS(63) is L_e in component razumova (micrometre3_per_millisecond).
C CONSTS(64) is tau_R in component razumova (micrometre3_per_millisecond).
C CONSTS(65) is tau_SR_R in component razumova (micrometre3_per_millisecond).
C CONSTS(66) is L_x in component razumova (micrometre).
C CONSTS(67) is R_R in component razumova (micrometre).
C CONSTS(100) is V_o in component razumova (micrometre3).
C CONSTS(102) is V_1 in component razumova (micrometre3).
C CONSTS(103) is V_2 in component razumova (micrometre3).
C CONSTS(101) is V_SR in component razumova (micrometre3).
C CONSTS(104) is V_SR1 in component razumova (micrometre3).
C CONSTS(105) is V_SR2 in component razumova (micrometre3).
C CONSTS(68) is k_T_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(69) is k_T_off in component razumova (per_millisecond).
C CONSTS(70) is T_tot in component razumova (micromolar).
C CONSTS(71) is k_P_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(72) is k_P_off in component razumova (per_millisecond).
C CONSTS(73) is P_tot in component razumova (micromolar).
C CONSTS(74) is k_Mg_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(75) is k_Mg_off in component razumova (per_millisecond).
C CONSTS(76) is k_Cs_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(77) is k_Cs_off in component razumova (per_millisecond).
C CONSTS(78) is Cs_tot in component razumova (micromolar).
C CONSTS(79) is k_CATP_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(80) is k_CATP_off in component razumova (per_millisecond).
C CONSTS(81) is k_MATP_on in component razumova (per_micromolar_per_millisecond).
C CONSTS(82) is k_MATP_off in component razumova (per_millisecond).
C CONSTS(83) is tau_ATP in component razumova (micrometre3_per_millisecond).
C CONSTS(84) is tau_Mg in component razumova (micrometre3_per_millisecond).
C CONSTS(85) is k_0_on in component razumova (per_millisecond).
C CONSTS(86) is k_0_off in component razumova (per_millisecond).
C CONSTS(87) is k_Ca_on in component razumova (per_millisecond).
C CONSTS(88) is k_Ca_off in component razumova (per_millisecond).
C CONSTS(89) is f_o in component razumova (per_millisecond).
C CONSTS(90) is f_p in component razumova (per_millisecond).
C CONSTS(91) is h_o in component razumova (per_millisecond).
C CONSTS(92) is h_p in component razumova (per_millisecond).
C CONSTS(93) is g_o in component razumova (per_millisecond).
C CONSTS(94) is b_p in component razumova (per_millisecond).
C CONSTS(95) is k_p in component razumova (micrometre3_per_millisecond).
C CONSTS(96) is A_p in component razumova (per_milliM3_per_millisecond).
C CONSTS(97) is B_p in component razumova (per_milliM2_per_millisecond).
C CONSTS(98) is PP in component razumova (milliM2).
C ALGBRC(13) is T_0 in component razumova (micromolar).
C STATES(29) is Ca_1 in component razumova (micromolar).
C STATES(30) is Ca_SR1 in component razumova (micromolar).
C STATES(31) is Ca_2 in component razumova (micromolar).
C STATES(32) is Ca_SR2 in component razumova (micromolar).
C STATES(33) is Ca_T_2 in component razumova (micromolar).
C STATES(34) is Ca_P1 in component razumova (micromolar).
C STATES(35) is Ca_P2 in component razumova (micromolar).
C STATES(36) is Mg_P1 in component razumova (micromolar).
C STATES(37) is Mg_P2 in component razumova (micromolar).
C STATES(38) is Ca_Cs1 in component razumova (micromolar).
C STATES(39) is Ca_Cs2 in component razumova (micromolar).
C STATES(40) is Ca_ATP1 in component razumova (micromolar).
C STATES(41) is Ca_ATP2 in component razumova (micromolar).
C STATES(42) is Mg_ATP1 in component razumova (micromolar).
C STATES(43) is Mg_ATP2 in component razumova (micromolar).
C STATES(44) is ATP1 in component razumova (micromolar).
C STATES(45) is ATP2 in component razumova (micromolar).
C STATES(46) is Mg1 in component razumova (micromolar).
C STATES(47) is Mg2 in component razumova (micromolar).
C STATES(48) is Ca_CaT2 in component razumova (micromolar).
C STATES(49) is D_0 in component razumova (micromolar).
C STATES(50) is D_1 in component razumova (micromolar).
C STATES(51) is D_2 in component razumova (micromolar).
C STATES(52) is A_1 in component razumova (micromolar).
C STATES(53) is A_2 in component razumova (micromolar).
C STATES(54) is P in component razumova (milliM).
C STATES(55) is P_SR in component razumova (milliM).
C STATES(56) is P_C_SR in component razumova (milliM).
C CONSTS(99) is i2 in component razumova (micrometre3_per_millisecond).
C RATES(1) is d/dt vS in component wal_environment (millivolt).
C RATES(2) is d/dt vT in component wal_environment (millivolt).
C RATES(4) is d/dt K_i in component wal_environment (milliM).
C RATES(3) is d/dt K_t in component wal_environment (milliM).
C RATES(5) is d/dt K_e in component wal_environment (milliM).
C RATES(6) is d/dt Na_i in component wal_environment (milliM).
C RATES(7) is d/dt Na_t in component wal_environment (milliM).
C RATES(8) is d/dt Na_e in component wal_environment (milliM).
C RATES(9) is d/dt n in component sarco_DR_channel (dimensionless).
C RATES(10) is d/dt h_K in component sarco_DR_channel (dimensionless).
C RATES(11) is d/dt m in component sarco_Na_channel (dimensionless).
C RATES(12) is d/dt h in component sarco_Na_channel (dimensionless).
C RATES(13) is d/dt S in component sarco_Na_channel (dimensionless).
C RATES(14) is d/dt n_t in component t_DR_channel (dimensionless).
C RATES(15) is d/dt h_K_t in component t_DR_channel (dimensionless).
C RATES(16) is d/dt m_t in component t_Na_channel (dimensionless).
C RATES(17) is d/dt h_t in component t_Na_channel (dimensionless).
C RATES(18) is d/dt S_t in component t_Na_channel (dimensionless).
C RATES(24) is d/dt C_0 in component sternrios (dimensionless).
C RATES(19) is d/dt O_0 in component sternrios (dimensionless).
C RATES(25) is d/dt C_1 in component sternrios (dimensionless).
C RATES(20) is d/dt O_1 in component sternrios (dimensionless).
C RATES(26) is d/dt C_2 in component sternrios (dimensionless).
C RATES(21) is d/dt O_2 in component sternrios (dimensionless).
C RATES(27) is d/dt C_3 in component sternrios (dimensionless).
C RATES(22) is d/dt O_3 in component sternrios (dimensionless).
C RATES(28) is d/dt C_4 in component sternrios (dimensionless).
C RATES(23) is d/dt O_4 in component sternrios (dimensionless).
C RATES(29) is d/dt Ca_1 in component razumova (micromolar).
C RATES(30) is d/dt Ca_SR1 in component razumova (micromolar).
C RATES(31) is d/dt Ca_2 in component razumova (micromolar).
C RATES(32) is d/dt Ca_SR2 in component razumova (micromolar).
C RATES(33) is d/dt Ca_T_2 in component razumova (micromolar).
C RATES(34) is d/dt Ca_P1 in component razumova (micromolar).
C RATES(35) is d/dt Ca_P2 in component razumova (micromolar).
C RATES(36) is d/dt Mg_P1 in component razumova (micromolar).
C RATES(37) is d/dt Mg_P2 in component razumova (micromolar).
C RATES(38) is d/dt Ca_Cs1 in component razumova (micromolar).
C RATES(39) is d/dt Ca_Cs2 in component razumova (micromolar).
C RATES(40) is d/dt Ca_ATP1 in component razumova (micromolar).
C RATES(41) is d/dt Ca_ATP2 in component razumova (micromolar).
C RATES(42) is d/dt Mg_ATP1 in component razumova (micromolar).
C RATES(43) is d/dt Mg_ATP2 in component razumova (micromolar).
C RATES(44) is d/dt ATP1 in component razumova (micromolar).
C RATES(45) is d/dt ATP2 in component razumova (micromolar).
C RATES(46) is d/dt Mg1 in component razumova (micromolar).
C RATES(47) is d/dt Mg2 in component razumova (micromolar).
C RATES(48) is d/dt Ca_CaT2 in component razumova (micromolar).
C RATES(49) is d/dt D_0 in component razumova (micromolar).
C RATES(50) is d/dt D_1 in component razumova (micromolar).
C RATES(51) is d/dt D_2 in component razumova (micromolar).
C RATES(52) is d/dt A_1 in component razumova (micromolar).
C RATES(53) is d/dt A_2 in component razumova (micromolar).
C RATES(54) is d/dt P in component razumova (milliM).
C RATES(55) is d/dt P_SR in component razumova (milliM).
C RATES(56) is d/dt P_C_SR in component razumova (milliM).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 0.58
      CONSTS(2) = 2.79
      CONSTS(3) = 150
      CONSTS(4) = 0.000001
      CONSTS(5) = 0.0025
      CONSTS(6) = 0.0005
      CONSTS(7) = 96485
      CONSTS(8) = 559
      CONSTS(9) = 559
      CONSTS(10) = 0.00174
      CONSTS(11) = 40229.885
      CONSTS(12) = 40229.885
      CONSTS(13) = 0.34
      CONSTS(14) = -0.43
      CONSTS(15) = 0.0081
      CONSTS(16) = 0.288
      CONSTS(17) = 0.0131
      CONSTS(18) = 4.38
      CONSTS(19) = 1.38
      CONSTS(20) = 0.067
      CONSTS(21) = -46
      CONSTS(22) = -40
      CONSTS(23) = -45
      CONSTS(24) = 70
      CONSTS(25) = -68
      CONSTS(26) = -40
      CONSTS(27) = 150
      CONSTS(28) = 7.1
      CONSTS(29) = 7.5
      CONSTS(30) = 14.7
      CONSTS(31) = 9
      CONSTS(32) = 10
      CONSTS(33) = 7
      CONSTS(34) = 18
      CONSTS(35) = 40
      CONSTS(36) = 8314.41
      CONSTS(37) = 293
      CONSTS(38) = 3.275
      CONSTS(39) = 10.8
      CONSTS(40) = 134
      CONSTS(41) = 1.85
      CONSTS(42) = 0.4
      CONSTS(43) = 950
      CONSTS(44) = 1
      CONSTS(45) = 1
      CONSTS(46) = 13
      CONSTS(47) = 10
      CONSTS(48) = 0.0001656
      CONSTS(49) = 70
      STATES(1) = -79.974
      STATES(2) = -80.2
      STATES(3) = 5.9
      STATES(4) = 150.9
      STATES(5) = 5.9
      STATES(6) = 12.7
      STATES(7) = 133
      STATES(8) = 133
      CONSTS(50) = 0.1
      CONSTS(51) = 1.0
      CONSTS(52) = 0.45
      CONSTS(53) = 0.1
      CONSTS(54) = 0.1
      STATES(9) = 0.009466
      STATES(10) = 0.9952
      STATES(11) = 0.0358
      STATES(12) = 0.4981
      STATES(13) = 0.581
      STATES(14) = 0.009466
      STATES(15) = 0.9952
      STATES(16) = 0.0358
      STATES(17) = 0.4981
      STATES(18) = 0.581
      STATES(19) = 0
      STATES(20) = 0
      STATES(21) = 0
      STATES(22) = 0
      STATES(23) = 0
      CONSTS(55) = 0.002
      CONSTS(56) = 1000
      CONSTS(57) = 0.2
      CONSTS(58) = 0.2
      CONSTS(59) = 4.5
      CONSTS(60) = -20
      STATES(24) = 1
      STATES(25) = 0
      STATES(26) = 0
      STATES(27) = 0
      STATES(28) = 0
      CONSTS(61) = 2.4375
      CONSTS(62) = 1
      CONSTS(63) = 0.00004
      CONSTS(64) = 0.75
      CONSTS(65) = 0.75
      CONSTS(66) = 1.1
      CONSTS(67) = 0.5
      CONSTS(68) = 0.0885
      CONSTS(69) = 0.115
      CONSTS(70) = 140
      CONSTS(71) = 0
      CONSTS(72) = 0
      CONSTS(73) = 1500
      CONSTS(74) = 0
      CONSTS(75) = 0
      CONSTS(76) = 0.000004
      CONSTS(77) = 0.005
      CONSTS(78) = 31000
      CONSTS(79) = 0.15
      CONSTS(80) = 30
      CONSTS(81) = 0.0015
      CONSTS(82) = 0.15
      CONSTS(83) = 0.375
      CONSTS(84) = 1.5
      CONSTS(85) = 0
      CONSTS(86) = 0.15
      CONSTS(87) = 0.15
      CONSTS(88) = 0.05
      CONSTS(89) = 0.5
      CONSTS(90) = 5
      CONSTS(91) = 0.08
      CONSTS(92) = 0.06
      CONSTS(93) = 0.04
      CONSTS(94) = 0.00000394
      CONSTS(95) = 0.00000362
      CONSTS(96) = 1
      CONSTS(97) = 0.0001
      CONSTS(98) = 6
      STATES(29) = 0.1
      STATES(30) = 1500
      STATES(31) = 0.1
      STATES(32) = 1500
      STATES(33) = 25
      STATES(34) = 615
      STATES(35) = 615
      STATES(36) = 811
      STATES(37) = 811
      STATES(38) = 16900
      STATES(39) = 16900
      STATES(40) = 0.4
      STATES(41) = 0.4
      STATES(42) = 7200
      STATES(43) = 7200
      STATES(44) = 799.6
      STATES(45) = 799.6
      STATES(46) = 1000
      STATES(47) = 1000
      STATES(48) = 3
      STATES(49) = 0.8
      STATES(50) = 1.2
      STATES(51) = 3
      STATES(52) = 0.3
      STATES(53) = 0.23
      STATES(54) = 0.23
      STATES(55) = 0.23
      STATES(56) = 0.23
      CONSTS(99) = 60
      CONSTS(100) =  0.950000*CONSTS(66)* 3.14159265358979*CONSTS(67) ** 2.00000
      CONSTS(101) =  0.0500000*CONSTS(66)* 3.14159265358979*CONSTS(67) ** 2.00000
      CONSTS(102) =  0.0100000*CONSTS(100)
      CONSTS(103) =  0.990000*CONSTS(100)
      CONSTS(104) =  0.0100000*CONSTS(101)
      CONSTS(105) =  0.990000*CONSTS(101)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(29) = (((( ( CONSTS(99)*(STATES(19)+STATES(20)+STATES(21)+STATES(22)+STATES(23)))*((STATES(30) - STATES(29))/CONSTS(102)) -  CONSTS(61)*((STATES(29)/(STATES(29)+CONSTS(62)))/CONSTS(102)))+ CONSTS(63)*((STATES(30) - STATES(29))/CONSTS(102)))+ - CONSTS(64)*((STATES(29) - STATES(31))/CONSTS(102)))+- ( ( CONSTS(71)*STATES(29))*((CONSTS(73)+- STATES(34))+- STATES(36))+ - CONSTS(72)*STATES(34)))+- ( ( CONSTS(79)*STATES(29))*STATES(44)+ - CONSTS(80)*STATES(40))
      RATES(30) = ((( - ( CONSTS(99)*(STATES(19)+STATES(20)+STATES(21)+STATES(22)+STATES(23)))*((STATES(30) - STATES(29))/CONSTS(104))+ CONSTS(61)*((STATES(29)/(STATES(29)+CONSTS(62)))/CONSTS(104)))+ - CONSTS(63)*((STATES(30) - STATES(29))/CONSTS(104)))+ - CONSTS(65)*((STATES(30) - STATES(32))/CONSTS(104)))+- ( ( CONSTS(76)*STATES(30))*(CONSTS(78) - STATES(38))+ - CONSTS(77)*STATES(38))
      RATES(32) = ((( CONSTS(61)*((STATES(31)/(STATES(31)+CONSTS(62)))/CONSTS(105))+ - CONSTS(63)*((STATES(32)+- STATES(31))/CONSTS(105)))+ CONSTS(65)*((STATES(30)+- STATES(32))/CONSTS(105)))+- ( ( CONSTS(76)*STATES(32))*(CONSTS(78)+- STATES(39))+ - CONSTS(77)*STATES(39))) -  (1000.00/1.00000)*( CONSTS(96)*( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98))*(TERNRY( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98).GT.0.00000, 1.00000, 0.00000))*(0.00100000/1.00000)*STATES(55)*STATES(32) -  CONSTS(97)*STATES(56)*(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32))*(TERNRY(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32).GT.0.00000, 1.00000, 0.00000)))
      RATES(34) =  ( CONSTS(71)*STATES(29))*((CONSTS(73)+- STATES(34))+- STATES(36))+ - CONSTS(72)*STATES(34)
      RATES(35) =  ( CONSTS(71)*STATES(31))*((CONSTS(73)+- STATES(35))+- STATES(37))+ - CONSTS(72)*STATES(35)
      RATES(36) =  ( CONSTS(74)*(CONSTS(73)+- STATES(34)+- STATES(36)))*STATES(46)+ - CONSTS(75)*STATES(36)
      RATES(37) =  ( CONSTS(74)*(CONSTS(73)+- STATES(35)+- STATES(37)))*STATES(47)+ - CONSTS(75)*STATES(37)
      RATES(38) =  ( CONSTS(76)*STATES(30))*(CONSTS(78)+- STATES(38))+ - CONSTS(77)*STATES(38)
      RATES(39) =  ( CONSTS(76)*STATES(32))*(CONSTS(78)+- STATES(39))+ - CONSTS(77)*STATES(39)
      RATES(40) = ( ( CONSTS(79)*STATES(29))*STATES(44)+ - CONSTS(80)*STATES(40))+ - CONSTS(83)*((STATES(40)+- STATES(41))/CONSTS(102))
      RATES(41) = ( ( CONSTS(79)*STATES(31))*STATES(45)+ - CONSTS(80)*STATES(41))+ CONSTS(83)*((STATES(40)+- STATES(41))/CONSTS(103))
      RATES(42) = ( ( CONSTS(81)*STATES(46))*STATES(44)+ - CONSTS(82)*STATES(42))+ - CONSTS(83)*((STATES(42)+- STATES(43))/CONSTS(102))
      RATES(43) = ( ( CONSTS(81)*STATES(47))*STATES(45)+ - CONSTS(82)*STATES(43))+ CONSTS(83)*((STATES(42)+- STATES(43))/CONSTS(103))
      RATES(44) = (- ( ( CONSTS(79)*STATES(29))*STATES(44)+ - CONSTS(80)*STATES(40))+- ( ( CONSTS(81)*STATES(46))*STATES(44)+ - CONSTS(82)*STATES(42)))+ - CONSTS(83)*((STATES(44)+- STATES(45))/CONSTS(102))
      RATES(45) = (- ( ( CONSTS(79)*STATES(31))*STATES(45)+ - CONSTS(80)*STATES(41))+- ( ( CONSTS(81)*STATES(47))*STATES(45)+ - CONSTS(82)*STATES(43)))+ CONSTS(83)*((STATES(44)+- STATES(45))/CONSTS(103))
      RATES(46) = (- ( ( CONSTS(74)*(CONSTS(73)+- STATES(34)+- STATES(36)))*STATES(46)+ - CONSTS(75)*STATES(36))+- ( ( CONSTS(81)*STATES(46))*STATES(44)+ - CONSTS(82)*STATES(42)))+ - CONSTS(84)*((STATES(46)+- STATES(47))/CONSTS(102))
      RATES(47) = (- ( ( CONSTS(74)*(CONSTS(73)+- STATES(35)+- STATES(37)))*STATES(47)+ - CONSTS(75)*STATES(37))+- ( ( CONSTS(81)*STATES(47))*STATES(45)+ - CONSTS(82)*STATES(43)))+ CONSTS(84)*((STATES(46)+- STATES(47))/CONSTS(103))
      RATES(48) = (( ( CONSTS(68)*STATES(31))*STATES(33)+ - CONSTS(69)*STATES(48))+ - CONSTS(87)*STATES(48))+ CONSTS(88)*STATES(51)
      RATES(50) = (((( CONSTS(68)*STATES(31)*STATES(49)+ - CONSTS(69)*STATES(50))+ CONSTS(85)*STATES(33))+ - CONSTS(86)*STATES(50))+ ( - CONSTS(68)*STATES(31))*STATES(50))+ CONSTS(69)*STATES(51)
      RATES(51) = ((((( CONSTS(68)*STATES(31)*STATES(50)+ - CONSTS(69)*STATES(51))+ CONSTS(87)*STATES(48))+ - CONSTS(88)*STATES(51))+ - CONSTS(89)*STATES(51))+ CONSTS(90)*STATES(52))+ CONSTS(93)*STATES(53)
      RATES(52) = (( CONSTS(89)*STATES(51)+ - CONSTS(90)*STATES(52))+ CONSTS(92)*STATES(53))+ - CONSTS(91)*STATES(52)
      RATES(53) = ( - CONSTS(92)*STATES(53)+ CONSTS(91)*STATES(52))+ - CONSTS(93)*STATES(53)
      RATES(54) =  (0.00100000/1.00000)*( CONSTS(91)*STATES(52) -  CONSTS(92)*STATES(53))+ -1.00000*CONSTS(94)*STATES(54)+ -1.00000*CONSTS(95)*((STATES(54) - STATES(55))/CONSTS(103))
      RATES(55) =  CONSTS(95)*((STATES(54) - STATES(55))/CONSTS(105)) -  1.00000*( CONSTS(96)*( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98))*(TERNRY( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98).GT.0.00000, 1.00000, 0.00000))*(0.00100000/1.00000)*STATES(55)*STATES(32) -  CONSTS(97)*STATES(56)*(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32))*(TERNRY(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32).GT.0.00000, 1.00000, 0.00000)))
      RATES(56) =  1.00000*( CONSTS(96)*( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98))*(TERNRY( STATES(55)*(0.00100000/1.00000)*STATES(32) - CONSTS(98).GT.0.00000, 1.00000, 0.00000))*(0.00100000/1.00000)*STATES(55)*STATES(32) -  CONSTS(97)*STATES(56)*(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32))*(TERNRY(CONSTS(98) -  STATES(55)*(0.00100000/1.00000)*STATES(32).GT.0.00000, 1.00000, 0.00000)))
      ALGBRC(13) = CONSTS(70)+- STATES(33)+- STATES(48)+- STATES(49)+- STATES(50)+- STATES(51)+- STATES(52)+- STATES(53)
      RATES(31) = (((( - CONSTS(61)*((STATES(31)/(STATES(31)+CONSTS(62)))/CONSTS(103))+ CONSTS(63)*((STATES(32)+- STATES(31))/CONSTS(103)))+ CONSTS(64)*((STATES(29) - STATES(31))/CONSTS(103)))+- ((((((( CONSTS(68)*STATES(31)*ALGBRC(13)+ - CONSTS(69)*STATES(33))+ CONSTS(68)*STATES(31)*STATES(33))+ - CONSTS(69)*STATES(48))+ CONSTS(68)*STATES(31)*STATES(49))+ - CONSTS(69)*STATES(50))+ CONSTS(68)*STATES(31)*STATES(50))+ - CONSTS(69)*STATES(51)))+- ( ( CONSTS(71)*STATES(31))*(CONSTS(73)+- STATES(35)+- STATES(37))+ - CONSTS(72)*STATES(35)))+- ( ( CONSTS(79)*STATES(31))*STATES(45)+ - CONSTS(80)*STATES(41))
      RATES(33) = (((( ( CONSTS(68)*STATES(31))*ALGBRC(13)+ - CONSTS(69)*STATES(33))+ ( - CONSTS(68)*STATES(31))*STATES(33))+ CONSTS(69)*STATES(48))+ - CONSTS(85)*STATES(33))+ CONSTS(86)*STATES(50)
      RATES(49) = (( ( - CONSTS(68)*STATES(31))*STATES(49)+ CONSTS(69)*STATES(50))+ CONSTS(85)*ALGBRC(13))+ - CONSTS(86)*STATES(49)
      ALGBRC(2) =  CONSTS(17)*((STATES(1) - CONSTS(22))/(1.00000 - EXP(- ((STATES(1) - CONSTS(22))/CONSTS(33)))))
      ALGBRC(15) =  CONSTS(20)*EXP(- ((STATES(1) - CONSTS(22))/CONSTS(35)))
      RATES(9) =  ALGBRC(2)*(1.00000 - STATES(9)) -  ALGBRC(15)*STATES(9)
      ALGBRC(3) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(26))/CONSTS(29)))
      ALGBRC(16) =  1000.00*EXP(- ((STATES(1)+40.0000)/25.7500))
      RATES(10) = (ALGBRC(3) - STATES(10))/ALGBRC(16)
      ALGBRC(5) =  CONSTS(16)*((STATES(1) - CONSTS(21))/(1.00000 - EXP(- ((STATES(1) - CONSTS(21))/CONSTS(32)))))
      ALGBRC(18) =  CONSTS(19)*EXP(- ((STATES(1) - CONSTS(21))/CONSTS(34)))
      RATES(11) =  ALGBRC(5)*(1.00000 - STATES(11)) -  ALGBRC(18)*STATES(11)
      ALGBRC(4) =  CONSTS(15)*EXP(- ((STATES(1) - CONSTS(23))/CONSTS(30)))
      ALGBRC(17) = CONSTS(18)/(1.00000+EXP(- ((STATES(1) - CONSTS(23))/CONSTS(31))))
      RATES(12) =  ALGBRC(4)*(1.00000 - STATES(12)) -  ALGBRC(17)*STATES(12)
      ALGBRC(6) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(25))/CONSTS(28)))
      ALGBRC(19) = 8571.00/(0.200000+ 5.65000*(STATES(1)+CONSTS(49))/100.000 ** 2.00000)
      RATES(13) = (ALGBRC(6) - STATES(13))/ALGBRC(19)
      ALGBRC(7) =  CONSTS(17)*((STATES(2) - CONSTS(22))/(1.00000 - EXP(- ((STATES(2) - CONSTS(22))/CONSTS(33)))))
      ALGBRC(20) =  CONSTS(20)*EXP(- ((STATES(2) - CONSTS(22))/CONSTS(35)))
      RATES(14) =  ALGBRC(7)*(1.00000 - STATES(14)) -  ALGBRC(20)*STATES(14)
      ALGBRC(8) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(26))/CONSTS(29)))
      ALGBRC(21) =  1.00000*EXP(- ((STATES(2)+40.0000)/25.7500))
      RATES(15) = (ALGBRC(8) - STATES(15))/ALGBRC(21)
      ALGBRC(10) =  CONSTS(16)*((STATES(2) - CONSTS(21))/(1.00000 - EXP(- ((STATES(2) - CONSTS(21))/CONSTS(32)))))
      ALGBRC(23) =  CONSTS(19)*EXP(- ((STATES(2) - CONSTS(21))/CONSTS(34)))
      RATES(16) =  ALGBRC(10)*(1.00000 - STATES(16)) -  ALGBRC(23)*STATES(16)
      ALGBRC(9) =  CONSTS(15)*EXP(- ((STATES(2) - CONSTS(23))/CONSTS(30)))
      ALGBRC(22) = CONSTS(18)/(1.00000+EXP(- ((STATES(2) - CONSTS(23))/CONSTS(31))))
      RATES(17) =  ALGBRC(9)*(1.00000 - STATES(17)) -  ALGBRC(22)*STATES(17)
      ALGBRC(11) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(25))/CONSTS(28)))
      ALGBRC(24) = 8571.00/(0.200000+ 5.65000*(STATES(2)+CONSTS(49))/100.000 ** 2.00000)
      RATES(18) = (ALGBRC(11) - STATES(18))/ALGBRC(24)
      ALGBRC(12) =  0.500000*CONSTS(58)*EXP((STATES(2) - CONSTS(60))/( 8.00000*CONSTS(59)))
      ALGBRC(25) =  0.500000*CONSTS(58)*EXP((CONSTS(60) - STATES(2))/( 8.00000*CONSTS(59)))
      RATES(24) =  - CONSTS(55)*STATES(24)+ CONSTS(56)*STATES(19)+ -4.00000*ALGBRC(12)*STATES(24)+ ALGBRC(25)*STATES(25)
      RATES(19) =  CONSTS(55)*STATES(24)+ - CONSTS(56)*STATES(19)+( -4.00000*ALGBRC(12)*STATES(19))/CONSTS(57)+ CONSTS(57)*ALGBRC(25)*STATES(20)
      RATES(25) =  4.00000*ALGBRC(12)*STATES(24)+ - ALGBRC(25)*STATES(25)+( - CONSTS(55)*STATES(25))/CONSTS(57)+ CONSTS(57)*CONSTS(56)*STATES(20)+ -3.00000*ALGBRC(12)*STATES(25)+ 2.00000*ALGBRC(25)*STATES(26)
      RATES(20) = ( CONSTS(55)*STATES(25))/CONSTS(57)+ - CONSTS(56)*CONSTS(57)*STATES(20)+( 4.00000*ALGBRC(12)*STATES(19))/CONSTS(57)+ - CONSTS(57)*ALGBRC(25)*STATES(20)+( -3.00000*ALGBRC(12)*STATES(20))/CONSTS(57)+ 2.00000*CONSTS(57)*ALGBRC(25)*STATES(21)
      RATES(26) =  3.00000*ALGBRC(12)*STATES(25)+ -2.00000*ALGBRC(25)*STATES(26)+( - CONSTS(55)*STATES(26))/CONSTS(57) ** 2.00000+ CONSTS(57) ** 2.00000*CONSTS(56)*STATES(21)+ -2.00000*ALGBRC(12)*STATES(26)+ 3.00000*ALGBRC(25)*STATES(27)
      RATES(21) = ( 3.00000*ALGBRC(12)*STATES(20))/CONSTS(57)+ -2.00000*CONSTS(57)*ALGBRC(25)*STATES(21)+( CONSTS(55)*STATES(26))/CONSTS(57) ** 2.00000+ - CONSTS(56)*CONSTS(57) ** 2.00000*STATES(21)+( -2.00000*ALGBRC(12)*STATES(21))/CONSTS(57)+ 3.00000*CONSTS(57)*ALGBRC(25)*STATES(22)
      RATES(27) =  2.00000*ALGBRC(12)*STATES(26)+ -3.00000*ALGBRC(25)*STATES(27)+( - CONSTS(55)*STATES(27))/CONSTS(57) ** 3.00000+ CONSTS(56)*CONSTS(57) ** 3.00000*STATES(22)+ - ALGBRC(12)*STATES(27)+ 4.00000*ALGBRC(25)*STATES(28)
      RATES(22) = ( CONSTS(55)*STATES(27))/CONSTS(57) ** 3.00000+ - CONSTS(56)*CONSTS(57) ** 3.00000*STATES(22)+( 2.00000*ALGBRC(12)*STATES(21))/CONSTS(57)+ -3.00000*ALGBRC(25)*CONSTS(57)*STATES(22)+( - ALGBRC(12)*STATES(22))/CONSTS(57)+ 4.00000*CONSTS(57)*ALGBRC(25)*STATES(23)
      RATES(28) =  ALGBRC(12)*STATES(27)+ -4.00000*ALGBRC(25)*STATES(28)+( - CONSTS(55)*STATES(28))/CONSTS(57) ** 4.00000+ CONSTS(56)*CONSTS(57) ** 4.00000*STATES(23)
      RATES(23) = ( ALGBRC(12)*STATES(22))/CONSTS(57)+ -4.00000*CONSTS(57)*ALGBRC(25)*STATES(23)+( CONSTS(55)*STATES(28))/CONSTS(57) ** 4.00000+ - CONSTS(56)*CONSTS(57) ** 4.00000*STATES(23)
      ALGBRC(31) =  STATES(1)*((STATES(4) -  STATES(5)*EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(14) =  (( CONSTS(36)*CONSTS(37))/CONSTS(7))*log(STATES(5)/STATES(4))
      ALGBRC(38) =  STATES(5)*EXP( ( - CONSTS(42)*ALGBRC(14))*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))
      ALGBRC(39) =  CONSTS(41)*(ALGBRC(38) ** 2.00000/(CONSTS(43)+ALGBRC(38) ** 2.00000))
      ALGBRC(40) = 1.00000 - 1.00000+( CONSTS(44)*(1.00000+ALGBRC(38) ** 2.00000/CONSTS(43)))/( CONSTS(47) ** 2.00000*EXP(( 2.00000*(1.00000 - CONSTS(42))*STATES(1)*CONSTS(7))/( CONSTS(36)*CONSTS(37)))) ** -1.00000
      ALGBRC(41) =  ALGBRC(39)*ALGBRC(40)
      ALGBRC(42) =  ALGBRC(41)*(TERNRY(ALGBRC(31).GT.0.00000, 1.00000, 0.00000))*(ALGBRC(31)/50.0000)
      ALGBRC(43) =  ( CONSTS(39)*STATES(9) ** 4.00000)*STATES(10)
      ALGBRC(44) =  ALGBRC(43)*(ALGBRC(31)/50.0000)
      ALGBRC(48) =  (1.00000/7.00000)*(EXP(STATES(8)/67.3000) - 1.00000)
      ALGBRC(49) = 1.00000+ 0.120000*EXP( -0.100000*STATES(1)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))+ 0.0400000*ALGBRC(48)*EXP(- ( STATES(1)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))) ** -1.00000
      ALGBRC(50) =  CONSTS(7)*(CONSTS(48)/( 1.00000+CONSTS(45)/STATES(5) ** 2.00000*1.00000+CONSTS(46)/STATES(6) ** 3.00000))
      ALGBRC(51) =  ALGBRC(50)*ALGBRC(49)
      RATES(5) = (ALGBRC(42)+ALGBRC(44)+CONSTS(13)+ - 2.00000*ALGBRC(51))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(6))+(STATES(3) - STATES(5))/CONSTS(11)
      ALGBRC(46) =  ( ( CONSTS(40)*STATES(11) ** 3.00000)*STATES(12))*STATES(13)
      ALGBRC(45) =  STATES(1)*((STATES(6) -  STATES(8)*EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(47) =  ALGBRC(46)*(ALGBRC(45)/75.0000)
      RATES(8) = (ALGBRC(47)+CONSTS(14)+ 3.00000*ALGBRC(51))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(6))+(STATES(7) - STATES(8))/CONSTS(12)
      ALGBRC(1) =  (1000.00/1.00000)*((STATES(1) - STATES(2))/CONSTS(3))
      ALGBRC(27) = 156.500/(5.00000+EXP(( - CONSTS(7)*ALGBRC(14))/( CONSTS(36)*CONSTS(37))))
      ALGBRC(28) = 156.500 -  5.00000*ALGBRC(27)
      ALGBRC(35) =  STATES(1)*((ALGBRC(27) -  ALGBRC(28)*EXP(( CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(34) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(24))/CONSTS(27)))
      ALGBRC(36) =  CONSTS(38)*ALGBRC(34) ** 4.00000
      ALGBRC(37) =  ALGBRC(36)*(ALGBRC(35)/45.0000)
      ALGBRC(33) = TERNRY(VOI.GE.0.00000.AND.VOI.LT.0.500000, 150.000, TERNRY(VOI.GE.50.0000.AND.VOI.LT.50.5000, 150.000, TERNRY(VOI.GE.100.000.AND.VOI.LT.100.500, 150.000, TERNRY(VOI.GE.150.000.AND.VOI.LT.150.500, 150.000, TERNRY(VOI.GE.200.000.AND.VOI.LT.200.500, 150.000, TERNRY(VOI.GE.250.000.AND.VOI.LT.250.500, 150.000, TERNRY(VOI.GE.300.000.AND.VOI.LT.300.500, 150.000, TERNRY(VOI.GE.350.000.AND.VOI.LT.350.500, 150.000, TERNRY(VOI.GE.400.000.AND.VOI.LT.400.500, 150.000, 0.00000)
      ALGBRC(52) = ALGBRC(37)+ALGBRC(42)+ALGBRC(44)+ALGBRC(47)+ALGBRC(51)+- ALGBRC(33)
      RATES(1) = - ((ALGBRC(52)+ALGBRC(1))/CONSTS(1))
      ALGBRC(32) =  STATES(2)*((STATES(4) -  STATES(3)*EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(26) =  (( CONSTS(36)*CONSTS(37))/CONSTS(7))*log(STATES(3)/STATES(4))
      ALGBRC(57) =  STATES(3)*EXP( ( - CONSTS(42)*ALGBRC(26))*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))
      ALGBRC(58) =  CONSTS(41)*(ALGBRC(57) ** 2.00000/(CONSTS(43)+ALGBRC(57) ** 2.00000))
      ALGBRC(59) = 1.00000 - 1.00000+( CONSTS(44)*(1.00000+ALGBRC(57) ** 2.00000/CONSTS(43)))/( CONSTS(47) ** 2.00000*EXP(( 2.00000*(1.00000 - CONSTS(42))*STATES(2)*CONSTS(7))/( CONSTS(36)*CONSTS(37)))) ** -1.00000
      ALGBRC(60) =  ALGBRC(58)*ALGBRC(59)
      ALGBRC(61) =  CONSTS(51)*ALGBRC(60)*(ALGBRC(32)/50.0000)
      ALGBRC(62) =  ( CONSTS(39)*STATES(14) ** 4.00000)*STATES(15)
      ALGBRC(63) =  CONSTS(52)*ALGBRC(62)*(ALGBRC(32)/50.0000)
      ALGBRC(67) =  (1.00000/7.00000)*(EXP(STATES(7)/67.3000) - 1.00000)
      ALGBRC(68) = 1.00000+ 0.120000*EXP( -0.100000*STATES(2)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))+ 0.0400000*ALGBRC(67)*EXP(- ( STATES(2)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))) ** -1.00000
      ALGBRC(69) =  CONSTS(7)*(CONSTS(48)/( 1.00000+CONSTS(45)/STATES(3) ** 2.00000*1.00000+CONSTS(46)/STATES(6) ** 3.00000))
      ALGBRC(70) =  CONSTS(54)*ALGBRC(69)*ALGBRC(68)
      RATES(4) =  - CONSTS(10)*((ALGBRC(61)+ALGBRC(63)+CONSTS(13)+ - 2.00000*ALGBRC(70))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(4))) - (ALGBRC(42)+ALGBRC(44)+CONSTS(13)+ -2.00000*ALGBRC(51))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(5))
      RATES(3) = (ALGBRC(61)+ALGBRC(63)+CONSTS(13)+ - 2.00000*ALGBRC(70))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(4)) - (STATES(3) - STATES(5))/CONSTS(8)
      ALGBRC(65) =  ( ( CONSTS(40)*STATES(16) ** 3.00000)*STATES(17))*STATES(18)
      ALGBRC(64) =  STATES(2)*((STATES(6) -  STATES(7)*EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(66) =  CONSTS(53)*ALGBRC(65)*(ALGBRC(64)/75.0000)
      RATES(6) =  - CONSTS(10)*((ALGBRC(66)+CONSTS(14)+ 3.00000*ALGBRC(70))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(4))) - (ALGBRC(47)+CONSTS(14)+ 3.00000*ALGBRC(51))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(5))
      RATES(7) = (ALGBRC(66)+CONSTS(14)+ 3.00000*ALGBRC(70))/( (1000.00/1.00000)*CONSTS(7)*CONSTS(4)) - (STATES(7) - STATES(8))/CONSTS(9)
      ALGBRC(29) = 156.500/(5.00000+EXP(( - CONSTS(7)*ALGBRC(26))/( CONSTS(36)*CONSTS(37))))
      ALGBRC(30) = 156.500 -  5.00000*ALGBRC(29)
      ALGBRC(54) =  STATES(2)*((ALGBRC(29) -  ALGBRC(30)*EXP(( CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(53) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(24))/CONSTS(27)))
      ALGBRC(55) =  CONSTS(38)*ALGBRC(53) ** 4.00000
      ALGBRC(56) =  CONSTS(50)*ALGBRC(55)*(ALGBRC(54)/45.0000)
      ALGBRC(71) = ALGBRC(56)+ALGBRC(61)+ALGBRC(63)+ALGBRC(66)+ALGBRC(70)
      RATES(2) = - ((ALGBRC(71) - ALGBRC(1)/CONSTS(2))/CONSTS(1))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(13) = CONSTS(70)+- STATES(33)+- STATES(48)+- STATES(49)+- STATES(50)+- STATES(51)+- STATES(52)+- STATES(53)
      ALGBRC(2) =  CONSTS(17)*((STATES(1) - CONSTS(22))/(1.00000 - EXP(- ((STATES(1) - CONSTS(22))/CONSTS(33)))))
      ALGBRC(15) =  CONSTS(20)*EXP(- ((STATES(1) - CONSTS(22))/CONSTS(35)))
      ALGBRC(3) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(26))/CONSTS(29)))
      ALGBRC(16) =  1000.00*EXP(- ((STATES(1)+40.0000)/25.7500))
      ALGBRC(5) =  CONSTS(16)*((STATES(1) - CONSTS(21))/(1.00000 - EXP(- ((STATES(1) - CONSTS(21))/CONSTS(32)))))
      ALGBRC(18) =  CONSTS(19)*EXP(- ((STATES(1) - CONSTS(21))/CONSTS(34)))
      ALGBRC(4) =  CONSTS(15)*EXP(- ((STATES(1) - CONSTS(23))/CONSTS(30)))
      ALGBRC(17) = CONSTS(18)/(1.00000+EXP(- ((STATES(1) - CONSTS(23))/CONSTS(31))))
      ALGBRC(6) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(25))/CONSTS(28)))
      ALGBRC(19) = 8571.00/(0.200000+ 5.65000*(STATES(1)+CONSTS(49))/100.000 ** 2.00000)
      ALGBRC(7) =  CONSTS(17)*((STATES(2) - CONSTS(22))/(1.00000 - EXP(- ((STATES(2) - CONSTS(22))/CONSTS(33)))))
      ALGBRC(20) =  CONSTS(20)*EXP(- ((STATES(2) - CONSTS(22))/CONSTS(35)))
      ALGBRC(8) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(26))/CONSTS(29)))
      ALGBRC(21) =  1.00000*EXP(- ((STATES(2)+40.0000)/25.7500))
      ALGBRC(10) =  CONSTS(16)*((STATES(2) - CONSTS(21))/(1.00000 - EXP(- ((STATES(2) - CONSTS(21))/CONSTS(32)))))
      ALGBRC(23) =  CONSTS(19)*EXP(- ((STATES(2) - CONSTS(21))/CONSTS(34)))
      ALGBRC(9) =  CONSTS(15)*EXP(- ((STATES(2) - CONSTS(23))/CONSTS(30)))
      ALGBRC(22) = CONSTS(18)/(1.00000+EXP(- ((STATES(2) - CONSTS(23))/CONSTS(31))))
      ALGBRC(11) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(25))/CONSTS(28)))
      ALGBRC(24) = 8571.00/(0.200000+ 5.65000*(STATES(2)+CONSTS(49))/100.000 ** 2.00000)
      ALGBRC(12) =  0.500000*CONSTS(58)*EXP((STATES(2) - CONSTS(60))/( 8.00000*CONSTS(59)))
      ALGBRC(25) =  0.500000*CONSTS(58)*EXP((CONSTS(60) - STATES(2))/( 8.00000*CONSTS(59)))
      ALGBRC(31) =  STATES(1)*((STATES(4) -  STATES(5)*EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(14) =  (( CONSTS(36)*CONSTS(37))/CONSTS(7))*log(STATES(5)/STATES(4))
      ALGBRC(38) =  STATES(5)*EXP( ( - CONSTS(42)*ALGBRC(14))*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))
      ALGBRC(39) =  CONSTS(41)*(ALGBRC(38) ** 2.00000/(CONSTS(43)+ALGBRC(38) ** 2.00000))
      ALGBRC(40) = 1.00000 - 1.00000+( CONSTS(44)*(1.00000+ALGBRC(38) ** 2.00000/CONSTS(43)))/( CONSTS(47) ** 2.00000*EXP(( 2.00000*(1.00000 - CONSTS(42))*STATES(1)*CONSTS(7))/( CONSTS(36)*CONSTS(37)))) ** -1.00000
      ALGBRC(41) =  ALGBRC(39)*ALGBRC(40)
      ALGBRC(42) =  ALGBRC(41)*(TERNRY(ALGBRC(31).GT.0.00000, 1.00000, 0.00000))*(ALGBRC(31)/50.0000)
      ALGBRC(43) =  ( CONSTS(39)*STATES(9) ** 4.00000)*STATES(10)
      ALGBRC(44) =  ALGBRC(43)*(ALGBRC(31)/50.0000)
      ALGBRC(48) =  (1.00000/7.00000)*(EXP(STATES(8)/67.3000) - 1.00000)
      ALGBRC(49) = 1.00000+ 0.120000*EXP( -0.100000*STATES(1)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))+ 0.0400000*ALGBRC(48)*EXP(- ( STATES(1)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))) ** -1.00000
      ALGBRC(50) =  CONSTS(7)*(CONSTS(48)/( 1.00000+CONSTS(45)/STATES(5) ** 2.00000*1.00000+CONSTS(46)/STATES(6) ** 3.00000))
      ALGBRC(51) =  ALGBRC(50)*ALGBRC(49)
      ALGBRC(46) =  ( ( CONSTS(40)*STATES(11) ** 3.00000)*STATES(12))*STATES(13)
      ALGBRC(45) =  STATES(1)*((STATES(6) -  STATES(8)*EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(47) =  ALGBRC(46)*(ALGBRC(45)/75.0000)
      ALGBRC(1) =  (1000.00/1.00000)*((STATES(1) - STATES(2))/CONSTS(3))
      ALGBRC(27) = 156.500/(5.00000+EXP(( - CONSTS(7)*ALGBRC(14))/( CONSTS(36)*CONSTS(37))))
      ALGBRC(28) = 156.500 -  5.00000*ALGBRC(27)
      ALGBRC(35) =  STATES(1)*((ALGBRC(27) -  ALGBRC(28)*EXP(( CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( CONSTS(7)*STATES(1))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(34) = 1.00000/(1.00000+EXP((STATES(1) - CONSTS(24))/CONSTS(27)))
      ALGBRC(36) =  CONSTS(38)*ALGBRC(34) ** 4.00000
      ALGBRC(37) =  ALGBRC(36)*(ALGBRC(35)/45.0000)
      ALGBRC(33) = TERNRY(VOI.GE.0.00000.AND.VOI.LT.0.500000, 150.000, TERNRY(VOI.GE.50.0000.AND.VOI.LT.50.5000, 150.000, TERNRY(VOI.GE.100.000.AND.VOI.LT.100.500, 150.000, TERNRY(VOI.GE.150.000.AND.VOI.LT.150.500, 150.000, TERNRY(VOI.GE.200.000.AND.VOI.LT.200.500, 150.000, TERNRY(VOI.GE.250.000.AND.VOI.LT.250.500, 150.000, TERNRY(VOI.GE.300.000.AND.VOI.LT.300.500, 150.000, TERNRY(VOI.GE.350.000.AND.VOI.LT.350.500, 150.000, TERNRY(VOI.GE.400.000.AND.VOI.LT.400.500, 150.000, 0.00000)
      ALGBRC(52) = ALGBRC(37)+ALGBRC(42)+ALGBRC(44)+ALGBRC(47)+ALGBRC(51)+- ALGBRC(33)
      ALGBRC(32) =  STATES(2)*((STATES(4) -  STATES(3)*EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(26) =  (( CONSTS(36)*CONSTS(37))/CONSTS(7))*log(STATES(3)/STATES(4))
      ALGBRC(57) =  STATES(3)*EXP( ( - CONSTS(42)*ALGBRC(26))*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))
      ALGBRC(58) =  CONSTS(41)*(ALGBRC(57) ** 2.00000/(CONSTS(43)+ALGBRC(57) ** 2.00000))
      ALGBRC(59) = 1.00000 - 1.00000+( CONSTS(44)*(1.00000+ALGBRC(57) ** 2.00000/CONSTS(43)))/( CONSTS(47) ** 2.00000*EXP(( 2.00000*(1.00000 - CONSTS(42))*STATES(2)*CONSTS(7))/( CONSTS(36)*CONSTS(37)))) ** -1.00000
      ALGBRC(60) =  ALGBRC(58)*ALGBRC(59)
      ALGBRC(61) =  CONSTS(51)*ALGBRC(60)*(ALGBRC(32)/50.0000)
      ALGBRC(62) =  ( CONSTS(39)*STATES(14) ** 4.00000)*STATES(15)
      ALGBRC(63) =  CONSTS(52)*ALGBRC(62)*(ALGBRC(32)/50.0000)
      ALGBRC(67) =  (1.00000/7.00000)*(EXP(STATES(7)/67.3000) - 1.00000)
      ALGBRC(68) = 1.00000+ 0.120000*EXP( -0.100000*STATES(2)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))+ 0.0400000*ALGBRC(67)*EXP(- ( STATES(2)*(CONSTS(7)/( CONSTS(36)*CONSTS(37))))) ** -1.00000
      ALGBRC(69) =  CONSTS(7)*(CONSTS(48)/( 1.00000+CONSTS(45)/STATES(3) ** 2.00000*1.00000+CONSTS(46)/STATES(6) ** 3.00000))
      ALGBRC(70) =  CONSTS(54)*ALGBRC(69)*ALGBRC(68)
      ALGBRC(65) =  ( ( CONSTS(40)*STATES(16) ** 3.00000)*STATES(17))*STATES(18)
      ALGBRC(64) =  STATES(2)*((STATES(6) -  STATES(7)*EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( -1.00000*CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(66) =  CONSTS(53)*ALGBRC(65)*(ALGBRC(64)/75.0000)
      ALGBRC(29) = 156.500/(5.00000+EXP(( - CONSTS(7)*ALGBRC(26))/( CONSTS(36)*CONSTS(37))))
      ALGBRC(30) = 156.500 -  5.00000*ALGBRC(29)
      ALGBRC(54) =  STATES(2)*((ALGBRC(29) -  ALGBRC(30)*EXP(( CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37))))/(1.00000 - EXP(( CONSTS(7)*STATES(2))/( CONSTS(36)*CONSTS(37)))))
      ALGBRC(53) = 1.00000/(1.00000+EXP((STATES(2) - CONSTS(24))/CONSTS(27)))
      ALGBRC(55) =  CONSTS(38)*ALGBRC(53) ** 4.00000
      ALGBRC(56) =  CONSTS(50)*ALGBRC(55)*(ALGBRC(54)/45.0000)
      ALGBRC(71) = ALGBRC(56)+ALGBRC(61)+ALGBRC(63)+ALGBRC(66)+ALGBRC(70)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END