C C There are a total of 6 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 7 entries in the constant variable array. C C C VOI is t in component main (second). C CONSTS(1) is F in component main (C_per_mol). C CONSTS(2) is RT in component main (J_per_mol). C STATES(1) is q_i_1 in component main (mole). C STATES(2) is q_i_2 in component main (mole). C STATES(3) is q_e_m in component main (coulomb). C ALGBRC(6) is v_i_m in component main (mol_per_s). C ALGBRC(1) is u_i_1 in component main (J_per_mol). C ALGBRC(4) is u_i_2 in component main (J_per_mol). C CONSTS(3) is u_e_m in component main (J_per_C). C ALGBRC(3) is u_f_m in component main (J_per_mol). C ALGBRC(5) is u_r_m in component main (J_per_mol). C ALGBRC(2) is u_nernst in component main (J_per_C). C CONSTS(4) is z_q in component main (dim). C CONSTS(5) is K_q_i_1 in component main (per_mol). C CONSTS(6) is K_q_i_2 in component main (per_mol). C CONSTS(7) is kappa_i_m in component main (mol_per_s). C RATES(1) is d/dt q_i_1 in component main (mole). C RATES(2) is d/dt q_i_2 in component main (mole). C RATES(3) is d/dt q_e_m in component main (coulomb). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) CONSTS(1) = 9.64853321e4 CONSTS(2) = 2578.73058 STATES(1) = 3 STATES(2) = 0 STATES(3) = 0 CONSTS(3) = -0.080 CONSTS(4) = 1 CONSTS(5) = 20 CONSTS(6) = 20 CONSTS(7) = 10 RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(1) = CONSTS(2)*log( CONSTS(5)*STATES(1)) ALGBRC(3) = ALGBRC(1)+ CONSTS(4)*CONSTS(1)*CONSTS(3) ALGBRC(4) = CONSTS(2)*log( CONSTS(6)*STATES(2)) ALGBRC(5) = ALGBRC(4) ALGBRC(6) = CONSTS(7)*(EXP(ALGBRC(3)/CONSTS(2)) - EXP(ALGBRC(5)/CONSTS(2))) RATES(1) = - ALGBRC(6) RATES(2) = ALGBRC(6) RATES(3) = - CONSTS(4)*CONSTS(1)*ALGBRC(6) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(1) = CONSTS(2)*log( CONSTS(5)*STATES(1)) ALGBRC(3) = ALGBRC(1)+ CONSTS(4)*CONSTS(1)*CONSTS(3) ALGBRC(4) = CONSTS(2)*log( CONSTS(6)*STATES(2)) ALGBRC(5) = ALGBRC(4) ALGBRC(6) = CONSTS(7)*(EXP(ALGBRC(3)/CONSTS(2)) - EXP(ALGBRC(5)/CONSTS(2))) ALGBRC(2) = (CONSTS(2)/( CONSTS(4)*CONSTS(1)))*log(( CONSTS(6)*STATES(2))/( CONSTS(5)*STATES(1))) RETURN END