Professor Diomar Cesar Lobao

Universidade Federal Fluminense-Volta Redonda, RJ, Brasil

Diomar Cesar


Dept. Ciências Exatas - Exact Science Dept.

Search

satprs.f

      function satprs(temp)
c
c     function satprs evaluates the freon saturation pressure
c     as a function of the saturation temperature
c
c          saturation temperature      temp   in (k)
c          saturation pressure         satprs in (pa)
c
      dimension tabl(4,70)
      save ilast
      data tabl/
     &  2.05382200E+02, 6.85270100E+02, 4.25931141E+01, 3.91603829E+00,
     &  2.16493300E+02, 1.64198700E+03, 1.29616100E+02, 3.91603829E+00,
     &  2.27604400E+02, 3.56562500E+03, 2.16639086E+02, 9.30555058E+00,
     &  2.38715600E+02, 7.12159700E+03, 4.23430753E+02, 1.14783026E+01,
     &  2.49826700E+02, 1.32434500E+04, 6.78503889E+02, 2.02822110E+01,
     &  2.55382200E+02, 1.76388600E+04, 9.03859535E+02, 1.62168467E+01,
     &  2.60937800E+02, 2.31608700E+04, 1.08404816E+03, 2.68569113E+01,
     &  2.66493300E+02, 3.00122000E+04, 1.38245530E+03, 2.33788606E+01,
     &  2.72048900E+02, 3.84141500E+04, 1.64222250E+03, 3.46188905E+01,
     &  2.77604400E+02, 4.86059800E+04, 2.02687299E+03, 3.17665385E+01,
     &  2.83160000E+02, 6.08469400E+04, 2.37983735E+03, 5.96760929E+01,
     &  2.84271100E+02, 6.35648500E+04, 2.51244957E+03, 1.73969486E+01,
     &  2.85382200E+02, 6.63779100E+04, 2.55110907E+03, 5.91171817E+01,
     &  2.86493300E+02, 6.92854300E+04, 2.68247927E+03, 2.63314273E+01,
     &  2.87604400E+02, 7.22984400E+04, 2.74099297E+03, 5.72081253E+01,
     &  2.88715600E+02, 7.54148700E+04, 2.86813230E+03, 2.12047639E+01,
     &  2.89826700E+02, 7.86278300E+04, 2.91525353E+03, 6.81562233E+01,
     &  2.90937800E+02, 8.19511100E+04, 3.06671029E+03, 2.11966637E+01,
     &  2.92048900E+02, 8.53847000E+04, 3.11381352E+03, 7.37453351E+01,
     &  2.93160000E+02, 8.89355000E+04, 3.27769040E+03, 1.00265403E+01,
     &  2.94271100E+02, 9.25897200E+04, 3.29997138E+03, 9.05045703E+01,
     &  2.95382200E+02, 9.63680500E+04, 3.50109063E+03, 4.44552870E+00,
     &  2.96493300E+02, 1.00263600E+05, 3.51096949E+03, 9.60369809E+01,
     &  2.97604400E+02, 1.04283200E+05, 3.72438287E+03, 4.26458242E+00,
     &  2.98715600E+02, 1.08427000E+05, 3.73386047E+03, 9.64791075E+01,
     &  2.99826700E+02, 1.12694800E+05, 3.94825635E+03, 9.71401636E+00,
     &  3.00937800E+02, 1.17093700E+05, 3.96984283E+03, 1.01906216E+02,
     &  3.02048900E+02, 1.21630400E+05, 4.19629883E+03, 4.28690782E+00,
     &  3.03160000E+02, 1.26298200E+05, 4.20582519E+03, 1.01744213E+02,
     &  3.04271100E+02, 1.31096900E+05, 4.43192118E+03, 2.12162464E+01,
     &  3.05382200E+02, 1.36047400E+05, 4.47906793E+03, 9.04039860E+01,
     &  3.06493300E+02, 1.41135700E+05, 4.67996366E+03, 2.68863598E+01,
     &  3.07604400E+02, 1.46368800E+05, 4.73971053E+03, 9.55919660E+01,
     &  3.08715600E+02, 1.51753600E+05, 4.95215412E+03, 2.20823048E+01,
     &  3.09826700E+02, 1.57283200E+05, 5.00122542E+03, 1.06386265E+02,
     &  3.10937800E+02, 1.62971400E+05, 5.23763697E+03, 2.20823048E+01,
     &  3.12048900E+02, 1.68818200E+05, 5.28670827E+03, 1.06305263E+02,
     &  3.13160000E+02, 1.74823500E+05, 5.52293983E+03, 2.77524182E+01,
     &  3.14271100E+02, 1.80994300E+05, 5.58461125E+03, 1.06305263E+02,
     &  3.15382200E+02, 1.87330600E+05, 5.82084280E+03, 2.77524182E+01,
     &  3.16493300E+02, 1.93832400E+05, 5.88251423E+03, 8.66818291E+01,
     &  3.19271100E+02, 2.10841700E+05, 6.36408380E+03, 5.89732804E+01,
     &  3.22048900E+02, 2.28974900E+05, 6.69171575E+03, 9.11529576E+01,
     &  3.24826700E+02, 2.48266500E+05, 7.19812513E+03, 6.70935088E+01,
     &  3.27604400E+02, 2.68778400E+05, 7.57085641E+03, 9.45384574E+01,
     &  3.30382200E+02, 2.90538200E+05, 8.09607426E+03, 7.61420117E+01,
     &  3.33160000E+02, 3.13615000E+05, 8.51908882E+03, 9.89836663E+01,
     &  3.35937800E+02, 3.38043100E+05, 9.06900248E+03, 8.42030027E+01,
     &  3.38715600E+02, 3.63884700E+05, 9.53680068E+03, 1.04454216E+02,
     &  3.41493300E+02, 3.91181000E+05, 1.01170856E+04, 9.02337918E+01,
     &  3.44271100E+02, 4.19980500E+05, 1.06183885E+04, 1.08343249E+02,
     &  3.49826700E+02, 4.82316000E+05, 1.18222120E+04, 1.07489192E+02,
     &  3.55382200E+02, 5.51311800E+05, 1.30165244E+04, 1.22116791E+02,
     &  3.60937800E+02, 6.27395500E+05, 1.43733885E+04, 1.21199169E+02,
     &  3.66493300E+02, 7.10987500E+05, 1.57200325E+04, 1.39226654E+02,
     &  3.72048900E+02, 8.02618900E+05, 1.72670077E+04, 1.33362330E+02,
     &  3.77604400E+02, 9.02661800E+05, 1.87487965E+04, 1.54752435E+02,
     &  3.83160000E+02, 1.01159900E+06, 2.04682818E+04, 1.51286589E+02,
     &  3.88715600E+02, 1.12998200E+06, 2.21492573E+04, 1.68250119E+02,
     &  3.94271100E+02, 1.25822500E+06, 2.40186844E+04, 1.73427850E+02,
     &  3.99826700E+02, 1.39701600E+06, 2.59456759E+04, 1.79622631E+02,
     &  4.05382200E+02, 1.54670100E+06, 2.79414630E+04, 1.97844465E+02,
     &  4.10937800E+02, 1.70803900E+06, 3.01397524E+04, 1.95395530E+02,
     &  4.16493300E+02, 1.88151100E+06, 3.23107921E+04, 2.17762207E+02,
     &  4.22048900E+02, 2.06773800E+06, 3.47303916E+04, 2.23448233E+02,
     &  4.33160000E+02, 2.48121700E+06, 3.96959029E+04, 2.56842228E+02,
     &  4.44271100E+02, 2.95399100E+06, 4.54035022E+04, 2.69796526E+02,
     &  4.55382200E+02, 3.49178200E+06, 5.13989746E+04, 3.11574037E+02,
     &  4.66493300E+02, 4.10134700E+06, 5.83228351E+04, 1.66033050E+03,
     &  4.71160000E+02, 4.40968100E+06, 0.00000000E+00, 0.00000000E+00/
      data ilast/30/,ntab/70/
c
      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))
      satprs=tabl(2,i1)+tabl(3,i1)*dx+tabl(4,i1)*dx**2
      ilast=i1
  120 continue
      return
      end
Skip to content