LCOV - code coverage report
Current view: top level - bnmin1/src/f77 - pda_dpmpar.f (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 9 0.0 %
Date: 2024-10-12 00:35:29 Functions: 0 1 0.0 %

          Line data    Source code
       1           0 :       double precision function pda_dpmpar(i)
       2             :       integer i
       3             : c     **********
       4             : c
       5             : c     function pda_dpmpar
       6             : c
       7             : c     This function provides double precision machine parameters
       8             : c     when the appropriate set of data statements is activated (by
       9             : c     removing the c from column 1) and all other data statements are
      10             : c     rendered inactive. Most of the parameter values were obtained
      11             : c     from the corresponding Bell Laboratories Port Library function.
      12             : c
      13             : c     The function statement is
      14             : c
      15             : c       double precision function pda_dpmpar(i)
      16             : c
      17             : c     where
      18             : c
      19             : c       i is an integer input variable set to 1, 2, or 3 which
      20             : c         selects the desired machine parameter. If the machine has
      21             : c         t base b digits and its smallest and largest exponents are
      22             : c         emin and emax, respectively, then these parameters are
      23             : c
      24             : c         pda_dpmpar(1) = b**(1 - t), the machine precision,
      25             : c
      26             : c         pda_dpmpar(2) = b**(emin - 1), the smallest magnitude,
      27             : c
      28             : c         pda_dpmpar(3) = b**emax*(1 - b**(-t)), the largest magnitude.
      29             : c
      30             : c     Argonne National Laboratory. MINPACK Project. June 1983.
      31             : c     Burton S. Garbow, Kenneth E. Hillstrom, Jorge J. More
      32             : c
      33             : c  Modified 13 Jul 1995 by hme:
      34             : c     Comment out all code except "return". This routine now uses D1MACH
      35             : c     rather than its own constants. D1MACH seems to exist in a newer
      36             : c     version with larger variety of machines.
      37             : c     This routine was acquired with the VAX-11 constants enabled. My
      38             : c     commenting out uses C rather than the c used otherwise.
      39             : c     Comparing the prologues of this routine and D1MACH, it is quite
      40             : c     obvious that given arguments 1,2,3 correspond to 4,1,2 in D1MACH.
      41             : c
      42             : c  Modified 13 Jul 1995 by hme:
      43             : c     Added an explicit declaration for function pda_d1mach.
      44             : c
      45             : c     **********
      46             :       double precision pda_d1mach
      47             : 
      48             : C     integer mcheps(4)
      49             : C     integer minmag(4)
      50             : C     integer maxmag(4)
      51             : C     double precision dmach(3)
      52             : C     equivalence (dmach(1),mcheps(1))
      53             : C     equivalence (dmach(2),minmag(1))
      54             : C     equivalence (dmach(3),maxmag(1))
      55             : c
      56             : c     Machine constants for the IBM 360/370 series,
      57             : c     the Amdahl 470/V6, the ICL 2900, the Itel AS/6,
      58             : c     the Xerox Sigma 5/7/9 and the Sel systems 85/86.
      59             : c
      60             : c     data mcheps(1),mcheps(2) / z34100000, z00000000 /
      61             : c     data minmag(1),minmag(2) / z00100000, z00000000 /
      62             : c     data maxmag(1),maxmag(2) / z7fffffff, zffffffff /
      63             : c
      64             : c     Machine constants for the Honeywell 600/6000 series.
      65             : c
      66             : c     data mcheps(1),mcheps(2) / o606400000000, o000000000000 /
      67             : c     data minmag(1),minmag(2) / o402400000000, o000000000000 /
      68             : c     data maxmag(1),maxmag(2) / o376777777777, o777777777777 /
      69             : c
      70             : c     Machine constants for the CDC 6000/7000 series.
      71             : c
      72             : c     data mcheps(1) / 15614000000000000000b /
      73             : c     data mcheps(2) / 15010000000000000000b /
      74             : c
      75             : c     data minmag(1) / 00604000000000000000b /
      76             : c     data minmag(2) / 00000000000000000000b /
      77             : c
      78             : c     data maxmag(1) / 37767777777777777777b /
      79             : c     data maxmag(2) / 37167777777777777777b /
      80             : c
      81             : c     Machine constants for the PDP-10 (KA processor).
      82             : c
      83             : c     data mcheps(1),mcheps(2) / "114400000000, "000000000000 /
      84             : c     data minmag(1),minmag(2) / "033400000000, "000000000000 /
      85             : c     data maxmag(1),maxmag(2) / "377777777777, "344777777777 /
      86             : c
      87             : c     Machine constants for the PDP-10 (KI processor).
      88             : c
      89             : c     data mcheps(1),mcheps(2) / "104400000000, "000000000000 /
      90             : c     data minmag(1),minmag(2) / "000400000000, "000000000000 /
      91             : c     data maxmag(1),maxmag(2) / "377777777777, "377777777777 /
      92             : c
      93             : c     Machine constants for the PDP-11. 
      94             : c
      95             : c     data mcheps(1),mcheps(2) /   9472,      0 /
      96             : c     data mcheps(3),mcheps(4) /      0,      0 /
      97             : c
      98             : c     data minmag(1),minmag(2) /    128,      0 /
      99             : c     data minmag(3),minmag(4) /      0,      0 /
     100             : c
     101             : c     data maxmag(1),maxmag(2) /  32767,     -1 /
     102             : c     data maxmag(3),maxmag(4) /     -1,     -1 /
     103             : c
     104             : c     Machine constants for the Burroughs 6700/7700 systems.
     105             : c
     106             : c     data mcheps(1) / o1451000000000000 /
     107             : c     data mcheps(2) / o0000000000000000 /
     108             : c
     109             : c     data minmag(1) / o1771000000000000 /
     110             : c     data minmag(2) / o7770000000000000 /
     111             : c
     112             : c     data maxmag(1) / o0777777777777777 /
     113             : c     data maxmag(2) / o7777777777777777 /
     114             : c
     115             : c     Machine constants for the Burroughs 5700 system.
     116             : c
     117             : c     data mcheps(1) / o1451000000000000 /
     118             : c     data mcheps(2) / o0000000000000000 /
     119             : c
     120             : c     data minmag(1) / o1771000000000000 /
     121             : c     data minmag(2) / o0000000000000000 /
     122             : c
     123             : c     data maxmag(1) / o0777777777777777 /
     124             : c     data maxmag(2) / o0007777777777777 /
     125             : c
     126             : c     Machine constants for the Burroughs 1700 system.
     127             : c
     128             : c     data mcheps(1) / zcc6800000 /
     129             : c     data mcheps(2) / z000000000 /
     130             : c
     131             : c     data minmag(1) / zc00800000 /
     132             : c     data minmag(2) / z000000000 /
     133             : c
     134             : c     data maxmag(1) / zdffffffff /
     135             : c     data maxmag(2) / zfffffffff /
     136             : c
     137             : c     Machine constants for the Univac 1100 series.
     138             : c
     139             : c     data mcheps(1),mcheps(2) / o170640000000, o000000000000 /
     140             : c     data minmag(1),minmag(2) / o000040000000, o000000000000 /
     141             : c     data maxmag(1),maxmag(2) / o377777777777, o777777777777 /
     142             : c
     143             : c     Machine constants for the Data General Eclipse S/200.
     144             : c
     145             : c     Note - it may be appropriate to include the following card -
     146             : c     static dmach(3)
     147             : c
     148             : c     data minmag/20k,3*0/,maxmag/77777k,3*177777k/
     149             : c     data mcheps/32020k,3*0/
     150             : c
     151             : c     Machine constants for the Harris 220.
     152             : c
     153             : c     data mcheps(1),mcheps(2) / '20000000, '00000334 /
     154             : c     data minmag(1),minmag(2) / '20000000, '00000201 /
     155             : c     data maxmag(1),maxmag(2) / '37777777, '37777577 /
     156             : c
     157             : c     Machine constants for the Cray-1.
     158             : c
     159             : c     data mcheps(1) / 0376424000000000000000b /
     160             : c     data mcheps(2) / 0000000000000000000000b /
     161             : c
     162             : c     data minmag(1) / 0200034000000000000000b /
     163             : c     data minmag(2) / 0000000000000000000000b /
     164             : c
     165             : c     data maxmag(1) / 0577777777777777777777b /
     166             : c     data maxmag(2) / 0000007777777777777776b /
     167             : c
     168             : c     Machine constants for the Prime 400.
     169             : c
     170             : c     data mcheps(1),mcheps(2) / :10000000000, :00000000123 /
     171             : c     data minmag(1),minmag(2) / :10000000000, :00000100000 /
     172             : c     data maxmag(1),maxmag(2) / :17777777777, :37777677776 /
     173             : c
     174             : c     Machine constants for the VAX-11.
     175             : c
     176             : C     data mcheps(1),mcheps(2) /   9472,  0 /
     177             : C     data minmag(1),minmag(2) /    128,  0 /
     178             : C     data maxmag(1),maxmag(2) / -32769, -1 /
     179             : c
     180             : C     pda_dpmpar = dmach(i)
     181           0 :       if      ( i .eq. 1 ) then
     182           0 :          pda_dpmpar = pda_d1mach(4)
     183           0 :       else if ( i .eq. 2 ) then
     184           0 :          pda_dpmpar = pda_d1mach(1)
     185           0 :       else if ( i .eq. 3 ) then
     186           0 :          pda_dpmpar = pda_d1mach(2)
     187             :       else
     188           0 :          pda_dpmpar = 0d0
     189             :       end if
     190           0 :       return
     191             : c
     192             : c     Last card of function pda_dpmpar.
     193             : c
     194             :       end

Generated by: LCOV version 1.16