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 34 entries in the algebraic variable array.
C There are a total of 14 entries in each of the rate and state variable arrays.
C There are a total of 88 entries in the constant variable array.
C
C
C VOI is t in component environment (second).
C ALGBRC(19) is Pi in component TempCDa (UnitP).
C STATES(1) is Pi in component TempRLC (UnitP).
C ALGBRC(31) is Qo in component TempRC (UnitQ).
C ALGBRC(11) is Qo in component TempCDv (UnitQ).
C ALGBRC(20) is Pi in component TempCDa (UnitP).
C STATES(2) is Pi in component TempRLC (UnitP).
C ALGBRC(32) is Qo in component TempRC (UnitQ).
C ALGBRC(12) is Qo in component TempCDv (UnitQ).
C ALGBRC(7) is Pi in component TempCDv (UnitP).
C ALGBRC(23) is Qo in component TempCDa (UnitQ).
C CONSTS(1) is CVao in component ParaHeart (UnitCV).
C ALGBRC(5) is E in component EVentricle (UnitE).
C STATES(3) is V in component TempCDv (UnitV).
C CONSTS(2) is PlvIni in component ParaHeart (UnitP).
C CONSTS(3) is VlvIni in component ParaHeart (UnitV).
C ALGBRC(9) is Tao in component TempCDv (dimensionless).
C CONSTS(4) is Vlv0 in component ParaHeart (UnitV).
C CONSTS(5) is CVmi in component ParaHeart (UnitCV).
C ALGBRC(17) is E in component EAtrium (UnitE).
C STATES(4) is V in component TempCDa (UnitV).
C CONSTS(6) is PlaIni in component ParaHeart (UnitP).
C CONSTS(7) is VlaIni in component ParaHeart (UnitV).
C ALGBRC(21) is Tao in component TempCDa (dimensionless).
C CONSTS(8) is Vla0 in component ParaHeart (UnitV).
C CONSTS(9) is ElvMax in component ParaHeart (UnitE).
C CONSTS(10) is ElvMin in component ParaHeart (UnitE).
C CONSTS(11) is T in component ParaHeart (second).
C CONSTS(12) is Ts1 in component ParaHeart (dimensionless).
C CONSTS(13) is Ts2 in component ParaHeart (dimensionless).
C ALGBRC(1) is mt in component EVentricle (second).
C ALGBRC(3) is et in component EVentricle (dimensionless).
C CONSTS(14) is ElaMax in component ParaHeart (UnitE).
C CONSTS(15) is ElaMin in component ParaHeart (UnitE).
C CONSTS(16) is Tpwb in component ParaHeart (dimensionless).
C CONSTS(17) is Tpww in component ParaHeart (dimensionless).
C ALGBRC(13) is mt in component EAtrium (second).
C ALGBRC(15) is et in component EAtrium (dimensionless).
C CONSTS(18) is EraMax in component ParaHeart (UnitE).
C CONSTS(19) is EraMin in component ParaHeart (UnitE).
C CONSTS(20) is PraIni in component ParaHeart (UnitP).
C CONSTS(21) is VraIni in component ParaHeart (UnitV).
C CONSTS(22) is ErvMax in component ParaHeart (UnitE).
C CONSTS(23) is ErvMin in component ParaHeart (UnitE).
C CONSTS(24) is PrvIni in component ParaHeart (UnitP).
C CONSTS(25) is VrvIni in component ParaHeart (UnitV).
C CONSTS(26) is CVpa in component ParaHeart (UnitCV).
C CONSTS(27) is CVti in component ParaHeart (UnitCV).
C CONSTS(28) is Vra0 in component ParaHeart (UnitV).
C CONSTS(29) is Vrv0 in component ParaHeart (UnitV).
C ALGBRC(8) is Pi in component TempCDv (UnitP).
C ALGBRC(24) is Qo in component TempCDa (UnitQ).
C CONSTS(30) is CVpa in component ParaHeart (UnitCV).
C ALGBRC(6) is E in component EVentricle (UnitE).
C STATES(5) is V in component TempCDv (UnitV).
C CONSTS(31) is PrvIni in component ParaHeart (UnitP).
C CONSTS(32) is VrvIni in component ParaHeart (UnitV).
C ALGBRC(10) is Tao in component TempCDv (dimensionless).
C CONSTS(33) is Vrv0 in component ParaHeart (UnitV).
C CONSTS(34) is CVti in component ParaHeart (UnitCV).
C ALGBRC(18) is E in component EAtrium (UnitE).
C STATES(6) is V in component TempCDa (UnitV).
C CONSTS(35) is PraIni in component ParaHeart (UnitP).
C CONSTS(36) is VraIni in component ParaHeart (UnitV).
C ALGBRC(22) is Tao in component TempCDa (dimensionless).
C CONSTS(37) is Vra0 in component ParaHeart (UnitV).
C CONSTS(38) is ErvMax in component ParaHeart (UnitE).
C CONSTS(39) is ErvMin in component ParaHeart (UnitE).
C CONSTS(40) is T in component ParaHeart (second).
C CONSTS(41) is Ts1 in component ParaHeart (dimensionless).
C CONSTS(42) is Ts2 in component ParaHeart (dimensionless).
C ALGBRC(2) is mt in component EVentricle (second).
C ALGBRC(4) is et in component EVentricle (dimensionless).
C CONSTS(43) is EraMax in component ParaHeart (UnitE).
C CONSTS(44) is EraMin in component ParaHeart (UnitE).
C CONSTS(45) is Tpwb in component ParaHeart (dimensionless).
C CONSTS(46) is Tpww in component ParaHeart (dimensionless).
C ALGBRC(14) is mt in component EAtrium (second).
C ALGBRC(16) is et in component EAtrium (dimensionless).
C CONSTS(47) is ElaMax in component ParaHeart (UnitE).
C CONSTS(48) is ElaMin in component ParaHeart (UnitE).
C CONSTS(49) is PlaIni in component ParaHeart (UnitP).
C CONSTS(50) is VlaIni in component ParaHeart (UnitV).
C CONSTS(51) is ElvMax in component ParaHeart (UnitE).
C CONSTS(52) is ElvMin in component ParaHeart (UnitE).
C CONSTS(53) is PlvIni in component ParaHeart (UnitP).
C CONSTS(54) is VlvIni in component ParaHeart (UnitV).
C CONSTS(55) is CVao in component ParaHeart (UnitCV).
C CONSTS(56) is CVmi in component ParaHeart (UnitCV).
C CONSTS(57) is Vlv0 in component ParaHeart (UnitV).
C CONSTS(58) is Vla0 in component ParaHeart (UnitV).
C STATES(7) is Pi in component TempRLC (UnitP).
C STATES(8) is Qo in component TempRLC (UnitQ).
C CONSTS(59) is Rsas in component ParaSys (UnitR).
C CONSTS(60) is Csas in component ParaSys (UnitC).
C CONSTS(61) is Lsas in component ParaSys (UnitL).
C CONSTS(62) is P0sas in component ParaSys (UnitP).
C CONSTS(63) is Q0sas in component ParaSys (UnitQ).
C ALGBRC(33) is Pi in component TempR (UnitP).
C STATES(9) is Qo in component TempRLC (UnitQ).
C CONSTS(64) is Rsat in component ParaSys (UnitR).
C CONSTS(65) is Csat in component ParaSys (UnitC).
C CONSTS(66) is Lsat in component ParaSys (UnitL).
C CONSTS(67) is P0sat in component ParaSys (UnitP).
C CONSTS(68) is Q0sat in component ParaSys (UnitQ).
C ALGBRC(29) is Pi in component TempR (UnitP).
C ALGBRC(26) is Qo in component TempR (UnitQ).
C CONSTS(69) is Rsar in component ParaSys (UnitR).
C STATES(10) is Pi in component TempRC (UnitP).
C ALGBRC(28) is Qo in component TempR (UnitQ).
C CONSTS(70) is Rscp in component ParaSys (UnitR).
C CONSTS(71) is Rsvn in component ParaSys (UnitR).
C CONSTS(72) is Csvn in component ParaSys (UnitC).
C CONSTS(73) is P0svn in component ParaSys (UnitP).
C STATES(11) is Pi in component TempRLC (UnitP).
C STATES(12) is Qo in component TempRLC (UnitQ).
C CONSTS(74) is Rpas in component ParaPul (UnitR).
C CONSTS(75) is Cpas in component ParaPul (UnitC).
C CONSTS(76) is Lpas in component ParaPul (UnitL).
C CONSTS(77) is P0pas in component ParaPul (UnitP).
C CONSTS(78) is Q0pas in component ParaPul (UnitQ).
C ALGBRC(34) is Pi in component TempR (UnitP).
C STATES(13) is Qo in component TempRLC (UnitQ).
C CONSTS(79) is Rpat in component ParaPul (UnitR).
C CONSTS(80) is Cpat in component ParaPul (UnitC).
C CONSTS(81) is Lpat in component ParaPul (UnitL).
C CONSTS(82) is P0pat in component ParaPul (UnitP).
C CONSTS(83) is Q0pat in component ParaPul (UnitQ).
C ALGBRC(30) is Pi in component TempR (UnitP).
C ALGBRC(25) is Qo in component TempR (UnitQ).
C CONSTS(84) is Rpar in component ParaPul (UnitR).
C STATES(14) is Pi in component TempRC (UnitP).
C ALGBRC(27) is Qo in component TempR (UnitQ).
C CONSTS(85) is Rpcp in component ParaPul (UnitR).
C CONSTS(86) is Rpvn in component ParaPul (UnitR).
C CONSTS(87) is Cpvn in component ParaPul (UnitC).
C CONSTS(88) is P0pvn in component ParaPul (UnitP).
C RATES(3) is d/dt V in component TempCDv (UnitV).
C RATES(4) is d/dt V in component TempCDa (UnitV).
C RATES(5) is d/dt V in component TempCDv (UnitV).
C RATES(6) is d/dt V in component TempCDa (UnitV).
C RATES(1) is d/dt Pi in component TempRLC (UnitP).
C RATES(8) is d/dt Qo in component TempRLC (UnitQ).
C RATES(7) is d/dt Pi in component TempRLC (UnitP).
C RATES(9) is d/dt Qo in component TempRLC (UnitQ).
C RATES(10) is d/dt Pi in component TempRC (UnitP).
C RATES(2) is d/dt Pi in component TempRLC (UnitP).
C RATES(12) is d/dt Qo in component TempRLC (UnitQ).
C RATES(11) is d/dt Pi in component TempRLC (UnitP).
C RATES(13) is d/dt Qo in component TempRLC (UnitQ).
C RATES(14) is d/dt Pi in component TempRC (UnitP).
C
      SUBROUTINE initConsts(CONSTS, RATES, STATES)
      REAL CONSTS(*), RATES(*), STATES(*)
      CONSTS(1) = 350.
      CONSTS(2) = 1.0
      CONSTS(3) = 5.0
      CONSTS(4) = 500
      CONSTS(5) = 400.
      CONSTS(6) = 1.0
      CONSTS(7) = 4.0
      CONSTS(8) = 20
      CONSTS(9) = 2.5
      CONSTS(10) = 0.1
      CONSTS(11) = 1.0
      CONSTS(12) = 0.3
      CONSTS(13) = 0.45
      CONSTS(14) = 0.25
      CONSTS(15) = 0.15
      CONSTS(16) = 0.92
      CONSTS(17) = 0.09
      CONSTS(18) = 0.25
      CONSTS(19) = 0.15
      CONSTS(20) = 1.0
      CONSTS(21) = 4.0
      CONSTS(22) = 1.15
      CONSTS(23) = 0.1
      CONSTS(24) = 1.0
      CONSTS(25) = 10.0
      CONSTS(26) = 350.
      CONSTS(27) = 400.
      CONSTS(28) = 20
      CONSTS(29) = 500
      CONSTS(30) = 350.
      CONSTS(31) = 1.0
      CONSTS(32) = 10.0
      CONSTS(33) = 500
      CONSTS(34) = 400.
      CONSTS(35) = 1.0
      CONSTS(36) = 4.0
      CONSTS(37) = 20
      CONSTS(38) = 1.15
      CONSTS(39) = 0.1
      CONSTS(40) = 1.0
      CONSTS(41) = 0.3
      CONSTS(42) = 0.45
      CONSTS(43) = 0.25
      CONSTS(44) = 0.15
      CONSTS(45) = 0.92
      CONSTS(46) = 0.09
      CONSTS(47) = 0.25
      CONSTS(48) = 0.15
      CONSTS(49) = 1.0
      CONSTS(50) = 4.0
      CONSTS(51) = 2.5
      CONSTS(52) = 0.1
      CONSTS(53) = 1.0
      CONSTS(54) = 5.0
      CONSTS(55) = 350.
      CONSTS(56) = 400.
      CONSTS(57) = 500
      CONSTS(58) = 20
      CONSTS(59) = 0.003
      CONSTS(60) = 0.08
      CONSTS(61) = 0.000062
      CONSTS(62) = 100.
      CONSTS(63) = 0.
      CONSTS(64) = 0.05
      CONSTS(65) = 1.6
      CONSTS(66) = 0.0017
      CONSTS(67) = 100.
      CONSTS(68) = 0.
      CONSTS(69) = 0.5
      CONSTS(70) = 0.52
      CONSTS(71) = 0.075
      CONSTS(72) = 20.5
      CONSTS(73) = 0.
      CONSTS(74) = 0.002
      CONSTS(75) = 0.18
      CONSTS(76) = 0.000052
      CONSTS(77) = 30.
      CONSTS(78) = 0.
      CONSTS(79) = 0.01
      CONSTS(80) = 3.8
      CONSTS(81) = 0.0017
      CONSTS(82) = 30.
      CONSTS(83) = 0.
      CONSTS(84) = 0.05
      CONSTS(85) = 0.25
      CONSTS(86) = 0.0006
      CONSTS(87) = 20.5
      CONSTS(88) = 0.
      STATES(1) = CONSTS(62)
      STATES(2) = CONSTS(77)
      STATES(3) = CONSTS(4)
      STATES(4) = CONSTS(8)
      STATES(5) = CONSTS(33)
      STATES(6) = CONSTS(37)
      STATES(7) = CONSTS(67)
      STATES(8) = CONSTS(63)
      STATES(9) = CONSTS(68)
      STATES(10) = CONSTS(73)
      STATES(11) = CONSTS(82)
      STATES(12) = CONSTS(78)
      STATES(13) = CONSTS(83)
      STATES(14) = CONSTS(88)
      RETURN
      END
      SUBROUTINE computeRates(VOI, CONSTS,  RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      RATES(8) = ((STATES(1) - STATES(7)) -  CONSTS(59)*STATES(8))/CONSTS(61)
      RATES(7) = (STATES(8) - STATES(9))/CONSTS(65)
      RATES(12) = ((STATES(2) - STATES(11)) -  CONSTS(74)*STATES(12))/CONSTS(76)
      RATES(11) = (STATES(12) - STATES(13))/CONSTS(80)
      ALGBRC(1) = VOI -  CONSTS(11)*INT(VOI/CONSTS(11))
      ALGBRC(3) = TERNRY(ALGBRC(1).GE.0.00000.AND.ALGBRC(1).LE. CONSTS(12)*CONSTS(11), 1.00000 - cos(( 3.14159*ALGBRC(1))/( CONSTS(12)*CONSTS(11))), TERNRY(ALGBRC(1).GT. CONSTS(12)*CONSTS(11).AND.ALGBRC(1).LE. CONSTS(13)*CONSTS(11), 1.00000+cos(( 3.14159*(ALGBRC(1) -  CONSTS(12)*CONSTS(11)))/( (CONSTS(13) - CONSTS(12))*CONSTS(11))), TERNRY(ALGBRC(1).GT. CONSTS(13)*CONSTS(11).AND.ALGBRC(1).LT.CONSTS(11), 0.00000, 0.0/0.0)
      ALGBRC(5) = CONSTS(10)+( ALGBRC(3)*(CONSTS(9) - CONSTS(10)))/2.00000
      ALGBRC(7) = CONSTS(2)+ ALGBRC(5)*(STATES(3) - CONSTS(3))
      ALGBRC(9) = TERNRY(ALGBRC(7).GE.STATES(1), 1.00000, TERNRY(ALGBRC(7).LT.STATES(1), 0.00000, 0.0/0.0)
      ALGBRC(11) = TERNRY(ALGBRC(7).GE.STATES(1),  CONSTS(1)*ALGBRC(9)*ABS(ALGBRC(7) - STATES(1)) ** 0.500000, TERNRY(ALGBRC(7).LT.STATES(1),  -1.00000*CONSTS(1)*ALGBRC(9)*ABS(STATES(1) - ALGBRC(7)) ** 0.500000, 0.0/0.0)
      RATES(1) = (ALGBRC(11) - STATES(8))/CONSTS(60)
      ALGBRC(2) = VOI -  CONSTS(40)*INT(VOI/CONSTS(40))
      ALGBRC(4) = TERNRY(ALGBRC(2).GE.0.00000.AND.ALGBRC(2).LE. CONSTS(41)*CONSTS(40), 1.00000 - cos(( 3.14159*ALGBRC(2))/( CONSTS(41)*CONSTS(40))), TERNRY(ALGBRC(2).GT. CONSTS(41)*CONSTS(40).AND.ALGBRC(2).LE. CONSTS(42)*CONSTS(40), 1.00000+cos(( 3.14159*(ALGBRC(2) -  CONSTS(41)*CONSTS(40)))/( (CONSTS(42) - CONSTS(41))*CONSTS(40))), TERNRY(ALGBRC(2).GT. CONSTS(42)*CONSTS(40).AND.ALGBRC(2).LT.CONSTS(40), 0.00000, 0.0/0.0)
      ALGBRC(6) = CONSTS(39)+( ALGBRC(4)*(CONSTS(38) - CONSTS(39)))/2.00000
      ALGBRC(8) = CONSTS(31)+ ALGBRC(6)*(STATES(5) - CONSTS(32))
      ALGBRC(10) = TERNRY(ALGBRC(8).GE.STATES(2), 1.00000, TERNRY(ALGBRC(8).LT.STATES(2), 0.00000, 0.0/0.0)
      ALGBRC(12) = TERNRY(ALGBRC(8).GE.STATES(2),  CONSTS(30)*ALGBRC(10)*ABS(ALGBRC(8) - STATES(2)) ** 0.500000, TERNRY(ALGBRC(8).LT.STATES(2),  -1.00000*CONSTS(30)*ALGBRC(10)*ABS(STATES(2) - ALGBRC(8)) ** 0.500000, 0.0/0.0)
      RATES(2) = (ALGBRC(12) - STATES(12))/CONSTS(75)
      ALGBRC(13) = VOI -  CONSTS(11)*INT(VOI/CONSTS(11))
      ALGBRC(15) = TERNRY(ALGBRC(13).GE.0.00000.AND.ALGBRC(13).LE. (CONSTS(16)+CONSTS(17))*CONSTS(11) - CONSTS(11), 1.00000 - cos(( 2.00000*3.14159*((ALGBRC(13) -  CONSTS(16)*CONSTS(11))+CONSTS(11)))/( CONSTS(17)*CONSTS(11))), TERNRY(ALGBRC(13).GT. (CONSTS(16)+CONSTS(17))*CONSTS(11) - CONSTS(11).AND.ALGBRC(13).LE. CONSTS(16)*CONSTS(11), 0.00000, TERNRY(ALGBRC(13).GT. CONSTS(16)*CONSTS(11).AND.ALGBRC(13).LE.CONSTS(11), 1.00000 - cos(( 2.00000*3.14159*(ALGBRC(13) -  CONSTS(16)*CONSTS(11)))/( CONSTS(17)*CONSTS(11))), 0.0/0.0)
      ALGBRC(17) = CONSTS(15)+( ALGBRC(15)*(CONSTS(14) - CONSTS(15)))/2.00000
      ALGBRC(19) = CONSTS(6)+ ALGBRC(17)*(STATES(4) - CONSTS(7))
      ALGBRC(21) = TERNRY(ALGBRC(19).GE.ALGBRC(7), 1.00000, TERNRY(ALGBRC(19).LT.ALGBRC(7), 0.00000, 0.0/0.0)
      ALGBRC(23) = TERNRY(ALGBRC(19).GE.ALGBRC(7),  CONSTS(5)*ALGBRC(21)*ABS(ALGBRC(19) - ALGBRC(7)) ** 0.500000, TERNRY(ALGBRC(19).LT.ALGBRC(7),  -1.00000*CONSTS(5)*ALGBRC(21)*ABS(ALGBRC(7) - ALGBRC(19)) ** 0.500000, 0.0/0.0)
      RATES(3) = ALGBRC(23) - ALGBRC(11)
      ALGBRC(14) = VOI -  CONSTS(40)*INT(VOI/CONSTS(40))
      ALGBRC(16) = TERNRY(ALGBRC(14).GE.0.00000.AND.ALGBRC(14).LE. (CONSTS(45)+CONSTS(46))*CONSTS(40) - CONSTS(40), 1.00000 - cos(( 2.00000*3.14159*((ALGBRC(14) -  CONSTS(45)*CONSTS(40))+CONSTS(40)))/( CONSTS(46)*CONSTS(40))), TERNRY(ALGBRC(14).GT. (CONSTS(45)+CONSTS(46))*CONSTS(40) - CONSTS(40).AND.ALGBRC(14).LE. CONSTS(45)*CONSTS(40), 0.00000, TERNRY(ALGBRC(14).GT. CONSTS(45)*CONSTS(40).AND.ALGBRC(14).LE.CONSTS(40), 1.00000 - cos(( 2.00000*3.14159*(ALGBRC(14) -  CONSTS(45)*CONSTS(40)))/( CONSTS(46)*CONSTS(40))), 0.0/0.0)
      ALGBRC(18) = CONSTS(44)+( ALGBRC(16)*(CONSTS(43) - CONSTS(44)))/2.00000
      ALGBRC(20) = CONSTS(35)+ ALGBRC(18)*(STATES(6) - CONSTS(36))
      ALGBRC(22) = TERNRY(ALGBRC(20).GE.ALGBRC(8), 1.00000, TERNRY(ALGBRC(20).LT.ALGBRC(8), 0.00000, 0.0/0.0)
      ALGBRC(24) = TERNRY(ALGBRC(20).GE.ALGBRC(8),  CONSTS(34)*ALGBRC(22)*ABS(ALGBRC(20) - ALGBRC(8)) ** 0.500000, TERNRY(ALGBRC(20).LT.ALGBRC(8),  -1.00000*CONSTS(34)*ALGBRC(22)*ABS(ALGBRC(8) - ALGBRC(20)) ** 0.500000, 0.0/0.0)
      RATES(5) = ALGBRC(24) - ALGBRC(12)
      ALGBRC(31) = (STATES(14) - ALGBRC(19))/CONSTS(86)
      RATES(4) = ALGBRC(31) - ALGBRC(23)
      ALGBRC(32) = (STATES(10) - ALGBRC(20))/CONSTS(71)
      RATES(6) = ALGBRC(32) - ALGBRC(24)
      ALGBRC(26) = STATES(9)
      ALGBRC(29) = STATES(10)+ CONSTS(70)*ALGBRC(26)
      ALGBRC(33) = ALGBRC(29)+ CONSTS(69)*STATES(9)
      RATES(9) = ((STATES(7) - ALGBRC(33)) -  CONSTS(64)*STATES(9))/CONSTS(66)
      ALGBRC(28) = ALGBRC(26)
      RATES(10) = (ALGBRC(28) - ALGBRC(32))/CONSTS(72)
      ALGBRC(25) = STATES(13)
      ALGBRC(30) = STATES(14)+ CONSTS(85)*ALGBRC(25)
      ALGBRC(34) = ALGBRC(30)+ CONSTS(84)*STATES(13)
      RATES(13) = ((STATES(11) - ALGBRC(34)) -  CONSTS(79)*STATES(13))/CONSTS(81)
      ALGBRC(27) = ALGBRC(25)
      RATES(14) = (ALGBRC(27) - ALGBRC(31))/CONSTS(87)
      RETURN
      END
      SUBROUTINE computeVariables(VOI, CONSTS, RATES, STATES, ALGBRC)
      REAL VOI, CONSTS(*), RATES(*), STATES(*), ALGBRC(*)
      ALGBRC(1) = VOI -  CONSTS(11)*INT(VOI/CONSTS(11))
      ALGBRC(3) = TERNRY(ALGBRC(1).GE.0.00000.AND.ALGBRC(1).LE. CONSTS(12)*CONSTS(11), 1.00000 - cos(( 3.14159*ALGBRC(1))/( CONSTS(12)*CONSTS(11))), TERNRY(ALGBRC(1).GT. CONSTS(12)*CONSTS(11).AND.ALGBRC(1).LE. CONSTS(13)*CONSTS(11), 1.00000+cos(( 3.14159*(ALGBRC(1) -  CONSTS(12)*CONSTS(11)))/( (CONSTS(13) - CONSTS(12))*CONSTS(11))), TERNRY(ALGBRC(1).GT. CONSTS(13)*CONSTS(11).AND.ALGBRC(1).LT.CONSTS(11), 0.00000, 0.0/0.0)
      ALGBRC(5) = CONSTS(10)+( ALGBRC(3)*(CONSTS(9) - CONSTS(10)))/2.00000
      ALGBRC(7) = CONSTS(2)+ ALGBRC(5)*(STATES(3) - CONSTS(3))
      ALGBRC(9) = TERNRY(ALGBRC(7).GE.STATES(1), 1.00000, TERNRY(ALGBRC(7).LT.STATES(1), 0.00000, 0.0/0.0)
      ALGBRC(11) = TERNRY(ALGBRC(7).GE.STATES(1),  CONSTS(1)*ALGBRC(9)*ABS(ALGBRC(7) - STATES(1)) ** 0.500000, TERNRY(ALGBRC(7).LT.STATES(1),  -1.00000*CONSTS(1)*ALGBRC(9)*ABS(STATES(1) - ALGBRC(7)) ** 0.500000, 0.0/0.0)
      ALGBRC(2) = VOI -  CONSTS(40)*INT(VOI/CONSTS(40))
      ALGBRC(4) = TERNRY(ALGBRC(2).GE.0.00000.AND.ALGBRC(2).LE. CONSTS(41)*CONSTS(40), 1.00000 - cos(( 3.14159*ALGBRC(2))/( CONSTS(41)*CONSTS(40))), TERNRY(ALGBRC(2).GT. CONSTS(41)*CONSTS(40).AND.ALGBRC(2).LE. CONSTS(42)*CONSTS(40), 1.00000+cos(( 3.14159*(ALGBRC(2) -  CONSTS(41)*CONSTS(40)))/( (CONSTS(42) - CONSTS(41))*CONSTS(40))), TERNRY(ALGBRC(2).GT. CONSTS(42)*CONSTS(40).AND.ALGBRC(2).LT.CONSTS(40), 0.00000, 0.0/0.0)
      ALGBRC(6) = CONSTS(39)+( ALGBRC(4)*(CONSTS(38) - CONSTS(39)))/2.00000
      ALGBRC(8) = CONSTS(31)+ ALGBRC(6)*(STATES(5) - CONSTS(32))
      ALGBRC(10) = TERNRY(ALGBRC(8).GE.STATES(2), 1.00000, TERNRY(ALGBRC(8).LT.STATES(2), 0.00000, 0.0/0.0)
      ALGBRC(12) = TERNRY(ALGBRC(8).GE.STATES(2),  CONSTS(30)*ALGBRC(10)*ABS(ALGBRC(8) - STATES(2)) ** 0.500000, TERNRY(ALGBRC(8).LT.STATES(2),  -1.00000*CONSTS(30)*ALGBRC(10)*ABS(STATES(2) - ALGBRC(8)) ** 0.500000, 0.0/0.0)
      ALGBRC(13) = VOI -  CONSTS(11)*INT(VOI/CONSTS(11))
      ALGBRC(15) = TERNRY(ALGBRC(13).GE.0.00000.AND.ALGBRC(13).LE. (CONSTS(16)+CONSTS(17))*CONSTS(11) - CONSTS(11), 1.00000 - cos(( 2.00000*3.14159*((ALGBRC(13) -  CONSTS(16)*CONSTS(11))+CONSTS(11)))/( CONSTS(17)*CONSTS(11))), TERNRY(ALGBRC(13).GT. (CONSTS(16)+CONSTS(17))*CONSTS(11) - CONSTS(11).AND.ALGBRC(13).LE. CONSTS(16)*CONSTS(11), 0.00000, TERNRY(ALGBRC(13).GT. CONSTS(16)*CONSTS(11).AND.ALGBRC(13).LE.CONSTS(11), 1.00000 - cos(( 2.00000*3.14159*(ALGBRC(13) -  CONSTS(16)*CONSTS(11)))/( CONSTS(17)*CONSTS(11))), 0.0/0.0)
      ALGBRC(17) = CONSTS(15)+( ALGBRC(15)*(CONSTS(14) - CONSTS(15)))/2.00000
      ALGBRC(19) = CONSTS(6)+ ALGBRC(17)*(STATES(4) - CONSTS(7))
      ALGBRC(21) = TERNRY(ALGBRC(19).GE.ALGBRC(7), 1.00000, TERNRY(ALGBRC(19).LT.ALGBRC(7), 0.00000, 0.0/0.0)
      ALGBRC(23) = TERNRY(ALGBRC(19).GE.ALGBRC(7),  CONSTS(5)*ALGBRC(21)*ABS(ALGBRC(19) - ALGBRC(7)) ** 0.500000, TERNRY(ALGBRC(19).LT.ALGBRC(7),  -1.00000*CONSTS(5)*ALGBRC(21)*ABS(ALGBRC(7) - ALGBRC(19)) ** 0.500000, 0.0/0.0)
      ALGBRC(14) = VOI -  CONSTS(40)*INT(VOI/CONSTS(40))
      ALGBRC(16) = TERNRY(ALGBRC(14).GE.0.00000.AND.ALGBRC(14).LE. (CONSTS(45)+CONSTS(46))*CONSTS(40) - CONSTS(40), 1.00000 - cos(( 2.00000*3.14159*((ALGBRC(14) -  CONSTS(45)*CONSTS(40))+CONSTS(40)))/( CONSTS(46)*CONSTS(40))), TERNRY(ALGBRC(14).GT. (CONSTS(45)+CONSTS(46))*CONSTS(40) - CONSTS(40).AND.ALGBRC(14).LE. CONSTS(45)*CONSTS(40), 0.00000, TERNRY(ALGBRC(14).GT. CONSTS(45)*CONSTS(40).AND.ALGBRC(14).LE.CONSTS(40), 1.00000 - cos(( 2.00000*3.14159*(ALGBRC(14) -  CONSTS(45)*CONSTS(40)))/( CONSTS(46)*CONSTS(40))), 0.0/0.0)
      ALGBRC(18) = CONSTS(44)+( ALGBRC(16)*(CONSTS(43) - CONSTS(44)))/2.00000
      ALGBRC(20) = CONSTS(35)+ ALGBRC(18)*(STATES(6) - CONSTS(36))
      ALGBRC(22) = TERNRY(ALGBRC(20).GE.ALGBRC(8), 1.00000, TERNRY(ALGBRC(20).LT.ALGBRC(8), 0.00000, 0.0/0.0)
      ALGBRC(24) = TERNRY(ALGBRC(20).GE.ALGBRC(8),  CONSTS(34)*ALGBRC(22)*ABS(ALGBRC(20) - ALGBRC(8)) ** 0.500000, TERNRY(ALGBRC(20).LT.ALGBRC(8),  -1.00000*CONSTS(34)*ALGBRC(22)*ABS(ALGBRC(8) - ALGBRC(20)) ** 0.500000, 0.0/0.0)
      ALGBRC(31) = (STATES(14) - ALGBRC(19))/CONSTS(86)
      ALGBRC(32) = (STATES(10) - ALGBRC(20))/CONSTS(71)
      ALGBRC(26) = STATES(9)
      ALGBRC(29) = STATES(10)+ CONSTS(70)*ALGBRC(26)
      ALGBRC(33) = ALGBRC(29)+ CONSTS(69)*STATES(9)
      ALGBRC(28) = ALGBRC(26)
      ALGBRC(25) = STATES(13)
      ALGBRC(30) = STATES(14)+ CONSTS(85)*ALGBRC(25)
      ALGBRC(34) = ALGBRC(30)+ CONSTS(84)*STATES(13)
      ALGBRC(27) = ALGBRC(25)
      RETURN
      END
      REAL FUNCTION TERNRY(TEST, VALA, VALB)
      LOGICAL TEST
      REAL VALA, VALB
      IF (TEST) THEN
        TERNRY = VALA
      ELSE
        TERNRY = VALB
      ENDIF
      RETURN
      END