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 80 entries in the algebraic variable array.
C There are a total of 34 entries in each of the rate and state variable arrays.
C There are a total of 102 entries in the constant variable array.
C
C
C VOI is time in component environment (second).
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 C_sc in component membrane (microF_per_cm2).
C ALGBRC(11) is i_Stim in component membrane (microA_per_microF).
C ALGBRC(27) is i_Na in component fast_sodium_current (microA_per_microF).
C ALGBRC(50) is i_Ca in component L_type_Ca_current (microA_per_microF).
C ALGBRC(51) is i_Ca_K in component L_type_Ca_current (microA_per_microF).
C ALGBRC(32) is i_Kr in component rapid_activating_delayed_rectifiyer_K_current (microA_per_microF).
C ALGBRC(34) is i_Ks in component slow_activating_delayed_rectifiyer_K_current (microA_per_microF).
C ALGBRC(35) is i_to1 in component transient_outward_potassium_current (microA_per_microF).
C ALGBRC(37) is i_K1 in component time_independent_potassium_current (microA_per_microF).
C ALGBRC(39) is i_Kp in component plateau_potassium_current (microA_per_microF).
C ALGBRC(40) is i_NaCa in component Na_Ca_exchanger (microA_per_microF).
C ALGBRC(42) is i_NaK in component sodium_potassium_pump (microA_per_microF).
C ALGBRC(44) is i_p_Ca in component sarcolemmal_calcium_pump (microA_per_microF).
C ALGBRC(46) is i_Ca_b in component calcium_background_current (microA_per_microF).
C ALGBRC(47) is i_Na_b in component sodium_background_current (microA_per_microF).
C ALGBRC(80) is i_K_ATP in component ATP_sensitive_potassium_current (microA_per_microF).
C CONSTS(5) is stim_start in component membrane (second).
C CONSTS(6) is stim_end in component membrane (second).
C CONSTS(7) is stim_period in component membrane (second).
C CONSTS(8) is stim_duration in component membrane (second).
C CONSTS(9) is stim_amplitude in component membrane (microA_per_microF).
C ALGBRC(22) is E_Na in component fast_sodium_current (millivolt).
C CONSTS(10) is g_Na in component fast_sodium_current (milliS_per_microF).
C CONSTS(11) is Na_o in component extracellular_ion_concentrations (millimolar).
C STATES(2) is Na_i in component intracellular_ion_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(12) is alpha_m in component fast_sodium_current_m_gate (per_second).
C ALGBRC(23) is beta_m in component fast_sodium_current_m_gate (per_second).
C ALGBRC(1) is E0_m in component fast_sodium_current_m_gate (millivolt).
C ALGBRC(2) is alpha_h in component fast_sodium_current_h_gate (per_second).
C ALGBRC(13) is beta_h in component fast_sodium_current_h_gate (per_second).
C ALGBRC(3) is alpha_j in component fast_sodium_current_j_gate (per_second).
C ALGBRC(14) is beta_j in component fast_sodium_current_j_gate (per_second).
C ALGBRC(30) is E_K in component rapid_activating_delayed_rectifiyer_K_current (millivolt).
C CONSTS(12) is g_Kr in component rapid_activating_delayed_rectifiyer_K_current (milliS_per_microF).
C CONSTS(100) is f_K_o in component rapid_activating_delayed_rectifiyer_K_current (dimensionless).
C ALGBRC(31) is R_V in component rapid_activating_delayed_rectifiyer_K_current (dimensionless).
C CONSTS(13) is K_o in component extracellular_ion_concentrations (millimolar).
C STATES(6) is K_i in component intracellular_ion_concentrations (millimolar).
C STATES(7) is X_kr in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C ALGBRC(4) is K12 in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C ALGBRC(15) is K21 in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C ALGBRC(24) is X_kr_inf in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C ALGBRC(28) is tau_X_kr in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (second).
C CONSTS(14) is tau_factor in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C CONSTS(15) is g_Ks in component slow_activating_delayed_rectifiyer_K_current (milliS_per_microF).
C ALGBRC(33) is E_Ks in component slow_activating_delayed_rectifiyer_K_current (millivolt).
C STATES(8) is X_ks in component slow_activating_delayed_rectifiyer_K_current_X_ks_gate (dimensionless).
C ALGBRC(16) is tau_X_ks in component slow_activating_delayed_rectifiyer_K_current_X_ks_gate (second).
C ALGBRC(5) is X_ks_infinity in component slow_activating_delayed_rectifiyer_K_current_X_ks_gate (dimensionless).
C CONSTS(16) is g_to1 in component transient_outward_potassium_current (milliS_per_microF).
C STATES(9) is X_to1 in component transient_outward_potassium_current_X_to1_gate (dimensionless).
C STATES(10) is Y_to1 in component transient_outward_potassium_current_Y_to1_gate (dimensionless).
C ALGBRC(6) is alpha_X_to1 in component transient_outward_potassium_current_X_to1_gate (per_second).
C ALGBRC(17) is beta_X_to1 in component transient_outward_potassium_current_X_to1_gate (per_second).
C ALGBRC(7) is alpha_Y_to1 in component transient_outward_potassium_current_Y_to1_gate (per_second).
C ALGBRC(18) is beta_Y_to1 in component transient_outward_potassium_current_Y_to1_gate (per_second).
C CONSTS(17) is g_K1 in component time_independent_potassium_current (milliS_per_microF).
C CONSTS(18) is K_mK1 in component time_independent_potassium_current (millimolar).
C ALGBRC(36) is K1_infinity_V in component time_independent_potassium_current_K1_gate (dimensionless).
C CONSTS(19) is g_Kp in component plateau_potassium_current (milliS_per_microF).
C ALGBRC(38) is Kp_V in component plateau_potassium_current_Kp_gate (dimensionless).
C CONSTS(20) is K_mCa in component Na_Ca_exchanger (millimolar).
C CONSTS(21) is K_mNa in component Na_Ca_exchanger (millimolar).
C CONSTS(22) is K_NaCa in component Na_Ca_exchanger (microA_per_microF).
C CONSTS(23) is K_sat in component Na_Ca_exchanger (dimensionless).
C CONSTS(24) is eta in component Na_Ca_exchanger (dimensionless).
C STATES(11) is Ca_i in component intracellular_ion_concentrations (millimolar).
C CONSTS(25) is Ca_o in component extracellular_ion_concentrations (millimolar).
C CONSTS(26) is I_NaK in component sodium_potassium_pump (microA_per_microF).
C ALGBRC(41) is f_NaK in component sodium_potassium_pump (dimensionless).
C CONSTS(27) is K_mNa_i in component sodium_potassium_pump (millimolar).
C CONSTS(28) is K_mK_o in component sodium_potassium_pump (millimolar).
C CONSTS(101) is sigma in component sodium_potassium_pump (dimensionless).
C ALGBRC(43) is i_p_Ca_winslow in component sarcolemmal_calcium_pump (microA_per_microF).
C CONSTS(29) is K_mpCa in component sarcolemmal_calcium_pump (millimolar).
C CONSTS(30) is I_pCa in component sarcolemmal_calcium_pump (microA_per_microF).
C STATES(12) is MgATP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C CONSTS(31) is MgATP_i0 in component Ca_and_Mg_buffering_by_ATP (millimolar).
C CONSTS(32) is g_Cab in component calcium_background_current (milliS_per_microF).
C ALGBRC(45) is E_Ca in component calcium_background_current (millivolt).
C CONSTS(33) is g_Nab in component sodium_background_current (milliS_per_microF).
C CONSTS(34) is P_Ca in component L_type_Ca_current (cm_per_second).
C CONSTS(35) is p_prime_k in component L_type_Ca_current (cm_per_second).
C ALGBRC(49) is f_Ca in component L_type_Ca_current (dimensionless).
C ALGBRC(48) is P_rom in component L_type_Ca_current (dimensionless).
C CONSTS(36) is k_MgATP_ss in component L_type_Ca_current (millimolar).
C ALGBRC(8) is alpha in component L_type_Ca_current (per_second).
C ALGBRC(19) is beta in component L_type_Ca_current (per_second).
C ALGBRC(9) is gamma in component L_type_Ca_current (per_second).
C ALGBRC(25) is v_gamma in component L_type_Ca_current (per_second).
C ALGBRC(26) is alpha_prime in component L_type_Ca_current (per_second).
C ALGBRC(29) is beta_prime in component L_type_Ca_current (per_second).
C CONSTS(37) is a in component L_type_Ca_current (dimensionless).
C CONSTS(38) is b in component L_type_Ca_current (dimensionless).
C CONSTS(39) is g in component L_type_Ca_current (per_second).
C CONSTS(40) is f in component L_type_Ca_current (per_second).
C ALGBRC(20) is v_omega in component L_type_Ca_current (per_second).
C CONSTS(41) is omega in component L_type_Ca_current (per_second).
C CONSTS(102) is x in component L_type_Ca_current (dimensionless).
C STATES(13) is z in component L_type_Ca_current (dimensionless).
C STATES(14) is v in component L_type_Ca_current (dimensionless).
C STATES(15) is w in component L_type_Ca_current (dimensionless).
C STATES(16) is Ca_ss in component intracellular_ion_concentrations (millimolar).
C STATES(17) is MgATP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(18) is y in component L_type_Ca_current_y_gate (dimensionless).
C ALGBRC(10) is y_infinity in component L_type_Ca_current_y_gate (dimensionless).
C ALGBRC(21) is tau_y in component L_type_Ca_current_y_gate (second).
C ALGBRC(76) is g_K_ATP in component ATP_sensitive_potassium_current (milliS_per_microF).
C CONSTS(42) is G_K_ATP in component ATP_sensitive_potassium_current (milliS_per_microF).
C ALGBRC(74) is f_K_ATP in component ATP_sensitive_potassium_current (dimensionless).
C ALGBRC(70) is f_ATP in component ATP_sensitive_potassium_current (dimensionless).
C CONSTS(43) is k_ATP in component ATP_sensitive_potassium_current (millimolar).
C CONSTS(44) is k_MgADP in component ATP_sensitive_potassium_current (millimolar).
C CONSTS(45) is K_o_normal in component ATP_sensitive_potassium_current (millimolar).
C ALGBRC(52) is f_MgADP_ in component ATP_sensitive_potassium_current (dimensionless).
C ALGBRC(54) is f_MgADP in component ATP_sensitive_potassium_current (dimensionless).
C ALGBRC(53) is c_MgADP in component ATP_sensitive_potassium_current (dimensionless).
C CONSTS(46) is go in component ATP_sensitive_potassium_current (dimensionless).
C CONSTS(47) is gd in component ATP_sensitive_potassium_current (dimensionless).
C ALGBRC(69) is ATP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(19) is MgADP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C ALGBRC(55) is J_rel in component RyR_channel (millimolar_per_second).
C CONSTS(48) is v1 in component RyR_channel (per_second).
C CONSTS(49) is k_a_plus in component RyR_channel (millimolar4_per_second).
C CONSTS(50) is k_a_minus in component RyR_channel (per_second).
C CONSTS(51) is k_b_plus in component RyR_channel (millimolar3_per_second).
C CONSTS(52) is k_b_minus in component RyR_channel (per_second).
C CONSTS(53) is k_c_plus in component RyR_channel (per_second).
C CONSTS(54) is k_c_minus in component RyR_channel (per_second).
C STATES(20) is P_O1 in component RyR_channel (dimensionless).
C STATES(21) is P_O2 in component RyR_channel (dimensionless).
C STATES(22) is P_C1 in component RyR_channel (dimensionless).
C STATES(23) is P_C2 in component RyR_channel (dimensionless).
C CONSTS(55) is n in component RyR_channel (dimensionless).
C CONSTS(56) is m in component RyR_channel (dimensionless).
C STATES(24) is Ca_JSR in component intracellular_ion_concentrations (millimolar).
C ALGBRC(59) is J_up in component SERCA2a_pump (millimolar_per_second).
C ALGBRC(58) is J_up_winslow in component SERCA2a_pump (millimolar_per_second).
C CONSTS(57) is K_fb in component SERCA2a_pump (millimolar).
C CONSTS(58) is K_rb in component SERCA2a_pump (millimolar).
C ALGBRC(56) is fb in component SERCA2a_pump (dimensionless).
C ALGBRC(57) is rb in component SERCA2a_pump (dimensionless).
C CONSTS(59) is Vmaxf in component SERCA2a_pump (millimolar_per_second).
C CONSTS(60) is Vmaxr in component SERCA2a_pump (millimolar_per_second).
C CONSTS(61) is K_SR in component SERCA2a_pump (dimensionless).
C CONSTS(62) is N_fb in component SERCA2a_pump (dimensionless).
C CONSTS(63) is N_rb in component SERCA2a_pump (dimensionless).
C STATES(25) is Ca_NSR in component intracellular_ion_concentrations (millimolar).
C ALGBRC(61) is J_tr in component intracellular_Ca_fluxes (millimolar_per_second).
C ALGBRC(60) is J_xfer in component intracellular_Ca_fluxes (millimolar_per_second).
C ALGBRC(65) is J_trpn in component intracellular_Ca_fluxes (millimolar_per_second).
C CONSTS(64) is tau_tr in component intracellular_Ca_fluxes (second).
C CONSTS(65) is tau_xfer in component intracellular_Ca_fluxes (second).
C STATES(26) is HTRPNCa in component intracellular_Ca_fluxes (millimolar).
C STATES(27) is LTRPNCa in component intracellular_Ca_fluxes (millimolar).
C ALGBRC(63) is J_HTRPNCa in component intracellular_Ca_fluxes (millimolar_per_second).
C ALGBRC(64) is J_LTRPNCa in component intracellular_Ca_fluxes (millimolar_per_second).
C CONSTS(66) is HTRPN_tot in component intracellular_Ca_fluxes (dimensionless).
C CONSTS(67) is LTRPN_tot in component intracellular_Ca_fluxes (dimensionless).
C CONSTS(68) is k_htrpn_plus in component intracellular_Ca_fluxes (per_millimolar_second).
C CONSTS(69) is k_htrpn_minus in component intracellular_Ca_fluxes (per_second).
C CONSTS(70) is k_ltrpn_plus in component intracellular_Ca_fluxes (per_millimolar_second).
C CONSTS(71) is k_ltrpn_minus in component intracellular_Ca_fluxes (per_second).
C CONSTS(72) is A_cap in component intracellular_ion_concentrations (cm2).
C CONSTS(73) is V_myo in component intracellular_ion_concentrations (microlitre).
C CONSTS(74) is V_JSR in component intracellular_ion_concentrations (microlitre).
C CONSTS(75) is V_NSR in component intracellular_ion_concentrations (microlitre).
C CONSTS(76) is V_ss in component intracellular_ion_concentrations (microlitre).
C CONSTS(77) is K_mCMDN in component intracellular_ion_concentrations (millimolar).
C CONSTS(78) is K_mEGTA in component intracellular_ion_concentrations (millimolar).
C CONSTS(79) is K_mCSQN in component intracellular_ion_concentrations (millimolar).
C CONSTS(80) is CMDN_tot in component intracellular_ion_concentrations (millimolar).
C CONSTS(81) is EGTA_tot in component intracellular_ion_concentrations (millimolar).
C CONSTS(82) is CSQN_tot in component intracellular_ion_concentrations (millimolar).
C ALGBRC(66) is beta_i in component intracellular_ion_concentrations (dimensionless).
C ALGBRC(67) is beta_SS in component intracellular_ion_concentrations (dimensionless).
C ALGBRC(62) is beta_JSR in component intracellular_ion_concentrations (dimensionless).
C CONSTS(83) is k_plus_CaATP in component Ca_and_Mg_buffering_by_ATP (per_millimolar_second).
C CONSTS(84) is k_minus_CaATP in component Ca_and_Mg_buffering_by_ATP (per_second).
C CONSTS(85) is k_plus_CaADP in component Ca_and_Mg_buffering_by_ATP (per_millimolar_second).
C CONSTS(86) is k_minus_CaADP in component Ca_and_Mg_buffering_by_ATP (per_second).
C STATES(28) is CaADP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(29) is CaADP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(30) is CaATP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C ALGBRC(75) is ADP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C ALGBRC(71) is ADP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C ALGBRC(68) is ATP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(31) is CaATP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(32) is Mg_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(33) is Mg_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C STATES(34) is MgADP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C CONSTS(87) is ATP_tot in component Ca_and_Mg_buffering_by_ATP (millimolar).
C CONSTS(88) is k_plus_MgATP in component Ca_and_Mg_buffering_by_ATP (per_millimolar_second).
C CONSTS(89) is k_minus_MgATP in component Ca_and_Mg_buffering_by_ATP (per_second).
C ALGBRC(72) is Jxfer_CaATP in component Ca_and_Mg_buffering_by_ATP (millimolar_per_second).
C ALGBRC(73) is Jxfer_MgATP in component Ca_and_Mg_buffering_by_ATP (millimolar_per_second).
C ALGBRC(77) is Jxfer_Mg in component Ca_and_Mg_buffering_by_ATP (millimolar_per_second).
C CONSTS(90) is tau_xfer_CaATP in component Ca_and_Mg_buffering_by_ATP (second).
C CONSTS(91) is tau_xfer_MgATP in component Ca_and_Mg_buffering_by_ATP (second).
C CONSTS(92) is tau_xfer_Mg in component Ca_and_Mg_buffering_by_ATP (second).
C CONSTS(93) is ADP_tot in component Ca_and_Mg_buffering_by_ATP (millimolar).
C CONSTS(94) is k_plus_MgADP in component Ca_and_Mg_buffering_by_ATP (per_millimolar_second).
C CONSTS(95) is k_minus_MgADP in component Ca_and_Mg_buffering_by_ATP (per_second).
C ALGBRC(78) is Jxfer_CaADP in component Ca_and_Mg_buffering_by_ATP (millimolar_per_second).
C ALGBRC(79) is Jxfer_MgADP in component Ca_and_Mg_buffering_by_ATP (millimolar_per_second).
C CONSTS(96) is tau_xfer_CaADP in component Ca_and_Mg_buffering_by_ATP (second).
C CONSTS(97) is tau_xfer_MgADP in component Ca_and_Mg_buffering_by_ATP (second).
C CONSTS(98) is V_myo in component model_parameters (microlitre).
C CONSTS(99) is V_ss in component model_parameters (microlitre).
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 X_kr in component rapid_activating_delayed_rectifiyer_K_current_X_kr_gate (dimensionless).
C RATES(8) is d/dt X_ks in component slow_activating_delayed_rectifiyer_K_current_X_ks_gate (dimensionless).
C RATES(9) is d/dt X_to1 in component transient_outward_potassium_current_X_to1_gate (dimensionless).
C RATES(10) is d/dt Y_to1 in component transient_outward_potassium_current_Y_to1_gate (dimensionless).
C RATES(14) is d/dt v in component L_type_Ca_current (dimensionless).
C RATES(15) is d/dt w in component L_type_Ca_current (dimensionless).
C RATES(13) is d/dt z in component L_type_Ca_current (dimensionless).
C RATES(18) is d/dt y in component L_type_Ca_current_y_gate (dimensionless).
C RATES(22) is d/dt P_C1 in component RyR_channel (dimensionless).
C RATES(20) is d/dt P_O1 in component RyR_channel (dimensionless).
C RATES(21) is d/dt P_O2 in component RyR_channel (dimensionless).
C RATES(23) is d/dt P_C2 in component RyR_channel (dimensionless).
C RATES(26) is d/dt HTRPNCa in component intracellular_Ca_fluxes (millimolar).
C RATES(27) is d/dt LTRPNCa in component intracellular_Ca_fluxes (millimolar).
C RATES(11) is d/dt Ca_i in component intracellular_ion_concentrations (millimolar).
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(16) is d/dt Ca_ss in component intracellular_ion_concentrations (millimolar).
C RATES(24) is d/dt Ca_JSR in component intracellular_ion_concentrations (millimolar).
C RATES(25) is d/dt Ca_NSR in component intracellular_ion_concentrations (millimolar).
C RATES(30) is d/dt CaATP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(17) is d/dt MgATP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(31) is d/dt CaATP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(12) is d/dt MgATP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(29) is d/dt CaADP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(34) is d/dt MgADP_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(28) is d/dt CaADP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(19) is d/dt MgADP_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(32) is d/dt Mg_ss in component Ca_and_Mg_buffering_by_ATP (millimolar).
C RATES(33) is d/dt Mg_i in component Ca_and_Mg_buffering_by_ATP (millimolar).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = -96.1638
      CONSTS(1) = 8.314472
      CONSTS(2) = 310
      CONSTS(3) = 96.4853415
      CONSTS(4) = 0.001
      CONSTS(5) = 0.1
      CONSTS(6) = 100000000
      CONSTS(7) = 1
      CONSTS(8) = 0.0005
      CONSTS(9) = -100.0
      CONSTS(10) = 12.8
      CONSTS(11) = 138
      STATES(2) = 10
      STATES(3) = 0.0328302
      STATES(4) = 0.988354
      STATES(5) = 0.99254
      CONSTS(12) = 0.0034
      CONSTS(13) = 4
      STATES(6) = 159.48
      STATES(7) = 0.51
      CONSTS(14) = 1
      CONSTS(15) = 0.0027134
      STATES(8) = 0.264
      CONSTS(16) = 0.23815
      STATES(9) = 2.63
      STATES(10) = 0.99
      CONSTS(17) = 2.8
      CONSTS(18) = 13
      CONSTS(19) = 0.002216
      CONSTS(20) = 1.38
      CONSTS(21) = 87.5
      CONSTS(22) = 0.3
      CONSTS(23) = 0.2
      CONSTS(24) = 0.35
      STATES(11) = 8.464E-5
      CONSTS(25) = 2
      CONSTS(26) = 0.693
      CONSTS(27) = 10
      CONSTS(28) = 1.5
      CONSTS(29) = 0.00005
      CONSTS(30) = 0.05
      STATES(12) = 6.4395
      CONSTS(31) = 2.888
      CONSTS(32) = 0.0003842
      CONSTS(33) = 0.0031
      CONSTS(34) = 3.594e-4
      CONSTS(35) = 6.658e-7
      CONSTS(36) = 1.4
      CONSTS(37) = 2
      CONSTS(38) = 2
      CONSTS(39) = 2000
      CONSTS(40) = 300
      CONSTS(41) = 10
      STATES(13) = 0.1
      STATES(14) = 0.1
      STATES(15) = 0.1
      STATES(16) = 1.315E-4
      STATES(17) = 6.4395
      STATES(18) = 0.798
      CONSTS(42) = 0.05
      CONSTS(43) = 0.6
      CONSTS(44) = 0.4
      CONSTS(45) = 4.5
      CONSTS(46) = 0.08
      CONSTS(47) = 0.89
      STATES(19) = 0.298E-2
      CONSTS(48) = 1800
      CONSTS(49) = 1.215e13
      CONSTS(50) = 576
      CONSTS(51) = 4.05e9
      CONSTS(52) = 1930
      CONSTS(53) = 100
      CONSTS(54) = 0.8
      STATES(20) = 0
      STATES(21) = 0
      STATES(22) = 0.47
      STATES(23) = 0.53
      CONSTS(55) = 4
      CONSTS(56) = 3
      STATES(24) = 0.2616
      CONSTS(57) = 0.000168
      CONSTS(58) = 3.29
      CONSTS(59) = 0.0813
      CONSTS(60) = 0.318
      CONSTS(61) = 1
      CONSTS(62) = 1.2
      CONSTS(63) = 1
      STATES(25) = 0.2620
      CONSTS(64) = 0.0005747
      CONSTS(65) = 0.0267
      STATES(26) = 0.98
      STATES(27) = 0.078
      CONSTS(66) = 0.14
      CONSTS(67) = 0.07
      CONSTS(68) = 20000
      CONSTS(69) = 0.066
      CONSTS(70) = 40000
      CONSTS(71) = 40
      CONSTS(72) = 0.0001534
      CONSTS(73) = 0.00002584
      CONSTS(74) = 0.00000016
      CONSTS(75) = 0.0000021
      CONSTS(76) = 0.0000000012
      CONSTS(77) = 0.00238
      CONSTS(78) = 0.00015
      CONSTS(79) = 0.8
      CONSTS(80) = 0.05
      CONSTS(81) = 0
      CONSTS(82) = 15
      CONSTS(83) = 225000.0
      CONSTS(84) = 45000.0
      CONSTS(85) = 125000.0
      CONSTS(86) = 193500
      STATES(28) = 0.11E-6
      STATES(29) = 0.13E-6
      STATES(30) = 0.25E-3
      STATES(31) = 0.237E-3
      STATES(32) = 1.0
      STATES(33) = 1.0
      STATES(34) = 0.298E-2
      CONSTS(87) = 7.0
      CONSTS(88) = 125000.0
      CONSTS(89) = 10875.0
      CONSTS(90) = 0.0534
      CONSTS(91) = 0.0534
      CONSTS(92) = 0.0267
      CONSTS(93) = 0.005
      CONSTS(94) = 125000.0
      CONSTS(95) = 84500.0
      CONSTS(96) = 0.0534
      CONSTS(97) = 0.0534
      CONSTS(98) = 0.00002584
      CONSTS(99) = 0.0000000012
      CONSTS(100) =  (CONSTS(13)/4.00000) ** (1.0 / 2)
      CONSTS(101) =  (1.00000/7.00000)*(EXP(CONSTS(11)/67.3000) - 1.00000)
      CONSTS(102) = CONSTS(40)/(CONSTS(40)+CONSTS(39))
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(22) =  - CONSTS(49)*STATES(16) ** CONSTS(55)*STATES(22)+ CONSTS(50)*STATES(20)
      RATES(20) = ( CONSTS(49)*STATES(16) ** CONSTS(55)*STATES(22) - ( CONSTS(50)*STATES(20)+ CONSTS(51)*STATES(16) ** CONSTS(56)*STATES(20)+ CONSTS(53)*STATES(20)))+ CONSTS(52)*STATES(21)+ CONSTS(54)*STATES(23)
      RATES(21) =  CONSTS(51)*STATES(16) ** CONSTS(56)*STATES(20) -  CONSTS(52)*STATES(21)
      RATES(23) =  CONSTS(53)*STATES(20) -  CONSTS(54)*STATES(23)
      ALGBRC(2) = TERNRY(STATES(1).LT.- 40.0000,  135.000*EXP((80.0000+STATES(1))/- 6.80000), 0.00000)
      ALGBRC(13) = TERNRY(STATES(1).LT.- 40.0000,  3560.00*EXP( 0.0790000*STATES(1))+ 310000.*EXP( 0.350000*STATES(1)), 1000.00/( 0.130000*(1.00000+EXP((STATES(1)+10.6600)/- 11.1000))))
      RATES(4) =  ALGBRC(2)*(1.00000 - STATES(4)) -  ALGBRC(13)*STATES(4)
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000, ( 1000.00*- ( 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(14) = TERNRY(STATES(1).LT.- 40.0000, ( 121.200*EXP( - 0.0105200*STATES(1)))/(1.00000+EXP( - 0.137800*(STATES(1)+40.1400))), ( 300.000*EXP( - 2.53500e-07*STATES(1)))/(1.00000+EXP( - 0.100000*(STATES(1)+32.0000))))
      RATES(5) =  ALGBRC(3)*(1.00000 - STATES(5)) -  ALGBRC(14)*STATES(5)
      ALGBRC(16) = 0.00100000/(( 7.19000e-05*(STATES(1) - 10.0000))/(1.00000 - EXP( - 0.148000*(STATES(1) - 10.0000)))+( 0.000131000*(STATES(1) - 10.0000))/(EXP( 0.0687000*(STATES(1) - 10.0000)) - 1.00000))
      ALGBRC(5) = 1.00000/(1.00000+EXP(- (STATES(1) - 24.7000)/13.6000))
      RATES(8) = (ALGBRC(5) - STATES(8))/ALGBRC(16)
      ALGBRC(6) =  45.1600*EXP( 0.0357700*STATES(1))
      ALGBRC(17) =  98.9000*EXP( - 0.0623700*STATES(1))
      RATES(9) =  ALGBRC(6)*(1.00000 - STATES(9)) -  ALGBRC(17)*STATES(9)
      ALGBRC(7) = ( 5.41500*EXP(- (STATES(1)+33.5000)/5.00000))/(1.00000+ 0.0513350*EXP(- (STATES(1)+33.5000)/5.00000))
      ALGBRC(18) = ( 5.41500*EXP((STATES(1)+33.5000)/5.00000))/(1.00000+ 0.0513350*EXP((STATES(1)+33.5000)/5.00000))
      RATES(10) =  ALGBRC(7)*(1.00000 - STATES(10)) -  ALGBRC(18)*STATES(10)
      ALGBRC(8) =  400.000*EXP((STATES(1)+2.00000)/10.0000)
      ALGBRC(19) =  50.0000*EXP(- (STATES(1)+2.00000)/13.0000)
      RATES(14) =  ALGBRC(8)*(1.00000 - STATES(14)) -  ALGBRC(19)*STATES(14)
      ALGBRC(10) = 0.800000/(1.00000+EXP((STATES(1)+12.5000)/5.00000))+0.200000
      ALGBRC(21) = (20.0000+600.000/(1.00000+EXP((STATES(1)+20.0000)/9.50000)))/1000.00
      RATES(18) = (ALGBRC(10) - STATES(18))/ALGBRC(21)
      ALGBRC(1) = STATES(1)+47.1300
      ALGBRC(12) = TERNRY(ABS(ALGBRC(1)).LT.1.00000e-05, 320.000/(0.100000 -  0.00500000*ALGBRC(1)), ( 320.000*ALGBRC(1))/(1.00000 - EXP( - 0.100000*ALGBRC(1))))
      ALGBRC(23) =  80.0000*EXP(- STATES(1)/11.0000)
      RATES(3) = TERNRY(STATES(1).GE.- 90.0000,  ALGBRC(12)*(1.00000 - STATES(3)) -  ALGBRC(23)*STATES(3), 0.00000)
      ALGBRC(9) = ( 103.750*STATES(16))/1.00000
      ALGBRC(25) =  ALGBRC(9)*( CONSTS(37) ** 0.00000*STATES(14) ** 0.00000*1.00000 - STATES(14) ** 4.00000 - 0.00000+ CONSTS(37) ** 1.00000*STATES(14) ** 1.00000*1.00000 - STATES(14) ** 4.00000 - 1.00000+ CONSTS(37) ** 2.00000*STATES(14) ** 2.00000*1.00000 - STATES(14) ** 4.00000 - 2.00000+ CONSTS(37) ** 3.00000*STATES(14) ** 3.00000*1.00000 - STATES(14) ** 4.00000 - 3.00000+ CONSTS(37) ** 4.00000*STATES(14) ** 4.00000*1.00000 - STATES(14) ** 4.00000 - 4.00000+- ( CONSTS(37) ** 4.00000*STATES(14) ** 4.00000*CONSTS(102)))
      ALGBRC(20) =  CONSTS(41)*( CONSTS(38) ** - 0.00000*STATES(15) ** 0.00000*1.00000 - STATES(15) ** 4.00000 - 0.00000+ CONSTS(38) ** - 1.00000*STATES(15) ** 1.00000*1.00000 - STATES(15) ** 4.00000 - 1.00000+ CONSTS(38) ** - 2.00000*STATES(15) ** 2.00000*1.00000 - STATES(15) ** 4.00000 - 2.00000+ CONSTS(38) ** - 3.00000*STATES(15) ** 3.00000*1.00000 - STATES(15) ** 4.00000 - 3.00000+ CONSTS(38) ** - 4.00000*STATES(15) ** 4.00000*1.00000 - STATES(15) ** 4.00000 - 4.00000)
      RATES(13) =  ALGBRC(20)*(1.00000 - STATES(13)) -  ALGBRC(25)*STATES(13)
      ALGBRC(4) = EXP(- 5.49500+ 0.169100*STATES(1))
      ALGBRC(15) = EXP(- 7.67700 -  0.0128000*STATES(1))
      ALGBRC(24) = ALGBRC(4)/(ALGBRC(4)+ALGBRC(15))
      ALGBRC(28) = 0.00100000/(ALGBRC(4)+ALGBRC(15))+ CONSTS(14)*0.0270000
      RATES(7) = (ALGBRC(24) - STATES(7))/ALGBRC(28)
      ALGBRC(26) =  ALGBRC(8)*CONSTS(37)
      ALGBRC(29) = ALGBRC(19)/CONSTS(38)
      RATES(15) =  ALGBRC(26)*(1.00000 - STATES(15)) -  ALGBRC(29)*STATES(15)
      ALGBRC(22) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(11)/STATES(2))
      ALGBRC(27) =  CONSTS(10)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(22))
      ALGBRC(40) =  (( CONSTS(22)*5000.00)/( (CONSTS(21) ** 3.00000+CONSTS(11) ** 3.00000)*(CONSTS(20)+CONSTS(25))*(1.00000+ CONSTS(23)*EXP(( (CONSTS(24) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))))))*( EXP(( CONSTS(24)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*STATES(2) ** 3.00000*CONSTS(25) -  EXP(( (CONSTS(24) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*CONSTS(11) ** 3.00000*STATES(11))
      ALGBRC(41) = 1.00000/(1.00000+ 0.124500*EXP(( - 0.100000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))+ 0.0365000*CONSTS(101)*EXP(( - STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))))
      ALGBRC(42) = ( (( CONSTS(26)*ALGBRC(41))/(1.00000+CONSTS(27)/STATES(2) ** 1.50000))*CONSTS(13))/(CONSTS(13)+CONSTS(28))
      ALGBRC(47) =  CONSTS(33)*(STATES(1) - ALGBRC(22))
      RATES(2) = ( - 0.00000*(ALGBRC(27)+ALGBRC(47)+ ALGBRC(40)*3.00000+ ALGBRC(42)*3.00000)*CONSTS(72)*1.00000)/( CONSTS(73)*CONSTS(3))
      RATES(26) =  CONSTS(68)*STATES(11)*(1.00000 - STATES(26)) -  CONSTS(69)*STATES(26)
      ALGBRC(56) = STATES(11)/CONSTS(57) ** CONSTS(62)
      ALGBRC(57) = STATES(25)/CONSTS(58) ** CONSTS(63)
      ALGBRC(58) = ( CONSTS(61)*( CONSTS(59)*ALGBRC(56) -  CONSTS(60)*ALGBRC(57)))/(1.00000+ALGBRC(56)+ALGBRC(57))
      ALGBRC(59) =  (STATES(12)/CONSTS(31))*ALGBRC(58)
      ALGBRC(61) = (STATES(25) - STATES(24))/CONSTS(64)
      RATES(25) = ( ALGBRC(59)*CONSTS(73))/CONSTS(75) - ( ALGBRC(61)*CONSTS(74))/CONSTS(75)
      ALGBRC(55) =  CONSTS(48)*(STATES(20)+STATES(21))*(STATES(24) - STATES(16))
      ALGBRC(62) = 1.00000/(1.00000+( CONSTS(82)*CONSTS(79))/CONSTS(79)+STATES(24) ** 2.00000)
      RATES(24) =  ALGBRC(62)*(ALGBRC(61) - ALGBRC(55))
      RATES(27) =  CONSTS(70)*STATES(11)*(1.00000 - STATES(27)) -  CONSTS(71)*STATES(27)
      ALGBRC(49) = 1.00000/(1.00000+CONSTS(36)/STATES(17) ** 2.60000)
      ALGBRC(48) =  STATES(14) ** 4.00000*STATES(18)*STATES(13)*(CONSTS(40)/(CONSTS(40)+CONSTS(39)))
      ALGBRC(50) =  ALGBRC(49)*(CONSTS(34)/( 1.00000*CONSTS(4)))*(( 4.00000*STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( 0.00100000*EXP(( CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) -  0.340000*CONSTS(25))/(EXP(( CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) - 1.00000))*ALGBRC(48)
      ALGBRC(60) = (STATES(16) - STATES(11))/CONSTS(65)
      ALGBRC(67) = 1.00000/(1.00000+( CONSTS(80)*CONSTS(77))/CONSTS(77)+STATES(16) ** 2.00000+( CONSTS(81)*CONSTS(78))/CONSTS(78)+STATES(16) ** 2.00000)
      ALGBRC(71) = CONSTS(93) - (STATES(29)+STATES(34))
      ALGBRC(68) = CONSTS(87) - (STATES(30)+STATES(17))
      RATES(16) =  ALGBRC(67)*((( ALGBRC(55)*CONSTS(74))/CONSTS(76)+ CONSTS(84)*STATES(30)+ CONSTS(86)*STATES(29)) - (( ALGBRC(60)*CONSTS(73))/CONSTS(76)+ ALGBRC(50)*(( CONSTS(72)*1.00000)/( 2.00000*CONSTS(76)*CONSTS(3)))+ CONSTS(83)*STATES(16)*ALGBRC(68)+ CONSTS(85)*STATES(16)*ALGBRC(71)))
      ALGBRC(72) = (STATES(30) - STATES(31))/CONSTS(90)
      RATES(30) =  CONSTS(83)*STATES(16)*ALGBRC(68) - ( ALGBRC(72)*(CONSTS(98)/CONSTS(99))+ CONSTS(84)*STATES(30))
      ALGBRC(73) = (STATES(17) - STATES(12))/CONSTS(91)
      RATES(17) =  CONSTS(88)*STATES(32)*ALGBRC(68) - ( ALGBRC(73)*(CONSTS(98)/CONSTS(99))+ CONSTS(89)*STATES(17))
      ALGBRC(69) = CONSTS(87) - (STATES(31)+STATES(12))
      RATES(31) = (ALGBRC(72)+ CONSTS(83)*STATES(11)*ALGBRC(69)) -  CONSTS(84)*STATES(31)
      RATES(12) = (ALGBRC(73)+ CONSTS(88)*STATES(33)*ALGBRC(69)) -  CONSTS(89)*STATES(12)
      ALGBRC(43) = ( CONSTS(30)*STATES(11))/(CONSTS(29)+STATES(11))
      ALGBRC(44) =  (STATES(12)/CONSTS(31))*ALGBRC(43)
      ALGBRC(45) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(25)/STATES(11))
      ALGBRC(46) =  CONSTS(32)*(STATES(1) - ALGBRC(45))
      ALGBRC(63) = RATES(26)
      ALGBRC(64) = RATES(27)
      ALGBRC(65) =  CONSTS(66)*ALGBRC(63)+ CONSTS(67)*ALGBRC(64)
      ALGBRC(66) = 1.00000/(1.00000+( CONSTS(80)*CONSTS(77))/CONSTS(77)+STATES(11) ** 2.00000+( CONSTS(81)*CONSTS(78))/CONSTS(78)+STATES(11) ** 2.00000)
      ALGBRC(75) = CONSTS(93) - (STATES(28)+STATES(19))
      RATES(11) =  ALGBRC(66)*((ALGBRC(60) - (ALGBRC(59)+ALGBRC(65)))+- ( ((ALGBRC(44)+ALGBRC(46)) -  2.00000*ALGBRC(40))*(( CONSTS(72)*CONSTS(4))/( 2.00000*CONSTS(73)*CONSTS(3))))+(( CONSTS(84)*STATES(31)+ CONSTS(86)*STATES(28)) - ( CONSTS(83)*STATES(11)*ALGBRC(69)+ CONSTS(85)*STATES(11)*ALGBRC(75))))
      ALGBRC(78) = (STATES(29) - STATES(28))/CONSTS(96)
      RATES(29) =  CONSTS(85)*STATES(16)*ALGBRC(71) - ( ALGBRC(78)*(CONSTS(98)/CONSTS(99))+ CONSTS(86)*STATES(29))
      ALGBRC(79) = (STATES(34) - STATES(19))/CONSTS(97)
      RATES(34) =  CONSTS(94)*STATES(32)*ALGBRC(71) - ( ALGBRC(79)*(CONSTS(98)/CONSTS(99))+ CONSTS(95)*STATES(34))
      RATES(28) = (ALGBRC(78)+ CONSTS(85)*STATES(11)*ALGBRC(75)) -  CONSTS(86)*STATES(28)
      RATES(19) = (ALGBRC(79)+ CONSTS(94)*STATES(33)*ALGBRC(75)) -  CONSTS(95)*STATES(19)
      ALGBRC(77) = (STATES(32) - STATES(33))/CONSTS(92)
      RATES(32) = ( CONSTS(89)*STATES(17)+ CONSTS(95)*STATES(34)) - ( CONSTS(88)*STATES(32)*ALGBRC(68)+ CONSTS(94)*STATES(32)*ALGBRC(71)+ ALGBRC(77)*(CONSTS(98)/CONSTS(99)))
      RATES(33) = (ALGBRC(77)+ CONSTS(89)*STATES(12)+ CONSTS(95)*STATES(19)) - ( CONSTS(88)*STATES(33)*ALGBRC(69)+ CONSTS(94)*STATES(33)*ALGBRC(75))
      ALGBRC(11) = 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(51) =  1.00000*ALGBRC(49)*(CONSTS(35)/CONSTS(4))*ALGBRC(48)
      ALGBRC(30) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(13)/STATES(6))
      ALGBRC(31) = 1.00000/(1.00000+ 1.49450*EXP( 0.0446000*STATES(1)))
      ALGBRC(32) =  CONSTS(12)*CONSTS(100)*ALGBRC(31)*STATES(7)*(STATES(1) - ALGBRC(30))
      ALGBRC(33) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(13)+ 0.0183300*CONSTS(11))/(STATES(6)+ 0.0183300*STATES(2)))
      ALGBRC(34) =  CONSTS(15)*STATES(8) ** 2.00000*(STATES(1) - ALGBRC(33))
      ALGBRC(35) =  CONSTS(16)*STATES(9)*STATES(10)*(STATES(1) - ALGBRC(30))
      ALGBRC(36) = 1.00000/(2.00000+EXP( (( 1.50000*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*(STATES(1) - ALGBRC(30))))
      ALGBRC(37) =  (( CONSTS(17)*ALGBRC(36)*CONSTS(13))/(CONSTS(13)+CONSTS(18)))*(STATES(1) - ALGBRC(30))
      ALGBRC(38) = 1.00000/(1.00000+EXP((7.48800 - STATES(1))/5.98000))
      ALGBRC(39) =  CONSTS(19)*ALGBRC(38)*(STATES(1) - ALGBRC(30))
      ALGBRC(70) = 1.00000 - ALGBRC(69)/(ALGBRC(69)+CONSTS(43)) ** 4.00000
      ALGBRC(52) = STATES(19)/(STATES(19)+CONSTS(44)) ** 2.00000
      ALGBRC(53) = 1.00000 - ALGBRC(52)
      ALGBRC(54) = 1.00000 - ALGBRC(53) ** 4.00000
      ALGBRC(74) =  CONSTS(46)*ALGBRC(70)*(1.00000 - ALGBRC(54))+ CONSTS(47)*ALGBRC(70)*ALGBRC(54)
      ALGBRC(76) =  CONSTS(42)*ALGBRC(74)*CONSTS(13)/CONSTS(45) ** 0.240000
      ALGBRC(80) =  ALGBRC(76)*(STATES(1) - ALGBRC(30))
      RATES(1) = ( - 1.00000*1.00000*(ALGBRC(27)+ALGBRC(50)+ALGBRC(51)+ALGBRC(32)+ALGBRC(34)+ALGBRC(35)+ALGBRC(37)+ALGBRC(39)+ALGBRC(40)+ALGBRC(42)+ALGBRC(44)+ALGBRC(47)+ALGBRC(46)+ALGBRC(80)+ALGBRC(11)))/CONSTS(4)
      RATES(6) = ( - 0.00000*(ALGBRC(51)+ALGBRC(32)+ALGBRC(34)+ALGBRC(37)+ALGBRC(39)+ALGBRC(35)+ALGBRC(80)+ ALGBRC(42)*- 2.00000)*CONSTS(72)*1.00000)/( CONSTS(73)*CONSTS(3))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(2) = TERNRY(STATES(1).LT.- 40.0000,  135.000*EXP((80.0000+STATES(1))/- 6.80000), 0.00000)
      ALGBRC(13) = TERNRY(STATES(1).LT.- 40.0000,  3560.00*EXP( 0.0790000*STATES(1))+ 310000.*EXP( 0.350000*STATES(1)), 1000.00/( 0.130000*(1.00000+EXP((STATES(1)+10.6600)/- 11.1000))))
      ALGBRC(3) = TERNRY(STATES(1).LT.- 40.0000, ( 1000.00*- ( 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(14) = TERNRY(STATES(1).LT.- 40.0000, ( 121.200*EXP( - 0.0105200*STATES(1)))/(1.00000+EXP( - 0.137800*(STATES(1)+40.1400))), ( 300.000*EXP( - 2.53500e-07*STATES(1)))/(1.00000+EXP( - 0.100000*(STATES(1)+32.0000))))
      ALGBRC(16) = 0.00100000/(( 7.19000e-05*(STATES(1) - 10.0000))/(1.00000 - EXP( - 0.148000*(STATES(1) - 10.0000)))+( 0.000131000*(STATES(1) - 10.0000))/(EXP( 0.0687000*(STATES(1) - 10.0000)) - 1.00000))
      ALGBRC(5) = 1.00000/(1.00000+EXP(- (STATES(1) - 24.7000)/13.6000))
      ALGBRC(6) =  45.1600*EXP( 0.0357700*STATES(1))
      ALGBRC(17) =  98.9000*EXP( - 0.0623700*STATES(1))
      ALGBRC(7) = ( 5.41500*EXP(- (STATES(1)+33.5000)/5.00000))/(1.00000+ 0.0513350*EXP(- (STATES(1)+33.5000)/5.00000))
      ALGBRC(18) = ( 5.41500*EXP((STATES(1)+33.5000)/5.00000))/(1.00000+ 0.0513350*EXP((STATES(1)+33.5000)/5.00000))
      ALGBRC(8) =  400.000*EXP((STATES(1)+2.00000)/10.0000)
      ALGBRC(19) =  50.0000*EXP(- (STATES(1)+2.00000)/13.0000)
      ALGBRC(10) = 0.800000/(1.00000+EXP((STATES(1)+12.5000)/5.00000))+0.200000
      ALGBRC(21) = (20.0000+600.000/(1.00000+EXP((STATES(1)+20.0000)/9.50000)))/1000.00
      ALGBRC(1) = STATES(1)+47.1300
      ALGBRC(12) = TERNRY(ABS(ALGBRC(1)).LT.1.00000e-05, 320.000/(0.100000 -  0.00500000*ALGBRC(1)), ( 320.000*ALGBRC(1))/(1.00000 - EXP( - 0.100000*ALGBRC(1))))
      ALGBRC(23) =  80.0000*EXP(- STATES(1)/11.0000)
      ALGBRC(9) = ( 103.750*STATES(16))/1.00000
      ALGBRC(25) =  ALGBRC(9)*( CONSTS(37) ** 0.00000*STATES(14) ** 0.00000*1.00000 - STATES(14) ** 4.00000 - 0.00000+ CONSTS(37) ** 1.00000*STATES(14) ** 1.00000*1.00000 - STATES(14) ** 4.00000 - 1.00000+ CONSTS(37) ** 2.00000*STATES(14) ** 2.00000*1.00000 - STATES(14) ** 4.00000 - 2.00000+ CONSTS(37) ** 3.00000*STATES(14) ** 3.00000*1.00000 - STATES(14) ** 4.00000 - 3.00000+ CONSTS(37) ** 4.00000*STATES(14) ** 4.00000*1.00000 - STATES(14) ** 4.00000 - 4.00000+- ( CONSTS(37) ** 4.00000*STATES(14) ** 4.00000*CONSTS(102)))
      ALGBRC(20) =  CONSTS(41)*( CONSTS(38) ** - 0.00000*STATES(15) ** 0.00000*1.00000 - STATES(15) ** 4.00000 - 0.00000+ CONSTS(38) ** - 1.00000*STATES(15) ** 1.00000*1.00000 - STATES(15) ** 4.00000 - 1.00000+ CONSTS(38) ** - 2.00000*STATES(15) ** 2.00000*1.00000 - STATES(15) ** 4.00000 - 2.00000+ CONSTS(38) ** - 3.00000*STATES(15) ** 3.00000*1.00000 - STATES(15) ** 4.00000 - 3.00000+ CONSTS(38) ** - 4.00000*STATES(15) ** 4.00000*1.00000 - STATES(15) ** 4.00000 - 4.00000)
      ALGBRC(4) = EXP(- 5.49500+ 0.169100*STATES(1))
      ALGBRC(15) = EXP(- 7.67700 -  0.0128000*STATES(1))
      ALGBRC(24) = ALGBRC(4)/(ALGBRC(4)+ALGBRC(15))
      ALGBRC(28) = 0.00100000/(ALGBRC(4)+ALGBRC(15))+ CONSTS(14)*0.0270000
      ALGBRC(26) =  ALGBRC(8)*CONSTS(37)
      ALGBRC(29) = ALGBRC(19)/CONSTS(38)
      ALGBRC(22) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(11)/STATES(2))
      ALGBRC(27) =  CONSTS(10)*STATES(3) ** 3.00000*STATES(4)*STATES(5)*(STATES(1) - ALGBRC(22))
      ALGBRC(40) =  (( CONSTS(22)*5000.00)/( (CONSTS(21) ** 3.00000+CONSTS(11) ** 3.00000)*(CONSTS(20)+CONSTS(25))*(1.00000+ CONSTS(23)*EXP(( (CONSTS(24) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))))))*( EXP(( CONSTS(24)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*STATES(2) ** 3.00000*CONSTS(25) -  EXP(( (CONSTS(24) - 1.00000)*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*CONSTS(11) ** 3.00000*STATES(11))
      ALGBRC(41) = 1.00000/(1.00000+ 0.124500*EXP(( - 0.100000*STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2)))+ 0.0365000*CONSTS(101)*EXP(( - STATES(1)*CONSTS(3))/( CONSTS(1)*CONSTS(2))))
      ALGBRC(42) = ( (( CONSTS(26)*ALGBRC(41))/(1.00000+CONSTS(27)/STATES(2) ** 1.50000))*CONSTS(13))/(CONSTS(13)+CONSTS(28))
      ALGBRC(47) =  CONSTS(33)*(STATES(1) - ALGBRC(22))
      ALGBRC(56) = STATES(11)/CONSTS(57) ** CONSTS(62)
      ALGBRC(57) = STATES(25)/CONSTS(58) ** CONSTS(63)
      ALGBRC(58) = ( CONSTS(61)*( CONSTS(59)*ALGBRC(56) -  CONSTS(60)*ALGBRC(57)))/(1.00000+ALGBRC(56)+ALGBRC(57))
      ALGBRC(59) =  (STATES(12)/CONSTS(31))*ALGBRC(58)
      ALGBRC(61) = (STATES(25) - STATES(24))/CONSTS(64)
      ALGBRC(55) =  CONSTS(48)*(STATES(20)+STATES(21))*(STATES(24) - STATES(16))
      ALGBRC(62) = 1.00000/(1.00000+( CONSTS(82)*CONSTS(79))/CONSTS(79)+STATES(24) ** 2.00000)
      ALGBRC(49) = 1.00000/(1.00000+CONSTS(36)/STATES(17) ** 2.60000)
      ALGBRC(48) =  STATES(14) ** 4.00000*STATES(18)*STATES(13)*(CONSTS(40)/(CONSTS(40)+CONSTS(39)))
      ALGBRC(50) =  ALGBRC(49)*(CONSTS(34)/( 1.00000*CONSTS(4)))*(( 4.00000*STATES(1)*CONSTS(3) ** 2.00000)/( CONSTS(1)*CONSTS(2)))*(( 0.00100000*EXP(( CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) -  0.340000*CONSTS(25))/(EXP(( CONSTS(3)*STATES(1))/( CONSTS(1)*CONSTS(2))) - 1.00000))*ALGBRC(48)
      ALGBRC(60) = (STATES(16) - STATES(11))/CONSTS(65)
      ALGBRC(67) = 1.00000/(1.00000+( CONSTS(80)*CONSTS(77))/CONSTS(77)+STATES(16) ** 2.00000+( CONSTS(81)*CONSTS(78))/CONSTS(78)+STATES(16) ** 2.00000)
      ALGBRC(71) = CONSTS(93) - (STATES(29)+STATES(34))
      ALGBRC(68) = CONSTS(87) - (STATES(30)+STATES(17))
      ALGBRC(72) = (STATES(30) - STATES(31))/CONSTS(90)
      ALGBRC(73) = (STATES(17) - STATES(12))/CONSTS(91)
      ALGBRC(69) = CONSTS(87) - (STATES(31)+STATES(12))
      ALGBRC(43) = ( CONSTS(30)*STATES(11))/(CONSTS(29)+STATES(11))
      ALGBRC(44) =  (STATES(12)/CONSTS(31))*ALGBRC(43)
      ALGBRC(45) =  (( CONSTS(1)*CONSTS(2))/( 2.00000*CONSTS(3)))*log(CONSTS(25)/STATES(11))
      ALGBRC(46) =  CONSTS(32)*(STATES(1) - ALGBRC(45))
      ALGBRC(63) = RATES(26)
      ALGBRC(64) = RATES(27)
      ALGBRC(65) =  CONSTS(66)*ALGBRC(63)+ CONSTS(67)*ALGBRC(64)
      ALGBRC(66) = 1.00000/(1.00000+( CONSTS(80)*CONSTS(77))/CONSTS(77)+STATES(11) ** 2.00000+( CONSTS(81)*CONSTS(78))/CONSTS(78)+STATES(11) ** 2.00000)
      ALGBRC(75) = CONSTS(93) - (STATES(28)+STATES(19))
      ALGBRC(78) = (STATES(29) - STATES(28))/CONSTS(96)
      ALGBRC(79) = (STATES(34) - STATES(19))/CONSTS(97)
      ALGBRC(77) = (STATES(32) - STATES(33))/CONSTS(92)
      ALGBRC(11) = 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(51) =  1.00000*ALGBRC(49)*(CONSTS(35)/CONSTS(4))*ALGBRC(48)
      ALGBRC(30) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log(CONSTS(13)/STATES(6))
      ALGBRC(31) = 1.00000/(1.00000+ 1.49450*EXP( 0.0446000*STATES(1)))
      ALGBRC(32) =  CONSTS(12)*CONSTS(100)*ALGBRC(31)*STATES(7)*(STATES(1) - ALGBRC(30))
      ALGBRC(33) =  (( CONSTS(1)*CONSTS(2))/CONSTS(3))*log((CONSTS(13)+ 0.0183300*CONSTS(11))/(STATES(6)+ 0.0183300*STATES(2)))
      ALGBRC(34) =  CONSTS(15)*STATES(8) ** 2.00000*(STATES(1) - ALGBRC(33))
      ALGBRC(35) =  CONSTS(16)*STATES(9)*STATES(10)*(STATES(1) - ALGBRC(30))
      ALGBRC(36) = 1.00000/(2.00000+EXP( (( 1.50000*CONSTS(3))/( CONSTS(1)*CONSTS(2)))*(STATES(1) - ALGBRC(30))))
      ALGBRC(37) =  (( CONSTS(17)*ALGBRC(36)*CONSTS(13))/(CONSTS(13)+CONSTS(18)))*(STATES(1) - ALGBRC(30))
      ALGBRC(38) = 1.00000/(1.00000+EXP((7.48800 - STATES(1))/5.98000))
      ALGBRC(39) =  CONSTS(19)*ALGBRC(38)*(STATES(1) - ALGBRC(30))
      ALGBRC(70) = 1.00000 - ALGBRC(69)/(ALGBRC(69)+CONSTS(43)) ** 4.00000
      ALGBRC(52) = STATES(19)/(STATES(19)+CONSTS(44)) ** 2.00000
      ALGBRC(53) = 1.00000 - ALGBRC(52)
      ALGBRC(54) = 1.00000 - ALGBRC(53) ** 4.00000
      ALGBRC(74) =  CONSTS(46)*ALGBRC(70)*(1.00000 - ALGBRC(54))+ CONSTS(47)*ALGBRC(70)*ALGBRC(54)
      ALGBRC(76) =  CONSTS(42)*ALGBRC(74)*CONSTS(13)/CONSTS(45) ** 0.240000
      ALGBRC(80) =  ALGBRC(76)*(STATES(1) - ALGBRC(30))
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END