summarylogtreecommitdiffstats
path: root/slatec.patch
diff options
context:
space:
mode:
Diffstat (limited to 'slatec.patch')
-rw-r--r--slatec.patch2188
1 files changed, 2188 insertions, 0 deletions
diff --git a/slatec.patch b/slatec.patch
new file mode 100644
index 00000000000..d3de2553fd1
--- /dev/null
+++ b/slatec.patch
@@ -0,0 +1,2188 @@
+--- src/d1mach.f
++++ src/d1mach.f
+@@ -67,436 +67,189 @@
+ C 920625 Added CONVEX -p8 and -pd8 compiler option constants.
+ C (BKS, WRB)
+ C 930201 Added DEC Alpha and SGI constants. (RWC and WRB)
++C 150501 Replaced with alternative implementation from BLAS.
+ C***END PROLOGUE D1MACH
+ C
++ INTEGER SMALL(2)
++ INTEGER LARGE(2)
++ INTEGER RIGHT(2)
++ INTEGER DIVER(2)
++ INTEGER LOG10(2)
++ INTEGER SC, CRAY1(38), J
++ COMMON /D9MACH/ CRAY1
++ SAVE SMALL, LARGE, RIGHT, DIVER, LOG10, SC
+- INTEGER SMALL(4)
+- INTEGER LARGE(4)
+- INTEGER RIGHT(4)
+- INTEGER DIVER(4)
+- INTEGER LOG10(4)
+-C
+ DOUBLE PRECISION DMACH(5)
+- SAVE DMACH
+-C
+ EQUIVALENCE (DMACH(1),SMALL(1))
+ EQUIVALENCE (DMACH(2),LARGE(1))
+ EQUIVALENCE (DMACH(3),RIGHT(1))
+ EQUIVALENCE (DMACH(4),DIVER(1))
+ EQUIVALENCE (DMACH(5),LOG10(1))
++C THIS VERSION ADAPTS AUTOMATICALLY TO MOST CURRENT MACHINES.
++C R1MACH CAN HANDLE AUTO-DOUBLE COMPILING, BUT THIS VERSION OF
++C D1MACH DOES NOT, BECAUSE WE DO NOT HAVE QUAD CONSTANTS FOR
++C MANY MACHINES YET.
++C TO COMPILE ON OLDER MACHINES, ADD A C IN COLUMN 1
++C ON THE NEXT LINE
++ DATA SC/0/
++C AND REMOVE THE C FROM COLUMN 1 IN ONE OF THE SECTIONS BELOW.
++C CONSTANTS FOR EVEN OLDER MACHINES CAN BE OBTAINED BY
++C mail netlib@research.bell-labs.com
++C send old1mach from blas
++C PLEASE SEND CORRECTIONS TO dmg OR ehg@bell-labs.com.
++C
++C MACHINE CONSTANTS FOR THE HONEYWELL DPS 8/70 SERIES.
++C DATA SMALL(1),SMALL(2) / O402400000000, O000000000000 /
++C DATA LARGE(1),LARGE(2) / O376777777777, O777777777777 /
++C DATA RIGHT(1),RIGHT(2) / O604400000000, O000000000000 /
++C DATA DIVER(1),DIVER(2) / O606400000000, O000000000000 /
++C DATA LOG10(1),LOG10(2) / O776464202324, O117571775714 /, SC/987/
++C
++C MACHINE CONSTANTS FOR PDP-11 FORTRANS SUPPORTING
++C 32-BIT INTEGERS.
++C DATA SMALL(1),SMALL(2) / 8388608, 0 /
++C DATA LARGE(1),LARGE(2) / 2147483647, -1 /
++C DATA RIGHT(1),RIGHT(2) / 612368384, 0 /
++C DATA DIVER(1),DIVER(2) / 620756992, 0 /
++C DATA LOG10(1),LOG10(2) / 1067065498, -2063872008 /, SC/987/
++C
++C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES.
++C DATA SMALL(1),SMALL(2) / O000040000000, O000000000000 /
++C DATA LARGE(1),LARGE(2) / O377777777777, O777777777777 /
++C DATA RIGHT(1),RIGHT(2) / O170540000000, O000000000000 /
++C DATA DIVER(1),DIVER(2) / O170640000000, O000000000000 /
++C DATA LOG10(1),LOG10(2) / O177746420232, O411757177572 /, SC/987/
++C
++C ON FIRST CALL, IF NO DATA UNCOMMENTED, TEST MACHINE TYPES.
++ IF (SC .NE. 987) THEN
++ DMACH(1) = 1.D13
++ IF ( SMALL(1) .EQ. 1117925532
++ * .AND. SMALL(2) .EQ. -448790528) THEN
++* *** IEEE BIG ENDIAN ***
++ SMALL(1) = 1048576
++ SMALL(2) = 0
++ LARGE(1) = 2146435071
++ LARGE(2) = -1
++ RIGHT(1) = 1017118720
++ RIGHT(2) = 0
++ DIVER(1) = 1018167296
++ DIVER(2) = 0
++ LOG10(1) = 1070810131
++ LOG10(2) = 1352628735
++ ELSE IF ( SMALL(2) .EQ. 1117925532
++ * .AND. SMALL(1) .EQ. -448790528) THEN
++* *** IEEE LITTLE ENDIAN ***
++ SMALL(2) = 1048576
++ SMALL(1) = 0
++ LARGE(2) = 2146435071
++ LARGE(1) = -1
++ RIGHT(2) = 1017118720
++ RIGHT(1) = 0
++ DIVER(2) = 1018167296
++ DIVER(1) = 0
++ LOG10(2) = 1070810131
++ LOG10(1) = 1352628735
++ ELSE IF ( SMALL(1) .EQ. -2065213935
++ * .AND. SMALL(2) .EQ. 10752) THEN
++* *** VAX WITH D_FLOATING ***
++ SMALL(1) = 128
++ SMALL(2) = 0
++ LARGE(1) = -32769
++ LARGE(2) = -1
++ RIGHT(1) = 9344
++ RIGHT(2) = 0
++ DIVER(1) = 9472
++ DIVER(2) = 0
++ LOG10(1) = 546979738
++ LOG10(2) = -805796613
++ ELSE IF ( SMALL(1) .EQ. 1267827943
++ * .AND. SMALL(2) .EQ. 704643072) THEN
++* *** IBM MAINFRAME ***
++ SMALL(1) = 1048576
++ SMALL(2) = 0
++ LARGE(1) = 2147483647
++ LARGE(2) = -1
++ RIGHT(1) = 856686592
++ RIGHT(2) = 0
++ DIVER(1) = 873463808
++ DIVER(2) = 0
++ LOG10(1) = 1091781651
++ LOG10(2) = 1352628735
++ ELSE IF ( SMALL(1) .EQ. 1120022684
++ * .AND. SMALL(2) .EQ. -448790528) THEN
++* *** CONVEX C-1 ***
++ SMALL(1) = 1048576
++ SMALL(2) = 0
++ LARGE(1) = 2147483647
++ LARGE(2) = -1
++ RIGHT(1) = 1019215872
++ RIGHT(2) = 0
++ DIVER(1) = 1020264448
++ DIVER(2) = 0
++ LOG10(1) = 1072907283
++ LOG10(2) = 1352628735
++ ELSE IF ( SMALL(1) .EQ. 815547074
++ * .AND. SMALL(2) .EQ. 58688) THEN
++* *** VAX G-FLOATING ***
++ SMALL(1) = 16
++ SMALL(2) = 0
++ LARGE(1) = -32769
++ LARGE(2) = -1
++ RIGHT(1) = 15552
++ RIGHT(2) = 0
++ DIVER(1) = 15568
++ DIVER(2) = 0
++ LOG10(1) = 1142112243
++ LOG10(2) = 2046775455
++ ELSE
++ DMACH(2) = 1.D27 + 1
++ DMACH(3) = 1.D27
++ LARGE(2) = LARGE(2) - RIGHT(2)
++ IF (LARGE(2) .EQ. 64 .AND. SMALL(2) .EQ. 0) THEN
++ CRAY1(1) = 67291416
++ DO 10 J = 1, 20
++ CRAY1(J+1) = CRAY1(J) + CRAY1(J)
++ 10 CONTINUE
++ CRAY1(22) = CRAY1(21) + 321322
++ DO 20 J = 22, 37
++ CRAY1(J+1) = CRAY1(J) + CRAY1(J)
++ 20 CONTINUE
++ IF (CRAY1(38) .EQ. SMALL(1)) THEN
++* *** CRAY ***
++ CALL I1MCRY(SMALL(1), J, 8285, 8388608, 0)
++ SMALL(2) = 0
++ CALL I1MCRY(LARGE(1), J, 24574, 16777215, 16777215)
++ CALL I1MCRY(LARGE(2), J, 0, 16777215, 16777214)
++ CALL I1MCRY(RIGHT(1), J, 16291, 8388608, 0)
++ RIGHT(2) = 0
++ CALL I1MCRY(DIVER(1), J, 16292, 8388608, 0)
++ DIVER(2) = 0
++ CALL I1MCRY(LOG10(1), J, 16383, 10100890, 8715215)
++ CALL I1MCRY(LOG10(2), J, 0, 16226447, 9001388)
++ ELSE
++ WRITE(*,9000)
++ STOP 779
++ END IF
++ ELSE
++ WRITE(*,9000)
++ STOP 779
++ END IF
++ END IF
++ SC = 987
++ END IF
++* SANITY CHECK
++ IF (DMACH(4) .GE. 1.0D0) STOP 778
++ IF (I .LT. 1 .OR. I .GT. 5) THEN
++ WRITE(*,*) 'D1MACH(I): I =',I,' is out of bounds.'
++ STOP
++ END IF
+-C
+-C MACHINE CONSTANTS FOR THE AMIGA
+-C ABSOFT FORTRAN COMPILER USING THE 68020/68881 COMPILER OPTION
+-C
+-C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
+-C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
+-C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
+-C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
+-C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE AMIGA
+-C ABSOFT FORTRAN COMPILER USING SOFTWARE FLOATING POINT
+-C
+-C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
+-C DATA LARGE(1), LARGE(2) / Z'7FDFFFFF', Z'FFFFFFFF' /
+-C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
+-C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
+-C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE APOLLO
+-C
+-C DATA SMALL(1), SMALL(2) / 16#00100000, 16#00000000 /
+-C DATA LARGE(1), LARGE(2) / 16#7FFFFFFF, 16#FFFFFFFF /
+-C DATA RIGHT(1), RIGHT(2) / 16#3CA00000, 16#00000000 /
+-C DATA DIVER(1), DIVER(2) / 16#3CB00000, 16#00000000 /
+-C DATA LOG10(1), LOG10(2) / 16#3FD34413, 16#509F79FF /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM
+-C
+-C DATA SMALL(1) / ZC00800000 /
+-C DATA SMALL(2) / Z000000000 /
+-C DATA LARGE(1) / ZDFFFFFFFF /
+-C DATA LARGE(2) / ZFFFFFFFFF /
+-C DATA RIGHT(1) / ZCC5800000 /
+-C DATA RIGHT(2) / Z000000000 /
+-C DATA DIVER(1) / ZCC6800000 /
+-C DATA DIVER(2) / Z000000000 /
+-C DATA LOG10(1) / ZD00E730E7 /
+-C DATA LOG10(2) / ZC77800DC0 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM
+-C
+-C DATA SMALL(1) / O1771000000000000 /
+-C DATA SMALL(2) / O0000000000000000 /
+-C DATA LARGE(1) / O0777777777777777 /
+-C DATA LARGE(2) / O0007777777777777 /
+-C DATA RIGHT(1) / O1461000000000000 /
+-C DATA RIGHT(2) / O0000000000000000 /
+-C DATA DIVER(1) / O1451000000000000 /
+-C DATA DIVER(2) / O0000000000000000 /
+-C DATA LOG10(1) / O1157163034761674 /
+-C DATA LOG10(2) / O0006677466732724 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS
+-C
+-C DATA SMALL(1) / O1771000000000000 /
+-C DATA SMALL(2) / O7770000000000000 /
+-C DATA LARGE(1) / O0777777777777777 /
+-C DATA LARGE(2) / O7777777777777777 /
+-C DATA RIGHT(1) / O1461000000000000 /
+-C DATA RIGHT(2) / O0000000000000000 /
+-C DATA DIVER(1) / O1451000000000000 /
+-C DATA DIVER(2) / O0000000000000000 /
+-C DATA LOG10(1) / O1157163034761674 /
+-C DATA LOG10(2) / O0006677466732724 /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE
+-C
+-C DATA SMALL(1) / Z"3001800000000000" /
+-C DATA SMALL(2) / Z"3001000000000000" /
+-C DATA LARGE(1) / Z"4FFEFFFFFFFFFFFE" /
+-C DATA LARGE(2) / Z"4FFE000000000000" /
+-C DATA RIGHT(1) / Z"3FD2800000000000" /
+-C DATA RIGHT(2) / Z"3FD2000000000000" /
+-C DATA DIVER(1) / Z"3FD3800000000000" /
+-C DATA DIVER(2) / Z"3FD3000000000000" /
+-C DATA LOG10(1) / Z"3FFF9A209A84FBCF" /
+-C DATA LOG10(2) / Z"3FFFF7988F8959AC" /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES
+-C
+-C DATA SMALL(1) / 00564000000000000000B /
+-C DATA SMALL(2) / 00000000000000000000B /
+-C DATA LARGE(1) / 37757777777777777777B /
+-C DATA LARGE(2) / 37157777777777777777B /
+-C DATA RIGHT(1) / 15624000000000000000B /
+-C DATA RIGHT(2) / 00000000000000000000B /
+-C DATA DIVER(1) / 15634000000000000000B /
+-C DATA DIVER(2) / 00000000000000000000B /
+-C DATA LOG10(1) / 17164642023241175717B /
+-C DATA LOG10(2) / 16367571421742254654B /
+-C
+-C MACHINE CONSTANTS FOR THE CELERITY C1260
+-C
+-C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
+-C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
+-C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
+-C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
+-C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fn OR -pd8 COMPILER OPTION
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FFFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CC0000000000000' /
+-C DATA DMACH(4) / Z'3CD0000000000000' /
+-C DATA DMACH(5) / Z'3FF34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fi COMPILER OPTION
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CA0000000000000' /
+-C DATA DMACH(4) / Z'3CB0000000000000' /
+-C DATA DMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -p8 COMPILER OPTION
+-C
+-C DATA DMACH(1) / Z'00010000000000000000000000000000' /
+-C DATA DMACH(2) / Z'7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3F900000000000000000000000000000' /
+-C DATA DMACH(4) / Z'3F910000000000000000000000000000' /
+-C DATA DMACH(5) / Z'3FFF34413509F79FEF311F12B35816F9' /
+-C
+-C MACHINE CONSTANTS FOR THE CRAY
+-C
+-C DATA SMALL(1) / 201354000000000000000B /
+-C DATA SMALL(2) / 000000000000000000000B /
+-C DATA LARGE(1) / 577767777777777777777B /
+-C DATA LARGE(2) / 000007777777777777774B /
+-C DATA RIGHT(1) / 376434000000000000000B /
+-C DATA RIGHT(2) / 000000000000000000000B /
+-C DATA DIVER(1) / 376444000000000000000B /
+-C DATA DIVER(2) / 000000000000000000000B /
+-C DATA LOG10(1) / 377774642023241175717B /
+-C DATA LOG10(2) / 000007571421742254654B /
+-C
+-C MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200
+-C NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD -
+-C STATIC DMACH(5)
+-C
+-C DATA SMALL / 20K, 3*0 /
+-C DATA LARGE / 77777K, 3*177777K /
+-C DATA RIGHT / 31420K, 3*0 /
+-C DATA DIVER / 32020K, 3*0 /
+-C DATA LOG10 / 40423K, 42023K, 50237K, 74776K /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING G_FLOAT
+-C
+-C DATA DMACH(1) / '0000000000000010'X /
+-C DATA DMACH(2) / 'FFFFFFFFFFFF7FFF'X /
+-C DATA DMACH(3) / '0000000000003CC0'X /
+-C DATA DMACH(4) / '0000000000003CD0'X /
+-C DATA DMACH(5) / '79FF509F44133FF3'X /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING IEEE_FORMAT
+-C
+-C DATA DMACH(1) / '0010000000000000'X /
+-C DATA DMACH(2) / '7FEFFFFFFFFFFFFF'X /
+-C DATA DMACH(3) / '3CA0000000000000'X /
+-C DATA DMACH(4) / '3CB0000000000000'X /
+-C DATA DMACH(5) / '3FD34413509F79FF'X /
+-C
+-C MACHINE CONSTANTS FOR THE DEC RISC
+-C
+-C DATA SMALL(1), SMALL(2) / Z'00000000', Z'00100000'/
+-C DATA LARGE(1), LARGE(2) / Z'FFFFFFFF', Z'7FEFFFFF'/
+-C DATA RIGHT(1), RIGHT(2) / Z'00000000', Z'3CA00000'/
+-C DATA DIVER(1), DIVER(2) / Z'00000000', Z'3CB00000'/
+-C DATA LOG10(1), LOG10(2) / Z'509F79FF', Z'3FD34413'/
+-C
+-C MACHINE CONSTANTS FOR THE DEC VAX
+-C USING D_FLOATING
+-C (EXPRESSED IN INTEGER AND HEXADECIMAL)
+-C THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS
+-C THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS
+-C
+-C DATA SMALL(1), SMALL(2) / 128, 0 /
+-C DATA LARGE(1), LARGE(2) / -32769, -1 /
+-C DATA RIGHT(1), RIGHT(2) / 9344, 0 /
+-C DATA DIVER(1), DIVER(2) / 9472, 0 /
+-C DATA LOG10(1), LOG10(2) / 546979738, -805796613 /
+-C
+-C DATA SMALL(1), SMALL(2) / Z00000080, Z00000000 /
+-C DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF /
+-C DATA RIGHT(1), RIGHT(2) / Z00002480, Z00000000 /
+-C DATA DIVER(1), DIVER(2) / Z00002500, Z00000000 /
+-C DATA LOG10(1), LOG10(2) / Z209A3F9A, ZCFF884FB /
+-C
+-C MACHINE CONSTANTS FOR THE DEC VAX
+-C USING G_FLOATING
+-C (EXPRESSED IN INTEGER AND HEXADECIMAL)
+-C THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS
+-C THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS
+-C
+-C DATA SMALL(1), SMALL(2) / 16, 0 /
+-C DATA LARGE(1), LARGE(2) / -32769, -1 /
+-C DATA RIGHT(1), RIGHT(2) / 15552, 0 /
+-C DATA DIVER(1), DIVER(2) / 15568, 0 /
+-C DATA LOG10(1), LOG10(2) / 1142112243, 2046775455 /
+-C
+-C DATA SMALL(1), SMALL(2) / Z00000010, Z00000000 /
+-C DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF /
+-C DATA RIGHT(1), RIGHT(2) / Z00003CC0, Z00000000 /
+-C DATA DIVER(1), DIVER(2) / Z00003CD0, Z00000000 /
+-C DATA LOG10(1), LOG10(2) / Z44133FF3, Z79FF509F /
+-C
+-C MACHINE CONSTANTS FOR THE ELXSI 6400
+-C (ASSUMING REAL*8 IS THE DEFAULT DOUBLE PRECISION)
+-C
+-C DATA SMALL(1), SMALL(2) / '00100000'X,'00000000'X /
+-C DATA LARGE(1), LARGE(2) / '7FEFFFFF'X,'FFFFFFFF'X /
+-C DATA RIGHT(1), RIGHT(2) / '3CB00000'X,'00000000'X /
+-C DATA DIVER(1), DIVER(2) / '3CC00000'X,'00000000'X /
+-C DATA LOG10(1), LOG10(2) / '3FD34413'X,'509F79FF'X /
+-C
+-C MACHINE CONSTANTS FOR THE HARRIS 220
+-C
+-C DATA SMALL(1), SMALL(2) / '20000000, '00000201 /
+-C DATA LARGE(1), LARGE(2) / '37777777, '37777577 /
+-C DATA RIGHT(1), RIGHT(2) / '20000000, '00000333 /
+-C DATA DIVER(1), DIVER(2) / '20000000, '00000334 /
+-C DATA LOG10(1), LOG10(2) / '23210115, '10237777 /
+-C
+-C MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES
+-C
+-C DATA SMALL(1), SMALL(2) / O402400000000, O000000000000 /
+-C DATA LARGE(1), LARGE(2) / O376777777777, O777777777777 /
+-C DATA RIGHT(1), RIGHT(2) / O604400000000, O000000000000 /
+-C DATA DIVER(1), DIVER(2) / O606400000000, O000000000000 /
+-C DATA LOG10(1), LOG10(2) / O776464202324, O117571775714 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 730
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CA0000000000000' /
+-C DATA DMACH(4) / Z'3CB0000000000000' /
+-C DATA DMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C THREE WORD DOUBLE PRECISION OPTION WITH FTN4
+-C
+-C DATA SMALL(1), SMALL(2), SMALL(3) / 40000B, 0, 1 /
+-C DATA LARGE(1), LARGE(2), LARGE(3) / 77777B, 177777B, 177776B /
+-C DATA RIGHT(1), RIGHT(2), RIGHT(3) / 40000B, 0, 265B /
+-C DATA DIVER(1), DIVER(2), DIVER(3) / 40000B, 0, 276B /
+-C DATA LOG10(1), LOG10(2), LOG10(3) / 46420B, 46502B, 77777B /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C FOUR WORD DOUBLE PRECISION OPTION WITH FTN4
+-C
+-C DATA SMALL(1), SMALL(2) / 40000B, 0 /
+-C DATA SMALL(3), SMALL(4) / 0, 1 /
+-C DATA LARGE(1), LARGE(2) / 77777B, 177777B /
+-C DATA LARGE(3), LARGE(4) / 177777B, 177776B /
+-C DATA RIGHT(1), RIGHT(2) / 40000B, 0 /
+-C DATA RIGHT(3), RIGHT(4) / 0, 225B /
+-C DATA DIVER(1), DIVER(2) / 40000B, 0 /
+-C DATA DIVER(3), DIVER(4) / 0, 227B /
+-C DATA LOG10(1), LOG10(2) / 46420B, 46502B /
+-C DATA LOG10(3), LOG10(4) / 76747B, 176377B /
+-C
+-C MACHINE CONSTANTS FOR THE HP 9000
+-C
+-C DATA SMALL(1), SMALL(2) / 00040000000B, 00000000000B /
+-C DATA LARGE(1), LARGE(2) / 17737777777B, 37777777777B /
+-C DATA RIGHT(1), RIGHT(2) / 07454000000B, 00000000000B /
+-C DATA DIVER(1), DIVER(2) / 07460000000B, 00000000000B /
+-C DATA LOG10(1), LOG10(2) / 07764642023B, 12047674777B /
+-C
+-C MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
+-C THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND
+-C THE PERKIN ELMER (INTERDATA) 7/32.
+-C
+-C DATA SMALL(1), SMALL(2) / Z00100000, Z00000000 /
+-C DATA LARGE(1), LARGE(2) / Z7FFFFFFF, ZFFFFFFFF /
+-C DATA RIGHT(1), RIGHT(2) / Z33100000, Z00000000 /
+-C DATA DIVER(1), DIVER(2) / Z34100000, Z00000000 /
+-C DATA LOG10(1), LOG10(2) / Z41134413, Z509F79FF /
+-C
+-C MACHINE CONSTANTS FOR THE IBM PC
+-C ASSUMES THAT ALL ARITHMETIC IS DONE IN DOUBLE PRECISION
+-C ON 8088, I.E., NOT IN 80 BIT FORM FOR THE 8087.
+-C
+-C DATA SMALL(1) / 2.23D-308 /
+-C DATA LARGE(1) / 1.79D+308 /
+-C DATA RIGHT(1) / 1.11D-16 /
+-C DATA DIVER(1) / 2.22D-16 /
+-C DATA LOG10(1) / 0.301029995663981195D0 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM RS 6000
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CA0000000000000' /
+-C DATA DMACH(4) / Z'3CB0000000000000' /
+-C DATA DMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE INTEL i860
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CA0000000000000' /
+-C DATA DMACH(4) / Z'3CB0000000000000' /
+-C DATA DMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR)
+-C
+-C DATA SMALL(1), SMALL(2) / "033400000000, "000000000000 /
+-C DATA LARGE(1), LARGE(2) / "377777777777, "344777777777 /
+-C DATA RIGHT(1), RIGHT(2) / "113400000000, "000000000000 /
+-C DATA DIVER(1), DIVER(2) / "114400000000, "000000000000 /
+-C DATA LOG10(1), LOG10(2) / "177464202324, "144117571776 /
+-C
+-C MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR)
+-C
+-C DATA SMALL(1), SMALL(2) / "000400000000, "000000000000 /
+-C DATA LARGE(1), LARGE(2) / "377777777777, "377777777777 /
+-C DATA RIGHT(1), RIGHT(2) / "103400000000, "000000000000 /
+-C DATA DIVER(1), DIVER(2) / "104400000000, "000000000000 /
+-C DATA LOG10(1), LOG10(2) / "177464202324, "476747767461 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+-C 32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
+-C
+-C DATA SMALL(1), SMALL(2) / 8388608, 0 /
+-C DATA LARGE(1), LARGE(2) / 2147483647, -1 /
+-C DATA RIGHT(1), RIGHT(2) / 612368384, 0 /
+-C DATA DIVER(1), DIVER(2) / 620756992, 0 /
+-C DATA LOG10(1), LOG10(2) / 1067065498, -2063872008 /
+-C
+-C DATA SMALL(1), SMALL(2) / O00040000000, O00000000000 /
+-C DATA LARGE(1), LARGE(2) / O17777777777, O37777777777 /
+-C DATA RIGHT(1), RIGHT(2) / O04440000000, O00000000000 /
+-C DATA DIVER(1), DIVER(2) / O04500000000, O00000000000 /
+-C DATA LOG10(1), LOG10(2) / O07746420232, O20476747770 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+-C 16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
+-C
+-C DATA SMALL(1), SMALL(2) / 128, 0 /
+-C DATA SMALL(3), SMALL(4) / 0, 0 /
+-C DATA LARGE(1), LARGE(2) / 32767, -1 /
+-C DATA LARGE(3), LARGE(4) / -1, -1 /
+-C DATA RIGHT(1), RIGHT(2) / 9344, 0 /
+-C DATA RIGHT(3), RIGHT(4) / 0, 0 /
+-C DATA DIVER(1), DIVER(2) / 9472, 0 /
+-C DATA DIVER(3), DIVER(4) / 0, 0 /
+-C DATA LOG10(1), LOG10(2) / 16282, 8346 /
+-C DATA LOG10(3), LOG10(4) / -31493, -12296 /
+-C
+-C DATA SMALL(1), SMALL(2) / O000200, O000000 /
+-C DATA SMALL(3), SMALL(4) / O000000, O000000 /
+-C DATA LARGE(1), LARGE(2) / O077777, O177777 /
+-C DATA LARGE(3), LARGE(4) / O177777, O177777 /
+-C DATA RIGHT(1), RIGHT(2) / O022200, O000000 /
+-C DATA RIGHT(3), RIGHT(4) / O000000, O000000 /
+-C DATA DIVER(1), DIVER(2) / O022400, O000000 /
+-C DATA DIVER(3), DIVER(4) / O000000, O000000 /
+-C DATA LOG10(1), LOG10(2) / O037632, O020232 /
+-C DATA LOG10(3), LOG10(4) / O102373, O147770 /
+-C
+-C MACHINE CONSTANTS FOR THE SILICON GRAPHICS
+-C
+-C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
+-C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
+-C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
+-C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
+-C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C
+-C DATA DMACH(1) / Z'0010000000000000' /
+-C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3CA0000000000000' /
+-C DATA DMACH(4) / Z'3CB0000000000000' /
+-C DATA DMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C USING THE -r8 COMPILER OPTION
+-C
+-C DATA DMACH(1) / Z'00010000000000000000000000000000' /
+-C DATA DMACH(2) / Z'7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF' /
+-C DATA DMACH(3) / Z'3F8E0000000000000000000000000000' /
+-C DATA DMACH(4) / Z'3F8F0000000000000000000000000000' /
+-C DATA DMACH(5) / Z'3FFD34413509F79FEF311F12B35816F9' /
+-C
+-C MACHINE CONSTANTS FOR THE SUN 386i
+-C
+-C DATA SMALL(1), SMALL(2) / Z'FFFFFFFD', Z'000FFFFF' /
+-C DATA LARGE(1), LARGE(2) / Z'FFFFFFB0', Z'7FEFFFFF' /
+-C DATA RIGHT(1), RIGHT(2) / Z'000000B0', Z'3CA00000' /
+-C DATA DIVER(1), DIVER(2) / Z'FFFFFFCB', Z'3CAFFFFF'
+-C DATA LOG10(1), LOG10(2) / Z'509F79E9', Z'3FD34413' /
+-C
+-C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER
+-C
+-C DATA SMALL(1), SMALL(2) / O000040000000, O000000000000 /
+-C DATA LARGE(1), LARGE(2) / O377777777777, O777777777777 /
+-C DATA RIGHT(1), RIGHT(2) / O170540000000, O000000000000 /
+-C DATA DIVER(1), DIVER(2) / O170640000000, O000000000000 /
+-C DATA LOG10(1), LOG10(2) / O177746420232, O411757177572 /
+-C
+-C***FIRST EXECUTABLE STATEMENT D1MACH
+- IF (I .LT. 1 .OR. I .GT. 5) CALL XERMSG ('SLATEC', 'D1MACH',
+- + 'I OUT OF BOUNDS', 1, 2)
+-C
+ D1MACH = DMACH(I)
+ RETURN
++ 9000 FORMAT(/' Adjust D1MACH by uncommenting data statements'/
++ *' appropriate for your machine.')
++ END
++ SUBROUTINE I1MCRY(A, A1, B, C, D)
++**** SPECIAL COMPUTATION FOR OLD CRAY MACHINES ****
++ INTEGER A, A1, B, C, D
++ A1 = 16777216*B + C
++ A = 16777216*A1 + D
+-C
+ END
+--- src/i1mach.f
++++ src/i1mach.f
+@@ -88,801 +88,242 @@
+ C 930201 Added DEC Alpha and SGI constants. (RWC and WRB)
+ C 930618 Corrected I1MACH(5) for Convex -p8 and -pd8 compiler
+ C options. (DWL, RWC and WRB).
++C 150501 Replaced with alternative implementation from BLAS.
+ C***END PROLOGUE I1MACH
+ C
++ INTEGER IMACH(16), OUTPUT, SC, SMALL(2)
++ SAVE IMACH, SC
++ REAL RMACH
++ EQUIVALENCE (IMACH(4),OUTPUT), (RMACH,SMALL(1))
++ INTEGER I3, J, K, T3E(3)
++ DATA T3E(1) / 9777664 /
++ DATA T3E(2) / 5323660 /
++ DATA T3E(3) / 46980 /
++C THIS VERSION ADAPTS AUTOMATICALLY TO MOST CURRENT MACHINES,
++C INCLUDING AUTO-DOUBLE COMPILERS.
++C TO COMPILE ON OLDER MACHINES, ADD A C IN COLUMN 1
++C ON THE NEXT LINE
++ DATA SC/0/
++C AND REMOVE THE C FROM COLUMN 1 IN ONE OF THE SECTIONS BELOW.
++C CONSTANTS FOR EVEN OLDER MACHINES CAN BE OBTAINED BY
++C mail netlib@research.bell-labs.com
++C send old1mach from blas
++C PLEASE SEND CORRECTIONS TO dmg OR ehg@bell-labs.com.
++C
++C MACHINE CONSTANTS FOR THE HONEYWELL DPS 8/70 SERIES.
++C
++C DATA IMACH( 1) / 5 /
++C DATA IMACH( 2) / 6 /
++C DATA IMACH( 3) / 43 /
++C DATA IMACH( 4) / 6 /
++C DATA IMACH( 5) / 36 /
++C DATA IMACH( 6) / 4 /
++C DATA IMACH( 7) / 2 /
++C DATA IMACH( 8) / 35 /
++C DATA IMACH( 9) / O377777777777 /
++C DATA IMACH(10) / 2 /
++C DATA IMACH(11) / 27 /
++C DATA IMACH(12) / -127 /
++C DATA IMACH(13) / 127 /
++C DATA IMACH(14) / 63 /
++C DATA IMACH(15) / -127 /
++C DATA IMACH(16) / 127 /, SC/987/
++C
++C MACHINE CONSTANTS FOR PDP-11 FORTRANS SUPPORTING
+- INTEGER IMACH(16),OUTPUT
+- SAVE IMACH
+- EQUIVALENCE (IMACH(4),OUTPUT)
+-C
+-C MACHINE CONSTANTS FOR THE AMIGA
+-C ABSOFT COMPILER
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -126 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1022 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE APOLLO
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 129 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1025 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM
+-C
+-C DATA IMACH( 1) / 7 /
+-C DATA IMACH( 2) / 2 /
+-C DATA IMACH( 3) / 2 /
+-C DATA IMACH( 4) / 2 /
+-C DATA IMACH( 5) / 36 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 33 /
+-C DATA IMACH( 9) / Z1FFFFFFFF /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -256 /
+-C DATA IMACH(13) / 255 /
+-C DATA IMACH(14) / 60 /
+-C DATA IMACH(15) / -256 /
+-C DATA IMACH(16) / 255 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 48 /
+-C DATA IMACH( 6) / 6 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 39 /
+-C DATA IMACH( 9) / O0007777777777777 /
+-C DATA IMACH(10) / 8 /
+-C DATA IMACH(11) / 13 /
+-C DATA IMACH(12) / -50 /
+-C DATA IMACH(13) / 76 /
+-C DATA IMACH(14) / 26 /
+-C DATA IMACH(15) / -50 /
+-C DATA IMACH(16) / 76 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 48 /
+-C DATA IMACH( 6) / 6 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 39 /
+-C DATA IMACH( 9) / O0007777777777777 /
+-C DATA IMACH(10) / 8 /
+-C DATA IMACH(11) / 13 /
+-C DATA IMACH(12) / -50 /
+-C DATA IMACH(13) / 76 /
+-C DATA IMACH(14) / 26 /
+-C DATA IMACH(15) / -32754 /
+-C DATA IMACH(16) / 32780 /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 64 /
+-C DATA IMACH( 6) / 8 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 63 /
+-C DATA IMACH( 9) / 9223372036854775807 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 47 /
+-C DATA IMACH(12) / -4095 /
+-C DATA IMACH(13) / 4094 /
+-C DATA IMACH(14) / 94 /
+-C DATA IMACH(15) / -4095 /
+-C DATA IMACH(16) / 4094 /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6LOUTPUT/
+-C DATA IMACH( 5) / 60 /
+-C DATA IMACH( 6) / 10 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 48 /
+-C DATA IMACH( 9) / 00007777777777777777B /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 47 /
+-C DATA IMACH(12) / -929 /
+-C DATA IMACH(13) / 1070 /
+-C DATA IMACH(14) / 94 /
+-C DATA IMACH(15) / -929 /
+-C DATA IMACH(16) / 1069 /
+-C
+-C MACHINE CONSTANTS FOR THE CELERITY C1260
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 0 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / Z'7FFFFFFF' /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -126 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1022 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fn COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1023 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fi COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -p8 COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 64 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 63 /
+-C DATA IMACH( 9) / 9223372036854775807 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 53 /
+-C DATA IMACH(12) / -1023 /
+-C DATA IMACH(13) / 1023 /
+-C DATA IMACH(14) / 113 /
+-C DATA IMACH(15) / -16383 /
+-C DATA IMACH(16) / 16383 /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -pd8 COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 64 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 63 /
+-C DATA IMACH( 9) / 9223372036854775807 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 53 /
+-C DATA IMACH(12) / -1023 /
+-C DATA IMACH(13) / 1023 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1023 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE CRAY
+-C USING THE 46 BIT INTEGER COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 100 /
+-C DATA IMACH( 2) / 101 /
+-C DATA IMACH( 3) / 102 /
+-C DATA IMACH( 4) / 101 /
+-C DATA IMACH( 5) / 64 /
+-C DATA IMACH( 6) / 8 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 46 /
+-C DATA IMACH( 9) / 1777777777777777B /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 47 /
+-C DATA IMACH(12) / -8189 /
+-C DATA IMACH(13) / 8190 /
+-C DATA IMACH(14) / 94 /
+-C DATA IMACH(15) / -8099 /
+-C DATA IMACH(16) / 8190 /
+-C
+-C MACHINE CONSTANTS FOR THE CRAY
+-C USING THE 64 BIT INTEGER COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 100 /
+-C DATA IMACH( 2) / 101 /
+-C DATA IMACH( 3) / 102 /
+-C DATA IMACH( 4) / 101 /
+-C DATA IMACH( 5) / 64 /
+-C DATA IMACH( 6) / 8 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 63 /
+-C DATA IMACH( 9) / 777777777777777777777B /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 47 /
+-C DATA IMACH(12) / -8189 /
+-C DATA IMACH(13) / 8190 /
+-C DATA IMACH(14) / 94 /
+-C DATA IMACH(15) / -8099 /
+-C DATA IMACH(16) / 8190 /
+-C
+-C MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200
+-C
+-C DATA IMACH( 1) / 11 /
+-C DATA IMACH( 2) / 12 /
+-C DATA IMACH( 3) / 8 /
+-C DATA IMACH( 4) / 10 /
+-C DATA IMACH( 5) / 16 /
+-C DATA IMACH( 6) / 2 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 15 /
+-C DATA IMACH( 9) / 32767 /
+-C DATA IMACH(10) / 16 /
+-C DATA IMACH(11) / 6 /
+-C DATA IMACH(12) / -64 /
+-C DATA IMACH(13) / 63 /
+-C DATA IMACH(14) / 14 /
+-C DATA IMACH(15) / -64 /
+-C DATA IMACH(16) / 63 /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING G_FLOAT
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1023 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING IEEE_FLOAT
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE DEC RISC
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE DEC VAX
+-C USING D_FLOATING
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 56 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE DEC VAX
+-C USING G_FLOATING
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1023 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE ELXSI 6400
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 32 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -126 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1022 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE HARRIS 220
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 0 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 24 /
+-C DATA IMACH( 6) / 3 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 23 /
+-C DATA IMACH( 9) / 8388607 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 23 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 38 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 43 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 36 /
+-C DATA IMACH( 6) / 6 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 35 /
+-C DATA IMACH( 9) / O377777777777 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 27 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 63 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 730
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C 3 WORD DOUBLE PRECISION OPTION WITH FTN4
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 4 /
+-C DATA IMACH( 4) / 1 /
+-C DATA IMACH( 5) / 16 /
+-C DATA IMACH( 6) / 2 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 15 /
+-C DATA IMACH( 9) / 32767 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 23 /
+-C DATA IMACH(12) / -128 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 39 /
+-C DATA IMACH(15) / -128 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C 4 WORD DOUBLE PRECISION OPTION WITH FTN4
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 4 /
+-C DATA IMACH( 4) / 1 /
+-C DATA IMACH( 5) / 16 /
+-C DATA IMACH( 6) / 2 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 15 /
+-C DATA IMACH( 9) / 32767 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 23 /
+-C DATA IMACH(12) / -128 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 55 /
+-C DATA IMACH(15) / -128 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 9000
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 7 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 32 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -126 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1015 /
+-C DATA IMACH(16) / 1017 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
+-C THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND
+-C THE PERKIN ELMER (INTERDATA) 7/32.
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 7 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / Z7FFFFFFF /
+-C DATA IMACH(10) / 16 /
+-C DATA IMACH(11) / 6 /
+-C DATA IMACH(12) / -64 /
+-C DATA IMACH(13) / 63 /
+-C DATA IMACH(14) / 14 /
+-C DATA IMACH(15) / -64 /
+-C DATA IMACH(16) / 63 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM PC
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 0 /
+-C DATA IMACH( 4) / 0 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM RS 6000
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 0 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE INTEL i860
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR)
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 36 /
+-C DATA IMACH( 6) / 5 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 35 /
+-C DATA IMACH( 9) / "377777777777 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 27 /
+-C DATA IMACH(12) / -128 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 54 /
+-C DATA IMACH(15) / -101 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR)
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 36 /
+-C DATA IMACH( 6) / 5 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 35 /
+-C DATA IMACH( 9) / "377777777777 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 27 /
+-C DATA IMACH(12) / -128 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 62 /
+-C DATA IMACH(15) / -128 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+ C 32-BIT INTEGER ARITHMETIC.
+ C
++C DATA IMACH( 1) / 5 /
++C DATA IMACH( 2) / 6 /
++C DATA IMACH( 3) / 7 /
++C DATA IMACH( 4) / 6 /
++C DATA IMACH( 5) / 32 /
++C DATA IMACH( 6) / 4 /
++C DATA IMACH( 7) / 2 /
++C DATA IMACH( 8) / 31 /
++C DATA IMACH( 9) / 2147483647 /
++C DATA IMACH(10) / 2 /
++C DATA IMACH(11) / 24 /
++C DATA IMACH(12) / -127 /
++C DATA IMACH(13) / 127 /
++C DATA IMACH(14) / 56 /
++C DATA IMACH(15) / -127 /
++C DATA IMACH(16) / 127 /, SC/987/
++C
++C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES.
++C
++C NOTE THAT THE PUNCH UNIT, I1MACH(3), HAS BEEN SET TO 7
++C WHICH IS APPROPRIATE FOR THE UNIVAC-FOR SYSTEM.
++C IF YOU HAVE THE UNIVAC-FTN SYSTEM, SET IT TO 1.
++C
++C DATA IMACH( 1) / 5 /
++C DATA IMACH( 2) / 6 /
++C DATA IMACH( 3) / 7 /
++C DATA IMACH( 4) / 6 /
++C DATA IMACH( 5) / 36 /
++C DATA IMACH( 6) / 6 /
++C DATA IMACH( 7) / 2 /
++C DATA IMACH( 8) / 35 /
++C DATA IMACH( 9) / O377777777777 /
++C DATA IMACH(10) / 2 /
++C DATA IMACH(11) / 27 /
++C DATA IMACH(12) / -128 /
++C DATA IMACH(13) / 127 /
++C DATA IMACH(14) / 60 /
++C DATA IMACH(15) /-1024 /
++C DATA IMACH(16) / 1023 /, SC/987/
++C
++ IF (SC .NE. 987) THEN
++* *** CHECK FOR AUTODOUBLE ***
++ SMALL(2) = 0
++ RMACH = 1E13
++ IF (SMALL(2) .NE. 0) THEN
++* *** AUTODOUBLED ***
++ IF ( (SMALL(1) .EQ. 1117925532
++ * .AND. SMALL(2) .EQ. -448790528)
++ * .OR. (SMALL(2) .EQ. 1117925532
++ * .AND. SMALL(1) .EQ. -448790528)) THEN
++* *** IEEE ***
++ IMACH(10) = 2
++ IMACH(14) = 53
++ IMACH(15) = -1021
++ IMACH(16) = 1024
++ ELSE IF ( SMALL(1) .EQ. -2065213935
++ * .AND. SMALL(2) .EQ. 10752) THEN
++* *** VAX WITH D_FLOATING ***
++ IMACH(10) = 2
++ IMACH(14) = 56
++ IMACH(15) = -127
++ IMACH(16) = 127
++ ELSE IF ( SMALL(1) .EQ. 1267827943
++ * .AND. SMALL(2) .EQ. 704643072) THEN
++* *** IBM MAINFRAME ***
++ IMACH(10) = 16
++ IMACH(14) = 14
++ IMACH(15) = -64
++ IMACH(16) = 63
++ ELSE
++ WRITE(*,9010)
++ STOP 777
++ END IF
++ IMACH(11) = IMACH(14)
++ IMACH(12) = IMACH(15)
++ IMACH(13) = IMACH(16)
++ ELSE
++ RMACH = 1234567.
++ IF (SMALL(1) .EQ. 1234613304) THEN
++* *** IEEE ***
++ IMACH(10) = 2
++ IMACH(11) = 24
++ IMACH(12) = -125
++ IMACH(13) = 128
++ IMACH(14) = 53
++ IMACH(15) = -1021
++ IMACH(16) = 1024
++ SC = 987
++ ELSE IF (SMALL(1) .EQ. -1271379306) THEN
++* *** VAX ***
++ IMACH(10) = 2
++ IMACH(11) = 24
++ IMACH(12) = -127
++ IMACH(13) = 127
++ IMACH(14) = 56
++ IMACH(15) = -127
++ IMACH(16) = 127
++ SC = 987
++ ELSE IF (SMALL(1) .EQ. 1175639687) THEN
++* *** IBM MAINFRAME ***
++ IMACH(10) = 16
++ IMACH(11) = 6
++ IMACH(12) = -64
++ IMACH(13) = 63
++ IMACH(14) = 14
++ IMACH(15) = -64
++ IMACH(16) = 63
++ SC = 987
++ ELSE IF (SMALL(1) .EQ. 1251390520) THEN
++* *** CONVEX C-1 ***
++ IMACH(10) = 2
++ IMACH(11) = 24
++ IMACH(12) = -128
++ IMACH(13) = 127
++ IMACH(14) = 53
++ IMACH(15) = -1024
++ IMACH(16) = 1023
++ ELSE
++ DO 10 I3 = 1, 3
++ J = SMALL(1) / 10000000
++ K = SMALL(1) - 10000000*J
++ IF (K .NE. T3E(I3)) GO TO 20
++ SMALL(1) = J
++ 10 CONTINUE
++* *** CRAY T3E ***
++ IMACH( 1) = 5
++ IMACH( 2) = 6
++ IMACH( 3) = 0
++ IMACH( 4) = 0
++ IMACH( 5) = 64
++ IMACH( 6) = 8
++ IMACH( 7) = 2
++ IMACH( 8) = 63
++ CALL I1MCR1(IMACH(9), K, 32767, 16777215, 16777215)
++ IMACH(10) = 2
++ IMACH(11) = 53
++ IMACH(12) = -1021
++ IMACH(13) = 1024
++ IMACH(14) = 53
++ IMACH(15) = -1021
++ IMACH(16) = 1024
++ GO TO 35
++ 20 CALL I1MCR1(J, K, 16405, 9876536, 0)
++ IF (SMALL(1) .NE. J) THEN
++ WRITE(*,9020)
++ STOP 777
++ END IF
++* *** CRAY 1, XMP, 2, AND 3 ***
++ IMACH(1) = 5
++ IMACH(2) = 6
++ IMACH(3) = 102
++ IMACH(4) = 6
++ IMACH(5) = 46
++ IMACH(6) = 8
++ IMACH(7) = 2
++ IMACH(8) = 45
++ CALL I1MCR1(IMACH(9), K, 0, 4194303, 16777215)
++ IMACH(10) = 2
++ IMACH(11) = 47
++ IMACH(12) = -8188
++ IMACH(13) = 8189
++ IMACH(14) = 94
++ IMACH(15) = -8141
++ IMACH(16) = 8189
++ GO TO 35
++ END IF
++ END IF
++ IMACH( 1) = 5
++ IMACH( 2) = 6
++ IMACH( 3) = 7
++ IMACH( 4) = 6
++ IMACH( 5) = 32
++ IMACH( 6) = 4
++ IMACH( 7) = 2
++ IMACH( 8) = 31
++ IMACH( 9) = 2147483647
++ 35 SC = 987
++ END IF
++ 9010 FORMAT(/' Adjust autodoubled I1MACH by uncommenting data'/
++ * ' statements appropriate for your machine and setting'/
++ * ' IMACH(I) = IMACH(I+3) for I = 11, 12, and 13.')
++ 9020 FORMAT(/' Adjust I1MACH by uncommenting data statements'/
++ * ' appropriate for your machine.')
++ IF (I .LT. 1 .OR. I .GT. 16) GO TO 40
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 56 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+-C 16-BIT INTEGER ARITHMETIC.
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 5 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 16 /
+-C DATA IMACH( 6) / 2 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 15 /
+-C DATA IMACH( 9) / 32767 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 56 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C MACHINE CONSTANTS FOR THE SILICON GRAPHICS
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -125 /
+-C DATA IMACH(13) / 128 /
+-C DATA IMACH(14) / 53 /
+-C DATA IMACH(15) / -1021 /
+-C DATA IMACH(16) / 1024 /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C USING THE -r8 COMPILER OPTION
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 6 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 32 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 31 /
+-C DATA IMACH( 9) / 2147483647 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 53 /
+-C DATA IMACH(12) / -1021 /
+-C DATA IMACH(13) / 1024 /
+-C DATA IMACH(14) / 113 /
+-C DATA IMACH(15) / -16381 /
+-C DATA IMACH(16) / 16384 /
+-C
+-C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER
+-C
+-C DATA IMACH( 1) / 5 /
+-C DATA IMACH( 2) / 6 /
+-C DATA IMACH( 3) / 1 /
+-C DATA IMACH( 4) / 6 /
+-C DATA IMACH( 5) / 36 /
+-C DATA IMACH( 6) / 4 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 35 /
+-C DATA IMACH( 9) / O377777777777 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 27 /
+-C DATA IMACH(12) / -128 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 60 /
+-C DATA IMACH(15) / -1024 /
+-C DATA IMACH(16) / 1023 /
+-C
+-C MACHINE CONSTANTS FOR THE Z80 MICROPROCESSOR
+-C
+-C DATA IMACH( 1) / 1 /
+-C DATA IMACH( 2) / 1 /
+-C DATA IMACH( 3) / 0 /
+-C DATA IMACH( 4) / 1 /
+-C DATA IMACH( 5) / 16 /
+-C DATA IMACH( 6) / 2 /
+-C DATA IMACH( 7) / 2 /
+-C DATA IMACH( 8) / 15 /
+-C DATA IMACH( 9) / 32767 /
+-C DATA IMACH(10) / 2 /
+-C DATA IMACH(11) / 24 /
+-C DATA IMACH(12) / -127 /
+-C DATA IMACH(13) / 127 /
+-C DATA IMACH(14) / 56 /
+-C DATA IMACH(15) / -127 /
+-C DATA IMACH(16) / 127 /
+-C
+-C***FIRST EXECUTABLE STATEMENT I1MACH
+- IF (I .LT. 1 .OR. I .GT. 16) GO TO 10
+-C
+ I1MACH = IMACH(I)
+ RETURN
++ 40 WRITE(*,*) 'I1MACH(I): I =',I,' is out of bounds.'
+-C
+- 10 CONTINUE
+- WRITE (UNIT = OUTPUT, FMT = 9000)
+- 9000 FORMAT ('1ERROR 1 IN I1MACH - I OUT OF BOUNDS')
+-C
+-C CALL FDUMP
+-C
+ STOP
+ END
++ SUBROUTINE I1MCR1(A, A1, B, C, D)
++**** SPECIAL COMPUTATION FOR OLD CRAY MACHINES ****
++ INTEGER A, A1, B, C, D
++ A1 = 16777216*B + C
++ A = 16777216*A1 + D
++ END
+--- src/r1mach.f
++++ src/r1mach.f
+@@ -66,6 +66,7 @@
+ C 920625 Added CONVEX -p8 and -pd8 compiler option constants.
+ C (BKS, WRB)
+ C 930201 Added DEC Alpha and SGI constants. (RWC and WRB)
++C 150501 Replaced with alternative implementation from BLAS.
+ C***END PROLOGUE R1MACH
+ C
+ INTEGER SMALL(2)
+@@ -73,347 +74,194 @@
+ INTEGER RIGHT(2)
+ INTEGER DIVER(2)
+ INTEGER LOG10(2)
++C needs to be (2) for AUTODOUBLE, HARRIS SLASH 6, ...
++ INTEGER SC
++ SAVE SMALL, LARGE, RIGHT, DIVER, LOG10, SC
+-C
+ REAL RMACH(5)
+- SAVE RMACH
+-C
+ EQUIVALENCE (RMACH(1),SMALL(1))
+ EQUIVALENCE (RMACH(2),LARGE(1))
+ EQUIVALENCE (RMACH(3),RIGHT(1))
+ EQUIVALENCE (RMACH(4),DIVER(1))
+ EQUIVALENCE (RMACH(5),LOG10(1))
++ INTEGER J, K, L, T3E(3)
++ DATA T3E(1) / 9777664 /
++ DATA T3E(2) / 5323660 /
++ DATA T3E(3) / 46980 /
++C THIS VERSION ADAPTS AUTOMATICALLY TO MOST CURRENT MACHINES,
++C INCLUDING AUTO-DOUBLE COMPILERS.
++C TO COMPILE ON OLDER MACHINES, ADD A C IN COLUMN 1
++C ON THE NEXT LINE
++ DATA SC/0/
++C AND REMOVE THE C FROM COLUMN 1 IN ONE OF THE SECTIONS BELOW.
++C CONSTANTS FOR EVEN OLDER MACHINES CAN BE OBTAINED BY
++C mail netlib@research.bell-labs.com
++C send old1mach from blas
++C PLEASE SEND CORRECTIONS TO dmg OR ehg@bell-labs.com.
++C
++C MACHINE CONSTANTS FOR THE HONEYWELL DPS 8/70 SERIES.
++C DATA RMACH(1) / O402400000000 /
++C DATA RMACH(2) / O376777777777 /
++C DATA RMACH(3) / O714400000000 /
++C DATA RMACH(4) / O716400000000 /
++C DATA RMACH(5) / O776464202324 /, SC/987/
++C
++C MACHINE CONSTANTS FOR PDP-11 FORTRANS SUPPORTING
+-C
+-C MACHINE CONSTANTS FOR THE AMIGA
+-C ABSOFT FORTRAN COMPILER USING THE 68020/68881 COMPILER OPTION
+-C
+-C DATA SMALL(1) / Z'00800000' /
+-C DATA LARGE(1) / Z'7F7FFFFF' /
+-C DATA RIGHT(1) / Z'33800000' /
+-C DATA DIVER(1) / Z'34000000' /
+-C DATA LOG10(1) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE AMIGA
+-C ABSOFT FORTRAN COMPILER USING SOFTWARE FLOATING POINT
+-C
+-C DATA SMALL(1) / Z'00800000' /
+-C DATA LARGE(1) / Z'7EFFFFFF' /
+-C DATA RIGHT(1) / Z'33800000' /
+-C DATA DIVER(1) / Z'34000000' /
+-C DATA LOG10(1) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE APOLLO
+-C
+-C DATA SMALL(1) / 16#00800000 /
+-C DATA LARGE(1) / 16#7FFFFFFF /
+-C DATA RIGHT(1) / 16#33800000 /
+-C DATA DIVER(1) / 16#34000000 /
+-C DATA LOG10(1) / 16#3E9A209B /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM
+-C
+-C DATA RMACH(1) / Z400800000 /
+-C DATA RMACH(2) / Z5FFFFFFFF /
+-C DATA RMACH(3) / Z4E9800000 /
+-C DATA RMACH(4) / Z4EA800000 /
+-C DATA RMACH(5) / Z500E730E8 /
+-C
+-C MACHINE CONSTANTS FOR THE BURROUGHS 5700/6700/7700 SYSTEMS
+-C
+-C DATA RMACH(1) / O1771000000000000 /
+-C DATA RMACH(2) / O0777777777777777 /
+-C DATA RMACH(3) / O1311000000000000 /
+-C DATA RMACH(4) / O1301000000000000 /
+-C DATA RMACH(5) / O1157163034761675 /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE
+-C
+-C DATA RMACH(1) / Z"3001800000000000" /
+-C DATA RMACH(2) / Z"4FFEFFFFFFFFFFFE" /
+-C DATA RMACH(3) / Z"3FD2800000000000" /
+-C DATA RMACH(4) / Z"3FD3800000000000" /
+-C DATA RMACH(5) / Z"3FFF9A209A84FBCF" /
+-C
+-C MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES
+-C
+-C DATA RMACH(1) / 00564000000000000000B /
+-C DATA RMACH(2) / 37767777777777777776B /
+-C DATA RMACH(3) / 16414000000000000000B /
+-C DATA RMACH(4) / 16424000000000000000B /
+-C DATA RMACH(5) / 17164642023241175720B /
+-C
+-C MACHINE CONSTANTS FOR THE CELERITY C1260
+-C
+-C DATA SMALL(1) / Z'00800000' /
+-C DATA LARGE(1) / Z'7F7FFFFF' /
+-C DATA RIGHT(1) / Z'33800000' /
+-C DATA DIVER(1) / Z'34000000' /
+-C DATA LOG10(1) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fn COMPILER OPTION
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7FFFFFFF' /
+-C DATA RMACH(3) / Z'34800000' /
+-C DATA RMACH(4) / Z'35000000' /
+-C DATA RMACH(5) / Z'3F9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -fi COMPILER OPTION
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE CONVEX
+-C USING THE -p8 OR -pd8 COMPILER OPTION
+-C
+-C DATA RMACH(1) / Z'0010000000000000' /
+-C DATA RMACH(2) / Z'7FFFFFFFFFFFFFFF' /
+-C DATA RMACH(3) / Z'3CC0000000000000' /
+-C DATA RMACH(4) / Z'3CD0000000000000' /
+-C DATA RMACH(5) / Z'3FF34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE CRAY
+-C
+-C DATA RMACH(1) / 200034000000000000000B /
+-C DATA RMACH(2) / 577767777777777777776B /
+-C DATA RMACH(3) / 377224000000000000000B /
+-C DATA RMACH(4) / 377234000000000000000B /
+-C DATA RMACH(5) / 377774642023241175720B /
+-C
+-C MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200
+-C NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD -
+-C STATIC RMACH(5)
+-C
+-C DATA SMALL / 20K, 0 /
+-C DATA LARGE / 77777K, 177777K /
+-C DATA RIGHT / 35420K, 0 /
+-C DATA DIVER / 36020K, 0 /
+-C DATA LOG10 / 40423K, 42023K /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING G_FLOAT
+-C
+-C DATA RMACH(1) / '00000080'X /
+-C DATA RMACH(2) / 'FFFF7FFF'X /
+-C DATA RMACH(3) / '00003480'X /
+-C DATA RMACH(4) / '00003500'X /
+-C DATA RMACH(5) / '209B3F9A'X /
+-C
+-C MACHINE CONSTANTS FOR THE DEC ALPHA
+-C USING IEEE_FLOAT
+-C
+-C DATA RMACH(1) / '00800000'X /
+-C DATA RMACH(2) / '7F7FFFFF'X /
+-C DATA RMACH(3) / '33800000'X /
+-C DATA RMACH(4) / '34000000'X /
+-C DATA RMACH(5) / '3E9A209B'X /
+-C
+-C MACHINE CONSTANTS FOR THE DEC RISC
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE DEC VAX
+-C (EXPRESSED IN INTEGER AND HEXADECIMAL)
+-C THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS
+-C THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS
+-C
+-C DATA SMALL(1) / 128 /
+-C DATA LARGE(1) / -32769 /
+-C DATA RIGHT(1) / 13440 /
+-C DATA DIVER(1) / 13568 /
+-C DATA LOG10(1) / 547045274 /
+-C
+-C DATA SMALL(1) / Z00000080 /
+-C DATA LARGE(1) / ZFFFF7FFF /
+-C DATA RIGHT(1) / Z00003480 /
+-C DATA DIVER(1) / Z00003500 /
+-C DATA LOG10(1) / Z209B3F9A /
+-C
+-C MACHINE CONSTANTS FOR THE ELXSI 6400
+-C (ASSUMING REAL*4 IS THE DEFAULT REAL)
+-C
+-C DATA SMALL(1) / '00800000'X /
+-C DATA LARGE(1) / '7F7FFFFF'X /
+-C DATA RIGHT(1) / '33800000'X /
+-C DATA DIVER(1) / '34000000'X /
+-C DATA LOG10(1) / '3E9A209B'X /
+-C
+-C MACHINE CONSTANTS FOR THE HARRIS 220
+-C
+-C DATA SMALL(1), SMALL(2) / '20000000, '00000201 /
+-C DATA LARGE(1), LARGE(2) / '37777777, '00000177 /
+-C DATA RIGHT(1), RIGHT(2) / '20000000, '00000352 /
+-C DATA DIVER(1), DIVER(2) / '20000000, '00000353 /
+-C DATA LOG10(1), LOG10(2) / '23210115, '00000377 /
+-C
+-C MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES
+-C
+-C DATA RMACH(1) / O402400000000 /
+-C DATA RMACH(2) / O376777777777 /
+-C DATA RMACH(3) / O714400000000 /
+-C DATA RMACH(4) / O716400000000 /
+-C DATA RMACH(5) / O776464202324 /
+-C
+-C MACHINE CONSTANTS FOR THE HP 730
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C 3 WORD DOUBLE PRECISION WITH FTN4
+-C
+-C DATA SMALL(1), SMALL(2) / 40000B, 1 /
+-C DATA LARGE(1), LARGE(2) / 77777B, 177776B /
+-C DATA RIGHT(1), RIGHT(2) / 40000B, 325B /
+-C DATA DIVER(1), DIVER(2) / 40000B, 327B /
+-C DATA LOG10(1), LOG10(2) / 46420B, 46777B /
+-C
+-C MACHINE CONSTANTS FOR THE HP 2100
+-C 4 WORD DOUBLE PRECISION WITH FTN4
+-C
+-C DATA SMALL(1), SMALL(2) / 40000B, 1 /
+-C DATA LARGE(1), LARGE(2) / 77777B, 177776B /
+-C DATA RIGHT(1), RIGHT(2) / 40000B, 325B /
+-C DATA DIVER(1), DIVER(2) / 40000B, 327B /
+-C DATA LOG10(1), LOG10(2) / 46420B, 46777B /
+-C
+-C MACHINE CONSTANTS FOR THE HP 9000
+-C
+-C DATA SMALL(1) / 00004000000B /
+-C DATA LARGE(1) / 17677777777B /
+-C DATA RIGHT(1) / 06340000000B /
+-C DATA DIVER(1) / 06400000000B /
+-C DATA LOG10(1) / 07646420233B /
+-C
+-C MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
+-C THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86 AND
+-C THE PERKIN ELMER (INTERDATA) 7/32.
+-C
+-C DATA RMACH(1) / Z00100000 /
+-C DATA RMACH(2) / Z7FFFFFFF /
+-C DATA RMACH(3) / Z3B100000 /
+-C DATA RMACH(4) / Z3C100000 /
+-C DATA RMACH(5) / Z41134413 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM PC
+-C
+-C DATA SMALL(1) / 1.18E-38 /
+-C DATA LARGE(1) / 3.40E+38 /
+-C DATA RIGHT(1) / 0.595E-07 /
+-C DATA DIVER(1) / 1.19E-07 /
+-C DATA LOG10(1) / 0.30102999566 /
+-C
+-C MACHINE CONSTANTS FOR THE IBM RS 6000
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE INTEL i860
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE PDP-10 (KA OR KI PROCESSOR)
+-C
+-C DATA RMACH(1) / "000400000000 /
+-C DATA RMACH(2) / "377777777777 /
+-C DATA RMACH(3) / "146400000000 /
+-C DATA RMACH(4) / "147400000000 /
+-C DATA RMACH(5) / "177464202324 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+ C 32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
++C DATA SMALL(1) / 8388608 /
++C DATA LARGE(1) / 2147483647 /
++C DATA RIGHT(1) / 880803840 /
++C DATA DIVER(1) / 889192448 /
++C DATA LOG10(1) / 1067065499 /, SC/987/
++C DATA RMACH(1) / O00040000000 /
++C DATA RMACH(2) / O17777777777 /
++C DATA RMACH(3) / O06440000000 /
++C DATA RMACH(4) / O06500000000 /
++C DATA RMACH(5) / O07746420233 /, SC/987/
++C
++C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES.
++C DATA RMACH(1) / O000400000000 /
++C DATA RMACH(2) / O377777777777 /
++C DATA RMACH(3) / O146400000000 /
++C DATA RMACH(4) / O147400000000 /
++C DATA RMACH(5) / O177464202324 /, SC/987/
++C
++ IF (SC .NE. 987) THEN
++* *** CHECK FOR AUTODOUBLE ***
++ SMALL(2) = 0
++ RMACH(1) = 1E13
++ IF (SMALL(2) .NE. 0) THEN
++* *** AUTODOUBLED ***
++ IF ( SMALL(1) .EQ. 1117925532
++ * .AND. SMALL(2) .EQ. -448790528) THEN
++* *** IEEE BIG ENDIAN ***
++ SMALL(1) = 1048576
++ SMALL(2) = 0
++ LARGE(1) = 2146435071
++ LARGE(2) = -1
++ RIGHT(1) = 1017118720
++ RIGHT(2) = 0
++ DIVER(1) = 1018167296
++ DIVER(2) = 0
++ LOG10(1) = 1070810131
++ LOG10(2) = 1352628735
++ ELSE IF ( SMALL(2) .EQ. 1117925532
++ * .AND. SMALL(1) .EQ. -448790528) THEN
++* *** IEEE LITTLE ENDIAN ***
++ SMALL(2) = 1048576
++ SMALL(1) = 0
++ LARGE(2) = 2146435071
++ LARGE(1) = -1
++ RIGHT(2) = 1017118720
++ RIGHT(1) = 0
++ DIVER(2) = 1018167296
++ DIVER(1) = 0
++ LOG10(2) = 1070810131
++ LOG10(1) = 1352628735
++ ELSE IF ( SMALL(1) .EQ. -2065213935
++ * .AND. SMALL(2) .EQ. 10752) THEN
++* *** VAX WITH D_FLOATING ***
++ SMALL(1) = 128
++ SMALL(2) = 0
++ LARGE(1) = -32769
++ LARGE(2) = -1
++ RIGHT(1) = 9344
++ RIGHT(2) = 0
++ DIVER(1) = 9472
++ DIVER(2) = 0
++ LOG10(1) = 546979738
++ LOG10(2) = -805796613
++ ELSE IF ( SMALL(1) .EQ. 1267827943
++ * .AND. SMALL(2) .EQ. 704643072) THEN
++* *** IBM MAINFRAME ***
++ SMALL(1) = 1048576
++ SMALL(2) = 0
++ LARGE(1) = 2147483647
++ LARGE(2) = -1
++ RIGHT(1) = 856686592
++ RIGHT(2) = 0
++ DIVER(1) = 873463808
++ DIVER(2) = 0
++ LOG10(1) = 1091781651
++ LOG10(2) = 1352628735
++ ELSE
++ WRITE(*,9010)
++ STOP 777
++ END IF
++ ELSE
++ RMACH(1) = 1234567.
++ IF (SMALL(1) .EQ. 1234613304) THEN
++* *** IEEE ***
++ SMALL(1) = 8388608
++ LARGE(1) = 2139095039
++ RIGHT(1) = 864026624
++ DIVER(1) = 872415232
++ LOG10(1) = 1050288283
++ ELSE IF (SMALL(1) .EQ. -1271379306) THEN
++* *** VAX ***
++ SMALL(1) = 128
++ LARGE(1) = -32769
++ RIGHT(1) = 13440
++ DIVER(1) = 13568
++ LOG10(1) = 547045274
++ ELSE IF (SMALL(1) .EQ. 1175639687) THEN
++* *** IBM MAINFRAME ***
++ SMALL(1) = 1048576
++ LARGE(1) = 2147483647
++ RIGHT(1) = 990904320
++ DIVER(1) = 1007681536
++ LOG10(1) = 1091781651
++ ELSE IF (SMALL(1) .EQ. 1251390520) THEN
++* *** CONVEX C-1 ***
++ SMALL(1) = 8388608
++ LARGE(1) = 2147483647
++ RIGHT(1) = 880803840
++ DIVER(1) = 889192448
++ LOG10(1) = 1067065499
++ ELSE
++ DO 10 L = 1, 3
++ J = SMALL(1) / 10000000
++ K = SMALL(1) - 10000000*J
++ IF (K .NE. T3E(L)) GO TO 20
++ SMALL(1) = J
++ 10 CONTINUE
++* *** CRAY T3E ***
++ CALL I1MCRA(SMALL, K, 16, 0, 0)
++ CALL I1MCRA(LARGE, K, 32751, 16777215, 16777215)
++ CALL I1MCRA(RIGHT, K, 15520, 0, 0)
++ CALL I1MCRA(DIVER, K, 15536, 0, 0)
++ CALL I1MCRA(LOG10, K, 16339, 4461392, 10451455)
++ GO TO 30
++ 20 CALL I1MCRA(J, K, 16405, 9876536, 0)
++ IF (SMALL(1) .NE. J) THEN
++ WRITE(*,9020)
++ STOP 777
++ END IF
++* *** CRAY 1, XMP, 2, AND 3 ***
++ CALL I1MCRA(SMALL(1), K, 8195, 8388608, 1)
++ CALL I1MCRA(LARGE(1), K, 24574, 16777215, 16777214)
++ CALL I1MCRA(RIGHT(1), K, 16338, 8388608, 0)
++ CALL I1MCRA(DIVER(1), K, 16339, 8388608, 0)
++ CALL I1MCRA(LOG10(1), K, 16383, 10100890, 8715216)
++ END IF
++ END IF
++ 30 SC = 987
++ END IF
++* SANITY CHECK
++ IF (RMACH(4) .GE. 1.0) STOP 776
++ IF (I .LT. 1 .OR. I .GT. 5) THEN
++ WRITE(*,*) 'R1MACH(I): I =',I,' is out of bounds.'
++ STOP
++ END IF
+-C
+-C DATA SMALL(1) / 8388608 /
+-C DATA LARGE(1) / 2147483647 /
+-C DATA RIGHT(1) / 880803840 /
+-C DATA DIVER(1) / 889192448 /
+-C DATA LOG10(1) / 1067065499 /
+-C
+-C DATA RMACH(1) / O00040000000 /
+-C DATA RMACH(2) / O17777777777 /
+-C DATA RMACH(3) / O06440000000 /
+-C DATA RMACH(4) / O06500000000 /
+-C DATA RMACH(5) / O07746420233 /
+-C
+-C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
+-C 16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
+-C
+-C DATA SMALL(1), SMALL(2) / 128, 0 /
+-C DATA LARGE(1), LARGE(2) / 32767, -1 /
+-C DATA RIGHT(1), RIGHT(2) / 13440, 0 /
+-C DATA DIVER(1), DIVER(2) / 13568, 0 /
+-C DATA LOG10(1), LOG10(2) / 16282, 8347 /
+-C
+-C DATA SMALL(1), SMALL(2) / O000200, O000000 /
+-C DATA LARGE(1), LARGE(2) / O077777, O177777 /
+-C DATA RIGHT(1), RIGHT(2) / O032200, O000000 /
+-C DATA DIVER(1), DIVER(2) / O032400, O000000 /
+-C DATA LOG10(1), LOG10(2) / O037632, O020233 /
+-C
+-C MACHINE CONSTANTS FOR THE SILICON GRAPHICS
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C
+-C DATA RMACH(1) / Z'00800000' /
+-C DATA RMACH(2) / Z'7F7FFFFF' /
+-C DATA RMACH(3) / Z'33800000' /
+-C DATA RMACH(4) / Z'34000000' /
+-C DATA RMACH(5) / Z'3E9A209B' /
+-C
+-C MACHINE CONSTANTS FOR THE SUN
+-C USING THE -r8 COMPILER OPTION
+-C
+-C DATA RMACH(1) / Z'0010000000000000' /
+-C DATA RMACH(2) / Z'7FEFFFFFFFFFFFFF' /
+-C DATA RMACH(3) / Z'3CA0000000000000' /
+-C DATA RMACH(4) / Z'3CB0000000000000' /
+-C DATA RMACH(5) / Z'3FD34413509F79FF' /
+-C
+-C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES
+-C
+-C DATA RMACH(1) / O000400000000 /
+-C DATA RMACH(2) / O377777777777 /
+-C DATA RMACH(3) / O146400000000 /
+-C DATA RMACH(4) / O147400000000 /
+-C DATA RMACH(5) / O177464202324 /
+-C
+-C MACHINE CONSTANTS FOR THE Z80 MICROPROCESSOR
+-C
+-C DATA SMALL(1), SMALL(2) / 0, 256/
+-C DATA LARGE(1), LARGE(2) / -1, -129/
+-C DATA RIGHT(1), RIGHT(2) / 0, 26880/
+-C DATA DIVER(1), DIVER(2) / 0, 27136/
+-C DATA LOG10(1), LOG10(2) / 8347, 32538/
+-C
+-C***FIRST EXECUTABLE STATEMENT R1MACH
+- IF (I .LT. 1 .OR. I .GT. 5) CALL XERMSG ('SLATEC', 'R1MACH',
+- + 'I OUT OF BOUNDS', 1, 2)
+-C
+ R1MACH = RMACH(I)
+ RETURN
++ 9010 FORMAT(/' Adjust autodoubled R1MACH by getting data'/
++ *' appropriate for your machine from D1MACH.')
++ 9020 FORMAT(/' Adjust R1MACH by uncommenting data statements'/
++ *' appropriate for your machine.')
++ END
++ SUBROUTINE I1MCRA(A, A1, B, C, D)
++**** SPECIAL COMPUTATION FOR CRAY MACHINES ****
++ INTEGER A, A1, B, C, D
++ A1 = 16777216*B + C
++ A = 16777216*A1 + D
+-C
+ END