C C There are a total of 13 entries in the algebraic variable array. C There are a total of 6 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 (second). C STATES(1) is D in component equations (dimensionless). C STATES(2) is A_1 in component equations (dimensionless). C STATES(3) is A_2 in component equations (dimensionless). C ALGBRC(1) is R_off in component equations (dimensionless). C CONSTS(1) is x_0 in component equations (dimensionless). C STATES(4) is x_1 in component equations (dimensionless). C STATES(5) is x_2 in component equations (dimensionless). C ALGBRC(8) is g in component equations (per_second). C ALGBRC(12) is f in component equations (per_second). C ALGBRC(9) is h in component equations (per_second). C ALGBRC(4) is lambda_A1 in component equations (dimensionless). C ALGBRC(6) is lambda_A2 in component equations (dimensionless). C ALGBRC(5) is F_t in component equations (dimensionless). C ALGBRC(2) is E_1 in component equations (dimensionless). C ALGBRC(3) is E_2 in component equations (dimensionless). C ALGBRC(13) is dSL_dt in component equations (per_second). C STATES(6) is SL in component equations (dimensionless). C CONSTS(2) is k_on in component equations (per_second). C CONSTS(3) is k_off in component equations (per_second). C CONSTS(4) is f_r in component equations (per_second). C ALGBRC(10) is f_prime in component equations (per_second). C CONSTS(5) is f_prime_0 in component equations (per_second). C CONSTS(6) is h_0 in component equations (per_second). C ALGBRC(11) is h_prime in component equations (per_second). C CONSTS(7) is h_prime_0 in component equations (per_second). C CONSTS(8) is g_0 in component equations (per_second). C CONSTS(9) is nu in component equations (dimensionless). C ALGBRC(7) is sigma in component equations (dimensionless). C CONSTS(10) is sigma_minus in component equations (dimensionless). C CONSTS(11) is sigma_plus in component equations (dimensionless). C CONSTS(12) is R_T in component equations (dimensionless). C CONSTS(13) is e_cb in component equations (dimensionless). C RATES(1) is d/dt D in component equations (dimensionless). C RATES(2) is d/dt A_1 in component equations (dimensionless). C RATES(3) is d/dt A_2 in component equations (dimensionless). C RATES(5) is d/dt x_2 in component equations (dimensionless). C RATES(4) is d/dt x_1 in component equations (dimensionless). C RATES(6) is d/dt SL in component equations (dimensionless). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) STATES(1) = 0.005 STATES(2) = 0.005 STATES(3) = 0.005 CONSTS(1) = 1e-16 STATES(4) = 1e-16 STATES(5) = 1e-16 STATES(6) = 2 CONSTS(2) = 120 CONSTS(3) = 50 CONSTS(4) = 50 CONSTS(5) = 400 CONSTS(6) = 8 CONSTS(7) = 6 CONSTS(8) = 4 CONSTS(9) = 3 CONSTS(10) = 1 CONSTS(11) = 8 CONSTS(12) = 1 CONSTS(13) = 1.5 RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(7) = TERNRY(STATES(5).GT.CONSTS(1), CONSTS(11), TERNRY(STATES(5).LT.CONSTS(1), CONSTS(10), 0.00000) ALGBRC(8) = CONSTS(8)*EXP( ALGBRC(7)*STATES(5) - CONSTS(1) ** 2.00000) ALGBRC(9) = CONSTS(6)*EXP( ALGBRC(7)*STATES(4) ** 2.00000) ALGBRC(11) = CONSTS(7)*EXP( ALGBRC(7)*(STATES(5) ** 2.00000 - STATES(4) ** 2.00000)) RATES(3) = ALGBRC(9)*STATES(2) - (ALGBRC(11)+ALGBRC(8))*STATES(3) ALGBRC(1) = ((CONSTS(12) - STATES(1)) - STATES(2)) - STATES(3) ALGBRC(4) = STATES(2)/CONSTS(12) ALGBRC(6) = STATES(3)/CONSTS(12) ALGBRC(12) = CONSTS(4)*1.00000+ ALGBRC(4)*(EXP( (STATES(4)/CONSTS(1))*(CONSTS(9) - 1.00000)) - 1.00000)+ ALGBRC(6)*(EXP( (STATES(5)/CONSTS(1))*(CONSTS(9) - 1.00000)) - 1.00000) ** 2.00000 ALGBRC(10) = CONSTS(5)*EXP( ALGBRC(7)*STATES(4) ** 2.00000) RATES(1) = ( CONSTS(2)*ALGBRC(1)+ ALGBRC(10)*STATES(2)+ ALGBRC(8)*STATES(3)) - (CONSTS(3)+ALGBRC(12))*STATES(1) RATES(2) = ( ALGBRC(12)*STATES(1)+ ALGBRC(11)*STATES(3)) - (ALGBRC(10)+ALGBRC(9))*STATES(2) ALGBRC(13) = TERNRY(VOI.GT.0.00100000.AND.VOI.LT.0.00200000, 21.2000, 0.00000) RATES(5) = TERNRY(STATES(3).EQ.0.00000, ALGBRC(13), (( - ALGBRC(9)*STATES(2))/STATES(3))*(STATES(5) - CONSTS(1))+ALGBRC(13)) RATES(4) = TERNRY(STATES(2).EQ.0.00000, ALGBRC(13), - (( ALGBRC(12)*STATES(1))/STATES(2)+( ALGBRC(11)*STATES(3))/STATES(2))*STATES(4)+ALGBRC(13)) RATES(6) = ALGBRC(13) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(7) = TERNRY(STATES(5).GT.CONSTS(1), CONSTS(11), TERNRY(STATES(5).LT.CONSTS(1), CONSTS(10), 0.00000) ALGBRC(8) = CONSTS(8)*EXP( ALGBRC(7)*STATES(5) - CONSTS(1) ** 2.00000) ALGBRC(9) = CONSTS(6)*EXP( ALGBRC(7)*STATES(4) ** 2.00000) ALGBRC(11) = CONSTS(7)*EXP( ALGBRC(7)*(STATES(5) ** 2.00000 - STATES(4) ** 2.00000)) ALGBRC(1) = ((CONSTS(12) - STATES(1)) - STATES(2)) - STATES(3) ALGBRC(4) = STATES(2)/CONSTS(12) ALGBRC(6) = STATES(3)/CONSTS(12) ALGBRC(12) = CONSTS(4)*1.00000+ ALGBRC(4)*(EXP( (STATES(4)/CONSTS(1))*(CONSTS(9) - 1.00000)) - 1.00000)+ ALGBRC(6)*(EXP( (STATES(5)/CONSTS(1))*(CONSTS(9) - 1.00000)) - 1.00000) ** 2.00000 ALGBRC(10) = CONSTS(5)*EXP( ALGBRC(7)*STATES(4) ** 2.00000) ALGBRC(13) = TERNRY(VOI.GT.0.00100000.AND.VOI.LT.0.00200000, 21.2000, 0.00000) ALGBRC(2) = CONSTS(13)*STATES(2) ALGBRC(3) = CONSTS(13)*STATES(3) ALGBRC(5) = ALGBRC(2)*STATES(4)+ ALGBRC(3)*STATES(5) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END