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 5 entries in the algebraic variable array.
C There are a total of 3 entries in each of the rate and state variable arrays.
C There are a total of 13 entries in the constant variable array.
C
C
C VOI is time in component environment (minute).
C CONSTS(1) is POT in component non_muscle_autoregulatory_local_blood_flow_control (mmHg).
C CONSTS(10) is POD in component NM_autoregulatory_driving_force (mmHg).
C CONSTS(2) is POR in component parameter_values (mmHg).
C CONSTS(11) is POB in component NM_ST_sensitivity_control (mmHg).
C CONSTS(3) is POK in component parameter_values (dimensionless).
C ALGBRC(1) is AR1 in component NM_ST_time_delay_and_damping (dimensionless).
C CONSTS(4) is A1K in component parameter_values (minute).
C STATES(1) is AR1T in component NM_ST_time_delay_and_damping (dimensionless).
C CONSTS(12) is POA in component NM_I_sensitivity_control (mmHg).
C CONSTS(5) is PON in component parameter_values (dimensionless).
C ALGBRC(2) is AR2 in component NM_I_time_delay_and_limit (dimensionless).
C CONSTS(6) is A2K in component parameter_values (minute).
C STATES(2) is AR2T in component NM_I_time_delay_and_limit (dimensionless).
C CONSTS(13) is POC in component NM_LT_sensitivity_control (mmHg).
C CONSTS(7) is POZ in component parameter_values (dimensionless).
C ALGBRC(3) is AR3 in component NM_LT_time_delay_and_limit (dimensionless).
C CONSTS(8) is A3K in component parameter_values (minute).
C STATES(3) is AR3T in component NM_LT_time_delay_and_limit (dimensionless).
C ALGBRC(4) is ARM1 in component total_NM_autoregulation (dimensionless).
C ALGBRC(5) is ARM in component global_NM_blood_flow_autoregulation_output (dimensionless).
C CONSTS(9) is AUTOSN in component parameter_values (dimensionless).
C RATES(1) is d/dt AR1T in component NM_ST_time_delay_and_damping (dimensionless).
C RATES(2) is d/dt AR2T in component NM_I_time_delay_and_limit (dimensionless).
C RATES(3) is d/dt AR3T in component NM_LT_time_delay_and_limit (dimensionless).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 35.1148
      CONSTS(2) = 35
      CONSTS(3) = 0.1
      CONSTS(4) = 0.5
      STATES(1) = 1.02127
      CONSTS(5) = 0.1
      CONSTS(6) = 60
      STATES(2) = 1.01179
      CONSTS(7) = 2
      CONSTS(8) = 40000
      STATES(3) = 1.1448
      CONSTS(9) = 0.9
      CONSTS(10) = CONSTS(1) - CONSTS(2)
      CONSTS(11) =  CONSTS(10)*CONSTS(3)+1.00000
      CONSTS(12) =  CONSTS(5)*CONSTS(10)+1.00000
      CONSTS(13) =  CONSTS(7)*CONSTS(10)+1.00000
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(1) = ( CONSTS(11)*1.00000 - STATES(1))/CONSTS(4)
      RATES(2) = ( CONSTS(12)*1.00000 - STATES(2))/CONSTS(6)
      RATES(3) = ( CONSTS(13)*1.00000 - STATES(3))/CONSTS(8)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = TERNRY(STATES(1).LT.0.500000, 0.500000, STATES(1))
      ALGBRC(2) = TERNRY(STATES(2).LT.0.500000, 0.500000, STATES(2))
      ALGBRC(3) = TERNRY(STATES(3).LT.0.300000, 0.300000, STATES(3))
      ALGBRC(4) =  ALGBRC(1)*ALGBRC(2)*ALGBRC(3)
      ALGBRC(5) =  (ALGBRC(4) - 1.00000)*CONSTS(9)+1.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