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 4 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 14 entries in the constant variable array.
C
C
C VOI is time in component environment (minute).
C STATES(1) is r in component r (nanomolar).
C ALGBRC(1) is Ir in component r (flux).
C CONSTS(1) is k6 in component r (first_order_rate_constant).
C STATES(2) is s in component s (nanomolar).
C ALGBRC(2) is Is in component model_parameters (flux).
C CONSTS(2) is k7 in component model_parameters (first_order_rate_constant).
C STATES(3) is f in component f (dimensionless).
C CONSTS(3) is k1 in component f (second_order_rate_constant).
C CONSTS(4) is k2 in component f (first_order_rate_constant).
C CONSTS(5) is k3 in component f (first_order_rate_constant).
C ALGBRC(3) is phi_b_s in component f (dimensionless).
C CONSTS(6) is sb in component f (dimensionless).
C CONSTS(7) is delta_b in component f (dimensionless).
C CONSTS(8) is c in component model_parameters (nanomolar).
C STATES(4) is h in component h (nanomolar).
C CONSTS(9) is k4 in component h (first_order_rate_constant).
C CONSTS(10) is k5 in component h (first_order_rate_constant).
C ALGBRC(4) is phi_r_s in component h (dimensionless).
C CONSTS(11) is sr in component h (dimensionless).
C CONSTS(12) is delta_r in component h (dimensionless).
C CONSTS(13) is k8 in component model_parameters (first_order_rate_constant).
C CONSTS(14) is j1 in component model_parameters (dimensionless).
C RATES(1) is d/dt r in component r (nanomolar).
C RATES(2) is d/dt s in component s (nanomolar).
C RATES(3) is d/dt f in component f (dimensionless).
C RATES(4) is d/dt h in component h (nanomolar).
C
SUBROUTINE initConsts(CONSTS, RATES, STATES)
REAL CONSTS(*), RATES(*), STATES(*)
STATES(1) = 0.0
CONSTS(1) = 5.0
STATES(2) = 0.0
CONSTS(2) = 5.0
STATES(3) = 0.3
CONSTS(3) = 0.1
CONSTS(4) = 0.002
CONSTS(5) = 0.018
CONSTS(6) = 0.029
CONSTS(7) = 0.3
CONSTS(8) = 0.01
STATES(4) = 0.0
CONSTS(9) = 9.0
CONSTS(10) = 71.0
CONSTS(11) = -0.56
CONSTS(12) = 0.3
CONSTS(13) = 0.07
CONSTS(14) = 10
RETURN
END
SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC)
REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
ALGBRC(1) = TERNRY(VOI.GE.0.00000.AND.VOI.LE.90.0000, 0.00000, TERNRY(VOI.GE.91.0000.AND.VOI.LE.92.0000, 10.0000, TERNRY(VOI.GE.93.0000.AND.VOI.LE.113.000, 0.00000, TERNRY(VOI.GE.114.000.AND.VOI.LE.115.000, 10.0000, TERNRY(VOI.GE.116.000.AND.VOI.LE.136.000, 0.00000, TERNRY(VOI.GE.137.000.AND.VOI.LE.138.000, 10.0000, TERNRY(VOI.GE.139.000.AND.VOI.LE.159.000, 0.00000, TERNRY(VOI.GE.160.000.AND.VOI.LE.161.000, 10.0000, TERNRY(VOI.GE.162.000.AND.VOI.LE.252.000, 0.00000, TERNRY(VOI.GE.253.000.AND.VOI.LE.254.000, 10.0000, TERNRY(VOI.GE.255.000.AND.VOI.LE.275.000, 0.00000, TERNRY(VOI.GE.276.000.AND.VOI.LE.277.000, 10.0000, TERNRY(VOI.GE.278.000.AND.VOI.LE.298.000, 0.00000, TERNRY(VOI.GE.299.000.AND.VOI.LE.300.000, 10.0000, TERNRY(VOI.GE.301.000.AND.VOI.LE.321.000, 0.00000, TERNRY(VOI.GE.322.000.AND.VOI.LE.323.000, 10.0000, 0.00000)
RATES(1) = ALGBRC(1) - CONSTS(1)*STATES(1)
ALGBRC(2) = TERNRY(VOI.GT.0.00000.AND.VOI.LE.90.0000, 10.0000, TERNRY(VOI.GT.90.0000.AND.VOI.LE.180.000, 0.00000, TERNRY(VOI.GT.180.000.AND.VOI.LE.270.000, 10.0000, TERNRY(VOI.GT.270.000.AND.VOI.LE.360.000, 0.00000, 0.00000)
RATES(2) = ALGBRC(2) - CONSTS(2)*STATES(2)
ALGBRC(3) = 1.00000/(1.00000+EXP(- (arbitrary_log( 1.00000*STATES(2), 10) - CONSTS(6))/CONSTS(7)))
RATES(3) = - ( CONSTS(3)*(STATES(1)+CONSTS(8))*STATES(3))+ (CONSTS(4)+ CONSTS(5)*ALGBRC(3))*(1.00000 - STATES(3))
ALGBRC(4) = 1.00000/(1.00000+EXP(- (arbitrary_log( 1.00000*STATES(2), 10) - CONSTS(11))/CONSTS(12)))
RATES(4) = CONSTS(14)*( (CONSTS(9)+ CONSTS(10)*(1.00000 - ALGBRC(4)))*( (STATES(1)+CONSTS(8))*STATES(3)) - CONSTS(13)*STATES(4))
RETURN
END
SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
ALGBRC(1) = TERNRY(VOI.GE.0.00000.AND.VOI.LE.90.0000, 0.00000, TERNRY(VOI.GE.91.0000.AND.VOI.LE.92.0000, 10.0000, TERNRY(VOI.GE.93.0000.AND.VOI.LE.113.000, 0.00000, TERNRY(VOI.GE.114.000.AND.VOI.LE.115.000, 10.0000, TERNRY(VOI.GE.116.000.AND.VOI.LE.136.000, 0.00000, TERNRY(VOI.GE.137.000.AND.VOI.LE.138.000, 10.0000, TERNRY(VOI.GE.139.000.AND.VOI.LE.159.000, 0.00000, TERNRY(VOI.GE.160.000.AND.VOI.LE.161.000, 10.0000, TERNRY(VOI.GE.162.000.AND.VOI.LE.252.000, 0.00000, TERNRY(VOI.GE.253.000.AND.VOI.LE.254.000, 10.0000, TERNRY(VOI.GE.255.000.AND.VOI.LE.275.000, 0.00000, TERNRY(VOI.GE.276.000.AND.VOI.LE.277.000, 10.0000, TERNRY(VOI.GE.278.000.AND.VOI.LE.298.000, 0.00000, TERNRY(VOI.GE.299.000.AND.VOI.LE.300.000, 10.0000, TERNRY(VOI.GE.301.000.AND.VOI.LE.321.000, 0.00000, TERNRY(VOI.GE.322.000.AND.VOI.LE.323.000, 10.0000, 0.00000)
ALGBRC(2) = TERNRY(VOI.GT.0.00000.AND.VOI.LE.90.0000, 10.0000, TERNRY(VOI.GT.90.0000.AND.VOI.LE.180.000, 0.00000, TERNRY(VOI.GT.180.000.AND.VOI.LE.270.000, 10.0000, TERNRY(VOI.GT.270.000.AND.VOI.LE.360.000, 0.00000, 0.00000)
ALGBRC(3) = 1.00000/(1.00000+EXP(- (arbitrary_log( 1.00000*STATES(2), 10) - CONSTS(6))/CONSTS(7)))
ALGBRC(4) = 1.00000/(1.00000+EXP(- (arbitrary_log( 1.00000*STATES(2), 10) - CONSTS(11))/CONSTS(12)))
RETURN
END
REAL FUNCTION TERNRY(TEST, VALA, VALB)
LOGICAL TEST
REAL VALA, VALB
IF (TEST) THEN
TERNRY = VALA
ELSE
TERNRY = VALB
ENDIF
RETURN
END
