viscl.f
function viscl(temp)
c
c function viscl evaluates the freon liquid dynamic viscosity
c as a function of liquid enthalpy and pressure
c
c liquid temperature temp in (K)
c liquid viscosity viscl in (pa*s)
c
c
dimension tabl(4,26)
save ilast
data ilast/10/,ntab/26/
data tabl/
& 1.99826700E+02, 1.67800000E-03,-3.35700336E-05, 3.48300697E-07,
& 2.10937800E+02, 1.34800000E-03,-2.58300258E-05, 3.48300697E-07,
& 2.22048900E+02, 1.10400000E-03,-1.80900181E-05, 1.53900308E-07,
& 2.33160000E+02, 9.22000000E-04,-1.46700147E-05, 1.78200356E-07,
& 2.44271100E+02, 7.81000000E-04,-1.07100107E-05, 9.72001944E-08,
& 2.55382200E+02, 6.74000000E-04,-8.55000855E-06, 6.48001296E-08,
& 2.66493300E+02, 5.87000000E-04,-7.11000711E-06, 7.29001458E-08,
& 2.77604400E+02, 5.17000000E-04,-5.49000549E-06, 3.24039284E-08,
& 2.88715600E+02, 4.60000000E-04,-4.76991243E-06, 4.85917867E-08,
& 2.99826700E+02, 4.13000000E-04,-3.69009603E-06, 1.62083430E-08,
& 3.10937800E+02, 3.74000000E-04,-3.32991099E-06, 3.23917542E-08,
& 3.22048900E+02, 3.41000000E-04,-2.61009495E-06, 8.31055012E-12,
& 3.33160000E+02, 3.12000000E-04,-2.60991027E-06, 4.04917705E-08,
& 3.44271100E+02, 2.88000000E-04,-1.71009405E-06,-2.42917380E-08,
& 3.55382200E+02, 2.66000000E-04,-2.24990991E-06, 6.47918191E-08,
& 3.66493300E+02, 2.49000000E-04,-8.10093149E-07,-3.23917542E-08,
& 3.77604400E+02, 2.36000000E-04,-1.52990919E-06,-7.07119392E-12,
& 3.88715600E+02, 2.19000000E-04,-1.53006633E-06, 5.83196499E-12,
& 3.99826700E+02, 2.02000000E-04,-1.52993673E-06,-5.83196499E-12,
& 4.10937800E+02, 1.85000000E-04,-1.53006633E-06,-2.42942166E-08,
& 4.22048900E+02, 1.65000000E-04,-2.06993727E-06, 8.09418424E-09,
& 4.33160000E+02, 1.43000000E-04,-1.89006669E-06, 5.83196499E-12,
& 4.44271100E+02, 1.22000000E-04,-1.88993709E-06,-4.45559211E-08,
& 4.55382200E+02, 9.55000000E-05,-2.88006768E-06, 1.78258676E-08,
& 4.66493300E+02, 6.57000000E-05,-2.48393768E-06,-1.07120525E-06,
& 4.70937800E+02, 3.35000000E-05, 0.00000000E+00, 0.00000000E+00/
x=temp
c Start the search from the last point of table use index
c
if (x.le.tabl(1,ilast+1)) then
c
c Search down the table from point of last use
c
do 20 i1=ilast,1,-1
if(x.ge.tabl(1,i1)) go to 60
20 continue
c write(6,*) 'x = ', x, ' is below the table range'
i1=1
go to 60
else
c
c Search up the table from point of last use
c
do 40 i1=ilast+1,ntab-1
if(x.le.tabl(1,i1+1)) go to 60
40 continue
c write(6,*) 'x = ', x, ' is above the table range'
i1=ntab-1
go to 60
endif
c
c Bounding points found, interpolate
c
60 dx=(x-tabl(1,i1))
viscl=tabl(2,i1)+tabl(3,i1)*dx+tabl(4,i1)*dx**2
ilast=i1
120 continue
return
end