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 1 entries in the algebraic variable array.
C There are a total of 2 entries in each of the rate and state variable arrays.
C There are a total of 34 entries in the constant variable array.
C
C
C VOI is t in component environment (second).
C CONSTS(1) is x in component environment (nanometer).
C STATES(1) is n in component Crossbridges_attached (dimensionless).
C STATES(2) is A_c in component Actin_free (dimensionless).
C CONSTS(24) is f in component f (per_second).
C CONSTS(25) is g in component g (per_second).
C CONSTS(2) is h in component Crossbridges_attached (nanometer).
C CONSTS(3) is f_1 in component f (per_second).
C CONSTS(4) is g_1 in component g (per_second).
C CONSTS(5) is g_2 in component g (per_second).
C ALGBRC(1) is Ca_f in component Ca_sarcoplasm (molar).
C CONSTS(6) is t_d in component Ca_sarcoplasm (second).
C CONSTS(7) is a_1 in component Ca_sarcoplasm (per_second_squared).
C CONSTS(8) is b_1 in component Ca_sarcoplasm (per_second_squared).
C CONSTS(9) is Ca_0 in component Ca_sarcoplasm (molar).
C CONSTS(10) is c_1 in component Actin_free (per_second).
C CONSTS(27) is c_2 in component Actin_free (per_second).
C CONSTS(11) is c_2_0 in component Actin_free (per_second).
C CONSTS(12) is k_i in component Actin_free (dimensionless).
C CONSTS(26) is s_h in component s_h (muscle_length).
C CONSTS(13) is q in component Actin_free (dimensionless).
C CONSTS(14) is AT_0 in component Actin_free (dimensionless).
C CONSTS(33) is F_SE in component Series_Elastic_Element (force).
C CONSTS(15) is alpha_s in component Series_Elastic_Element (force).
C CONSTS(16) is beta_s in component Series_Elastic_Element (muscle_length).
C CONSTS(32) is x_s in component SE_constants (muscle_length).
C CONSTS(17) is x_so in component Series_Elastic_Element (muscle_length).
C CONSTS(31) is X_M_0 in component X_0 (muscle_length).
C CONSTS(18) is L_max in component Series_Elastic_Element (muscle_length).
C CONSTS(29) is F_PE in component Parallel_Elastic_Element (force).
C CONSTS(19) is alpha_p in component Parallel_Elastic_Element (force).
C CONSTS(20) is beta_p in component Parallel_Elastic_Element (muscle_length).
C CONSTS(28) is x_p in component PE_constants (muscle_length).
C CONSTS(21) is x_po in component Parallel_Elastic_Element (muscle_length).
C CONSTS(34) is F_CE in component Contractile_Element (force).
C CONSTS(22) is F_PL in component s_h (force).
C CONSTS(30) is X_S_0 in component X_0 (muscle_length).
C CONSTS(23) is F_PL in component X_0 (force).
C RATES(1) is d/dt n in component Crossbridges_attached (dimensionless).
C RATES(2) is d/dt A_c in component Actin_free (dimensionless).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 10
      STATES(1) = 0
      STATES(2) = 1
      CONSTS(2) = 12
      CONSTS(3) = 70
      CONSTS(4) = 40
      CONSTS(5) = 240
      CONSTS(6) = 0.3
      CONSTS(7) = 200
      CONSTS(8) = 5
      CONSTS(9) = 0.45e-6
      CONSTS(10) = 200e12
      CONSTS(11) = 20
      CONSTS(12) = 30.9
      CONSTS(13) = 1.45
      CONSTS(14) = 2
      CONSTS(15) = 0.1027
      CONSTS(16) = 20
      CONSTS(17) = 0.0387
      CONSTS(18) = 1
      CONSTS(19) = 0.00224
      CONSTS(20) = 20
      CONSTS(21) = 0.221
      CONSTS(22) = 3
      CONSTS(23) = 3
      CONSTS(24) = TERNRY(CONSTS(1).LT.0.00000, 0.00000, TERNRY(CONSTS(1).GE.0.00000.AND.CONSTS(1).LT.CONSTS(2), ( CONSTS(3)*CONSTS(1))/CONSTS(2), 0.00000)
      CONSTS(25) = TERNRY(CONSTS(1).LT.0.00000, CONSTS(5), TERNRY(CONSTS(1).GE.0.00000.AND.CONSTS(1).LT.CONSTS(2), ( CONSTS(4)*CONSTS(1))/CONSTS(2), ( CONSTS(4)*CONSTS(1))/CONSTS(2))
      CONSTS(26) = CONSTS(21) - ( 1.00000*1.00000*arbitrary_log(1.00000+CONSTS(22)/CONSTS(19), 10))/CONSTS(20)
      CONSTS(27) =  CONSTS(11)*EXP( CONSTS(12)*CONSTS(26)/1.00000 ** CONSTS(13))
      CONSTS(28) = CONSTS(21) - CONSTS(26)
      CONSTS(29) =  CONSTS(19)*(EXP(( CONSTS(20)*CONSTS(28))/( 1.00000*1.00000)) - 1.00000)
      CONSTS(30) = ( 1.00000*1.00000*arbitrary_log(1.00000+CONSTS(23)/CONSTS(15), 10))/CONSTS(16)
      CONSTS(31) = ((CONSTS(30)+CONSTS(18)) - CONSTS(26)) - CONSTS(17)
      CONSTS(32) = (CONSTS(17)+CONSTS(26)+CONSTS(31)) - CONSTS(18)
      CONSTS(33) =  CONSTS(15)*(EXP(( CONSTS(16)*CONSTS(32))/( 1.00000*1.00000)) - 1.00000)
      CONSTS(34) = CONSTS(33) - CONSTS(29)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(1) =  CONSTS(24)*(STATES(2) - STATES(1)) -  CONSTS(25)*STATES(1)
      ALGBRC(1) =  CONSTS(9)*ABS(1.00000 - EXP( - CONSTS(7)*VOI ** 2.00000))*EXP( - CONSTS(8)*VOI - CONSTS(6) ** 2.00000)
      RATES(2) =  CONSTS(10)*ALGBRC(1)/1.00000 ** 2.00000*(CONSTS(14) - STATES(2)) -  CONSTS(27)*STATES(2)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) =  CONSTS(9)*ABS(1.00000 - EXP( - CONSTS(7)*VOI ** 2.00000))*EXP( - CONSTS(8)*VOI - CONSTS(6) ** 2.00000)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END