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 28 entries in the algebraic variable array.
C There are a total of 8 entries in each of the rate and state variable arrays.
C There are a total of 31 entries in the constant variable array.
C
C
C VOI is time in component environment (second).
C STATES(1) is wi in component wi (micrometre).
C CONSTS(1) is Lp in component model_parameters (cm_per_millimolar_second).
C CONSTS(2) is Xi in component model_parameters (millimolar_micrometre).
C ALGBRC(11) is Nao in component model_parameters (millimolar).
C ALGBRC(7) is Ko in component model_parameters (millimolar).
C ALGBRC(14) is Clo in component model_parameters (millimolar).
C ALGBRC(19) is HCO3o in component model_parameters (millimolar).
C ALGBRC(9) is Nai in component model_parameters (millimolar).
C ALGBRC(6) is Ki in component model_parameters (millimolar).
C ALGBRC(13) is Cli in component model_parameters (millimolar).
C ALGBRC(18) is HCO3i in component model_parameters (millimolar).
C ALGBRC(1) is wo in component wo (micrometre).
C CONSTS(3) is w_tot in component wo (micrometre).
C STATES(2) is N_Nai in component N_Nai (millimolar_micrometre).
C ALGBRC(26) is dN_Nai_dt in component N_Nai (millimolar_micrometre_per_second).
C CONSTS(4) is gNa in component model_parameters (per_ohm_cm2).
C ALGBRC(12) is ENa in component Nernst_potentials (volt).
C ALGBRC(21) is Vm in component membrane (volt).
C ALGBRC(10) is J_NaKATPase in component J_NaKATPase (mole_per_cm2_second).
C CONSTS(5) is F in component model_parameters (C_per_mol).
C CONSTS(6) is theta_NKCC1 in component model_parameters (dimensionless).
C ALGBRC(17) is J_NKCC1 in component J_NKCC1 (millimolar_micrometre_per_second).
C CONSTS(7) is theta_NBC in component model_parameters (dimensionless).
C ALGBRC(25) is J_NBC in component J_NBC (millimolar_micrometre_per_second).
C STATES(3) is N_Ki in component N_Ki (millimolar_micrometre).
C ALGBRC(22) is dN_Ki_dt in component N_Ki (millimolar_micrometre_per_second).
C CONSTS(8) is gK in component model_parameters (per_ohm_cm2).
C ALGBRC(8) is EK in component Nernst_potentials (volt).
C CONSTS(9) is theta_KCC1 in component model_parameters (dimensionless).
C ALGBRC(16) is J_KCC1 in component J_KCC1 (millimolar_micrometre_per_second).
C STATES(4) is N_HCO3i in component N_HCO3i (millimolar_micrometre).
C ALGBRC(28) is dN_HCO3i_dt in component N_HCO3i (millimolar_micrometre_per_second).
C STATES(5) is N_Cli in component N_Cli (millimolar_micrometre).
C STATES(6) is N_Nao in component N_Nao (millimolar_micrometre).
C ALGBRC(5) is y in component model_parameters (dimensionless).
C CONSTS(10) is kc in component model_parameters (micrometre_millimolar_per_second).
C STATES(7) is N_Ko in component N_Ko (millimolar_micrometre).
C STATES(8) is N_HCO3o in component N_HCO3o (millimolar_micrometre).
C ALGBRC(2) is N_Clo in component N_Clo (millimolar_micrometre).
C ALGBRC(15) is ECl in component Nernst_potentials (volt).
C CONSTS(11) is T in component model_parameters (kelvin).
C CONSTS(12) is R in component model_parameters (J_per_mol_K).
C CONSTS(13) is gKCC1 in component J_KCC1 (per_ohm_cm2).
C ALGBRC(3) is ft in component J_KCC1 (dimensionless).
C CONSTS(14) is gNBC in component J_NBC (per_ohm_cm2).
C ALGBRC(20) is ENBC in component ENBC (volt).
C CONSTS(15) is gNKCC1 in component J_NKCC1 (per_ohm_cm2).
C ALGBRC(4) is ft in component J_NKCC1 (dimensionless).
C CONSTS(16) is zNBC in component ENBC (dimensionless).
C CONSTS(17) is gCl in component model_parameters (per_ohm_cm2).
C CONSTS(18) is Pmax in component J_NaKATPase (mole_per_cm2_second).
C CONSTS(19) is K_Nai in component J_NaKATPase (millimolar).
C CONSTS(20) is K_Ko in component J_NaKATPase (millimolar).
C ALGBRC(23) is I_K in component I_K (millimolar_micrometre_per_second).
C CONSTS(21) is nA in component model_parameters (per_mole).
C CONSTS(22) is elementary_charge in component model_parameters (C).
C ALGBRC(24) is I_Cl in component I_Cl (millimolar_micrometre_per_second).
C ALGBRC(27) is I_Na in component I_Na (millimolar_micrometre_per_second).
C CONSTS(23) is t0 in component model_parameters (second).
C CONSTS(24) is t1 in component model_parameters (second).
C CONSTS(25) is t2 in component model_parameters (second).
C CONSTS(26) is alpha in component model_parameters (dimensionless).
C CONSTS(27) is beta in component model_parameters (dimensionless).
C CONSTS(28) is deltaT in component model_parameters (second).
C CONSTS(29) is gamma_alpha_beta in component model_parameters (dimensionless).
C CONSTS(30) is gamma_alpha in component model_parameters (dimensionless).
C CONSTS(31) is gamma_beta in component model_parameters (dimensionless).
C RATES(1) is d/dt wi in component wi (micrometre).
C RATES(2) is d/dt N_Nai in component N_Nai (millimolar_micrometre).
C RATES(3) is d/dt N_Ki in component N_Ki (millimolar_micrometre).
C RATES(4) is d/dt N_HCO3i in component N_HCO3i (millimolar_micrometre).
C RATES(5) is d/dt N_Cli in component N_Cli (millimolar_micrometre).
C RATES(6) is d/dt N_Nao in component N_Nao (millimolar_micrometre).
C RATES(7) is d/dt N_Ko in component N_Ko (millimolar_micrometre).
C RATES(8) is d/dt N_HCO3o in component N_HCO3o (millimolar_micrometre).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      STATES(1) = 0.061
      CONSTS(1) = 2.1e-4
      CONSTS(2) = 12.41
      CONSTS(3) = 0.0879
      STATES(2) = 0.99796
      CONSTS(4) = 1.314e-4
      CONSTS(5) = 9.649e4
      CONSTS(6) = 1
      CONSTS(7) = 1
      STATES(3) = 5.52782
      CONSTS(8) = 0.004
      CONSTS(9) = 1
      STATES(4) = 0.58804
      STATES(5) = 0.32879
      STATES(6) = 4.301041
      CONSTS(10) = 7.35e-2
      STATES(7) = 0.0807
      STATES(8) = 0.432552
      CONSTS(11) = 300
      CONSTS(12) = 8.315
      CONSTS(13) = 1e-6
      CONSTS(14) = 9.03e-5
      CONSTS(15) = 5.54e-6
      CONSTS(16) = -1
      CONSTS(17) = 8.797e-5
      CONSTS(18) = 1.4207e-10
      CONSTS(19) = 10
      CONSTS(20) = 1.5
      CONSTS(21) = 6.0221415e23
      CONSTS(22) = 1.6e-19
      CONSTS(23) = 10
      CONSTS(24) = 20
      CONSTS(25) = 30
      CONSTS(26) = 2
      CONSTS(27) = 14
      CONSTS(28) = CONSTS(24) - CONSTS(23)
      CONSTS(29) = factorial((CONSTS(26)+CONSTS(27)) - 1.00000)
      CONSTS(30) = factorial(CONSTS(26) - 1.00000)
      CONSTS(31) = factorial(CONSTS(27) - 1.00000)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = CONSTS(3) - STATES(1)
      ALGBRC(11) = TERNRY(STATES(6)/ALGBRC(1).GT.0.00000, STATES(6)/ALGBRC(1), 1.00000e-180)
      ALGBRC(7) = TERNRY(STATES(7)/ALGBRC(1).GT.0.00000, STATES(7)/ALGBRC(1), 1.00000e-180)
      ALGBRC(2) = (STATES(6)+STATES(7)) - STATES(8)
      ALGBRC(14) = TERNRY(ALGBRC(2)/ALGBRC(1).GT.0.00000, ALGBRC(2)/ALGBRC(1), 1.00000e-180)
      ALGBRC(19) = TERNRY(STATES(8)/ALGBRC(1).GT.0.00000, STATES(8)/ALGBRC(1), 1.00000e-180)
      ALGBRC(9) = TERNRY(STATES(2)/STATES(1).GT.0.00000, STATES(2)/STATES(1), 1.00000e-180)
      ALGBRC(6) = TERNRY(STATES(3)/STATES(1).GT.0.00000, STATES(3)/STATES(1), 1.00000e-180)
      ALGBRC(13) = TERNRY(STATES(5)/STATES(1).GT.0.00000, STATES(5)/STATES(1), 1.00000e-180)
      ALGBRC(18) = TERNRY(STATES(4)/STATES(1).GT.0.00000, STATES(4)/STATES(1), 1.00000e-180)
      RATES(1) =  1.00000*CONSTS(1)*((ALGBRC(9)+ALGBRC(6)+ALGBRC(13)+ALGBRC(18)+CONSTS(2)/STATES(1)) - (ALGBRC(11)+ALGBRC(7)+ALGBRC(14)+ALGBRC(19)))
      ALGBRC(12) =  (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(11)/ALGBRC(9))
      ALGBRC(10) = ( (( CONSTS(18)*ALGBRC(9) ** 1.50000)/(ALGBRC(9) ** 1.50000+CONSTS(19) ** 1.50000))*ALGBRC(7))/(ALGBRC(7)+CONSTS(20))
      ALGBRC(8) =  (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(7)/ALGBRC(6))
      ALGBRC(15) =  (( CONSTS(12)*CONSTS(11))/( - 1.00000*CONSTS(5)))*log(ALGBRC(14)/ALGBRC(13))
      ALGBRC(20) =  (( CONSTS(12)*CONSTS(11))/( CONSTS(16)*CONSTS(5)))*log(( (ALGBRC(11)/ALGBRC(9))*ALGBRC(19) ** 2.00000)/ALGBRC(18) ** 2.00000)
      ALGBRC(21) = (( CONSTS(4)*ALGBRC(12)+ CONSTS(8)*ALGBRC(8)+ CONSTS(17)*ALGBRC(15)+ CONSTS(7)*CONSTS(14)*ALGBRC(20)) -  ALGBRC(10)*CONSTS(5))/(CONSTS(4)+CONSTS(8)+CONSTS(17)+ CONSTS(7)*CONSTS(14))
      ALGBRC(4) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000)
      ALGBRC(17) =  (( (( 1.00000e+10*CONSTS(15)*ALGBRC(4))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log( (( (ALGBRC(11)/ALGBRC(9))*ALGBRC(7))/ALGBRC(6))*ALGBRC(14)/ALGBRC(13) ** 2.00000)
      ALGBRC(3) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000)
      ALGBRC(16) =  (( (( 1.00000e+10*CONSTS(13)*ALGBRC(3))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log(( ALGBRC(7)*ALGBRC(14))/( ALGBRC(6)*ALGBRC(13)))
      ALGBRC(5) = TERNRY(VOI.GE.CONSTS(23).AND.VOI.LE.CONSTS(24),  (CONSTS(29)/( CONSTS(30)*CONSTS(31)))*1.00000 - (VOI - CONSTS(23))/CONSTS(28) ** CONSTS(27) - 1.00000*(VOI - CONSTS(23))/CONSTS(28) ** CONSTS(26) - 1.00000, TERNRY(VOI.GT.CONSTS(24).AND.VOI.LT.CONSTS(25), -1.00000, 0.00000)
      RATES(7) = ( (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8))+ CONSTS(10)*ALGBRC(5)) - ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10))
      ALGBRC(22) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10)) -  (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8))
      RATES(3) = ALGBRC(22)
      ALGBRC(25) =  (( 1.00000e+10*CONSTS(14))/CONSTS(5))*(ALGBRC(21) - ALGBRC(20))
      RATES(6) =  1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10)) - ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)+ CONSTS(10)*ALGBRC(5))
      RATES(8) =  - 2.00000*CONSTS(7)*ALGBRC(25)
      ALGBRC(26) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)) -  1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10))
      RATES(2) = ALGBRC(26)
      ALGBRC(28) =  2.00000*CONSTS(7)*ALGBRC(25)
      RATES(4) = ALGBRC(28)
      RATES(5) = ALGBRC(22)+ALGBRC(26)+ALGBRC(28)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = CONSTS(3) - STATES(1)
      ALGBRC(11) = TERNRY(STATES(6)/ALGBRC(1).GT.0.00000, STATES(6)/ALGBRC(1), 1.00000e-180)
      ALGBRC(7) = TERNRY(STATES(7)/ALGBRC(1).GT.0.00000, STATES(7)/ALGBRC(1), 1.00000e-180)
      ALGBRC(2) = (STATES(6)+STATES(7)) - STATES(8)
      ALGBRC(14) = TERNRY(ALGBRC(2)/ALGBRC(1).GT.0.00000, ALGBRC(2)/ALGBRC(1), 1.00000e-180)
      ALGBRC(19) = TERNRY(STATES(8)/ALGBRC(1).GT.0.00000, STATES(8)/ALGBRC(1), 1.00000e-180)
      ALGBRC(9) = TERNRY(STATES(2)/STATES(1).GT.0.00000, STATES(2)/STATES(1), 1.00000e-180)
      ALGBRC(6) = TERNRY(STATES(3)/STATES(1).GT.0.00000, STATES(3)/STATES(1), 1.00000e-180)
      ALGBRC(13) = TERNRY(STATES(5)/STATES(1).GT.0.00000, STATES(5)/STATES(1), 1.00000e-180)
      ALGBRC(18) = TERNRY(STATES(4)/STATES(1).GT.0.00000, STATES(4)/STATES(1), 1.00000e-180)
      ALGBRC(12) =  (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(11)/ALGBRC(9))
      ALGBRC(10) = ( (( CONSTS(18)*ALGBRC(9) ** 1.50000)/(ALGBRC(9) ** 1.50000+CONSTS(19) ** 1.50000))*ALGBRC(7))/(ALGBRC(7)+CONSTS(20))
      ALGBRC(8) =  (( CONSTS(12)*CONSTS(11))/( 1.00000*CONSTS(5)))*log(ALGBRC(7)/ALGBRC(6))
      ALGBRC(15) =  (( CONSTS(12)*CONSTS(11))/( - 1.00000*CONSTS(5)))*log(ALGBRC(14)/ALGBRC(13))
      ALGBRC(20) =  (( CONSTS(12)*CONSTS(11))/( CONSTS(16)*CONSTS(5)))*log(( (ALGBRC(11)/ALGBRC(9))*ALGBRC(19) ** 2.00000)/ALGBRC(18) ** 2.00000)
      ALGBRC(21) = (( CONSTS(4)*ALGBRC(12)+ CONSTS(8)*ALGBRC(8)+ CONSTS(17)*ALGBRC(15)+ CONSTS(7)*CONSTS(14)*ALGBRC(20)) -  ALGBRC(10)*CONSTS(5))/(CONSTS(4)+CONSTS(8)+CONSTS(17)+ CONSTS(7)*CONSTS(14))
      ALGBRC(4) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000)
      ALGBRC(17) =  (( (( 1.00000e+10*CONSTS(15)*ALGBRC(4))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log( (( (ALGBRC(11)/ALGBRC(9))*ALGBRC(7))/ALGBRC(6))*ALGBRC(14)/ALGBRC(13) ** 2.00000)
      ALGBRC(3) = TERNRY(VOI.GE.10.0000.AND.VOI.LT.20.0000, 1.00000, 0.00000)
      ALGBRC(16) =  (( (( 1.00000e+10*CONSTS(13)*ALGBRC(3))/CONSTS(5))*CONSTS(12)*CONSTS(11))/CONSTS(5))*log(( ALGBRC(7)*ALGBRC(14))/( ALGBRC(6)*ALGBRC(13)))
      ALGBRC(5) = TERNRY(VOI.GE.CONSTS(23).AND.VOI.LE.CONSTS(24),  (CONSTS(29)/( CONSTS(30)*CONSTS(31)))*1.00000 - (VOI - CONSTS(23))/CONSTS(28) ** CONSTS(27) - 1.00000*(VOI - CONSTS(23))/CONSTS(28) ** CONSTS(26) - 1.00000, TERNRY(VOI.GT.CONSTS(24).AND.VOI.LT.CONSTS(25), -1.00000, 0.00000)
      ALGBRC(22) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(9)*ALGBRC(16)+ 1.00000e+10*2.00000*ALGBRC(10)) -  (( 1.00000e+10*CONSTS(8))/CONSTS(5))*(ALGBRC(21) - ALGBRC(8))
      ALGBRC(25) =  (( 1.00000e+10*CONSTS(14))/CONSTS(5))*(ALGBRC(21) - ALGBRC(20))
      ALGBRC(26) = ( CONSTS(6)*ALGBRC(17)+ CONSTS(7)*ALGBRC(25)) -  1.00000e+10*( (CONSTS(4)/CONSTS(5))*(ALGBRC(21) - ALGBRC(12))+ 3.00000*ALGBRC(10))
      ALGBRC(28) =  2.00000*CONSTS(7)*ALGBRC(25)
      ALGBRC(23) = ( 1.00000e+10*2.00000*ALGBRC(10)*CONSTS(5))/( CONSTS(22)*CONSTS(21)) -  (( 1.00000e+10*CONSTS(8))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(8))
      ALGBRC(24) =  (( 1.00000e+10*CONSTS(17))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(15))
      ALGBRC(27) = ALGBRC(25) - ( (( 1.00000e+10*CONSTS(4))/( CONSTS(22)*CONSTS(21)))*(ALGBRC(21) - ALGBRC(12))+( 1.00000e+10*3.00000*ALGBRC(10)*CONSTS(5))/( CONSTS(22)*CONSTS(21)))
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END