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
