      REAL FUNCTION SPMPAR(I)
      INTEGER I
C     **********
C
C     FUNCTION SPMPAR
C
C     THIS FUNCTION PROVIDES SINGLE PRECISION MACHINE PARAMETERS
C     WHEN THE APPROPRIATE SET OF DATA STATEMENTS IS ACTIVATED (BY
C     REMOVING THE C FROM COLUMN 1) AND ALL OTHER DATA STATEMENTS ARE
C     RENDERED INACTIVE. MOST OF THE PARAMETER VALUES WERE OBTAINED
C     FROM THE CORRESPONDING BELL LABORATORIES PORT LIBRARY FUNCTION.
C
C     THE FUNCTION STATEMENT IS
C
C       REAL FUNCTION SPMPAR(I)
C
C     WHERE
C
C       I IS AN INTEGER INPUT VARIABLE SET TO 1, 2, OR 3 WHICH
C         SELECTS THE DESIRED MACHINE PARAMETER. IF THE MACHINE HAS
C         T BASE B DIGITS AND ITS SMALLEST AND LARGEST EXPONENTS ARE
C         EMIN AND EMAX, RESPECTIVELY, THEN THESE PARAMETERS ARE
C
C         SPMPAR(1) = B**(1 - T), THE MACHINE PRECISION,
C
C         SPMPAR(2) = B**(EMIN - 1), THE SMALLEST MAGNITUDE,
C
C         SPMPAR(3) = B**EMAX*(1 - B**(-T)), THE LARGEST MAGNITUDE.
C
C     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. MARCH 1980.
C     BURTON S. GARBOW, KENNETH E. HILLSTROM, JORGE J. MORE
C
C     **********
      INTEGER MCHEPS(2)
      INTEGER MINMAG(2)
      INTEGER MAXMAG(2)
      REAL RMACH(3)
      EQUIVALENCE (RMACH(1),MCHEPS(1))
      EQUIVALENCE (RMACH(2),MINMAG(1))
      EQUIVALENCE (RMACH(3),MAXMAG(1))
C
C     MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM.
C
C     DATA RMACH(1) / Z4EA800000 /
C     DATA RMACH(2) / Z400800000 /
C     DATA RMACH(3) / Z5FFFFFFFF /
C
C     MACHINE CONSTANTS FOR THE BURROUGHS 5700/6700/7700 SYSTEMS.
C
C     DATA RMACH(1) / O1301000000000000 /
C     DATA RMACH(2) / O1771000000000000 /
C     DATA RMACH(3) / O0777777777777777 /
C
C     MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES.
C
      DATA RMACH(1) / 16414000000000000000B /
      DATA RMACH(2) / 00014000000000000000B /
      DATA RMACH(3) / 37767777777777777777B /
C
C     MACHINE CONSTANTS FOR THE CDC 60 BIT ARITHMETIC (FTN 5).
C
C     DATA RMACH(1) / O"16414000000000000000" /
C     DATA RMACH(2) / O"00014000000000000000" /
C     DATA RMACH(3) / O"37767777777777777777" /
C
C     MACHINE CONSTANTS FOR THE CRAY-1.
C
C     DATA RMACH(1) / 0377224000000000000000B /
C     DATA RMACH(2) / 0200034000000000000000B /
C     DATA RMACH(3) / 0577777777777777777776B /
C
C     MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200.
C
C     NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD -
C     STATIC RMACH(3)
C
C     DATA MINMAG/20K,0/,MAXMAG/77777K,177777K/
C     DATA MCHEPS/36020K,0/
C
C     MACHINE CONSTANTS FOR THE HARRIS 220.
C
C     DATA MCHEPS(1) / '20000000, '00000353 /
C     DATA MINMAG(1) / '20000000, '00000201 /
C     DATA MAXMAG(1) / '37777777, '00000177 /
C
C     MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES.
C
C     DATA RMACH(1) / O716400000000 /
C     DATA RMACH(2) / O402400000000 /
C     DATA RMACH(3) / O376777777777 /
C
C     MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
C     THE AMDAHL 470/V6, THE ICL 2900, THE ITEL AS/6,
C     THE XEROX SIGMA 5/7/9 AND THE SEL SYSTEMS 85/86.
C
C     DATA RMACH(1) / Z3C100000 /
C     DATA RMACH(2) / Z00100000 /
C     DATA RMACH(3) / Z7FFFFFFF /
C
C     MACHINE CONSTANTS FOR THE PDP-10 (KA OR KI PROCESSOR).
C
C     DATA RMACH(1) / "147400000000 /
C     DATA RMACH(2) / "000400000000 /
C     DATA RMACH(3) / "377777777777 /
C
C     MACHINE CONSTANTS FOR THE PDP-11 FORTRAN SUPPORTING
C     32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
C
C     DATA MCHEPS(1) /  889192448 /
C     DATA MINMAG(1) /    8388608 /
C     DATA MAXMAG(1) / 2147483647 /
C
C     DATA RMACH(1) / O06500000000 /
C     DATA RMACH(2) / O00040000000 /
C     DATA RMACH(3) / O17777777777 /
C
C     MACHINE CONSTANTS FOR THE PDP-11 FORTRAN SUPPORTING
C     16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
C
C     DATA MCHEPS(1),MCHEPS(2) / 13568,     0 /
C     DATA MINMAG(1),MINMAG(2) /   128,     0 /
C     DATA MAXMAG(1),MAXMAG(2) / 32767,    -1 /
C
C     DATA MCHEPS(1),MCHEPS(2) / O032400, O000000 /
C     DATA MINMAG(1),MINMAG(2) / O000200, O000000 /
C     DATA MAXMAG(1),MAXMAG(2) / O077777, O177777 /
C
C     MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES.
C
C     DATA RMACH(1) / O147400000000 /
C     DATA RMACH(2) / O000400000000 /
C     DATA RMACH(3) / O377777777777 /
C
C     MACHINE CONSTANTS FOR THE VAX 11/780
C     (EXPRESSED IN INTEGER AND HEXADECIMAL)
C
C     DATA MCHEPS(1) /     13568 /
C     DATA MINMAG(1) /       128 /
C     DATA MAXMAG(1) /    -32769 /
C
C     DATA MCHEPS(1) / Z00003500 /
C     DATA MINMAG(1) / Z00000080 /
C     DATA MAXMAG(1) / ZFFFF7FFF /
C
      SPMPAR = RMACH(I)
      RETURN
C
C     LAST CARD OF FUNCTION SPMPAR.
C
      END
