C C There are a total of 29 entries in the algebraic variable array. C There are a total of 9 entries in each of the rate and state variable arrays. C There are a total of 46 entries in the constant variable array. C C C VOI is t in component main (second). C CONSTS(1) is RT in component main (J_per_mol). C CONSTS(2) is F in component main (C_per_mol). C STATES(1) is q_ac_W in component main (litre). C STATES(2) is q_vc_W in component main (litre). C STATES(3) is q_gi_W in component main (litre). C STATES(4) is q_pt_W in component main (litre). C CONSTS(3) is q_giEpi_W in component main (litre). C CONSTS(4) is q_ptEpi_W in component main (litre). C ALGBRC(1) is q_tot_W in component main (litre). C STATES(5) is q_vc_Na in component main (mole). C STATES(6) is q_gi_Na in component main (mole). C STATES(7) is q_pt_Na in component main (mole). C STATES(8) is q_giEpi_Na in component main (mole). C STATES(9) is q_ptEpi_Na in component main (mole). C CONSTS(5) is q_vc_K in component main (mole). C CONSTS(6) is q_giEpi_K in component main (mole). C CONSTS(7) is q_ptEpi_K in component main (mole). C ALGBRC(2) is q_tot_Na in component main (mole). C ALGBRC(3) is c_vc_Na in component main (mol_per_L). C ALGBRC(14) is c_gi_Na in component main (mol_per_L). C ALGBRC(19) is c_pt_Na in component main (mol_per_L). C ALGBRC(4) is c_giEpi_Na in component main (mol_per_L). C ALGBRC(5) is c_ptEpi_Na in component main (mol_per_L). C ALGBRC(15) is C_vc_Na in component main (mM). C ALGBRC(20) is C_gi_Na in component main (mM). C ALGBRC(23) is C_pt_Na in component main (mM). C ALGBRC(16) is C_giEpi_Na in component main (mM). C ALGBRC(17) is C_ptEpi_Na in component main (mM). C CONSTS(8) is v_lv_W in component main (L_per_s). C CONSTS(9) is v_in_W_base in component main (L_per_s). C ALGBRC(6) is v_in_W in component main (L_per_s). C CONSTS(43) is v_out1_W in component main (L_per_s). C CONSTS(44) is v_out2_W in component main (L_per_s). C ALGBRC(24) is v_gl_W in component main (L_per_s). C ALGBRC(27) is v_gi_W in component main (L_per_s). C ALGBRC(29) is v_pt_W in component main (L_per_s). C ALGBRC(21) is v_cc_W in component main (L_per_s). C CONSTS(10) is v_in_Na_base in component main (mol_per_s). C ALGBRC(7) is v_in_Na in component main (mol_per_s). C CONSTS(45) is v_out1_Na in component main (mol_per_s). C CONSTS(46) is v_out2_Na in component main (mol_per_s). C ALGBRC(8) is v_gl_Na in component main (mol_per_s). C ALGBRC(9) is v_gi_Na in component main (mol_per_s). C ALGBRC(10) is v_pt_Na in component main (mol_per_s). C ALGBRC(11) is v_giEpi_NKE in component main (mol_per_s). C ALGBRC(12) is v_ptEpi_NKE in component main (mol_per_s). C ALGBRC(13) is u_vc_W in component main (kPa). C ALGBRC(18) is u_ac_W in component main (kPa). C ALGBRC(22) is u_pt_W in component main (kPa). C ALGBRC(26) is u_vc_osmotic in component main (kPa). C ALGBRC(25) is u_gi_osmotic in component main (kPa). C ALGBRC(28) is u_pt_osmotic in component main (kPa). C CONSTS(11) is u_giEpi_e in component main (J_per_C). C CONSTS(12) is u_ptEpi_e in component main (J_per_C). C CONSTS(13) is k_gi_W in component main (L_per_s_per_kPa). C CONSTS(14) is k_pt_W in component main (L_per_s_per_kPa). C CONSTS(15) is k_gl_W in component main (L_per_s_per_kPa). C CONSTS(16) is k_cc_W in component main (L_per_s_per_kPa). C CONSTS(17) is kK_gi_Na in component main (per_s). C CONSTS(18) is kK_pt_Na in component main (per_s). C CONSTS(19) is kK_gl_Na in component main (per_s). C CONSTS(20) is k_giEpi_NKE in component main (mol_per_s). C CONSTS(21) is k_ptEpi_NKE in component main (mol_per_s). C CONSTS(22) is K_Na in component main (L_per_mol). C CONSTS(23) is K_K in component main (L_per_mol). C CONSTS(24) is E_vc in component main (joule). C CONSTS(25) is E_ac in component main (joule). C CONSTS(26) is E_pt in component main (joule). C CONSTS(27) is U_ac_W in component main (litre). C CONSTS(28) is U_vc_W in component main (litre). C CONSTS(29) is U_pt_W in component main (litre). C CONSTS(30) is L_ac_W in component main (litre). C CONSTS(31) is L_vc_W in component main (litre). C CONSTS(32) is L_pt_W in component main (litre). C CONSTS(33) is water_intake in component main (L_per_s). C CONSTS(34) is water_intake_start in component main (second). C CONSTS(35) is water_intake_duration in component main (second). C CONSTS(36) is water_kidney_excretion in component main (dimensionless). C CONSTS(37) is water_gi_excretion in component main (dimensionless). C CONSTS(38) is Na_intake in component main (mol_per_s). C CONSTS(39) is Na_intake_start in component main (second). C CONSTS(40) is Na_intake_duration in component main (second). C CONSTS(41) is Na_gi_excretion in component main (dimensionless). C CONSTS(42) is Na_kidney_excretion in component main (dimensionless). C RATES(3) is d/dt q_gi_W in component main (litre). C RATES(4) is d/dt q_pt_W in component main (litre). C RATES(2) is d/dt q_vc_W in component main (litre). C RATES(1) is d/dt q_ac_W in component main (litre). C RATES(6) is d/dt q_gi_Na in component main (mole). C RATES(8) is d/dt q_giEpi_Na in component main (mole). C RATES(7) is d/dt q_pt_Na in component main (mole). C RATES(9) is d/dt q_ptEpi_Na in component main (mole). C RATES(5) is d/dt q_vc_Na in component main (mole). C SUBROUTINE initConsts(CONSTS, RATES, STATES) REAL CONSTS(*), RATES(*), STATES(*) CONSTS(1) = 2.5e3 CONSTS(2) = 0.965e5 STATES(1) = 1 STATES(2) = 2 STATES(3) = 1 STATES(4) = 0.1 CONSTS(3) = 0.5 CONSTS(4) = 0.5 STATES(5) = 0.84 STATES(6) = 0.1 STATES(7) = 0.01 STATES(8) = 0.012 STATES(9) = 0.012 CONSTS(5) = 0.03 CONSTS(6) = 0.012 CONSTS(7) = 0.012 CONSTS(8) = 0.1 CONSTS(9) = 0 CONSTS(10) = 1.16e-06 CONSTS(11) = -0.040 CONSTS(12) = -0.040 CONSTS(13) = 1 CONSTS(14) = 0 CONSTS(15) = 1 CONSTS(16) = 1 CONSTS(17) = 1 CONSTS(18) = 1 CONSTS(19) = 1 CONSTS(20) = 1e4 CONSTS(21) = 1e5 CONSTS(22) = 1 CONSTS(23) = 1 CONSTS(24) = 6e1 CONSTS(25) = 6e1 CONSTS(26) = 1 CONSTS(27) = 0.5 CONSTS(28) = 1.5 CONSTS(29) = 0.1 CONSTS(30) = 1.5 CONSTS(31) = 2.5 CONSTS(32) = 1 CONSTS(33) = 0.01 CONSTS(34) = 10 CONSTS(35) = 5 CONSTS(36) = 0.94 CONSTS(37) = 0.06 CONSTS(38) = 0.001 CONSTS(39) = 10 CONSTS(40) = 10 CONSTS(41) = 0.07 CONSTS(42) = 0.93 CONSTS(43) = CONSTS(37)*CONSTS(9) CONSTS(44) = CONSTS(36)*CONSTS(9) CONSTS(45) = CONSTS(41)*CONSTS(10) CONSTS(46) = CONSTS(42)*CONSTS(10) RETURN END SUBROUTINE computeRates(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) RATES(4) = ( CONSTS(15)*(( CONSTS(25)*(STATES(1) - CONSTS(27)))/CONSTS(30) - STATES(1) ** 2.00000 - ( CONSTS(26)*(STATES(4) - CONSTS(29)))/CONSTS(32) - STATES(4) ** 2.00000) - CONSTS(1)*CONSTS(14)*(STATES(5)/STATES(2) - STATES(7)/STATES(4))) - CONSTS(44) RATES(2) = ( CONSTS(16)*(( CONSTS(25)*(STATES(1) - CONSTS(27)))/CONSTS(30) - STATES(1) ** 2.00000 - ( CONSTS(24)*(STATES(2) - CONSTS(28)))/CONSTS(31) - STATES(2) ** 2.00000)+ CONSTS(1)*CONSTS(13)*(STATES(5)/STATES(2) - STATES(6)/STATES(3))+ CONSTS(1)*CONSTS(14)*(STATES(5)/STATES(2) - STATES(7)/STATES(4))) - CONSTS(8) RATES(1) = ((CONSTS(8)+( CONSTS(16)*CONSTS(24)*(STATES(2) - CONSTS(28)))/CONSTS(31) - STATES(2) ** 2.00000) - ( (CONSTS(15)+CONSTS(16))*CONSTS(25)*(STATES(1) - CONSTS(27)))/CONSTS(30) - STATES(1) ** 2.00000)+( CONSTS(15)*CONSTS(26)*(STATES(4) - CONSTS(29)))/CONSTS(32) - STATES(4) ** 2.00000 RATES(8) = CONSTS(17)*(STATES(6) - STATES(8)) - ( 3.00000*CONSTS(20)*( ( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(11))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000)) RATES(7) = ( CONSTS(19)*(STATES(5) - STATES(7)) - CONSTS(18)*(STATES(7) - STATES(9))) - CONSTS(46) RATES(9) = CONSTS(18)*(STATES(7) - STATES(9)) - ( 3.00000*CONSTS(21)*( ( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(12))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000)) RATES(5) = (( 3.00000*CONSTS(20)*( ( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(11))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000))+( 3.00000*CONSTS(21)*( ( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(12))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000))) - CONSTS(19)*(STATES(5) - STATES(7)) ALGBRC(6) = TERNRY(VOI.GT.CONSTS(34).AND.VOI.LT.CONSTS(34)+CONSTS(35), CONSTS(33), 0.00000) RATES(3) = (ALGBRC(6) - CONSTS(1)*CONSTS(13)*(STATES(5)/STATES(2) - STATES(6)/STATES(3))) - CONSTS(43) ALGBRC(7) = TERNRY(VOI.GT.CONSTS(39).AND.VOI.LT.CONSTS(39)+CONSTS(40), CONSTS(10)+CONSTS(38), CONSTS(10)) RATES(6) = (ALGBRC(7) - CONSTS(17)*(STATES(6) - STATES(8))) - CONSTS(45) RETURN END SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC) REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*) ALGBRC(6) = TERNRY(VOI.GT.CONSTS(34).AND.VOI.LT.CONSTS(34)+CONSTS(35), CONSTS(33), 0.00000) ALGBRC(7) = TERNRY(VOI.GT.CONSTS(39).AND.VOI.LT.CONSTS(39)+CONSTS(40), CONSTS(10)+CONSTS(38), CONSTS(10)) ALGBRC(1) = STATES(1)+STATES(2)+STATES(3)+STATES(4)+CONSTS(3)+CONSTS(4) ALGBRC(2) = STATES(5)+STATES(6)+STATES(7)+STATES(8)+STATES(9) ALGBRC(3) = STATES(5)/STATES(2) ALGBRC(4) = STATES(8)/CONSTS(3) ALGBRC(5) = STATES(9)/CONSTS(4) ALGBRC(8) = CONSTS(19)*(STATES(5) - STATES(7)) ALGBRC(9) = CONSTS(17)*(STATES(6) - STATES(8)) ALGBRC(10) = CONSTS(18)*(STATES(7) - STATES(9)) ALGBRC(11) = ( 3.00000*CONSTS(20)*( ( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(11))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(8))/CONSTS(3) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(6))/CONSTS(3) ** 2.00000)) ALGBRC(12) = ( 3.00000*CONSTS(21)*( ( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000*( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000 - ( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000*( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000*EXP(( 2.00000*CONSTS(2)*CONSTS(12))/CONSTS(1))))/( (1.00000+( CONSTS(22)*STATES(9))/CONSTS(4) ** 3.00000)*(1.00000+( CONSTS(22)*STATES(5))/STATES(2) ** 3.00000)*(1.00000+( CONSTS(23)*CONSTS(5))/STATES(2) ** 2.00000)*(1.00000+( CONSTS(23)*CONSTS(7))/CONSTS(4) ** 2.00000)) ALGBRC(13) = ( CONSTS(24)*(STATES(2) - CONSTS(28)))/CONSTS(31) - STATES(2) ** 2.00000 ALGBRC(14) = STATES(6)/STATES(3) ALGBRC(15) = 1000.00*ALGBRC(3) ALGBRC(16) = 1000.00*ALGBRC(4) ALGBRC(17) = 1000.00*ALGBRC(5) ALGBRC(18) = ( CONSTS(25)*(STATES(1) - CONSTS(27)))/CONSTS(30) - STATES(1) ** 2.00000 ALGBRC(19) = STATES(7)/STATES(4) ALGBRC(20) = 1000.00*ALGBRC(14) ALGBRC(21) = CONSTS(16)*(ALGBRC(18) - ALGBRC(13)) ALGBRC(22) = ( CONSTS(26)*(STATES(4) - CONSTS(29)))/CONSTS(32) - STATES(4) ** 2.00000 ALGBRC(23) = 1000.00*ALGBRC(19) ALGBRC(24) = CONSTS(15)*(ALGBRC(18) - ALGBRC(22)) ALGBRC(25) = CONSTS(1)*ALGBRC(14) ALGBRC(26) = CONSTS(1)*ALGBRC(3) ALGBRC(27) = CONSTS(13)*(ALGBRC(26) - ALGBRC(25)) ALGBRC(28) = CONSTS(1)*ALGBRC(19) ALGBRC(29) = CONSTS(14)*(ALGBRC(26) - ALGBRC(28)) RETURN END REAL FUNCTION TERNRY(TEST, VALA, VALB) LOGICAL TEST REAL VALA, VALB IF (TEST) THEN TERNRY = VALA ELSE TERNRY = VALB ENDIF RETURN END