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 9 entries in the algebraic variable array.
C There are a total of 1 entries in each of the rate and state variable arrays.
C There are a total of 6 entries in the constant variable array.
C
C
C VOI is time in component environment (minute).
C CONSTS(1) is BFN in component non_muscle_O2_delivery (L_per_minute).
C CONSTS(2) is OVA in component non_muscle_O2_delivery (mL_per_L).
C CONSTS(3) is HM in component non_muscle_O2_delivery (dimensionless).
C CONSTS(4) is AOM in component non_muscle_O2_delivery (dimensionless).
C CONSTS(6) is O2ARTN in component NM_O2_blood_supply (mL_per_minute).
C ALGBRC(5) is DOB in component delivery_of_O2_to_NM_tissues (mL_per_minute).
C ALGBRC(6) is POV in component NM_venous_O2_content (mmHg).
C ALGBRC(7) is OSV in component NM_venous_O2_content (dimensionless).
C ALGBRC(2) is POT in component pressure_of_O2_in_NM_tissue_cells (mmHg).
C ALGBRC(4) is MO2 in component O2_consumption_by_NM_tissue (mL_per_minute).
C CONSTS(5) is O2M in component parameter_values (mL_per_minute).
C ALGBRC(3) is P1O in component O2_consumption_by_NM_tissue (mmHg).
C ALGBRC(1) is QO2 in component volume_of_O2_in_NM_tissue (mL).
C ALGBRC(9) is DO2N in component volume_of_O2_in_NM_tissue (mL_per_minute).
C ALGBRC(8) is DO2N1 in component volume_of_O2_in_NM_tissue (mL_per_minute).
C STATES(1) is QO2T in component volume_of_O2_in_NM_tissue (mL).
C RATES(1) is d/dt QO2T in component volume_of_O2_in_NM_tissue (mL).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 2.79521
      CONSTS(2) = 204.497
      CONSTS(3) = 40.0381
      CONSTS(4) = 1.00002
      CONSTS(5) = 164
      STATES(1) = 72.2362
      CONSTS(6) =  CONSTS(2)*CONSTS(1)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = TERNRY(STATES(1).LT.0.00000, 0.00000, STATES(1))
      ALGBRC(2) =  ALGBRC(1)*0.486110
CALL minimize(minfunc_0, CONSTS, VARIABLES, <VAR>)
      ALGBRC(3) = TERNRY(ALGBRC(2).GT.35.0000, 35.0000, ALGBRC(2))
      ALGBRC(4) =  CONSTS(4)*CONSTS(5)*(1.00000 - 35.0001 - ALGBRC(3) ** 3.00000/42875.0)
      ALGBRC(8) = ALGBRC(5) - ALGBRC(4)
      ALGBRC(9) = TERNRY(ALGBRC(1).LT.6.00000.AND.ALGBRC(8).LT.0.00000,  ALGBRC(8)*0.100000, ALGBRC(8))
      RATES(1) = ALGBRC(9)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = TERNRY(STATES(1).LT.0.00000, 0.00000, STATES(1))
      ALGBRC(2) =  ALGBRC(1)*0.486110
      ALGBRC(3) = TERNRY(ALGBRC(2).GT.35.0000, 35.0000, ALGBRC(2))
      ALGBRC(4) =  CONSTS(4)*CONSTS(5)*(1.00000 - 35.0001 - ALGBRC(3) ** 3.00000/42875.0)
      ALGBRC(8) = ALGBRC(5) - ALGBRC(4)
      ALGBRC(9) = TERNRY(ALGBRC(1).LT.6.00000.AND.ALGBRC(8).LT.0.00000,  ALGBRC(8)*0.100000, ALGBRC(8))
      RETURN
      END
REAL FUNCTION minfunc_0(CONSTS, VARIABLES)
            REAL CONSTS(*), VARIABLES(*) 
      minfunc_0[1] = abs(ALGBRC(7) - (CONSTS(6) - ALGBRC(5))/( CONSTS(3)*5.25000*CONSTS(1)))
      minfunc_0[2] = abs(ALGBRC(6) -  ALGBRC(7)*57.1400)
      minfunc_0[3] = abs(ALGBRC(5) -  (ALGBRC(6) - ALGBRC(2))*12.8570*CONSTS(1))
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END