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 6 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 20 entries in the constant variable array.
C
C
C VOI is time in component environment (ms).
C ALGBRC(4) is Ca_i in component intracellular_ion_concentrations (uM).
C ALGBRC(1) is mtime in component intracellular_ion_concentrations (dimensionless).
C STATES(1) is xb in component crossbridges (dimensionless).
C STATES(2) is TRPN in component troponin (dimensionless).
C CONSTS(1) is k_xb in component crossbridges (per_ms).
C CONSTS(2) is nperm in component crossbridges (dimensionless).
C CONSTS(3) is perm50 in component crossbridges (dimensionless).
C ALGBRC(2) is permtot in component crossbridges (dimensionless).
C CONSTS(4) is Ca_50ref in component troponin (uM).
C CONSTS(5) is beta_1 in component troponin (dimensionless).
C CONSTS(6) is k_off in component troponin (per_ms).
C CONSTS(7) is n_TRPN in component troponin (dimensionless).
C CONSTS(17) is lambda_m in component filament_overlap (dimensionless).
C CONSTS(18) is Ca_50 in component troponin (uM).
C CONSTS(15) is lambda in component Myofilaments (dimensionless).
C CONSTS(16) is dlambdadt in component Myofilaments (per_ms).
C CONSTS(20) is overlap in component filament_overlap (dimensionless).
C CONSTS(8) is beta_0 in component filament_overlap (dimensionless).
C CONSTS(19) is lambda_s in component filament_overlap (dimensionless).
C CONSTS(9) is T_ref in component isometric_tension (kPa).
C ALGBRC(3) is T_0 in component isometric_tension (kPa).
C ALGBRC(5) is Q in component dynamic_stiffness (dimensionless).
C CONSTS(10) is a in component dynamic_stiffness (dimensionless).
C STATES(3) is Q_1 in component dynamic_stiffness (dimensionless).
C STATES(4) is Q_2 in component dynamic_stiffness (dimensionless).
C CONSTS(11) is A_1 in component dynamic_stiffness (dimensionless).
C CONSTS(12) is A_2 in component dynamic_stiffness (dimensionless).
C CONSTS(13) is alpha_1 in component dynamic_stiffness (per_ms).
C CONSTS(14) is alpha_2 in component dynamic_stiffness (per_ms).
C ALGBRC(6) is Tension in component dynamic_stiffness (kPa).
C RATES(1) is d/dt xb in component crossbridges (dimensionless).
C RATES(2) is d/dt TRPN in component troponin (dimensionless).
C RATES(3) is d/dt Q_1 in component dynamic_stiffness (dimensionless).
C RATES(4) is d/dt Q_2 in component dynamic_stiffness (dimensionless).
C
SUBROUTINE initConsts(CONSTS, RATES, STATES)
REAL CONSTS(*), RATES(*), STATES(*)
STATES(1) = 0.00046
STATES(2) = 0.0752
CONSTS(1) = 0.1
CONSTS(2) = 5
CONSTS(3) = 0.35
CONSTS(4) = 0.8
CONSTS(5) = -1.5
CONSTS(6) = 0.1
CONSTS(7) = 2
CONSTS(8) = 1.65
CONSTS(9) = 120
CONSTS(10) = 0.35
STATES(3) = 0
STATES(4) = 0
CONSTS(11) = -29
CONSTS(12) = 116
CONSTS(13) = 0.1
CONSTS(14) = 0.5
CONSTS(15) = 1.00000
CONSTS(16) = 0.00000
CONSTS(17) = TERNRY(CONSTS(15).GT.1.20000, 1.20000, CONSTS(15))
CONSTS(18) = CONSTS(4)*(1.00000+ CONSTS(5)*(CONSTS(17) - 1.00000))
CONSTS(19) = TERNRY(CONSTS(17).GE.0.870000, 0.870000, CONSTS(17))
CONSTS(20) = 1.00000+ CONSTS(8)*((CONSTS(17)+CONSTS(19)) - 1.87000)
RETURN
END
SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC)
REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
RATES(3) = CONSTS(11)*CONSTS(16) - CONSTS(13)*STATES(3)
RATES(4) = CONSTS(12)*CONSTS(16) - CONSTS(14)*STATES(4)
ALGBRC(2) = STATES(2)/CONSTS(3) ** CONSTS(2) ** (1.0 / 2)
RATES(1) = CONSTS(1)*( ALGBRC(2)*(1.00000 - STATES(1)) - (1.00000/ALGBRC(2))*STATES(1))
ALGBRC(1) = (VOI - 167.000*INT(VOI/167.000))/1.00000
ALGBRC(4) = TERNRY(ALGBRC(1).GE.1.17000.AND.ALGBRC(1).LT.30.8400, 1.00000*1.85358e-05*ALGBRC(1) ** 3.00000+ - 0.00159034*ALGBRC(1) ** 2.00000+ 0.0436459*ALGBRC(1) ** 1.00000+0.167079, TERNRY(ALGBRC(1).GE.30.8400, (( 1.00000*- 5.74585e-08*ALGBRC(1) ** 3.00000+ 3.11222e-05*ALGBRC(1) ** 2.00000) - 0.00661849*ALGBRC(1) ** 1.00000)+0.720442, 0.216000)
RATES(2) = CONSTS(6)*( ALGBRC(4)/CONSTS(18) ** CONSTS(7)*(1.00000 - STATES(2)) - STATES(2))
RETURN
END
SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
ALGBRC(2) = STATES(2)/CONSTS(3) ** CONSTS(2) ** (1.0 / 2)
ALGBRC(1) = (VOI - 167.000*INT(VOI/167.000))/1.00000
ALGBRC(4) = TERNRY(ALGBRC(1).GE.1.17000.AND.ALGBRC(1).LT.30.8400, 1.00000*1.85358e-05*ALGBRC(1) ** 3.00000+ - 0.00159034*ALGBRC(1) ** 2.00000+ 0.0436459*ALGBRC(1) ** 1.00000+0.167079, TERNRY(ALGBRC(1).GE.30.8400, (( 1.00000*- 5.74585e-08*ALGBRC(1) ** 3.00000+ 3.11222e-05*ALGBRC(1) ** 2.00000) - 0.00661849*ALGBRC(1) ** 1.00000)+0.720442, 0.216000)
ALGBRC(3) = CONSTS(9)*STATES(1)*CONSTS(20)
ALGBRC(5) = STATES(3)+STATES(4)
ALGBRC(6) = TERNRY(ALGBRC(5).LT.0.00000, ( ALGBRC(3)*( CONSTS(10)*ALGBRC(5)+1.00000))/(1.00000 - ALGBRC(5)), ( ALGBRC(3)*(1.00000+ (CONSTS(10)+2.00000)*ALGBRC(5)))/(1.00000+ALGBRC(5)))
RETURN
END
REAL FUNCTION TERNRY(TEST, VALA, VALB)
LOGICAL TEST
REAL VALA, VALB
IF (TEST) THEN
TERNRY = VALA
ELSE
TERNRY = VALB
ENDIF
RETURN
END
