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 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 DATA RMACH(1) / Z3C100000 / DATA RMACH(2) / Z00100000 / DATA RMACH(3) / Z7FFFFFFF / 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 CDC 6000/7000 SERIES. C C DATA RMACH(1) / 16414000000000000000B / C DATA RMACH(2) / 00014000000000000000B / C DATA RMACH(3) / 37767777777777777777B / 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 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 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 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 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 CRAY-1. C C DATA RMACH(1) / 0377224000000000000000B / C DATA RMACH(2) / 0200034000000000000000B / C DATA RMACH(3) / 0577777777777777777776B / C C MACHINE CONSTANTS FOR THE PRIME 400. C C DATA MCHEPS(1) / :10000000153 / C DATA MINMAG(1) / :10000000000 / C DATA MAXMAG(1) / :17777777777 / C C MACHINE CONSTANTS FOR THE VAX-11. C C DATA MCHEPS(1) / 13568 / C DATA MINMAG(1) / 128 / C DATA MAXMAG(1) / -32769 / C SPMPAR = RMACH(I) RETURN C C LAST CARD OF FUNCTION SPMPAR. C END .