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 15 entries in the algebraic variable array.
C There are a total of 7 entries in each of the rate and state variable arrays.
C There are a total of 40 entries in the constant variable array.
C
C
C VOI is time in component environment (second).
C CONSTS(1) is cap in component parameters (nanofarad).
C CONSTS(2) is cc1lin in component parameters (per_second).
C CONSTS(3) is cc_2 in component parameters (per_second).
C CONSTS(4) is ck1lin in component parameters (per_second).
C CONSTS(5) is ck_2 in component parameters (per_second).
C CONSTS(6) is clmax in component parameters (nanosiemens).
C CONSTS(7) is cnmax in component parameters (nanosiemens).
C CONSTS(8) is cx1lin in component parameters (per_second).
C CONSTS(9) is cx2 in component parameters (per_second).
C CONSTS(10) is ef in component parameters (per_second).
C CONSTS(11) is gl in component parameters (nanosiemens).
C CONSTS(12) is hmc_1 in component parameters (uM).
C CONSTS(13) is hmc_2 in component parameters (uM).
C CONSTS(14) is inf in component parameters (uM_per_picocoulomb).
C CONSTS(15) is inhmax in component parameters (dimensionless).
C CONSTS(16) is k_1 in component parameters (per_uM_per_second).
C CONSTS(17) is k_2 in component parameters (per_second).
C CONSTS(18) is kI in component parameters (uM).
C CONSTS(19) is kinh in component parameters (uM).
C CONSTS(20) is kinhcng in component parameters (uM).
C CONSTS(21) is n_1 in component parameters (dimensionless).
C CONSTS(22) is n_2 in component parameters (dimensionless).
C CONSTS(23) is nI in component parameters (dimensionless).
C CONSTS(24) is ninh in component parameters (dimensionless).
C CONSTS(25) is ninhcng in component parameters (dimensionless).
C CONSTS(26) is pd in component parameters (per_second).
C CONSTS(27) is r_1 in component parameters (per_second).
C CONSTS(28) is r_2 in component parameters (per_second).
C CONSTS(29) is smax in component parameters (uM_per_second).
C CONSTS(30) is V_Cl in component parameters (millivolt).
C CONSTS(31) is V_cng in component parameters (millivolt).
C CONSTS(32) is V_l in component parameters (millivolt).
C CONSTS(40) is F_vol in component parameters (picocoulomb_per_uM).
C CONSTS(33) is F in component parameters (coulombs_per_mole).
C CONSTS(34) is C_vol in component parameters (liter).
C ALGBRC(10) is O_stim in component O_stim (uM).
C CONSTS(35) is od in component O_stim (uM).
C CONSTS(36) is t_0 in component O_stim (second).
C CONSTS(37) is t_1 in component O_stim (second).
C ALGBRC(1) is H_0 in component O_stim (dimensionless).
C ALGBRC(6) is H_1 in component O_stim (dimensionless).
C STATES(1) is bLR in component bLR (dimensionless).
C CONSTS(38) is R_tot in component bLR (dimensionless).
C STATES(2) is aG in component aG (dimensionless).
C CONSTS(39) is G_tot in component aG (dimensionless).
C ALGBRC(2) is k_G in component k_G (per_second).
C ALGBRC(7) is r_G in component r_G (per_second).
C STATES(3) is cAMP in component cAMP (uM).
C ALGBRC(3) is synth in component synth (uM_per_second).
C ALGBRC(8) is degrad in component degrad (uM_per_second).
C STATES(4) is aCaMK in component aCaMK (uM).
C STATES(5) is Ca in component Ca (uM).
C ALGBRC(11) is I_CNG in component I_CNG (nanoampere).
C ALGBRC(13) is J_NCX in component J_NCX (uM_per_second).
C ALGBRC(4) is cc_1 in component cc_1 (uM_per_second).
C STATES(6) is CaCaM in component CaCaM (uM).
C ALGBRC(5) is ck_1 in component ck_1 (uM_per_second).
C STATES(7) is V in component V (millivolt).
C ALGBRC(12) is I_ClCa in component I_ClCa (nanoampere).
C ALGBRC(14) is I_NCX in component I_NCX (nanoampere).
C ALGBRC(15) is I_other in component I_other (nanoampere).
C ALGBRC(9) is inhcng in component inhcng (dimensionless).
C RATES(1) is d/dt bLR in component bLR (dimensionless).
C RATES(2) is d/dt aG in component aG (dimensionless).
C RATES(3) is d/dt cAMP in component cAMP (uM).
C RATES(5) is d/dt Ca in component Ca (uM).
C RATES(6) is d/dt CaCaM in component CaCaM (uM).
C RATES(4) is d/dt aCaMK in component aCaMK (uM).
C RATES(7) is d/dt V in component V (millivolt).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 0.004
      CONSTS(2) = 0.88
      CONSTS(3) = 26
      CONSTS(4) = 13
      CONSTS(5) = 0.9
      CONSTS(6) = 1
      CONSTS(7) = 1
      CONSTS(8) = 1
      CONSTS(9) = 13
      CONSTS(10) = 2
      CONSTS(11) = 6
      CONSTS(12) = 2
      CONSTS(13) = 3
      CONSTS(14) = 1.9
      CONSTS(15) = 5
      CONSTS(16) = 0.06
      CONSTS(17) = 20
      CONSTS(18) = 0.7
      CONSTS(19) = 2
      CONSTS(20) = 1
      CONSTS(21) = 2
      CONSTS(22) = 2
      CONSTS(23) = 2
      CONSTS(24) = 1.5
      CONSTS(25) = 1.3
      CONSTS(26) = 20
      CONSTS(27) = 10
      CONSTS(28) = 5
      CONSTS(29) = 71
      CONSTS(30) = -50
      CONSTS(31) = 0
      CONSTS(32) = -70
      CONSTS(33) = 9.649e4
      CONSTS(34) = 1e-13
      CONSTS(35) = 20
      CONSTS(36) = 0.5
      CONSTS(37) = 1.5
      STATES(1) = 0
      CONSTS(38) = 1
      STATES(2) = 0
      CONSTS(39) = 1
      STATES(3) = 1.35648992164649e-88
      STATES(4) = 6.60756525051462e-8
      STATES(5) = 5.09073088043779e-12
      STATES(6) = 1.86113118246926e-13
      STATES(7) = -70
      CONSTS(40) =  (1.00000e+12/1.00000)*(1.00000/1000.00)*CONSTS(33)*CONSTS(34)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(4) =  CONSTS(2)*STATES(5)
      RATES(6) = ALGBRC(4) -  CONSTS(3)*STATES(6)
      ALGBRC(5) =  CONSTS(4)*STATES(6)
      RATES(4) = ALGBRC(5) -  CONSTS(5)*STATES(4)
      ALGBRC(2) =  CONSTS(17)*STATES(1)
      ALGBRC(7) =  CONSTS(28)*STATES(2)
      RATES(2) =  ALGBRC(2)*(CONSTS(39) - STATES(2)) - ALGBRC(7)
      ALGBRC(3) = ( STATES(2)*CONSTS(29))/(1.00000+STATES(4)/CONSTS(19) ** CONSTS(24))
      ALGBRC(8) =  CONSTS(26)*STATES(3)
      RATES(3) = ALGBRC(3) - ALGBRC(8)
      ALGBRC(1) = TERNRY(VOI.LT.CONSTS(36), 0.00000, 1.00000)
      ALGBRC(6) = TERNRY(VOI.LT.CONSTS(37), 0.00000, 1.00000)
      ALGBRC(10) =  CONSTS(35)*(ALGBRC(1) - ALGBRC(6))
      RATES(1) =  CONSTS(16)*ALGBRC(10)*(CONSTS(38) - STATES(1)) -  CONSTS(27)*STATES(1)
      ALGBRC(9) = 1.00000+( (CONSTS(15) - 1.00000)*STATES(6) ** CONSTS(25))/(STATES(6) ** CONSTS(25)+CONSTS(20) ** CONSTS(25))
      ALGBRC(11) =  (( CONSTS(7)*STATES(3) ** CONSTS(21))/(STATES(3) ** CONSTS(21)+ ALGBRC(9)*CONSTS(12) ** CONSTS(21)))*(1.00000/1000.00)*(CONSTS(31) - STATES(7))
      ALGBRC(13) =  CONSTS(10)*STATES(5)
      RATES(5) = ( (1000.00/1.00000)*CONSTS(14)*ALGBRC(11) - ALGBRC(13)) - (ALGBRC(4) -  CONSTS(3)*STATES(6))
      ALGBRC(12) =  (( CONSTS(6)*STATES(5) ** CONSTS(22))/(STATES(5) ** CONSTS(22)+CONSTS(13) ** CONSTS(22)))*(1.00000/1000.00)*(CONSTS(30) - STATES(7))
      ALGBRC(14) =  (1.00000/1000.00)*CONSTS(40)*ALGBRC(13)
      ALGBRC(15) =  CONSTS(11)*(1.00000/1000.00)*(CONSTS(32) - STATES(7))
      RATES(7) =  (1000.00/1.00000)*(1.00000/CONSTS(1))*(ALGBRC(11)+ALGBRC(12)+ALGBRC(14)+ALGBRC(15))
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(4) =  CONSTS(2)*STATES(5)
      ALGBRC(5) =  CONSTS(4)*STATES(6)
      ALGBRC(2) =  CONSTS(17)*STATES(1)
      ALGBRC(7) =  CONSTS(28)*STATES(2)
      ALGBRC(3) = ( STATES(2)*CONSTS(29))/(1.00000+STATES(4)/CONSTS(19) ** CONSTS(24))
      ALGBRC(8) =  CONSTS(26)*STATES(3)
      ALGBRC(1) = TERNRY(VOI.LT.CONSTS(36), 0.00000, 1.00000)
      ALGBRC(6) = TERNRY(VOI.LT.CONSTS(37), 0.00000, 1.00000)
      ALGBRC(10) =  CONSTS(35)*(ALGBRC(1) - ALGBRC(6))
      ALGBRC(9) = 1.00000+( (CONSTS(15) - 1.00000)*STATES(6) ** CONSTS(25))/(STATES(6) ** CONSTS(25)+CONSTS(20) ** CONSTS(25))
      ALGBRC(11) =  (( CONSTS(7)*STATES(3) ** CONSTS(21))/(STATES(3) ** CONSTS(21)+ ALGBRC(9)*CONSTS(12) ** CONSTS(21)))*(1.00000/1000.00)*(CONSTS(31) - STATES(7))
      ALGBRC(13) =  CONSTS(10)*STATES(5)
      ALGBRC(12) =  (( CONSTS(6)*STATES(5) ** CONSTS(22))/(STATES(5) ** CONSTS(22)+CONSTS(13) ** CONSTS(22)))*(1.00000/1000.00)*(CONSTS(30) - STATES(7))
      ALGBRC(14) =  (1.00000/1000.00)*CONSTS(40)*ALGBRC(13)
      ALGBRC(15) =  CONSTS(11)*(1.00000/1000.00)*(CONSTS(32) - STATES(7))
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END