/* s1mach.f -- translated by f2c (version of 5 February 1993 1:37:14). You must link the resulting object file with the libraries: -lF77 -lI77 -lm -lc (in that order) */ #include "f2c.h" /* Table of constant values */ static integer c__2 = 2; static integer c__1 = 1; static integer c__14 = 14; static integer c__19 = 19; static real c_b192 = (float)1.; static doublereal c_b273 = 1.; /* Subroutine */ int s1mach_() { /* Initialized data */ static char ccplus[1+1] = "+"; static struct { char e_1[12]; } equiv_0 = { {'(', 'A', '1', ',', '5', '1', 'X', ',', 'I', ' ', ' ', ')'} }; static struct { char e_1[15]; } equiv_1 = { {'(', 'A', '1', ',', '3', '2', 'X', ',', 'E', ' ', ' ', '.', ' ', ' ', ')'} }; static struct { char e_1[15]; } equiv_2 = { {'(', 'A', '1', ',', '3', '2', 'X', ',', 'D', ' ', ' ', '.', ' ', ' ', ')'} }; /* Format strings */ static char fmt_900[] = "(//\002 FORMAT CONVERSION FOR INTEGERS IS - \ \002,3a1/\002 INTEGER CONSTANTS FOLLOW\002///)"; static char fmt_1001[] = "(\002 THE STANDARD INPUT UNIT\002)"; static char fmt_1002[] = "(\002 THE STANDARD OUTPUT UNIT\002)"; static char fmt_1003[] = "(\002 THE STANDARD PUNCH UNIT\002)"; static char fmt_1004[] = "(\002 THE STANDARD ERROR MESSAGE UNIT\002)"; static char fmt_1005[] = "(\002 THE NUMBER OF BITS PER WORD\002)"; static char fmt_1006[] = "(\002 THE NUMBER OF CHARACTERS PER WORD\002)"; static char fmt_1007[] = "(\002 A, THE BASE OF AN S-DIGIT INTEGER\002)"; static char fmt_1008[] = "(\002 S, THE NUMBER OF BASE-A DIGITS\002)"; static char fmt_1009[] = "(\002 A**S - 1, THE LARGEST MAGNITUDE\002)"; static char fmt_1010[] = "(\002 B, THE BASE OF A T-DIGIT FLOATING-POINT \ NUMBER\002)"; static char fmt_1011[] = "(\002 T, THE NUMBER OF BASE-B DIGITS IN SINGLE\ -PRECISION\002)"; static char fmt_1012[] = "(\002 EMIN, THE SMALLEST SINGLE-PRECISION EXPO\ NENT\002)"; static char fmt_1013[] = "(\002 EMAX, THE LARGEST SINGLE-PRECISION EXPON\ ENT\002)"; static char fmt_1014[] = "(\002 T, THE NUMBER OF BASE-B DIGITS IN DOUBLE\ -PRECISION\002)"; static char fmt_1015[] = "(\002 EMIN, THE SMALLEST DOUBLE-PRECISION EXPO\ NENT\002)"; static char fmt_1016[] = "(\002 EMAX, THE LARGEST DOUBLE-PRECISION EXPON\ ENT\002)"; static char fmt_1900[] = "(//\002 FORMAT CONVERSION FOR SINGLE-PRECISION\ IS - \002,6a1/\002 SINGLE-PRECISION CONSTANTS FOLLOW\002///)"; static char fmt_2001[] = "(\002 THE SMALLEST POSITIVE MAGNITUDE\002)"; static char fmt_2002[] = "(\002 THE LARGEST MAGNITUDE\002)"; static char fmt_2003[] = "(\002 THE SMALLEST RELATIVE SPACING\002)"; static char fmt_2004[] = "(\002 THE LARGEST RELATIVE SPACING\002)"; static char fmt_2005[] = "(\002 LOG10 OF THE BASE\002)"; static char fmt_2900[] = "(//\002 FORMAT CONVERSION FOR DOUBLE-PRECISION\ IS - \002,6a1/\002 DOUBLE-PRECISION CONSTANTS FOLLOW\002///)"; static char fmt_3001[] = "(\002 THE SMALLEST POSITIVE MAGNITUDE\002)"; static char fmt_3002[] = "(\002 THE LARGEST MAGNITUDE\002)"; static char fmt_3003[] = "(\002 THE SMALLEST RELATIVE SPACING\002)"; static char fmt_3004[] = "(\002 THE LARGEST RELATIVE SPACING\002)"; static char fmt_3005[] = "(\002 LOG10 OF THE BASE\002)"; static char fmt_4001[] = "(\0020I1MACH(11) EXCEEDS I1MACH(14)\002)"; static char fmt_4002[] = "(\002 I1MACH(11) =\002)"; static char fmt_4003[] = "(\002 I1MACH(14) =\002)"; static char fmt_4011[] = "(\0020WARNING - I1MACH(13) EXCEEDS I1MACH(16\ )\002)"; static char fmt_4012[] = "(\002 I1MACH(13) =\002)"; static char fmt_4013[] = "(\002 I1MACH(16) =\002)"; static char fmt_4021[] = "(\0020WARNING - I1MACH(13) - I1MACH(12)\002)"; static char fmt_4022[] = "(\002 EXCEEDS I1MACH(16) - I1MACH(15)\002)"; static char fmt_4023[] = "(\002 I1MACH(12) =\002)"; static char fmt_4024[] = "(\002 I1MACH(13) =\002)"; static char fmt_4025[] = "(\002 I1MACH(15) =\002)"; static char fmt_4026[] = "(\002 I1MACH(16) =\002)"; static char fmt_4031[] = "(\0021IMACH(9) IS NOT IMACH(7)**IMACH(8) - \ 1\002)"; static char fmt_4032[] = "(\002 I1MACH(7) =\002)"; static char fmt_4034[] = "(\002 I1MACH(8) =\002)"; static char fmt_4035[] = "(\002 I1MACH(9) =\002)"; static char fmt_5001[] = "(\0020R1MACH(1) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_5002[] = "(\002 R1MACH(1) =\002)"; static char fmt_5003[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_5004[] = "(\002 DIFFERENCE = \002)"; static char fmt_5011[] = "(\0020R1MACH(2) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_5012[] = "(\002 R1MACH(2) =\002)"; static char fmt_5013[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_5014[] = "(\002 DIFFERENCE = \002)"; static char fmt_5021[] = "(\0020R1MACH(3) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_5022[] = "(\002 R1MACH(3) =\002)"; static char fmt_5023[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_5024[] = "(\002 DIFFERENCE = \002)"; static char fmt_5031[] = "(\0020R1MACH(4) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_5032[] = "(\002 R1MACH(4) =\002)"; static char fmt_5033[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_5034[] = "(\002 DIFFERENCE = \002)"; static char fmt_5041[] = "(\0020R1MACH(5) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_5042[] = "(\002 R1MACH(5) =\002)"; static char fmt_5043[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_5044[] = "(\002 DIFFERENCE = \002)"; static char fmt_6001[] = "(\0020D1MACH(1) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_6002[] = "(\002 D1MACH(1) =\002)"; static char fmt_6003[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_6004[] = "(\002 DIFFERENCE = \002)"; static char fmt_6011[] = "(\0020D1MACH(2) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_6012[] = "(\002 D1MACH(2) =\002)"; static char fmt_6013[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_6014[] = "(\002 DIFFERENCE = \002)"; static char fmt_6021[] = "(\0020D1MACH(3) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_6022[] = "(\002 D1MACH(3) =\002)"; static char fmt_6023[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_6024[] = "(\002 DIFFERENCE = \002)"; static char fmt_6031[] = "(\0020D1MACH(4) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_6032[] = "(\002 D1MACH(4) =\002)"; static char fmt_6033[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_6034[] = "(\002 DIFFERENCE = \002)"; static char fmt_6041[] = "(\0020D1MACH(5) DOES NOT AGREE WITH CALCULATED\ VALUE\002)"; static char fmt_6042[] = "(\002 D1MACH(5) =\002)"; static char fmt_6043[] = "(\002 CALCULATED VALUE =\002)"; static char fmt_6044[] = "(\002 DIFFERENCE = \002)"; static char fmt_7001[] = "(\0020-(-R1MACH(1)) .NE. R1MACH(1)\002)"; static char fmt_7002[] = "(\002 R1MACH(1) =\002)"; static char fmt_7003[] = "(\002 -(-R1MACH(1)) =\002)"; static char fmt_7011[] = "(\0020-(-R1MACH(2)) .NE. R1MACH(2)\002)"; static char fmt_7012[] = "(\002 R1MACH(2) =\002)"; static char fmt_7013[] = "(\002 -(-R1MACH(2)) =\002)"; static char fmt_8001[] = "(\0020-(-D1MACH(1)) .NE. D1MACH(1)\002)"; static char fmt_8002[] = "(\002 D1MACH(1) =\002)"; static char fmt_8003[] = "(\002 -(-D1MACH(1)) =\002)"; static char fmt_8011[] = "(\0020-(-D1MACH(2)) .NE. D1MACH(2)\002)"; static char fmt_8012[] = "(\002 D1MACH(2) =\002)"; static char fmt_8013[] = "(\002 -(-D1MACH(2)) =\002)"; static char fmt_9001[] = "(\002 SQRT(R1MACH(1)) =\002)"; static char fmt_9003[] = "(\002 EXCESSIVE ERROR IN SQRT(R1MACH(1))\002\ /\002 REL. ERROR =\002)"; static char fmt_9005[] = "(\002 SQRT(R1MACH(2)) =\002)"; static char fmt_9007[] = "(\002 EXCESSIVE ERROR IN SQRT(R1MACH(2))\002\ /\002 REL. ERROR =\002)"; static char fmt_9009[] = "(\002 DSQRT(D1MACH(1)) =\002)"; static char fmt_9011[] = "(\002 EXCESSIVE ERROR IN DSQRT(D1MACH(1))\002\ /\002 REL. ERROR =\002)"; static char fmt_9013[] = "(\002 DSQRT(D1MACH(2)) =\002)"; static char fmt_9015[] = "(\002 EXCESSIVE ERROR IN DSQRT(D1MACH(2))\002\ /\002 REL. ERROR =\002)"; /* System generated locals */ integer i__1, i__2; real r__1, r__2; doublereal d__1; static integer equiv_6[16]; /* Builtin functions */ double r_lg10(); integer s_wsfe(), do_fio(), e_wsfe(); double d_lg10(), sqrt(); /* Local variables */ #define dfmt ((char *)&equiv_2) #define efmt ((char *)&equiv_1) extern integer iflr_(); #define ifmt ((char *)&equiv_0) #define dfmt1 ((char *)&equiv_2) #define efmt1 ((char *)&equiv_1) #define ifmt1 ((char *)&equiv_0) static integer i; static doublereal dmach[5], dbase; static integer n; #define imach (equiv_6) extern integer iceil_(); #define digdp (equiv_6 + 13) static real rmach[5]; static integer demin; static real sbase; static integer demax; #define digsp (equiv_6 + 10) extern /* Subroutine */ int s88fmt_(); extern doublereal d1mach_(); extern integer i1mach_(); extern doublereal r1mach_(), s2mach_(); extern doublereal s3mach_(); static doublereal dbasem, xd, yd; static integer ibasem; static real xr, yr, sbasem; #define digint (equiv_6 + 7) static integer dwidth, ewidth, wwidth; #define stdout (equiv_6 + 1) /* Fortran I/O blocks */ static cilist io___17 = { 0, 0, 0, fmt_900, 0 }; static cilist io___18 = { 0, 0, 0, fmt_1001, 0 }; static cilist io___19 = { 0, 0, 0, ifmt, 0 }; static cilist io___20 = { 0, 0, 0, fmt_1002, 0 }; static cilist io___21 = { 0, 0, 0, ifmt, 0 }; static cilist io___22 = { 0, 0, 0, fmt_1003, 0 }; static cilist io___23 = { 0, 0, 0, ifmt, 0 }; static cilist io___24 = { 0, 0, 0, fmt_1004, 0 }; static cilist io___25 = { 0, 0, 0, ifmt, 0 }; static cilist io___26 = { 0, 0, 0, fmt_1005, 0 }; static cilist io___27 = { 0, 0, 0, ifmt, 0 }; static cilist io___28 = { 0, 0, 0, fmt_1006, 0 }; static cilist io___29 = { 0, 0, 0, ifmt, 0 }; static cilist io___30 = { 0, 0, 0, fmt_1007, 0 }; static cilist io___31 = { 0, 0, 0, ifmt, 0 }; static cilist io___32 = { 0, 0, 0, fmt_1008, 0 }; static cilist io___33 = { 0, 0, 0, ifmt, 0 }; static cilist io___34 = { 0, 0, 0, fmt_1009, 0 }; static cilist io___35 = { 0, 0, 0, ifmt, 0 }; static cilist io___36 = { 0, 0, 0, fmt_1010, 0 }; static cilist io___37 = { 0, 0, 0, ifmt, 0 }; static cilist io___38 = { 0, 0, 0, fmt_1011, 0 }; static cilist io___39 = { 0, 0, 0, ifmt, 0 }; static cilist io___40 = { 0, 0, 0, fmt_1012, 0 }; static cilist io___41 = { 0, 0, 0, ifmt, 0 }; static cilist io___42 = { 0, 0, 0, fmt_1013, 0 }; static cilist io___43 = { 0, 0, 0, ifmt, 0 }; static cilist io___44 = { 0, 0, 0, fmt_1014, 0 }; static cilist io___45 = { 0, 0, 0, ifmt, 0 }; static cilist io___46 = { 0, 0, 0, fmt_1015, 0 }; static cilist io___47 = { 0, 0, 0, ifmt, 0 }; static cilist io___48 = { 0, 0, 0, fmt_1016, 0 }; static cilist io___49 = { 0, 0, 0, ifmt, 0 }; static cilist io___54 = { 0, 0, 0, fmt_1900, 0 }; static cilist io___55 = { 0, 0, 0, fmt_2001, 0 }; static cilist io___56 = { 0, 0, 0, efmt, 0 }; static cilist io___57 = { 0, 0, 0, fmt_2002, 0 }; static cilist io___58 = { 0, 0, 0, efmt, 0 }; static cilist io___59 = { 0, 0, 0, fmt_2003, 0 }; static cilist io___60 = { 0, 0, 0, efmt, 0 }; static cilist io___61 = { 0, 0, 0, fmt_2004, 0 }; static cilist io___62 = { 0, 0, 0, efmt, 0 }; static cilist io___63 = { 0, 0, 0, fmt_2005, 0 }; static cilist io___64 = { 0, 0, 0, efmt, 0 }; static cilist io___65 = { 0, 0, 0, fmt_2900, 0 }; static cilist io___66 = { 0, 0, 0, fmt_3001, 0 }; static cilist io___67 = { 0, 0, 0, dfmt, 0 }; static cilist io___68 = { 0, 0, 0, fmt_3002, 0 }; static cilist io___69 = { 0, 0, 0, dfmt, 0 }; static cilist io___70 = { 0, 0, 0, fmt_3003, 0 }; static cilist io___71 = { 0, 0, 0, dfmt, 0 }; static cilist io___72 = { 0, 0, 0, fmt_3004, 0 }; static cilist io___73 = { 0, 0, 0, dfmt, 0 }; static cilist io___74 = { 0, 0, 0, fmt_3005, 0 }; static cilist io___75 = { 0, 0, 0, dfmt, 0 }; static cilist io___76 = { 0, 0, 0, fmt_4001, 0 }; static cilist io___77 = { 0, 0, 0, fmt_4002, 0 }; static cilist io___78 = { 0, 0, 0, ifmt, 0 }; static cilist io___79 = { 0, 0, 0, fmt_4003, 0 }; static cilist io___80 = { 0, 0, 0, ifmt, 0 }; static cilist io___81 = { 0, 0, 0, fmt_4011, 0 }; static cilist io___82 = { 0, 0, 0, fmt_4012, 0 }; static cilist io___83 = { 0, 0, 0, ifmt, 0 }; static cilist io___84 = { 0, 0, 0, fmt_4013, 0 }; static cilist io___85 = { 0, 0, 0, ifmt, 0 }; static cilist io___86 = { 0, 0, 0, fmt_4021, 0 }; static cilist io___87 = { 0, 0, 0, fmt_4022, 0 }; static cilist io___88 = { 0, 0, 0, fmt_4023, 0 }; static cilist io___89 = { 0, 0, 0, ifmt, 0 }; static cilist io___90 = { 0, 0, 0, fmt_4024, 0 }; static cilist io___91 = { 0, 0, 0, ifmt, 0 }; static cilist io___92 = { 0, 0, 0, fmt_4025, 0 }; static cilist io___93 = { 0, 0, 0, ifmt, 0 }; static cilist io___94 = { 0, 0, 0, fmt_4026, 0 }; static cilist io___95 = { 0, 0, 0, ifmt, 0 }; static cilist io___98 = { 0, 0, 0, fmt_4031, 0 }; static cilist io___99 = { 0, 0, 0, fmt_4032, 0 }; static cilist io___100 = { 0, 0, 0, ifmt, 0 }; static cilist io___101 = { 0, 0, 0, fmt_4034, 0 }; static cilist io___102 = { 0, 0, 0, ifmt, 0 }; static cilist io___103 = { 0, 0, 0, fmt_4035, 0 }; static cilist io___104 = { 0, 0, 0, ifmt, 0 }; static cilist io___106 = { 0, 0, 0, fmt_5001, 0 }; static cilist io___107 = { 0, 0, 0, fmt_5002, 0 }; static cilist io___108 = { 0, 0, 0, efmt, 0 }; static cilist io___109 = { 0, 0, 0, fmt_5003, 0 }; static cilist io___110 = { 0, 0, 0, efmt, 0 }; static cilist io___111 = { 0, 0, 0, fmt_5004, 0 }; static cilist io___112 = { 0, 0, 0, efmt, 0 }; static cilist io___115 = { 0, 0, 0, fmt_5011, 0 }; static cilist io___116 = { 0, 0, 0, fmt_5012, 0 }; static cilist io___117 = { 0, 0, 0, efmt, 0 }; static cilist io___118 = { 0, 0, 0, fmt_5013, 0 }; static cilist io___119 = { 0, 0, 0, efmt, 0 }; static cilist io___120 = { 0, 0, 0, fmt_5014, 0 }; static cilist io___121 = { 0, 0, 0, efmt, 0 }; static cilist io___122 = { 0, 0, 0, fmt_5021, 0 }; static cilist io___123 = { 0, 0, 0, fmt_5022, 0 }; static cilist io___124 = { 0, 0, 0, efmt, 0 }; static cilist io___125 = { 0, 0, 0, fmt_5023, 0 }; static cilist io___126 = { 0, 0, 0, efmt, 0 }; static cilist io___127 = { 0, 0, 0, fmt_5024, 0 }; static cilist io___128 = { 0, 0, 0, efmt, 0 }; static cilist io___129 = { 0, 0, 0, fmt_5031, 0 }; static cilist io___130 = { 0, 0, 0, fmt_5032, 0 }; static cilist io___131 = { 0, 0, 0, efmt, 0 }; static cilist io___132 = { 0, 0, 0, fmt_5033, 0 }; static cilist io___133 = { 0, 0, 0, efmt, 0 }; static cilist io___134 = { 0, 0, 0, fmt_5034, 0 }; static cilist io___135 = { 0, 0, 0, efmt, 0 }; static cilist io___136 = { 0, 0, 0, fmt_5041, 0 }; static cilist io___137 = { 0, 0, 0, fmt_5042, 0 }; static cilist io___138 = { 0, 0, 0, efmt, 0 }; static cilist io___139 = { 0, 0, 0, fmt_5043, 0 }; static cilist io___140 = { 0, 0, 0, efmt, 0 }; static cilist io___141 = { 0, 0, 0, fmt_5044, 0 }; static cilist io___142 = { 0, 0, 0, efmt, 0 }; static cilist io___144 = { 0, 0, 0, fmt_6001, 0 }; static cilist io___145 = { 0, 0, 0, fmt_6002, 0 }; static cilist io___146 = { 0, 0, 0, dfmt, 0 }; static cilist io___147 = { 0, 0, 0, fmt_6003, 0 }; static cilist io___148 = { 0, 0, 0, dfmt, 0 }; static cilist io___149 = { 0, 0, 0, fmt_6004, 0 }; static cilist io___150 = { 0, 0, 0, dfmt, 0 }; static cilist io___153 = { 0, 0, 0, fmt_6011, 0 }; static cilist io___154 = { 0, 0, 0, fmt_6012, 0 }; static cilist io___155 = { 0, 0, 0, dfmt, 0 }; static cilist io___156 = { 0, 0, 0, fmt_6013, 0 }; static cilist io___157 = { 0, 0, 0, dfmt, 0 }; static cilist io___158 = { 0, 0, 0, fmt_6014, 0 }; static cilist io___159 = { 0, 0, 0, dfmt, 0 }; static cilist io___160 = { 0, 0, 0, fmt_6021, 0 }; static cilist io___161 = { 0, 0, 0, fmt_6022, 0 }; static cilist io___162 = { 0, 0, 0, dfmt, 0 }; static cilist io___163 = { 0, 0, 0, fmt_6023, 0 }; static cilist io___164 = { 0, 0, 0, dfmt, 0 }; static cilist io___165 = { 0, 0, 0, fmt_6024, 0 }; static cilist io___166 = { 0, 0, 0, dfmt, 0 }; static cilist io___167 = { 0, 0, 0, fmt_6031, 0 }; static cilist io___168 = { 0, 0, 0, fmt_6032, 0 }; static cilist io___169 = { 0, 0, 0, dfmt, 0 }; static cilist io___170 = { 0, 0, 0, fmt_6033, 0 }; static cilist io___171 = { 0, 0, 0, dfmt, 0 }; static cilist io___172 = { 0, 0, 0, fmt_6034, 0 }; static cilist io___173 = { 0, 0, 0, dfmt, 0 }; static cilist io___174 = { 0, 0, 0, fmt_6041, 0 }; static cilist io___175 = { 0, 0, 0, fmt_6042, 0 }; static cilist io___176 = { 0, 0, 0, dfmt, 0 }; static cilist io___177 = { 0, 0, 0, fmt_6043, 0 }; static cilist io___178 = { 0, 0, 0, dfmt, 0 }; static cilist io___179 = { 0, 0, 0, fmt_6044, 0 }; static cilist io___180 = { 0, 0, 0, dfmt, 0 }; static cilist io___181 = { 0, 0, 0, fmt_7001, 0 }; static cilist io___182 = { 0, 0, 0, fmt_7002, 0 }; static cilist io___183 = { 0, 0, 0, efmt, 0 }; static cilist io___184 = { 0, 0, 0, fmt_7003, 0 }; static cilist io___185 = { 0, 0, 0, efmt, 0 }; static cilist io___186 = { 0, 0, 0, fmt_7011, 0 }; static cilist io___187 = { 0, 0, 0, fmt_7012, 0 }; static cilist io___188 = { 0, 0, 0, efmt, 0 }; static cilist io___189 = { 0, 0, 0, fmt_7013, 0 }; static cilist io___190 = { 0, 0, 0, efmt, 0 }; static cilist io___191 = { 0, 0, 0, fmt_8001, 0 }; static cilist io___192 = { 0, 0, 0, fmt_8002, 0 }; static cilist io___193 = { 0, 0, 0, dfmt, 0 }; static cilist io___194 = { 0, 0, 0, fmt_8003, 0 }; static cilist io___195 = { 0, 0, 0, dfmt, 0 }; static cilist io___196 = { 0, 0, 0, fmt_8011, 0 }; static cilist io___197 = { 0, 0, 0, fmt_8012, 0 }; static cilist io___198 = { 0, 0, 0, dfmt, 0 }; static cilist io___199 = { 0, 0, 0, fmt_8013, 0 }; static cilist io___200 = { 0, 0, 0, dfmt, 0 }; static cilist io___201 = { 0, 0, 0, fmt_9001, 0 }; static cilist io___202 = { 0, 0, 0, efmt, 0 }; static cilist io___204 = { 0, 0, 0, fmt_9003, 0 }; static cilist io___205 = { 0, 0, 0, efmt, 0 }; static cilist io___206 = { 0, 0, 0, fmt_9005, 0 }; static cilist io___207 = { 0, 0, 0, efmt, 0 }; static cilist io___208 = { 0, 0, 0, fmt_9007, 0 }; static cilist io___209 = { 0, 0, 0, efmt, 0 }; static cilist io___210 = { 0, 0, 0, fmt_9009, 0 }; static cilist io___211 = { 0, 0, 0, dfmt, 0 }; static cilist io___213 = { 0, 0, 0, fmt_9011, 0 }; static cilist io___214 = { 0, 0, 0, efmt, 0 }; static cilist io___215 = { 0, 0, 0, fmt_9013, 0 }; static cilist io___216 = { 0, 0, 0, efmt, 0 }; static cilist io___217 = { 0, 0, 0, fmt_9015, 0 }; static cilist io___218 = { 0, 0, 0, efmt, 0 }; /* S1MACH TESTS THE CONSISTENCY OF THE MACHINE CONSTANTS IN */ /* I1MACH, R1MACH AND D1MACH. */ /* /6S */ /* INTEGER IFMT(12) */ /* INTEGER EFMT(15) */ /* INTEGER DFMT(15) */ /* INTEGER CCPLUS */ /* /7S */ /* / */ /* /6S */ /* DATA CCPLUS / 1H+ / */ /* /7S */ /* / */ /* /6S */ /* DATA IFMT(1 ) / 1H( / */ /* DATA IFMT(2 ) / 1HA / */ /* DATA IFMT(3 ) / 1H1 / */ /* DATA IFMT(4 ) / 1H, / */ /* DATA IFMT(5 ) / 1H5 / */ /* DATA IFMT(6 ) / 1H1 / */ /* DATA IFMT(7 ) / 1HX / */ /* DATA IFMT(8 ) / 1H, / */ /* DATA IFMT(9 ) / 1HI / */ /* DATA IFMT(10) / 1H / */ /* DATA IFMT(11) / 1H / */ /* DATA IFMT(12) / 1H) / */ /* /7S */ /* / */ /* /6S */ /* DATA EFMT( 1) / 1H( /, DFMT( 1) / 1H( / */ /* DATA EFMT( 2) / 1HA /, DFMT( 2) / 1HA / */ /* DATA EFMT( 3) / 1H1 /, DFMT( 3) / 1H1 / */ /* DATA EFMT( 4) / 1H, /, DFMT( 4) / 1H, / */ /* DATA EFMT( 5) / 1H3 /, DFMT( 5) / 1H3 / */ /* DATA EFMT( 6) / 1H2 /, DFMT( 6) / 1H2 / */ /* DATA EFMT( 7) / 1HX /, DFMT( 7) / 1HX / */ /* DATA EFMT( 8) / 1H, /, DFMT( 8) / 1H, / */ /* DATA EFMT( 9) / 1HE /, DFMT( 9) / 1HD / */ /* DATA EFMT(10) / 1H /, DFMT(10) / 1H / */ /* DATA EFMT(11) / 1H /, DFMT(11) / 1H / */ /* DATA EFMT(12) / 1H. /, DFMT(12) / 1H. / */ /* DATA EFMT(13) / 1H /, DFMT(13) / 1H / */ /* DATA EFMT(14) / 1H /, DFMT(14) / 1H / */ /* DATA EFMT(15) / 1H) /, DFMT(15) / 1H) / */ /* /7S */ /* / */ /* FETCH ALL CONSTANTS INTO LOCAL ARRAYS */ for (i = 1; i <= 16; ++i) { imach[i - 1] = i1mach_(&i); /* L10: */ } for (i = 1; i <= 5; ++i) { rmach[i - 1] = r1mach_(&i); dmach[i - 1] = d1mach_(&i); /* L20: */ } /* COMPUTE NUMBER OF CHARACTER POSITIONS NEEDED FOR WRITING */ /* OUT THE LARGEST INTEGER ALLOWING FOR ONE SPACE AND A SIGN */ /* AND PLUG THE FIELD WIDTH IN THE FORMAT. */ r__2 = (real) imach[6]; r__1 = r_lg10(&r__2) * (real) imach[7]; wwidth = iceil_(&r__1) + 2; /* /6S */ /* CALL S88FMT( 2, WWIDTH, IFMT(10) ) */ /* WRITE( STDOUT, 900 ) ( IFMT(I), I = 9, 11 ) */ /* /7S */ s88fmt_(&c__2, &wwidth, ifmt1 + 9, 1L); io___17.ciunit = *stdout; s_wsfe(&io___17); for (i = 9; i <= 11; ++i) { do_fio(&c__1, ifmt1 + (i - 1), 1L); } e_wsfe(); /* / */ /* NOW WRITE OUT THE INTEGER CONSTANTS */ io___18.ciunit = *stdout; s_wsfe(&io___18); e_wsfe(); io___19.ciunit = *stdout; s_wsfe(&io___19); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[0], (ftnlen)sizeof(integer)); e_wsfe(); io___20.ciunit = *stdout; s_wsfe(&io___20); e_wsfe(); io___21.ciunit = *stdout; s_wsfe(&io___21); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[1], (ftnlen)sizeof(integer)); e_wsfe(); io___22.ciunit = *stdout; s_wsfe(&io___22); e_wsfe(); io___23.ciunit = *stdout; s_wsfe(&io___23); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[2], (ftnlen)sizeof(integer)); e_wsfe(); io___24.ciunit = *stdout; s_wsfe(&io___24); e_wsfe(); io___25.ciunit = *stdout; s_wsfe(&io___25); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[3], (ftnlen)sizeof(integer)); e_wsfe(); io___26.ciunit = *stdout; s_wsfe(&io___26); e_wsfe(); io___27.ciunit = *stdout; s_wsfe(&io___27); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[4], (ftnlen)sizeof(integer)); e_wsfe(); io___28.ciunit = *stdout; s_wsfe(&io___28); e_wsfe(); io___29.ciunit = *stdout; s_wsfe(&io___29); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[5], (ftnlen)sizeof(integer)); e_wsfe(); io___30.ciunit = *stdout; s_wsfe(&io___30); e_wsfe(); io___31.ciunit = *stdout; s_wsfe(&io___31); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[6], (ftnlen)sizeof(integer)); e_wsfe(); io___32.ciunit = *stdout; s_wsfe(&io___32); e_wsfe(); io___33.ciunit = *stdout; s_wsfe(&io___33); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[7], (ftnlen)sizeof(integer)); e_wsfe(); io___34.ciunit = *stdout; s_wsfe(&io___34); e_wsfe(); io___35.ciunit = *stdout; s_wsfe(&io___35); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[8], (ftnlen)sizeof(integer)); e_wsfe(); io___36.ciunit = *stdout; s_wsfe(&io___36); e_wsfe(); io___37.ciunit = *stdout; s_wsfe(&io___37); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[9], (ftnlen)sizeof(integer)); e_wsfe(); io___38.ciunit = *stdout; s_wsfe(&io___38); e_wsfe(); io___39.ciunit = *stdout; s_wsfe(&io___39); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[10], (ftnlen)sizeof(integer)); e_wsfe(); io___40.ciunit = *stdout; s_wsfe(&io___40); e_wsfe(); io___41.ciunit = *stdout; s_wsfe(&io___41); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[11], (ftnlen)sizeof(integer)); e_wsfe(); io___42.ciunit = *stdout; s_wsfe(&io___42); e_wsfe(); io___43.ciunit = *stdout; s_wsfe(&io___43); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[12], (ftnlen)sizeof(integer)); e_wsfe(); io___44.ciunit = *stdout; s_wsfe(&io___44); e_wsfe(); io___45.ciunit = *stdout; s_wsfe(&io___45); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[13], (ftnlen)sizeof(integer)); e_wsfe(); io___46.ciunit = *stdout; s_wsfe(&io___46); e_wsfe(); io___47.ciunit = *stdout; s_wsfe(&io___47); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[14], (ftnlen)sizeof(integer)); e_wsfe(); io___48.ciunit = *stdout; s_wsfe(&io___48); e_wsfe(); io___49.ciunit = *stdout; s_wsfe(&io___49); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[15], (ftnlen)sizeof(integer)); e_wsfe(); /* COMPUTE THE NUMBER OF CHARACTER POSITIONS NEEDED FOR WRITING */ /* OUT A SINGLE-PRECISION NUMBER ALLOWING FOR ONE SPACE AND */ /* A SIGN AND PLUG THE FIELDS IN THE FORMAT. */ r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) imach[10]; dwidth = iceil_(&r__1); /* /6S */ /* CALL S88FMT( 2, DWIDTH, EFMT(13) ) */ /* /7S */ s88fmt_(&c__2, &dwidth, efmt1 + 12, 1L); /* / */ r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) (imach[11] - 1); demin = iflr_(&r__1) + 1; r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) imach[12]; demax = iceil_(&r__1); /* Computing MAX */ i__1 = abs(demin), i__2 = abs(demax); r__2 = (real) max(i__1,i__2); r__1 = r_lg10(&r__2); ewidth = iflr_(&r__1) + 1; wwidth = dwidth + ewidth + 6; /* /6S */ /* CALL S88FMT( 2, WWIDTH, EFMT(10) ) */ /* WRITE( STDOUT, 1900 ) ( EFMT(I), I = 9, 14 ) */ /* /7S */ s88fmt_(&c__2, &wwidth, efmt1 + 9, 1L); io___54.ciunit = *stdout; s_wsfe(&io___54); for (i = 9; i <= 14; ++i) { do_fio(&c__1, efmt1 + (i - 1), 1L); } e_wsfe(); /* / */ /* NOW WRITE OUT THE SINGLE-PRECISION CONSTANTS */ io___55.ciunit = *stdout; s_wsfe(&io___55); e_wsfe(); io___56.ciunit = *stdout; s_wsfe(&io___56); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[0], (ftnlen)sizeof(real)); e_wsfe(); io___57.ciunit = *stdout; s_wsfe(&io___57); e_wsfe(); io___58.ciunit = *stdout; s_wsfe(&io___58); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[1], (ftnlen)sizeof(real)); e_wsfe(); io___59.ciunit = *stdout; s_wsfe(&io___59); e_wsfe(); io___60.ciunit = *stdout; s_wsfe(&io___60); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[2], (ftnlen)sizeof(real)); e_wsfe(); io___61.ciunit = *stdout; s_wsfe(&io___61); e_wsfe(); io___62.ciunit = *stdout; s_wsfe(&io___62); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[3], (ftnlen)sizeof(real)); e_wsfe(); io___63.ciunit = *stdout; s_wsfe(&io___63); e_wsfe(); io___64.ciunit = *stdout; s_wsfe(&io___64); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[4], (ftnlen)sizeof(real)); e_wsfe(); /* /6S */ /* CALL S88FMT( 2, WWIDTH+1, EFMT(10) ) */ /* CALL S88FMT( 2, DWIDTH+1, EFMT(13) ) */ /* /7S */ i__1 = wwidth + 1; s88fmt_(&c__2, &i__1, efmt1 + 9, 1L); i__1 = dwidth + 1; s88fmt_(&c__2, &i__1, efmt1 + 12, 1L); /* / */ /* COMPUTE THE NUMBER OF CHARACTER POSITIONS NEEDED FOR WRITING */ /* OUT A DOUBLE-PRECISION NUMBER ALLOWING FOR ONE SPACE AND */ /* A SIGN AND PLUG THE FIELDS IN THE FORMAT. */ r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) imach[13]; dwidth = iceil_(&r__1); /* /6S */ /* CALL S88FMT( 2, DWIDTH, DFMT(13) ) */ /* /7S */ s88fmt_(&c__2, &dwidth, dfmt1 + 12, 1L); /* / */ r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) (imach[14] - 1); demin = iflr_(&r__1) + 1; r__2 = (real) imach[9]; r__1 = r_lg10(&r__2) * (real) imach[15]; demax = iceil_(&r__1); /* Computing MAX */ i__1 = abs(demin), i__2 = abs(demax); r__2 = (real) max(i__1,i__2); r__1 = r_lg10(&r__2); ewidth = iflr_(&r__1) + 1; wwidth = dwidth + ewidth + 6; /* /6S */ /* CALL S88FMT( 2, WWIDTH, DFMT(10) ) */ /* WRITE( STDOUT, 2900 ) ( DFMT(I), I = 9, 14 ) */ /* /7S */ s88fmt_(&c__2, &wwidth, dfmt1 + 9, 1L); io___65.ciunit = *stdout; s_wsfe(&io___65); for (i = 9; i <= 14; ++i) { do_fio(&c__1, dfmt1 + (i - 1), 1L); } e_wsfe(); /* / */ /* NOW WRITE OUT THE DOUBLE-PRECISION CONSTANTS */ io___66.ciunit = *stdout; s_wsfe(&io___66); e_wsfe(); io___67.ciunit = *stdout; s_wsfe(&io___67); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[0], (ftnlen)sizeof(doublereal)); e_wsfe(); io___68.ciunit = *stdout; s_wsfe(&io___68); e_wsfe(); io___69.ciunit = *stdout; s_wsfe(&io___69); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[1], (ftnlen)sizeof(doublereal)); e_wsfe(); io___70.ciunit = *stdout; s_wsfe(&io___70); e_wsfe(); io___71.ciunit = *stdout; s_wsfe(&io___71); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[2], (ftnlen)sizeof(doublereal)); e_wsfe(); io___72.ciunit = *stdout; s_wsfe(&io___72); e_wsfe(); io___73.ciunit = *stdout; s_wsfe(&io___73); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[3], (ftnlen)sizeof(doublereal)); e_wsfe(); io___74.ciunit = *stdout; s_wsfe(&io___74); e_wsfe(); io___75.ciunit = *stdout; s_wsfe(&io___75); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[4], (ftnlen)sizeof(doublereal)); e_wsfe(); /* /6S */ /* CALL S88FMT( 2, WWIDTH+1, DFMT(10) ) */ /* CALL S88FMT( 2, DWIDTH+1, DFMT(13) ) */ /* /7S */ i__1 = wwidth + 1; s88fmt_(&c__2, &i__1, dfmt1 + 9, 1L); i__1 = dwidth + 1; s88fmt_(&c__2, &i__1, dfmt1 + 12, 1L); /* / */ /* NOW CHECK CONSISTENCY OF INTEGER CONSTANTS */ /* /6S */ /* CALL S88FMT( 2, 14, IFMT(5) ) */ /* /7S */ s88fmt_(&c__2, &c__14, ifmt1 + 4, 1L); /* / */ if (imach[10] <= imach[13]) { goto L4009; } io___76.ciunit = *stdout; s_wsfe(&io___76); e_wsfe(); io___77.ciunit = *stdout; s_wsfe(&io___77); e_wsfe(); io___78.ciunit = *stdout; s_wsfe(&io___78); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[10], (ftnlen)sizeof(integer)); e_wsfe(); io___79.ciunit = *stdout; s_wsfe(&io___79); e_wsfe(); io___80.ciunit = *stdout; s_wsfe(&io___80); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[13], (ftnlen)sizeof(integer)); e_wsfe(); L4009: if (imach[12] <= imach[15]) { goto L4019; } io___81.ciunit = *stdout; s_wsfe(&io___81); e_wsfe(); io___82.ciunit = *stdout; s_wsfe(&io___82); e_wsfe(); io___83.ciunit = *stdout; s_wsfe(&io___83); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[12], (ftnlen)sizeof(integer)); e_wsfe(); io___84.ciunit = *stdout; s_wsfe(&io___84); e_wsfe(); io___85.ciunit = *stdout; s_wsfe(&io___85); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[15], (ftnlen)sizeof(integer)); e_wsfe(); L4019: if (imach[15] - imach[14] >= imach[12] - imach[11]) { goto L4029; } io___86.ciunit = *stdout; s_wsfe(&io___86); e_wsfe(); io___87.ciunit = *stdout; s_wsfe(&io___87); e_wsfe(); io___88.ciunit = *stdout; s_wsfe(&io___88); e_wsfe(); io___89.ciunit = *stdout; s_wsfe(&io___89); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[11], (ftnlen)sizeof(integer)); e_wsfe(); io___90.ciunit = *stdout; s_wsfe(&io___90); e_wsfe(); io___91.ciunit = *stdout; s_wsfe(&io___91); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[12], (ftnlen)sizeof(integer)); e_wsfe(); io___92.ciunit = *stdout; s_wsfe(&io___92); e_wsfe(); io___93.ciunit = *stdout; s_wsfe(&io___93); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[14], (ftnlen)sizeof(integer)); e_wsfe(); io___94.ciunit = *stdout; s_wsfe(&io___94); e_wsfe(); io___95.ciunit = *stdout; s_wsfe(&io___95); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[15], (ftnlen)sizeof(integer)); e_wsfe(); L4029: n = 0; ibasem = imach[6] - 1; i__1 = *digint; for (i = 1; i <= i__1; ++i) { n = n * imach[6] + ibasem; /* L4030: */ } if (imach[8] == n) { goto L4039; } io___98.ciunit = *stdout; s_wsfe(&io___98); e_wsfe(); io___99.ciunit = *stdout; s_wsfe(&io___99); e_wsfe(); io___100.ciunit = *stdout; s_wsfe(&io___100); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[6], (ftnlen)sizeof(integer)); e_wsfe(); io___101.ciunit = *stdout; s_wsfe(&io___101); e_wsfe(); io___102.ciunit = *stdout; s_wsfe(&io___102); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[7], (ftnlen)sizeof(integer)); e_wsfe(); io___103.ciunit = *stdout; s_wsfe(&io___103); e_wsfe(); io___104.ciunit = *stdout; s_wsfe(&io___104); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&imach[8], (ftnlen)sizeof(integer)); e_wsfe(); L4039: /* NOW CHECK CONSISTENCY OF SINGLE-PRECISION CONSTANTS */ /* /6S */ /* CALL S88FMT( 2, 19, EFMT(5) ) */ /* /7S */ s88fmt_(&c__2, &c__19, efmt1 + 4, 1L); /* / */ i__1 = imach[11] - 1; xr = s2mach_(&c_b192, &imach[9], &i__1); if (xr == rmach[0]) { goto L5009; } io___106.ciunit = *stdout; s_wsfe(&io___106); e_wsfe(); io___107.ciunit = *stdout; s_wsfe(&io___107); e_wsfe(); io___108.ciunit = *stdout; s_wsfe(&io___108); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[0], (ftnlen)sizeof(real)); e_wsfe(); io___109.ciunit = *stdout; s_wsfe(&io___109); e_wsfe(); io___110.ciunit = *stdout; s_wsfe(&io___110); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); io___111.ciunit = *stdout; s_wsfe(&io___111); e_wsfe(); xr = rmach[0] - xr; io___112.ciunit = *stdout; s_wsfe(&io___112); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L5009: xr = (float)0.; sbase = (real) imach[9]; sbasem = (real) (imach[9] - 1); i__1 = *digsp; for (i = 1; i <= i__1; ++i) { xr = (xr + sbasem) / sbase; /* L5010: */ } xr = s2mach_(&xr, &imach[9], &imach[12]); if (xr == rmach[1]) { goto L5019; } io___115.ciunit = *stdout; s_wsfe(&io___115); e_wsfe(); io___116.ciunit = *stdout; s_wsfe(&io___116); e_wsfe(); io___117.ciunit = *stdout; s_wsfe(&io___117); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[1], (ftnlen)sizeof(real)); e_wsfe(); io___118.ciunit = *stdout; s_wsfe(&io___118); e_wsfe(); io___119.ciunit = *stdout; s_wsfe(&io___119); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); io___120.ciunit = *stdout; s_wsfe(&io___120); e_wsfe(); xr = rmach[1] - xr; io___121.ciunit = *stdout; s_wsfe(&io___121); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L5019: i__1 = -imach[10]; xr = s2mach_(&c_b192, &imach[9], &i__1); if (xr == rmach[2]) { goto L5029; } io___122.ciunit = *stdout; s_wsfe(&io___122); e_wsfe(); io___123.ciunit = *stdout; s_wsfe(&io___123); e_wsfe(); io___124.ciunit = *stdout; s_wsfe(&io___124); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[2], (ftnlen)sizeof(real)); e_wsfe(); io___125.ciunit = *stdout; s_wsfe(&io___125); e_wsfe(); io___126.ciunit = *stdout; s_wsfe(&io___126); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); io___127.ciunit = *stdout; s_wsfe(&io___127); e_wsfe(); xr = rmach[2] - xr; io___128.ciunit = *stdout; s_wsfe(&io___128); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L5029: i__1 = 1 - imach[10]; xr = s2mach_(&c_b192, &imach[9], &i__1); if (xr == rmach[3]) { goto L5039; } io___129.ciunit = *stdout; s_wsfe(&io___129); e_wsfe(); io___130.ciunit = *stdout; s_wsfe(&io___130); e_wsfe(); io___131.ciunit = *stdout; s_wsfe(&io___131); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[3], (ftnlen)sizeof(real)); e_wsfe(); io___132.ciunit = *stdout; s_wsfe(&io___132); e_wsfe(); io___133.ciunit = *stdout; s_wsfe(&io___133); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); io___134.ciunit = *stdout; s_wsfe(&io___134); e_wsfe(); xr = rmach[3] - xr; io___135.ciunit = *stdout; s_wsfe(&io___135); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L5039: r__1 = (real) imach[9]; xr = r_lg10(&r__1); if (xr == rmach[4]) { goto L5049; } io___136.ciunit = *stdout; s_wsfe(&io___136); e_wsfe(); io___137.ciunit = *stdout; s_wsfe(&io___137); e_wsfe(); io___138.ciunit = *stdout; s_wsfe(&io___138); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[4], (ftnlen)sizeof(real)); e_wsfe(); io___139.ciunit = *stdout; s_wsfe(&io___139); e_wsfe(); io___140.ciunit = *stdout; s_wsfe(&io___140); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); io___141.ciunit = *stdout; s_wsfe(&io___141); e_wsfe(); xr = rmach[4] - xr; io___142.ciunit = *stdout; s_wsfe(&io___142); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L5049: /* NOW CHECK CONSISTENCY OF DOUBLE-PRECISION CONSTANTS */ /* /6S */ /* CALL S88FMT( 2, 19, DFMT(5) ) */ /* /7S */ s88fmt_(&c__2, &c__19, dfmt1 + 4, 1L); /* / */ i__1 = imach[14] - 1; xd = s3mach_(&c_b273, &imach[9], &i__1); if (xd == dmach[0]) { goto L6009; } io___144.ciunit = *stdout; s_wsfe(&io___144); e_wsfe(); io___145.ciunit = *stdout; s_wsfe(&io___145); e_wsfe(); io___146.ciunit = *stdout; s_wsfe(&io___146); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[0], (ftnlen)sizeof(doublereal)); e_wsfe(); io___147.ciunit = *stdout; s_wsfe(&io___147); e_wsfe(); io___148.ciunit = *stdout; s_wsfe(&io___148); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); io___149.ciunit = *stdout; s_wsfe(&io___149); e_wsfe(); xd = dmach[0] - xd; io___150.ciunit = *stdout; s_wsfe(&io___150); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L6009: xd = 0.; dbase = (doublereal) ((real) imach[9]); dbasem = (doublereal) ((real) (imach[9] - 1)); i__1 = *digdp; for (i = 1; i <= i__1; ++i) { xd = (xd + dbasem) / dbase; /* L6010: */ } xd = s3mach_(&xd, &imach[9], &imach[15]); if (xd == dmach[1]) { goto L6019; } io___153.ciunit = *stdout; s_wsfe(&io___153); e_wsfe(); io___154.ciunit = *stdout; s_wsfe(&io___154); e_wsfe(); io___155.ciunit = *stdout; s_wsfe(&io___155); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[1], (ftnlen)sizeof(doublereal)); e_wsfe(); io___156.ciunit = *stdout; s_wsfe(&io___156); e_wsfe(); io___157.ciunit = *stdout; s_wsfe(&io___157); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); io___158.ciunit = *stdout; s_wsfe(&io___158); e_wsfe(); xd = dmach[1] - xd; io___159.ciunit = *stdout; s_wsfe(&io___159); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L6019: i__1 = -imach[13]; xd = s3mach_(&c_b273, &imach[9], &i__1); if (xd == dmach[2]) { goto L6029; } io___160.ciunit = *stdout; s_wsfe(&io___160); e_wsfe(); io___161.ciunit = *stdout; s_wsfe(&io___161); e_wsfe(); io___162.ciunit = *stdout; s_wsfe(&io___162); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[2], (ftnlen)sizeof(doublereal)); e_wsfe(); io___163.ciunit = *stdout; s_wsfe(&io___163); e_wsfe(); io___164.ciunit = *stdout; s_wsfe(&io___164); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); io___165.ciunit = *stdout; s_wsfe(&io___165); e_wsfe(); xd = dmach[2] - xd; io___166.ciunit = *stdout; s_wsfe(&io___166); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L6029: i__1 = 1 - imach[13]; xd = s3mach_(&c_b273, &imach[9], &i__1); if (xd == dmach[3]) { goto L6039; } io___167.ciunit = *stdout; s_wsfe(&io___167); e_wsfe(); io___168.ciunit = *stdout; s_wsfe(&io___168); e_wsfe(); io___169.ciunit = *stdout; s_wsfe(&io___169); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[3], (ftnlen)sizeof(doublereal)); e_wsfe(); io___170.ciunit = *stdout; s_wsfe(&io___170); e_wsfe(); io___171.ciunit = *stdout; s_wsfe(&io___171); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); io___172.ciunit = *stdout; s_wsfe(&io___172); e_wsfe(); xd = dmach[3] - xd; io___173.ciunit = *stdout; s_wsfe(&io___173); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L6039: d__1 = (doublereal) ((real) imach[9]); xd = d_lg10(&d__1); if (xd == dmach[4]) { goto L6049; } io___174.ciunit = *stdout; s_wsfe(&io___174); e_wsfe(); io___175.ciunit = *stdout; s_wsfe(&io___175); e_wsfe(); io___176.ciunit = *stdout; s_wsfe(&io___176); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[4], (ftnlen)sizeof(doublereal)); e_wsfe(); io___177.ciunit = *stdout; s_wsfe(&io___177); e_wsfe(); io___178.ciunit = *stdout; s_wsfe(&io___178); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); io___179.ciunit = *stdout; s_wsfe(&io___179); e_wsfe(); xd = dmach[4] - xd; io___180.ciunit = *stdout; s_wsfe(&io___180); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L6049: /* NOW SEE IF SINGLE-PRECISION IS CLOSED UNDER NEGATION */ xr = -(doublereal)rmach[0]; xr = -(doublereal)xr; if (xr == rmach[0]) { goto L7009; } io___181.ciunit = *stdout; s_wsfe(&io___181); e_wsfe(); io___182.ciunit = *stdout; s_wsfe(&io___182); e_wsfe(); io___183.ciunit = *stdout; s_wsfe(&io___183); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[0], (ftnlen)sizeof(real)); e_wsfe(); io___184.ciunit = *stdout; s_wsfe(&io___184); e_wsfe(); io___185.ciunit = *stdout; s_wsfe(&io___185); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L7009: xr = -(doublereal)rmach[1]; xr = -(doublereal)xr; if (xr == rmach[1]) { goto L7019; } io___186.ciunit = *stdout; s_wsfe(&io___186); e_wsfe(); io___187.ciunit = *stdout; s_wsfe(&io___187); e_wsfe(); io___188.ciunit = *stdout; s_wsfe(&io___188); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&rmach[1], (ftnlen)sizeof(real)); e_wsfe(); io___189.ciunit = *stdout; s_wsfe(&io___189); e_wsfe(); io___190.ciunit = *stdout; s_wsfe(&io___190); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); L7019: /* NOW SEE IF DOUBLE-PRECISION IS CLOSED UNDER NEGATION */ xd = -dmach[0]; xd = -xd; if (xd == dmach[0]) { goto L8009; } io___191.ciunit = *stdout; s_wsfe(&io___191); e_wsfe(); io___192.ciunit = *stdout; s_wsfe(&io___192); e_wsfe(); io___193.ciunit = *stdout; s_wsfe(&io___193); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[0], (ftnlen)sizeof(doublereal)); e_wsfe(); io___194.ciunit = *stdout; s_wsfe(&io___194); e_wsfe(); io___195.ciunit = *stdout; s_wsfe(&io___195); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L8009: xd = -dmach[1]; xd = -xd; if (xd == dmach[1]) { goto L8019; } io___196.ciunit = *stdout; s_wsfe(&io___196); e_wsfe(); io___197.ciunit = *stdout; s_wsfe(&io___197); e_wsfe(); io___198.ciunit = *stdout; s_wsfe(&io___198); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&dmach[1], (ftnlen)sizeof(doublereal)); e_wsfe(); io___199.ciunit = *stdout; s_wsfe(&io___199); e_wsfe(); io___200.ciunit = *stdout; s_wsfe(&io___200); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); L8019: /* CHECK THAT SQRT AND DSQRT WORK NEAR OVER- AND UNDERFLOW LIMITS. */ n = imach[10] / 2 + 1; xr = sqrt(rmach[0]); if (xr > (float)0.) { goto L9002; } io___201.ciunit = *stdout; s_wsfe(&io___201); e_wsfe(); io___202.ciunit = *stdout; s_wsfe(&io___202); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); goto L9004; /* SCALE TO AVOID TROUBLE FROM UNDERFLOW... */ L9002: xr = s2mach_(&xr, &imach[9], &n); i__1 = n << 1; yr = s2mach_(rmach, &imach[9], &i__1); yr = (r__1 = xr * xr - yr, dabs(r__1)) / yr; if (yr < rmach[3] * (float)2.) { goto L9004; } io___204.ciunit = *stdout; s_wsfe(&io___204); e_wsfe(); io___205.ciunit = *stdout; s_wsfe(&io___205); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&yr, (ftnlen)sizeof(real)); e_wsfe(); L9004: xr = sqrt(rmach[1]); if (xr > (float)0.) { goto L9006; } io___206.ciunit = *stdout; s_wsfe(&io___206); e_wsfe(); io___207.ciunit = *stdout; s_wsfe(&io___207); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xr, (ftnlen)sizeof(real)); e_wsfe(); goto L9008; /* SCALE TO AVOID TROUBLE FROM OVERFLOW... */ L9006: i__1 = -n; xr = s2mach_(&xr, &imach[9], &i__1); i__1 = n * -2; yr = s2mach_(&rmach[1], &imach[9], &i__1); yr = (r__1 = xr * xr - yr, dabs(r__1)) / yr; if (yr < rmach[3] * (float)2.) { goto L9008; } io___208.ciunit = *stdout; s_wsfe(&io___208); e_wsfe(); io___209.ciunit = *stdout; s_wsfe(&io___209); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&yr, (ftnlen)sizeof(real)); e_wsfe(); L9008: n = imach[13] / 2 + 1; xd = sqrt(dmach[0]); if (xd > 0.) { goto L9010; } io___210.ciunit = *stdout; s_wsfe(&io___210); e_wsfe(); io___211.ciunit = *stdout; s_wsfe(&io___211); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); goto L9012; /* AGAIN SCALE TO AVOID TROUBLE FROM UNDERFLOW... */ L9010: xd = s3mach_(&xd, &imach[9], &n); i__1 = n << 1; yd = s3mach_(dmach, &imach[9], &i__1); yd = (d__1 = xd * xd - yd, abs(d__1)) / yd; if (yd < dmach[3] * 2.) { goto L9012; } io___213.ciunit = *stdout; s_wsfe(&io___213); e_wsfe(); io___214.ciunit = *stdout; s_wsfe(&io___214); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&yd, (ftnlen)sizeof(doublereal)); e_wsfe(); L9012: xd = sqrt(dmach[1]); if (xd > 0.) { goto L9014; } io___215.ciunit = *stdout; s_wsfe(&io___215); e_wsfe(); io___216.ciunit = *stdout; s_wsfe(&io___216); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&xd, (ftnlen)sizeof(doublereal)); e_wsfe(); goto L9016; /* AGAIN SCALE TO AVOID TROUBLE FROM OVERFLOW... */ L9014: i__1 = -n; xd = s3mach_(&xd, &imach[9], &i__1); i__1 = n * -2; yd = s3mach_(&dmach[1], &imach[9], &i__1); yd = (d__1 = xd * xd - yd, abs(d__1)) / yd; if (yd < dmach[3] * 2.) { goto L9016; } io___217.ciunit = *stdout; s_wsfe(&io___217); e_wsfe(); io___218.ciunit = *stdout; s_wsfe(&io___218); do_fio(&c__1, ccplus, 1L); do_fio(&c__1, (char *)&yd, (ftnlen)sizeof(doublereal)); e_wsfe(); L9016: return 0; } /* s1mach_ */ #undef stdout #undef digint #undef digsp #undef digdp #undef imach #undef ifmt1 #undef efmt1 #undef dfmt1 #undef ifmt #undef efmt #undef dfmt