C C There are a total of 9 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 13 entries in the constant variable array. C C C VOI is time in component environment (hour). C CONSTS(1) is Ado in component Ado (micromolar). C ALGBRC(1) is Met in component Met (micromolar). C ALGBRC(2) is Hcy in component Hcy (micromolar). C STATES(1) is AdoHcy in component AdoHcy (micromolar). C CONSTS(2) is K_AHC in component K_AHC (micromolar). C STATES(2) is AdoMet in component AdoMet (micromolar). C ALGBRC(7) is V_MET in component V_MET (flux). C ALGBRC(8) is V_GNMT in component V_GNMT (flux). C ALGBRC(3) is V_MATI in component V_MATI (flux). C ALGBRC(5) is V_MATIII in component V_MATIII (flux). C ALGBRC(9) is V_D in component V_D (flux). C CONSTS(3) is V_MATImax in component V_MATI (flux). C CONSTS(4) is Km_MATI in component V_MATI (micromolar). C CONSTS(5) is Ki_MATI in component V_MATI (micromolar). C CONSTS(6) is V_MATIIImax in component V_MATIII (flux). C ALGBRC(4) is Km1_MATIII in component V_MATIII (micromolar). C CONSTS(7) is Km2_MATIII in component V_MATIII (micromolar). C CONSTS(8) is V_METmax in component V_MET (flux). C ALGBRC(6) is Km1_MET in component V_MET (micromolar). C CONSTS(9) is Km2_MET_A in component V_MET (dimensionless). C CONSTS(10) is V_GNMTmax in component V_GNMT (flux). C CONSTS(11) is Km_GNMT in component V_GNMT (micromolar). C CONSTS(12) is Ki_GNMT in component V_GNMT (micromolar). C CONSTS(13) is alpha_d in component V_D (first_order_rate_constant). C RATES(2) is d/dt AdoMet in component AdoMet (micromolar). C RATES(1) is d/dt AdoHcy in component AdoHcy (micromolar). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) CONSTS(1) = 1 STATES(1) = 3 CONSTS(2) = 0.1 STATES(2) = 60 CONSTS(3) = 561 CONSTS(4) = 41 CONSTS(5) = 50 CONSTS(6) = 22870 CONSTS(7) = 21.1 CONSTS(8) = 4544 CONSTS(9) = 10 CONSTS(10) = 10600 CONSTS(11) = 4500 CONSTS(12) = 20 CONSTS(13) = 1333 RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(6) = 10.0000*(1.00000+STATES(1)/4.00000) ALGBRC(7) = CONSTS(8)/(1.00000+ALGBRC(6)/STATES(2)+CONSTS(9)+( CONSTS(9)*ALGBRC(6))/STATES(2)) ALGBRC(8) = ( (CONSTS(10)/(1.00000+CONSTS(11)/STATES(2) ** 2.30000))*1.00000)/(1.00000+STATES(1)/CONSTS(12)) ALGBRC(1) = TERNRY(VOI.GE.0.00000.AND.VOI.LT.5.00000, 45.0000, TERNRY(VOI.GE.5.00000.AND.VOI.LT.15.0000, 52.0000, TERNRY(VOI.GE.15.0000.AND.VOI.LT.60.0000, 55.0000, TERNRY(VOI.GE.60.0000.AND.VOI.LT.75.0000, 52.0000, TERNRY(VOI.GE.75.0000, 45.0000, 0.0/0.0) ALGBRC(3) = CONSTS(3)/(1.00000+ (CONSTS(4)/ALGBRC(1))*(1.00000+STATES(2)/CONSTS(5))) ALGBRC(4) = 20000.0/(1.00000+ 5.70000*STATES(2)/(STATES(2)+600.000) ** 2.00000) ALGBRC(5) = CONSTS(6)/(1.00000+( ALGBRC(4)*CONSTS(7))/(ALGBRC(1) ** 2.00000+ ALGBRC(1)*CONSTS(7))) RATES(2) = (ALGBRC(3)+ALGBRC(5)) - (ALGBRC(7)+ALGBRC(8)) ALGBRC(2) = ( STATES(1)*CONSTS(2))/CONSTS(1) ALGBRC(9) = CONSTS(13)*ALGBRC(2) RATES(1) = ((ALGBRC(7)+ALGBRC(8)) - ALGBRC(9))/(1.00000+CONSTS(2)/CONSTS(1)) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(6) = 10.0000*(1.00000+STATES(1)/4.00000) ALGBRC(7) = CONSTS(8)/(1.00000+ALGBRC(6)/STATES(2)+CONSTS(9)+( CONSTS(9)*ALGBRC(6))/STATES(2)) ALGBRC(8) = ( (CONSTS(10)/(1.00000+CONSTS(11)/STATES(2) ** 2.30000))*1.00000)/(1.00000+STATES(1)/CONSTS(12)) ALGBRC(1) = TERNRY(VOI.GE.0.00000.AND.VOI.LT.5.00000, 45.0000, TERNRY(VOI.GE.5.00000.AND.VOI.LT.15.0000, 52.0000, TERNRY(VOI.GE.15.0000.AND.VOI.LT.60.0000, 55.0000, TERNRY(VOI.GE.60.0000.AND.VOI.LT.75.0000, 52.0000, TERNRY(VOI.GE.75.0000, 45.0000, 0.0/0.0) ALGBRC(3) = CONSTS(3)/(1.00000+ (CONSTS(4)/ALGBRC(1))*(1.00000+STATES(2)/CONSTS(5))) ALGBRC(4) = 20000.0/(1.00000+ 5.70000*STATES(2)/(STATES(2)+600.000) ** 2.00000) ALGBRC(5) = CONSTS(6)/(1.00000+( ALGBRC(4)*CONSTS(7))/(ALGBRC(1) ** 2.00000+ ALGBRC(1)*CONSTS(7))) ALGBRC(2) = ( STATES(1)*CONSTS(2))/CONSTS(1) ALGBRC(9) = CONSTS(13)*ALGBRC(2) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END