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 14 entries in the algebraic variable array.
C There are a total of 4 entries in each of the rate and state variable arrays.
C There are a total of 46 entries in the constant variable array.
C
C
C VOI is time in component environment (msec).
C ALGBRC(1) is t_modulo in component environment (msec).
C CONSTS(1) is Acap in component general_parameters (cm2).
C CONSTS(2) is V_myo in component general_parameters (uL).
C CONSTS(3) is C_m in component general_parameters (uF_per_cm2).
C CONSTS(4) is F in component general_parameters (C_per_mmole).
C CONSTS(5) is T in component general_parameters (kelvin).
C CONSTS(6) is R in component general_parameters (J_per_K_per_mol).
C CONSTS(7) is CaM_tot in component general_parameters (uM).
C CONSTS(8) is Km_CaM in component general_parameters (uM).
C CONSTS(9) is Ca_o in component general_parameters (uM).
C CONSTS(10) is Na_o in component general_parameters (uM).
C CONSTS(11) is Ca_NSR in component general_parameters (uM).
C CONSTS(12) is J_leak in component general_parameters (uM_per_msec).
C ALGBRC(2) is V in component action_potential (mV).
C CONSTS(13) is t1 in component action_potential (msec).
C CONSTS(14) is t2 in component action_potential (msec).
C CONSTS(15) is p in component action_potential (dimensionless).
C CONSTS(16) is A in component action_potential (mV).
C CONSTS(17) is A1 in component action_potential (msec).
C CONSTS(18) is rest in component action_potential (mV).
C ALGBRC(4) is Ca_input in component calcium_input (uM_per_msec).
C ALGBRC(3) is tcalcium in component calcium_input (msec).
C CONSTS(19) is Ca_tau1 in component calcium_input (msec).
C CONSTS(20) is Ca_tau2 in component calcium_input (msec).
C CONSTS(21) is Ca_pow in component calcium_input (dimensionless).
C CONSTS(22) is Ca_amp in component calcium_input (uM_per_msec).
C ALGBRC(5) is INaCa in component NCX_current (uA_per_uF).
C CONSTS(23) is Na_i in component NCX_current (uM).
C CONSTS(24) is KmNa in component NCX_current (uM).
C CONSTS(25) is KmCa in component NCX_current (uM).
C CONSTS(26) is ksat in component NCX_current (dimensionless).
C CONSTS(27) is eta in component NCX_current (dimensionless).
C CONSTS(28) is kNaCa in component NCX_current (uA_per_uF).
C STATES(1) is Ca_cyt in component differential_equations (uM).
C CONSTS(29) is SERCA_TOT in component serca_parameters (uM).
C CONSTS(30) is CaMKII_reg in component serca_parameters (dimensionless).
C CONSTS(31) is PKA_reg in component serca_parameters (dimensionless).
C CONSTS(32) is PSR in component serca_parameters (dimensionless).
C CONSTS(33) is Kmf_PLBKO in component serca_parameters (uM).
C CONSTS(34) is Kmf_PLB in component serca_parameters (uM).
C CONSTS(35) is Kmr_PLBKO in component serca_parameters (uM).
C CONSTS(36) is Kmr_PLB in component serca_parameters (uM).
C CONSTS(37) is PLB_tot in component serca_parameters (uM).
C CONSTS(38) is kplb_pos in component serca_parameters (per_msec).
C CONSTS(39) is kplb_neg in component serca_parameters (per_msec).
C ALGBRC(6) is EC_50_fwd in component serca_parameters (uM).
C ALGBRC(7) is EC_50_rev in component serca_parameters (uM).
C STATES(2) is PLB_dephosph in component differential_equations (uM).
C CONSTS(46) is k_cyt_serca in component transition_parameters (per_uM2_per_msec).
C ALGBRC(8) is k_serca_cyt in component transition_parameters (per_msec).
C CONSTS(44) is k_serca_sr in component transition_parameters (per_msec).
C ALGBRC(9) is k_sr_serca in component transition_parameters (per_uM2_per_msec).
C CONSTS(45) is br_cyt_serca in component transition_parameters (per_uM2_per_msec).
C CONSTS(40) is br_serca_sr in component transition_parameters (per_msec).
C ALGBRC(13) is J_up in component calcium_fluxes (uM_per_msec).
C ALGBRC(10) is J_cyt_serca in component calcium_fluxes (uM_per_msec).
C ALGBRC(11) is J_serca_sr in component calcium_fluxes (uM_per_msec).
C STATES(3) is Ca_serca in component differential_equations (uM).
C CONSTS(41) is LTRPN_tot in component calcium_buffering (uM).
C CONSTS(42) is kltrpn_pos in component calcium_buffering (per_uM_per_msec).
C CONSTS(43) is kltrpn_neg in component calcium_buffering (per_msec).
C ALGBRC(14) is J_LTRPN in component calcium_buffering (uM_per_msec).
C ALGBRC(12) is B_i in component calcium_buffering (dimensionless).
C STATES(4) is LTRPN in component differential_equations (uM).
C RATES(1) is d/dt Ca_cyt in component differential_equations (uM).
C RATES(4) is d/dt LTRPN in component differential_equations (uM).
C RATES(2) is d/dt PLB_dephosph in component differential_equations (uM).
C RATES(3) is d/dt Ca_serca in component differential_equations (uM).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 1.534e-4
      CONSTS(2) = 25.84e-6
      CONSTS(3) = 1
      CONSTS(4) = 96.5
      CONSTS(5) = 298
      CONSTS(6) = 8.314
      CONSTS(7) = 24
      CONSTS(8) = 2.38
      CONSTS(9) = 1000
      CONSTS(10) = 140000
      CONSTS(11) = 760
      CONSTS(12) = 0.0003
      CONSTS(13) = 0.5
      CONSTS(14) = 200
      CONSTS(15) = 2
      CONSTS(16) = 135
      CONSTS(17) = 110
      CONSTS(18) = -90
      CONSTS(19) = 1.5
      CONSTS(20) = 7.5
      CONSTS(21) = 2
      CONSTS(22) = 10
      CONSTS(23) = 10000
      CONSTS(24) = 87500
      CONSTS(25) = 1380
      CONSTS(26) = 0.1
      CONSTS(27) = 0.35
      CONSTS(28) = 950
      STATES(1) = 0.1
      CONSTS(29) = 20
      CONSTS(30) = 0.1
      CONSTS(31) = 0.1
      CONSTS(32) = 1
      CONSTS(33) = 0.15
      CONSTS(34) = 0.15
      CONSTS(35) = 2500
      CONSTS(36) = 1110
      CONSTS(37) = 1
      CONSTS(38) = 1
      CONSTS(39) = 6.8
      STATES(2) = 0.1
      CONSTS(40) = 0.00625
      STATES(3) = 5
      CONSTS(41) = 70
      CONSTS(42) = 0.1
      CONSTS(43) = 0.06
      STATES(4) = 11
      CONSTS(44) =  CONSTS(40)*(1.00000+ 0.700000*CONSTS(30))
      CONSTS(45) =  1000.00*CONSTS(40)
      CONSTS(46) =  CONSTS(45)*(1.00000+ 0.700000*CONSTS(30))
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(4) =  CONSTS(42)*STATES(1)*(CONSTS(41) - STATES(4)) -  CONSTS(43)*STATES(4)
      RATES(2) =  CONSTS(38)*(CONSTS(37) - STATES(2)) -  CONSTS(39)*CONSTS(30)+CONSTS(31) ** 2.00000*STATES(2)
      ALGBRC(6) =  (CONSTS(33)+( CONSTS(34)*CONSTS(32)*STATES(2))/1.00000)*(1.00000+ 0.270000*CONSTS(30))
      ALGBRC(8) =  ALGBRC(6) ** 2.00000*CONSTS(45)
      ALGBRC(10) =  CONSTS(46)*STATES(1) ** 2.00000*(CONSTS(29) - STATES(3)) -  ALGBRC(8)*STATES(3)
      ALGBRC(7) = CONSTS(35) - ( CONSTS(36)*CONSTS(32)*STATES(2))/1.00000
      ALGBRC(9) = CONSTS(40)/ALGBRC(7) ** 2.00000
      ALGBRC(11) =  CONSTS(44)*STATES(3) -  ALGBRC(9)*CONSTS(11) ** 2.00000*(CONSTS(29) - STATES(3))
      RATES(3) = ALGBRC(10) - ALGBRC(11)
      ALGBRC(1) =  INT(MOD(VOI, 1000.00))
      ALGBRC(3) = TERNRY(ALGBRC(1) - 1.20000.LE.0.00000, 0.00000, ALGBRC(1) - 1.20000)
      ALGBRC(4) =  CONSTS(22)*1.00000 - EXP(- ALGBRC(3)/CONSTS(19)) ** CONSTS(21)*EXP(- ALGBRC(3)/CONSTS(20))
      ALGBRC(2) = CONSTS(18)+ CONSTS(16)*1.00000 - EXP(- ALGBRC(1)/CONSTS(13)) ** CONSTS(15)*EXP(- ALGBRC(1)/CONSTS(14))*(1.00000 - ALGBRC(1) ** 10.0000/(CONSTS(17) ** 10.0000+ALGBRC(1) ** 10.0000))
      ALGBRC(5) =  (CONSTS(28)/( (CONSTS(24) ** 3.00000+CONSTS(10) ** 3.00000)*(CONSTS(25)+CONSTS(9))*(1.00000+ CONSTS(26)*EXP(( (CONSTS(27) - 1.00000)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5))))))*( EXP(( CONSTS(27)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5)))*CONSTS(23) ** 3.00000*CONSTS(9) -  EXP(( (CONSTS(27) - 1.00000)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5)))*CONSTS(10) ** 3.00000*STATES(1))
      ALGBRC(14) =  CONSTS(42)*STATES(1)*(CONSTS(41) - STATES(4)) -  CONSTS(43)*STATES(4)
      ALGBRC(12) = 1.00000+( CONSTS(7)*CONSTS(8))/CONSTS(8)+STATES(1) ** 2.00000 ** - 1.00000
      RATES(1) =  ALGBRC(12)*(((( ALGBRC(5)*CONSTS(1)*CONSTS(3))/( 2.00000*CONSTS(2)*CONSTS(4)) - ALGBRC(10))+CONSTS(12)+ALGBRC(4)) - ALGBRC(14))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(6) =  (CONSTS(33)+( CONSTS(34)*CONSTS(32)*STATES(2))/1.00000)*(1.00000+ 0.270000*CONSTS(30))
      ALGBRC(8) =  ALGBRC(6) ** 2.00000*CONSTS(45)
      ALGBRC(10) =  CONSTS(46)*STATES(1) ** 2.00000*(CONSTS(29) - STATES(3)) -  ALGBRC(8)*STATES(3)
      ALGBRC(7) = CONSTS(35) - ( CONSTS(36)*CONSTS(32)*STATES(2))/1.00000
      ALGBRC(9) = CONSTS(40)/ALGBRC(7) ** 2.00000
      ALGBRC(11) =  CONSTS(44)*STATES(3) -  ALGBRC(9)*CONSTS(11) ** 2.00000*(CONSTS(29) - STATES(3))
      ALGBRC(1) =  INT(MOD(VOI, 1000.00))
      ALGBRC(3) = TERNRY(ALGBRC(1) - 1.20000.LE.0.00000, 0.00000, ALGBRC(1) - 1.20000)
      ALGBRC(4) =  CONSTS(22)*1.00000 - EXP(- ALGBRC(3)/CONSTS(19)) ** CONSTS(21)*EXP(- ALGBRC(3)/CONSTS(20))
      ALGBRC(2) = CONSTS(18)+ CONSTS(16)*1.00000 - EXP(- ALGBRC(1)/CONSTS(13)) ** CONSTS(15)*EXP(- ALGBRC(1)/CONSTS(14))*(1.00000 - ALGBRC(1) ** 10.0000/(CONSTS(17) ** 10.0000+ALGBRC(1) ** 10.0000))
      ALGBRC(5) =  (CONSTS(28)/( (CONSTS(24) ** 3.00000+CONSTS(10) ** 3.00000)*(CONSTS(25)+CONSTS(9))*(1.00000+ CONSTS(26)*EXP(( (CONSTS(27) - 1.00000)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5))))))*( EXP(( CONSTS(27)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5)))*CONSTS(23) ** 3.00000*CONSTS(9) -  EXP(( (CONSTS(27) - 1.00000)*ALGBRC(2)*CONSTS(4))/( CONSTS(6)*CONSTS(5)))*CONSTS(10) ** 3.00000*STATES(1))
      ALGBRC(14) =  CONSTS(42)*STATES(1)*(CONSTS(41) - STATES(4)) -  CONSTS(43)*STATES(4)
      ALGBRC(12) = 1.00000+( CONSTS(7)*CONSTS(8))/CONSTS(8)+STATES(1) ** 2.00000 ** - 1.00000
      ALGBRC(13) = ALGBRC(10) - ALGBRC(11)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END