/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/utils/machcon.c

Go to the documentation of this file.
00001 /* machcon.f -- translated by f2c (version 20031025).
00002    You must link the resulting object file with libf2c:
00003         on Microsoft Windows system, link with libf2c.lib;
00004         on Linux or Unix systems, link with .../path/to/libf2c.a -lm
00005         or, if you install libf2c.a in a standard place, with -lf2c -lm
00006         -- in that order, at the end of the command line, as in
00007                 cc *.o -lf2c -lm
00008         Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
00009 
00010                 http://www.netlib.org/f2c/libf2c.zip
00011 */
00012 
00013 #include "f2c.h"
00014 
00015 /* Table of constant values */
00016 
00017 static integer c__25 = 25;
00018 static integer c__1 = 1;
00019 static integer c__2 = 2;
00020 
00021 /* *** machcon.f */
00022 /* ----------------------------------------------------------------- */
00023 /* >>>  MACHCON.FOR:  Machine constants */
00024 /* ----------------------------------------------------------------- */
00025 /* DECK I1MACH */
00026 #include <glib.h>
00027 
00028 integer old_i1mach_(integer *i__)
00029 {
00030     /* Initialized data */
00031 
00032     static struct {
00033         integer e_1[16];
00034         } equiv_0 = { {5, 6, 6, 6, 32, 4, 2, 31, G_MAXLONG, 2, 24, -125, 128, 
00035                 53, -1021, 1024 } };
00036 //      } equiv_0 = { 5, 6, 6, 6, 32, 4, 2, 31, 2147483647, 2, 24, -125, 128, 
00037 //              53, -1021, 1024 };
00038 
00039 
00040     /* Format strings */
00041     static char fmt_9000[] = "(\0021ERROR    1 IN I1MACH - I OUT OF BOUND"
00042             "S\002)";
00043 
00044     /* System generated locals */
00045     integer ret_val;
00046 
00047     /* Builtin functions */
00048     integer s_wsfe(cilist *), e_wsfe(void);
00049     /* Subroutine */ int s_stop(char *, ftnlen);
00050 
00051     /* Local variables */
00052 #define imach ((integer *)&equiv_0)
00053 #define output ((integer *)&equiv_0 + 3)
00054 
00055     /* Fortran I/O blocks */
00056     static cilist io___3 = { 0, 0, 0, fmt_9000, 0 };
00057 
00058 
00059 /* ***BEGIN PROLOGUE  I1MACH */
00060 /* ***DATE WRITTEN   750101   (YYMMDD) */
00061 /* ***REVISION DATE  890213   (YYMMDD) */
00062 /* ***CATEGORY NO.  R1 */
00063 /* ***KEYWORDS  LIBRARY=SLATEC,TYPE=INTEGER(I1MACH-I),MACHINE CONSTANTS */
00064 /* ***AUTHOR  FOX, P. A., (BELL LABS) */
00065 /*           HALL, A. D., (BELL LABS) */
00066 /*           SCHRYER, N. L., (BELL LABS) */
00067 /* ***PURPOSE  Returns integer machine dependent constants */
00068 /* ***DESCRIPTION */
00069 
00070 /*     I1MACH can be used to obtain machine-dependent parameters */
00071 /*     for the local machine environment.  It is a function */
00072 /*     subroutine with one (input) argument, and can be called */
00073 /*     as follows, for example */
00074 
00075 /*          K = I1MACH(I) */
00076 
00077 /*     where I=1,...,16.  The (output) value of K above is */
00078 /*     determined by the (input) value of I.  The results for */
00079 /*     various values of I are discussed below. */
00080 
00081 /*  I/O unit numbers. */
00082 /*    I1MACH( 1) = the standard input unit. */
00083 /*    I1MACH( 2) = the standard output unit. */
00084 /*    I1MACH( 3) = the standard punch unit. */
00085 /*    I1MACH( 4) = the standard error message unit. */
00086 
00087 /*  Words. */
00088 /*    I1MACH( 5) = the number of bits per integer storage unit. */
00089 /*    I1MACH( 6) = the number of characters per integer storage unit. */
00090 
00091 /*  Integers. */
00092 /*    assume integers are represented in the S-digit, base-A form */
00093 
00094 /*               sign ( X(S-1)*A**(S-1) + ... + X(1)*A + X(0) ) */
00095 
00096 /*               where 0 .LE. X(I) .LT. A for I=0,...,S-1. */
00097 /*    I1MACH( 7) = A, the base. */
00098 /*    I1MACH( 8) = S, the number of base-A digits. */
00099 /*    I1MACH( 9) = A**S - 1, the largest magnitude. */
00100 
00101 /*  Floating-Point Numbers. */
00102 /*    Assume floating-point numbers are represented in the T-digit, */
00103 /*    base-B form */
00104 /*               sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) ) */
00105 
00106 /*               where 0 .LE. X(I) .LT. B for I=1,...,T, */
00107 /*               0 .LT. X(1), and EMIN .LE. E .LE. EMAX. */
00108 /*    I1MACH(10) = B, the base. */
00109 
00110 /*  Single-Precision */
00111 /*    I1MACH(11) = T, the number of base-B digits. */
00112 /*    I1MACH(12) = EMIN, the smallest exponent E. */
00113 /*    I1MACH(13) = EMAX, the largest exponent E. */
00114 
00115 /*  Double-Precision */
00116 /*    I1MACH(14) = T, the number of base-B digits. */
00117 /*    I1MACH(15) = EMIN, the smallest exponent E. */
00118 /*    I1MACH(16) = EMAX, the largest exponent E. */
00119 
00120 /*  To alter this function for a particular environment, */
00121 /*  the desired set of DATA statements should be activated by */
00122 /*  removing the C from column 1.  Also, the values of */
00123 /*  I1MACH(1) - I1MACH(4) should be checked for consistency */
00124 /*  with the local operating system. */
00125 
00126 /* ***REFERENCES  FOX P.A., HALL A.D., SCHRYER N.L.,*FRAMEWORK FOR A */
00127 /*                 PORTABLE LIBRARY*, ACM TRANSACTIONS ON MATHEMATICAL */
00128 /*                 SOFTWARE, VOL. 4, NO. 2, JUNE 1978, PP. 177-188. */
00129 /* ***ROUTINES CALLED  (NONE) */
00130 /* ***END PROLOGUE  I1MACH */
00131 
00132 
00133 /*     MACHINE CONSTANTS FOR THE AMIGA */
00134 /*     ABSOFT COMPILER */
00135 
00136 /*     DATA IMACH(1) /    5 / */
00137 /*     DATA IMACH(2) /    6 / */
00138 /*     DATA IMACH(3) /    5 / */
00139 /*     DATA IMACH(4) /    6 / */
00140 /*     DATA IMACH(5) /   32 / */
00141 /*     DATA IMACH(6) /    4 / */
00142 /*     DATA IMACH(7) /    2 / */
00143 /*     DATA IMACH(8) /   31 / */
00144 /*     DATA IMACH(9) / 2147483647 / */
00145 /*     DATA IMACH(10)/    2 / */
00146 /*     DATA IMACH(11)/   24 / */
00147 /*     DATA IMACH(12)/ -126 / */
00148 /*     DATA IMACH(13)/  127 / */
00149 /*     DATA IMACH(14)/   53 / */
00150 /*     DATA IMACH(15)/ -1022 / */
00151 /*     DATA IMACH(16)/  1023 / */
00152 
00153 /*     MACHINE CONSTANTS FOR THE APOLLO */
00154 
00155 /*     DATA IMACH(1) /    5 / */
00156 /*     DATA IMACH(2) /    6 / */
00157 /*     DATA IMACH(3) /    6 / */
00158 /*     DATA IMACH(4) /    6 / */
00159 /*     DATA IMACH(5) /   32 / */
00160 /*     DATA IMACH(6) /    4 / */
00161 /*     DATA IMACH(7) /    2 / */
00162 /*     DATA IMACH(8) /   31 / */
00163 /*     DATA IMACH(9) / 2147483647 / */
00164 /*     DATA IMACH(10)/    2 / */
00165 /*     DATA IMACH(11)/   24 / */
00166 /*     DATA IMACH(12)/ -125 / */
00167 /*     DATA IMACH(13)/  129 / */
00168 /*     DATA IMACH(14)/   53 / */
00169 /*     DATA IMACH(15)/ -1021 / */
00170 /*     DATA IMACH(16)/  1025 / */
00171 
00172 /*     MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM */
00173 
00174 /*     DATA IMACH( 1) /    7 / */
00175 /*     DATA IMACH( 2) /    2 / */
00176 /*     DATA IMACH( 3) /    2 / */
00177 /*     DATA IMACH( 4) /    2 / */
00178 /*     DATA IMACH( 5) /   36 / */
00179 /*     DATA IMACH( 6) /    4 / */
00180 /*     DATA IMACH( 7) /    2 / */
00181 /*     DATA IMACH( 8) /   33 / */
00182 /*     DATA IMACH( 9) / Z1FFFFFFFF / */
00183 /*     DATA IMACH(10) /    2 / */
00184 /*     DATA IMACH(11) /   24 / */
00185 /*     DATA IMACH(12) / -256 / */
00186 /*     DATA IMACH(13) /  255 / */
00187 /*     DATA IMACH(14) /   60 / */
00188 /*     DATA IMACH(15) / -256 / */
00189 /*     DATA IMACH(16) /  255 / */
00190 
00191 /*     MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM */
00192 
00193 /*     DATA IMACH( 1) /   5 / */
00194 /*     DATA IMACH( 2) /   6 / */
00195 /*     DATA IMACH( 3) /   7 / */
00196 /*     DATA IMACH( 4) /   6 / */
00197 /*     DATA IMACH( 5) /  48 / */
00198 /*     DATA IMACH( 6) /   6 / */
00199 /*     DATA IMACH( 7) /   2 / */
00200 /*     DATA IMACH( 8) /  39 / */
00201 /*     DATA IMACH( 9) / O0007777777777777 / */
00202 /*     DATA IMACH(10) /   8 / */
00203 /*     DATA IMACH(11) /  13 / */
00204 /*     DATA IMACH(12) / -50 / */
00205 /*     DATA IMACH(13) /  76 / */
00206 /*     DATA IMACH(14) /  26 / */
00207 /*     DATA IMACH(15) / -50 / */
00208 /*     DATA IMACH(16) /  76 / */
00209 
00210 /*     MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS */
00211 
00212 /*     DATA IMACH( 1) /   5 / */
00213 /*     DATA IMACH( 2) /   6 / */
00214 /*     DATA IMACH( 3) /   7 / */
00215 /*     DATA IMACH( 4) /   6 / */
00216 /*     DATA IMACH( 5) /  48 / */
00217 /*     DATA IMACH( 6) /   6 / */
00218 /*     DATA IMACH( 7) /   2 / */
00219 /*     DATA IMACH( 8) /  39 / */
00220 /*     DATA IMACH( 9) / O0007777777777777 / */
00221 /*     DATA IMACH(10) /   8 / */
00222 /*     DATA IMACH(11) /  13 / */
00223 /*     DATA IMACH(12) / -50 / */
00224 /*     DATA IMACH(13) /  76 / */
00225 /*     DATA IMACH(14) /  26 / */
00226 /*     DATA IMACH(15) / -32754 / */
00227 /*     DATA IMACH(16) /  32780 / */
00228 
00229 /*     MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE */
00230 
00231 /*     DATA IMACH( 1) /     5 / */
00232 /*     DATA IMACH( 2) /     6 / */
00233 /*     DATA IMACH( 3) /     7 / */
00234 /*     DATA IMACH( 4) /     6 / */
00235 /*     DATA IMACH( 5) /    64 / */
00236 /*     DATA IMACH( 6) /     8 / */
00237 /*     DATA IMACH( 7) /     2 / */
00238 /*     DATA IMACH( 8) /    63 / */
00239 /*     DATA IMACH( 9) / 9223372036854775807 / */
00240 /*     DATA IMACH(10) /     2 / */
00241 /*     DATA IMACH(11) /    47 / */
00242 /*     DATA IMACH(12) / -4095 / */
00243 /*     DATA IMACH(13) /  4094 / */
00244 /*     DATA IMACH(14) /    94 / */
00245 /*     DATA IMACH(15) / -4095 / */
00246 /*     DATA IMACH(16) /  4094 / */
00247 
00248 /*     MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES */
00249 
00250 /*     DATA IMACH( 1) /    5 / */
00251 /*     DATA IMACH( 2) /    6 / */
00252 /*     DATA IMACH( 3) /    7 / */
00253 /*     DATA IMACH( 4) /6LOUTPUT/ */
00254 /*     DATA IMACH( 5) /   60 / */
00255 /*     DATA IMACH( 6) /   10 / */
00256 /*     DATA IMACH( 7) /    2 / */
00257 /*     DATA IMACH( 8) /   48 / */
00258 /*     DATA IMACH( 9) / 00007777777777777777B / */
00259 /*     DATA IMACH(10) /    2 / */
00260 /*     DATA IMACH(11) /   47 / */
00261 /*     DATA IMACH(12) / -929 / */
00262 /*     DATA IMACH(13) / 1070 / */
00263 /*     DATA IMACH(14) /   94 / */
00264 /*     DATA IMACH(15) / -929 / */
00265 /*     DATA IMACH(16) / 1069 / */
00266 
00267 /*     MACHINE CONSTANTS FOR THE CELERITY C1260 */
00268 
00269 /*     DATA IMACH(1) /    5 / */
00270 /*     DATA IMACH(2) /    6 / */
00271 /*     DATA IMACH(3) /    6 / */
00272 /*     DATA IMACH(4) /    0 / */
00273 /*     DATA IMACH(5) /   32 / */
00274 /*     DATA IMACH(6) /    4 / */
00275 /*     DATA IMACH(7) /    2 / */
00276 /*     DATA IMACH(8) /   31 / */
00277 /*     DATA IMACH(9) / Z'7FFFFFFF' / */
00278 /*     DATA IMACH(10)/    2 / */
00279 /*     DATA IMACH(11)/   24 / */
00280 /*     DATA IMACH(12)/ -126 / */
00281 /*     DATA IMACH(13)/  127 / */
00282 /*     DATA IMACH(14)/   53 / */
00283 /*     DATA IMACH(15)/ -1022 / */
00284 /*     DATA IMACH(16)/  1023 / */
00285 
00286 /*     MACHINE CONSTANTS FOR THE CONVEX C-1 */
00287 
00288 /*     DATA IMACH( 1) /     5/ */
00289 /*     DATA IMACH( 2) /     6/ */
00290 /*     DATA IMACH( 3) /     7/ */
00291 /*     DATA IMACH( 4) /     6/ */
00292 /*     DATA IMACH( 5) /    32/ */
00293 /*     DATA IMACH( 6) /     4/ */
00294 /*     DATA IMACH( 7) /     2/ */
00295 /*     DATA IMACH( 8) /    31/ */
00296 /*     DATA IMACH( 9) /2147483647/ */
00297 /*     DATA IMACH(10) /     2/ */
00298 /*     DATA IMACH(11) /    24/ */
00299 /*     DATA IMACH(12) /  -128/ */
00300 /*     DATA IMACH(13) /   127/ */
00301 /*     DATA IMACH(14) /    53/ */
00302 /*     DATA IMACH(15) / -1024/ */
00303 /*     DATA IMACH(16) /  1023/ */
00304 
00305 /*     MACHINE CONSTANTS FOR THE CRAY-1 */
00306 
00307 /*     DATA IMACH( 1) /   100 / */
00308 /*     DATA IMACH( 2) /   101 / */
00309 /*     DATA IMACH( 3) /   102 / */
00310 /*     DATA IMACH( 4) /   101 / */
00311 /*     DATA IMACH( 5) /    64 / */
00312 /*     DATA IMACH( 6) /     8 / */
00313 /*     DATA IMACH( 7) /     2 / */
00314 /*     DATA IMACH( 8) /    63 / */
00315 /*     DATA IMACH( 9) /  777777777777777777777B / */
00316 /*     DATA IMACH(10) /     2 / */
00317 /*     DATA IMACH(11) /    47 / */
00318 /*     DATA IMACH(12) / -8189 / */
00319 /*     DATA IMACH(13) /  8190 / */
00320 /*     DATA IMACH(14) /    94 / */
00321 /*     DATA IMACH(15) / -8099 / */
00322 /*     DATA IMACH(16) /  8190 / */
00323 
00324 /*     MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200 */
00325 
00326 /*     DATA IMACH( 1) /   11 / */
00327 /*     DATA IMACH( 2) /   12 / */
00328 /*     DATA IMACH( 3) /    8 / */
00329 /*     DATA IMACH( 4) /   10 / */
00330 /*     DATA IMACH( 5) /   16 / */
00331 /*     DATA IMACH( 6) /    2 / */
00332 /*     DATA IMACH( 7) /    2 / */
00333 /*     DATA IMACH( 8) /   15 / */
00334 /*     DATA IMACH( 9) /32767 / */
00335 /*     DATA IMACH(10) /   16 / */
00336 /*     DATA IMACH(11) /    6 / */
00337 /*     DATA IMACH(12) /  -64 / */
00338 /*     DATA IMACH(13) /   63 / */
00339 /*     DATA IMACH(14) /   14 / */
00340 /*     DATA IMACH(15) /  -64 / */
00341 /*     DATA IMACH(16) /   63 / */
00342 
00343 /*     MACHINE CONSTANTS FOR THE ELXSI 6400 */
00344 
00345 /*     DATA IMACH( 1) /     5/ */
00346 /*     DATA IMACH( 2) /     6/ */
00347 /*     DATA IMACH( 3) /     6/ */
00348 /*     DATA IMACH( 4) /     6/ */
00349 /*     DATA IMACH( 5) /    32/ */
00350 /*     DATA IMACH( 6) /     4/ */
00351 /*     DATA IMACH( 7) /     2/ */
00352 /*     DATA IMACH( 8) /    32/ */
00353 /*     DATA IMACH( 9) /2147483647/ */
00354 /*     DATA IMACH(10) /     2/ */
00355 /*     DATA IMACH(11) /    24/ */
00356 /*     DATA IMACH(12) /  -126/ */
00357 /*     DATA IMACH(13) /   127/ */
00358 /*     DATA IMACH(14) /    53/ */
00359 /*     DATA IMACH(15) / -1022/ */
00360 /*     DATA IMACH(16) /  1023/ */
00361 
00362 /*     MACHINE CONSTANTS FOR THE HARRIS 220 */
00363 
00364 /*     DATA IMACH( 1) /       5 / */
00365 /*     DATA IMACH( 2) /       6 / */
00366 /*     DATA IMACH( 3) /       0 / */
00367 /*     DATA IMACH( 4) /       6 / */
00368 /*     DATA IMACH( 5) /      24 / */
00369 /*     DATA IMACH( 6) /       3 / */
00370 /*     DATA IMACH( 7) /       2 / */
00371 /*     DATA IMACH( 8) /      23 / */
00372 /*     DATA IMACH( 9) / 8388607 / */
00373 /*     DATA IMACH(10) /       2 / */
00374 /*     DATA IMACH(11) /      23 / */
00375 /*     DATA IMACH(12) /    -127 / */
00376 /*     DATA IMACH(13) /     127 / */
00377 /*     DATA IMACH(14) /      38 / */
00378 /*     DATA IMACH(15) /    -127 / */
00379 /*     DATA IMACH(16) /     127 / */
00380 
00381 /*     MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES */
00382 
00383 /*     DATA IMACH( 1) /    5 / */
00384 /*     DATA IMACH( 2) /    6 / */
00385 /*     DATA IMACH( 3) /   43 / */
00386 /*     DATA IMACH( 4) /    6 / */
00387 /*     DATA IMACH( 5) /   36 / */
00388 /*     DATA IMACH( 6) /    6 / */
00389 /*     DATA IMACH( 7) /    2 / */
00390 /*     DATA IMACH( 8) /   35 / */
00391 /*     DATA IMACH( 9) / O377777777777 / */
00392 /*     DATA IMACH(10) /    2 / */
00393 /*     DATA IMACH(11) /   27 / */
00394 /*     DATA IMACH(12) / -127 / */
00395 /*     DATA IMACH(13) /  127 / */
00396 /*     DATA IMACH(14) /   63 / */
00397 /*     DATA IMACH(15) / -127 / */
00398 /*     DATA IMACH(16) /  127 / */
00399 
00400 /*     MACHINE CONSTANTS FOR THE HP 2100 */
00401 /*     3 WORD DOUBLE PRECISION OPTION WITH FTN4 */
00402 
00403 /*     DATA IMACH(1) /      5/ */
00404 /*     DATA IMACH(2) /      6 / */
00405 /*     DATA IMACH(3) /      4 / */
00406 /*     DATA IMACH(4) /      1 / */
00407 /*     DATA IMACH(5) /     16 / */
00408 /*     DATA IMACH(6) /      2 / */
00409 /*     DATA IMACH(7) /      2 / */
00410 /*     DATA IMACH(8) /     15 / */
00411 /*     DATA IMACH(9) /  32767 / */
00412 /*     DATA IMACH(10)/      2 / */
00413 /*     DATA IMACH(11)/     23 / */
00414 /*     DATA IMACH(12)/   -128 / */
00415 /*     DATA IMACH(13)/    127 / */
00416 /*     DATA IMACH(14)/     39 / */
00417 /*     DATA IMACH(15)/   -128 / */
00418 /*     DATA IMACH(16)/    127 / */
00419 
00420 /*     MACHINE CONSTANTS FOR THE HP 2100 */
00421 /*     4 WORD DOUBLE PRECISION OPTION WITH FTN4 */
00422 
00423 /*     DATA IMACH(1) /      5 / */
00424 /*     DATA IMACH(2) /      6 / */
00425 /*     DATA IMACH(3) /      4 / */
00426 /*     DATA IMACH(4) /      1 / */
00427 /*     DATA IMACH(5) /     16 / */
00428 /*     DATA IMACH(6) /      2 / */
00429 /*     DATA IMACH(7) /      2 / */
00430 /*     DATA IMACH(8) /     15 / */
00431 /*     DATA IMACH(9) /  32767 / */
00432 /*     DATA IMACH(10)/      2 / */
00433 /*     DATA IMACH(11)/     23 / */
00434 /*     DATA IMACH(12)/   -128 / */
00435 /*     DATA IMACH(13)/    127 / */
00436 /*     DATA IMACH(14)/     55 / */
00437 /*     DATA IMACH(15)/   -128 / */
00438 /*     DATA IMACH(16)/    127 / */
00439 
00440 /*     MACHINE CONSTANTS FOR THE HP 9000 */
00441 
00442 /*     DATA IMACH(1)  /    5 / */
00443 /*     DATA IMACH(2)  /    6 / */
00444 /*     DATA IMACH(3)  /    6 / */
00445 /*     DATA IMACH(3)  /    7 / */
00446 /*     DATA IMACH(5)  /   32 / */
00447 /*     DATA IMACH(6)  /    4 / */
00448 /*     DATA IMACH(7)  /    2 / */
00449 /*     DATA IMACH(8)  /   32 / */
00450 /*     DATA IMACH(9)  /2147483647 / */
00451 /*     DATA IMACH(10) /    2 / */
00452 /*     DATA IMACH(11) /   24 / */
00453 /*     DATA IMACH(12) / -126 / */
00454 /*     DATA IMACH(13) /  127 / */
00455 /*     DATA IMACH(14) /   53 / */
00456 /*     DATA IMACH(15) /-1015 / */
00457 /*     DATA IMACH(16) / 1017 / */
00458 
00459 /*     MACHINE CONSTANTS FOR THE IBM 360/370 SERIES, */
00460 /*     THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND */
00461 /*     THE PERKIN ELMER (INTERDATA) 7/32. */
00462 
00463 /*     DATA IMACH( 1) /   5 / */
00464 /*     DATA IMACH( 2) /   6 / */
00465 /*     DATA IMACH( 3) /   7 / */
00466 /*     DATA IMACH( 4) /   6 / */
00467 /*     DATA IMACH( 5) /  32 / */
00468 /*     DATA IMACH( 6) /   4 / */
00469 /*     DATA IMACH( 7) /  16 / */
00470 /*     DATA IMACH( 8) /  31 / */
00471 /*     DATA IMACH( 9) / Z7FFFFFFF / */
00472 /*     DATA IMACH(10) /  16 / */
00473 /*     DATA IMACH(11) /   6 / */
00474 /*     DATA IMACH(12) / -64 / */
00475 /*     DATA IMACH(13) /  63 / */
00476 /*     DATA IMACH(14) /  14 / */
00477 /*     DATA IMACH(15) / -64 / */
00478 /*     DATA IMACH(16) /  63 / */
00479 
00480 /*     MACHINE CONSTANTS FOR THE IBM PC */
00481 
00482 /*     DATA IMACH( 1) /     5 / */
00483 /*     DATA IMACH( 2) /     6 / */
00484 /*     DATA IMACH( 3) /     0 / */
00485 /*     DATA IMACH( 4) /     0 / */
00486 /*     DATA IMACH( 5) /    32 / */
00487 /*     DATA IMACH( 6) /     4 / */
00488 /*     DATA IMACH( 7) /     2 / */
00489 /*     DATA IMACH( 8) /    31 / */
00490 /*     DATA IMACH( 9) / 2147483647 / */
00491 /*     DATA IMACH(10) /     2 / */
00492 /*     DATA IMACH(11) /    24 / */
00493 /*     DATA IMACH(12) /  -125 / */
00494 /*     DATA IMACH(13) /   127 / */
00495 /*     DATA IMACH(14) /    53 / */
00496 /*     DATA IMACH(15) / -1021 / */
00497 /*     DATA IMACH(16) /  1023 / */
00498 
00499 /*     MACHINE CONSTANTS FOR THE IBM RS 6000 */
00500 
00501 /*     DATA IMACH( 1) /          5 / */
00502 /*     DATA IMACH( 2) /          6 / */
00503 /*     DATA IMACH( 3) /          6 / */
00504 /*     DATA IMACH( 4) /          0 / */
00505 /*     DATA IMACH( 5) /         32 / */
00506 /*     DATA IMACH( 6) /          4 / */
00507 /*     DATA IMACH( 7) /          2 / */
00508 /*     DATA IMACH( 8) /         31 / */
00509 /*     DATA IMACH( 9) / 2147483647 / */
00510 /*     DATA IMACH(10) /          2 / */
00511 /*     DATA IMACH(11) /         24 / */
00512 /*     DATA IMACH(12) /       -125 / */
00513 /*     DATA IMACH(13) /        128 / */
00514 /*     DATA IMACH(14) /         53 / */
00515 /*     DATA IMACH(15) /      -1021 / */
00516 /*     DATA IMACH(16) /       1024 / */
00517 
00518 /*     MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR) */
00519 
00520 /*     DATA IMACH( 1) /    5 / */
00521 /*     DATA IMACH( 2) /    6 / */
00522 /*     DATA IMACH( 3) /    5 / */
00523 /*     DATA IMACH( 4) /    6 / */
00524 /*     DATA IMACH( 5) /   36 / */
00525 /*     DATA IMACH( 6) /    5 / */
00526 /*     DATA IMACH( 7) /    2 / */
00527 /*     DATA IMACH( 8) /   35 / */
00528 /*     DATA IMACH( 9) / "377777777777 / */
00529 /*     DATA IMACH(10) /    2 / */
00530 /*     DATA IMACH(11) /   27 / */
00531 /*     DATA IMACH(12) / -128 / */
00532 /*     DATA IMACH(13) /  127 / */
00533 /*     DATA IMACH(14) /   54 / */
00534 /*     DATA IMACH(15) / -101 / */
00535 /*     DATA IMACH(16) /  127 / */
00536 
00537 /*     MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR) */
00538 
00539 /*     DATA IMACH( 1) /    5 / */
00540 /*     DATA IMACH( 2) /    6 / */
00541 /*     DATA IMACH( 3) /    5 / */
00542 /*     DATA IMACH( 4) /    6 / */
00543 /*     DATA IMACH( 5) /   36 / */
00544 /*     DATA IMACH( 6) /    5 / */
00545 /*     DATA IMACH( 7) /    2 / */
00546 /*     DATA IMACH( 8) /   35 / */
00547 /*     DATA IMACH( 9) / "377777777777 / */
00548 /*     DATA IMACH(10) /    2 / */
00549 /*     DATA IMACH(11) /   27 / */
00550 /*     DATA IMACH(12) / -128 / */
00551 /*     DATA IMACH(13) /  127 / */
00552 /*     DATA IMACH(14) /   62 / */
00553 /*     DATA IMACH(15) / -128 / */
00554 /*     DATA IMACH(16) /  127 / */
00555 
00556 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
00557 /*     32-BIT INTEGER ARITHMETIC. */
00558 
00559 /*     DATA IMACH( 1) /    5 / */
00560 /*     DATA IMACH( 2) /    6 / */
00561 /*     DATA IMACH( 3) /    5 / */
00562 /*     DATA IMACH( 4) /    6 / */
00563 /*     DATA IMACH( 5) /   32 / */
00564 /*     DATA IMACH( 6) /    4 / */
00565 /*     DATA IMACH( 7) /    2 / */
00566 /*     DATA IMACH( 8) /   31 / */
00567 /*     DATA IMACH( 9) / 2147483647 / */
00568 /*     DATA IMACH(10) /    2 / */
00569 /*     DATA IMACH(11) /   24 / */
00570 /*     DATA IMACH(12) / -127 / */
00571 /*     DATA IMACH(13) /  127 / */
00572 /*     DATA IMACH(14) /   56 / */
00573 /*     DATA IMACH(15) / -127 / */
00574 /*     DATA IMACH(16) /  127 / */
00575 
00576 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
00577 /*     16-BIT INTEGER ARITHMETIC. */
00578 
00579 /*     DATA IMACH( 1) /    5 / */
00580 /*     DATA IMACH( 2) /    6 / */
00581 /*     DATA IMACH( 3) /    5 / */
00582 /*     DATA IMACH( 4) /    6 / */
00583 /*     DATA IMACH( 5) /   16 / */
00584 /*     DATA IMACH( 6) /    2 / */
00585 /*     DATA IMACH( 7) /    2 / */
00586 /*     DATA IMACH( 8) /   15 / */
00587 /*     DATA IMACH( 9) / 32767 / */
00588 /*     DATA IMACH(10) /    2 / */
00589 /*     DATA IMACH(11) /   24 / */
00590 /*     DATA IMACH(12) / -127 / */
00591 /*     DATA IMACH(13) /  127 / */
00592 /*     DATA IMACH(14) /   56 / */
00593 /*     DATA IMACH(15) / -127 / */
00594 /*     DATA IMACH(16) /  127 / */
00595 
00596 /*     MACHINE CONSTANTS FOR THE SILICON GRAPHICS IRIS */
00597 
00598 /*     DATA IMACH( 1) /     5 / */
00599 /*     DATA IMACH( 2) /     6 / */
00600 /*     DATA IMACH( 3) /     6 / */
00601 /*     DATA IMACH( 4) /     0 / */
00602 /*     DATA IMACH( 5) /    32 / */
00603 /*     DATA IMACH( 6) /     4 / */
00604 /*     DATA IMACH( 7) /     2 / */
00605 /*     DATA IMACH( 8) /    31 / */
00606 /*     DATA IMACH( 9) / 2147483647 / */
00607 /*     DATA IMACH(10) /     2 / */
00608 /*     DATA IMACH(11) /    23 / */
00609 /*     DATA IMACH(12) /  -126 / */
00610 /*     DATA IMACH(13) /   127 / */
00611 /*     DATA IMACH(14) /    52 / */
00612 /*     DATA IMACH(15) / -1022 / */
00613 /*     DATA IMACH(16) /  1023 / */
00614 
00615 /*     MACHINE CONSTANTS FOR THE SUN */
00616 
00617 
00618 /*     MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER */
00619 
00620 
00621 /*     DATA IMACH( 1) /    5 / */
00622 /*     DATA IMACH( 2) /    6 / */
00623 /*     DATA IMACH( 3) /    1 / */
00624 /*     DATA IMACH( 4) /    6 / */
00625 /*     DATA IMACH( 5) /   36 / */
00626 /*     DATA IMACH( 6) /    4 / */
00627 /*     DATA IMACH( 7) /    2 / */
00628 /*     DATA IMACH( 8) /   35 / */
00629 /*     DATA IMACH( 9) / O377777777777 / */
00630 /*     DATA IMACH(10) /    2 / */
00631 /*     DATA IMACH(11) /   27 / */
00632 /*     DATA IMACH(12) / -128 / */
00633 /*     DATA IMACH(13) /  127 / */
00634 /*     DATA IMACH(14) /   60 / */
00635 /*     DATA IMACH(15) /-1024 / */
00636 /*     DATA IMACH(16) / 1023 / */
00637 
00638 /*     MACHINE CONSTANTS FOR THE VAX 11/780 */
00639 
00640 /*     DATA IMACH(1) /    5 / */
00641 /*     DATA IMACH(2) /    6 / */
00642 /*     DATA IMACH(3) /    5 / */
00643 /*     DATA IMACH(4) /    6 / */
00644 /*     DATA IMACH(5) /   32 / */
00645 /*     DATA IMACH(6) /    4 / */
00646 /*     DATA IMACH(7) /    2 / */
00647 /*     DATA IMACH(8) /   31 / */
00648 /*     DATA IMACH(9) /2147483647 / */
00649 /*     DATA IMACH(10)/    2 / */
00650 /*     DATA IMACH(11)/   24 / */
00651 /*     DATA IMACH(12)/ -127 / */
00652 /*     DATA IMACH(13)/  127 / */
00653 /*     DATA IMACH(14)/   56 / */
00654 /*     DATA IMACH(15)/ -127 / */
00655 /*     DATA IMACH(16)/  127 / */
00656 
00657 /*     MACHINE CONSTANTS FOR THE VAX 11/780, G-FLOAT OPTION */
00658 
00659 /*     DATA IMACH(1) /    5 / */
00660 /*     DATA IMACH(2) /    6 / */
00661 /*     DATA IMACH(3) /    5 / */
00662 /*     DATA IMACH(4) /    6 / */
00663 /*     DATA IMACH(5) /   32 / */
00664 /*     DATA IMACH(6) /    4 / */
00665 /*     DATA IMACH(7) /    2 / */
00666 /*     DATA IMACH(8) /   31 / */
00667 /*     DATA IMACH(9) /2147483647 / */
00668 /*     DATA IMACH(10)/    2 / */
00669 /*     DATA IMACH(11)/   24 / */
00670 /*     DATA IMACH(12)/ -127 / */
00671 /*     DATA IMACH(13)/  127 / */
00672 /*     DATA IMACH(14)/   53 / */
00673 /*     DATA IMACH(15)/ -1022 / */
00674 /*     DATA IMACH(16)/  1023 / */
00675 
00676 /*     MACHINE CONSTANTS FOR THE Z80 MICROPROCESSOR */
00677 
00678 /*     DATA IMACH( 1) /     1/ */
00679 /*     DATA IMACH( 2) /     1/ */
00680 /*     DATA IMACH( 3) /     0/ */
00681 /*     DATA IMACH( 4) /     1/ */
00682 /*     DATA IMACH( 5) /    16/ */
00683 /*     DATA IMACH( 6) /     2/ */
00684 /*     DATA IMACH( 7) /     2/ */
00685 /*     DATA IMACH( 8) /    15/ */
00686 /*     DATA IMACH( 9) / 32767/ */
00687 /*     DATA IMACH(10) /     2/ */
00688 /*     DATA IMACH(11) /    24/ */
00689 /*     DATA IMACH(12) /  -127/ */
00690 /*     DATA IMACH(13) /   127/ */
00691 /*     DATA IMACH(14) /    56/ */
00692 /*     DATA IMACH(15) /  -127/ */
00693 /*     DATA IMACH(16) /   127/ */
00694 
00695 
00696 /* ***FIRST EXECUTABLE STATEMENT  I1MACH */
00697     if (*i__ < 1 || *i__ > 16) {
00698         goto L10;
00699     }
00700 
00701     ret_val = imach[*i__ - 1];
00702     return ret_val;
00703 
00704 L10:
00705     io___3.ciunit = *output;
00706 /*
00707     s_wsfe(&io___3);
00708     e_wsfe();
00709 */
00710 
00711 /*     CALL FDUMP */
00712 
00713 
00714 /*
00715     s_stop("", (ftnlen)0);
00716 */
00717     return ret_val;
00718 } /* i1mach_ */
00719 
00720 #undef output
00721 #undef imach
00722 
00723 
00724 /* DECK R1MACH */
00725 doublereal r1mach_(integer *i__)
00726 {
00727     /* Initialized data */
00728 
00729     static struct {
00730         integer e_1[5];
00731         integer fill_2[1];
00732         } equiv_4 = { {8388608, 2139095039, 864026624, 872415232, 1050288283}, {0} };
00733 
00734 
00735     /* System generated locals */
00736     real ret_val;
00737 
00738     /* Local variables */
00739 #define log10 ((integer *)&equiv_4 + 4)
00740 #define large ((integer *)&equiv_4 + 1)
00741 #define rmach ((real *)&equiv_4)
00742 #define small ((integer *)&equiv_4)
00743 #define diver ((integer *)&equiv_4 + 3)
00744 #define right ((integer *)&equiv_4 + 2)
00745     extern /* Subroutine */ int xerror_(char *, integer *, integer *, integer 
00746             *, ftnlen);
00747 
00748 /* ***BEGIN PROLOGUE  R1MACH */
00749 /* ***DATE WRITTEN   790101   (YYMMDD) */
00750 /* ***REVISION DATE  890213   (YYMMDD) */
00751 /* ***CATEGORY NO.  R1 */
00752 /* ***KEYWORDS  LIBRARY=SLATEC,TYPE=SINGLE PRECISION(R1MACH-S D1MACH-D), */
00753 /*             MACHINE CONSTANTS */
00754 /* ***AUTHOR  FOX, P. A., (BELL LABS) */
00755 /*           HALL, A. D., (BELL LABS) */
00756 /*           SCHRYER, N. L., (BELL LABS) */
00757 /* ***PURPOSE  Returns single precision machine dependent constants */
00758 /* ***DESCRIPTION */
00759 
00760 /*   R1MACH can be used to obtain machine-dependent parameters */
00761 /*   for the local machine environment.  It is a function */
00762 /*   subroutine with one (input) argument, and can be called */
00763 /*   as follows, for example */
00764 
00765 /*        A = R1MACH(I) */
00766 
00767 /*   where I=1,...,5.  The (output) value of A above is */
00768 /*   determined by the (input) value of I.  The results for */
00769 /*   various values of I are discussed below. */
00770 
00771 /*   Single-Precision Machine Constants */
00772 /*   R1MACH(1) = B**(EMIN-1), the smallest positive magnitude. */
00773 /*   R1MACH(2) = B**EMAX*(1 - B**(-T)), the largest magnitude. */
00774 /*   R1MACH(3) = B**(-T), the smallest relative spacing. */
00775 /*   R1MACH(4) = B**(1-T), the largest relative spacing. */
00776 /*   R1MACH(5) = LOG10(B) */
00777 
00778 /*   Assume single precision numbers are represented in the T-digit, */
00779 /*   base-B form */
00780 
00781 /*              sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) ) */
00782 
00783 /*   where 0 .LE. X(I) .LT. B for I=1,...,T, 0 .LT. X(1), and */
00784 /*   EMIN .LE. E .LE. EMAX. */
00785 
00786 /*   The values of B, T, EMIN and EMAX are provided in I1MACH as */
00787 /*   follows: */
00788 /*   I1MACH(10) = B, the base. */
00789 /*   I1MACH(11) = T, the number of base-B digits. */
00790 /*   I1MACH(12) = EMIN, the smallest exponent E. */
00791 /*   I1MACH(13) = EMAX, the largest exponent E. */
00792 
00793 /*   To alter this function for a particular environment, */
00794 /*   the desired set of DATA statements should be activated by */
00795 /*   removing the C from column 1.  Also, the values of */
00796 /*   R1MACH(1) - R1MACH(4) should be checked for consistency */
00797 /*   with the local operating system. */
00798 
00799 /* ***REFERENCES  FOX, P.A., HALL, A.D., SCHRYER, N.L, *FRAMEWORK FOR */
00800 /*                 A PORTABLE LIBRARY*, ACM TRANSACTIONS ON MATHE- */
00801 /*                 MATICAL SOFTWARE, VOL. 4, NO. 2, JUNE 1978, */
00802 /*                 PP. 177-188. */
00803 /* ***ROUTINES CALLED  XERROR */
00804 /* ***END PROLOGUE  R1MACH */
00805 
00806 
00807 
00808 
00809 /*     MACHINE CONSTANTS FOR THE AMIGA */
00810 /*     ABSOFT FORTRAN COMPILER USING THE 68020/68881 COMPILER OPTION */
00811 
00812 /*     DATA SMALL(1) / Z'00800000' / */
00813 /*     DATA LARGE(1) / Z'7F7FFFFF' / */
00814 /*     DATA RIGHT(1) / Z'33800000' / */
00815 /*     DATA DIVER(1) / Z'34000000' / */
00816 /*     DATA LOG10(1) / Z'3E9A209B' / */
00817 
00818 /*     MACHINE CONSTANTS FOR THE AMIGA */
00819 /*     ABSOFT FORTRAN COMPILER USING SOFTWARE FLOATING POINT */
00820 
00821 /*     DATA SMALL(1) / Z'00800000' / */
00822 /*     DATA LARGE(1) / Z'7EFFFFFF' / */
00823 /*     DATA RIGHT(1) / Z'33800000' / */
00824 /*     DATA DIVER(1) / Z'34000000' / */
00825 /*     DATA LOG10(1) / Z'3E9A209B' / */
00826 
00827 /*     MACHINE CONSTANTS FOR THE APOLLO */
00828 
00829 /*     DATA SMALL(1) / 16#00800000 / */
00830 /*     DATA LARGE(1) / 16#7FFFFFFF / */
00831 /*     DATA RIGHT(1) / 16#33800000 / */
00832 /*     DATA DIVER(1) / 16#34000000 / */
00833 /*     DATA LOG10(1) / 16#3E9A209B / */
00834 
00835 /*     MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM */
00836 
00837 /*     DATA RMACH(1) / Z400800000 / */
00838 /*     DATA RMACH(2) / Z5FFFFFFFF / */
00839 /*     DATA RMACH(3) / Z4E9800000 / */
00840 /*     DATA RMACH(4) / Z4EA800000 / */
00841 /*     DATA RMACH(5) / Z500E730E8 / */
00842 
00843 /*     MACHINE CONSTANTS FOR THE BURROUGHS 5700/6700/7700 SYSTEMS */
00844 
00845 /*     DATA RMACH(1) / O1771000000000000 / */
00846 /*     DATA RMACH(2) / O0777777777777777 / */
00847 /*     DATA RMACH(3) / O1311000000000000 / */
00848 /*     DATA RMACH(4) / O1301000000000000 / */
00849 /*     DATA RMACH(5) / O1157163034761675 / */
00850 
00851 /*     MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE */
00852 
00853 /*     DATA RMACH(1) / Z"3001800000000000" / */
00854 /*     DATA RMACH(2) / Z"4FFEFFFFFFFFFFFE" / */
00855 /*     DATA RMACH(3) / Z"3FD2800000000000" / */
00856 /*     DATA RMACH(4) / Z"3FD3800000000000" / */
00857 /*     DATA RMACH(5) / Z"3FFF9A209A84FBCF" / */
00858 
00859 /*     MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES */
00860 
00861 /*     DATA RMACH(1) / 00564000000000000000B / */
00862 /*     DATA RMACH(2) / 37767777777777777776B / */
00863 /*     DATA RMACH(3) / 16414000000000000000B / */
00864 /*     DATA RMACH(4) / 16424000000000000000B / */
00865 /*     DATA RMACH(5) / 17164642023241175720B / */
00866 
00867 /*     MACHINE CONSTANTS FOR THE CELERITY C1260 */
00868 
00869 /*     DATA SMALL(1) / Z'00800000' / */
00870 /*     DATA LARGE(1) / Z'7F7FFFFF' / */
00871 /*     DATA RIGHT(1) / Z'33800000' / */
00872 /*     DATA DIVER(1) / Z'34000000' / */
00873 /*     DATA LOG10(1) / Z'3E9A209B' / */
00874 
00875 /*     MACHINE CONSTANTS FOR THE CONVEX C-1 */
00876 
00877 /*     DATA SMALL(1) / '00800000'X / */
00878 /*     DATA LARGE(1) / '7FFFFFFF'X / */
00879 /*     DATA RIGHT(1) / '34800000'X / */
00880 /*     DATA DIVER(1) / '35000000'X / */
00881 /*     DATA LOG10(1) / '3F9A209B'X / */
00882 
00883 /*     MACHINE CONSTANTS FOR THE CRAY-1 */
00884 
00885 /*     DATA RMACH(1) / 200034000000000000000B / */
00886 /*     DATA RMACH(2) / 577767777777777777776B / */
00887 /*     DATA RMACH(3) / 377224000000000000000B / */
00888 /*     DATA RMACH(4) / 377234000000000000000B / */
00889 /*     DATA RMACH(5) / 377774642023241175720B / */
00890 
00891 /*     MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200 */
00892 
00893 /*     NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD - */
00894 /*     STATIC RMACH(5) */
00895 
00896 /*     DATA SMALL /    20K,       0 / */
00897 /*     DATA LARGE / 77777K, 177777K / */
00898 /*     DATA RIGHT / 35420K,       0 / */
00899 /*     DATA DIVER / 36020K,       0 / */
00900 /*     DATA LOG10 / 40423K,  42023K / */
00901 
00902 /*     MACHINE CONSTANTS FOR THE HARRIS 220 */
00903 
00904 /*     DATA SMALL(1), SMALL(2) / '20000000, '00000201 / */
00905 /*     DATA LARGE(1), LARGE(2) / '37777777, '00000177 / */
00906 /*     DATA RIGHT(1), RIGHT(2) / '20000000, '00000352 / */
00907 /*     DATA DIVER(1), DIVER(2) / '20000000, '00000353 / */
00908 /*     DATA LOG10(1), LOG10(2) / '23210115, '00000377 / */
00909 
00910 /*     MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES */
00911 
00912 /*     DATA RMACH(1) / O402400000000 / */
00913 /*     DATA RMACH(2) / O376777777777 / */
00914 /*     DATA RMACH(3) / O714400000000 / */
00915 /*     DATA RMACH(4) / O716400000000 / */
00916 /*     DATA RMACH(5) / O776464202324 / */
00917 
00918 /*     MACHINE CONSTANTS FOR THE HP 2100 */
00919 /*     3 WORD DOUBLE PRECISION WITH FTN4 */
00920 
00921 /*     DATA SMALL(1), SMALL(2) / 40000B,       1 / */
00922 /*     DATA LARGE(1), LARGE(2) / 77777B, 177776B / */
00923 /*     DATA RIGHT(1), RIGHT(2) / 40000B,    325B / */
00924 /*     DATA DIVER(1), DIVER(2) / 40000B,    327B / */
00925 /*     DATA LOG10(1), LOG10(2) / 46420B,  46777B / */
00926 
00927 /*     MACHINE CONSTANTS FOR THE HP 2100 */
00928 /*     4 WORD DOUBLE PRECISION WITH FTN4 */
00929 
00930 /*     DATA SMALL(1), SMALL(2) / 40000B,       1 / */
00931 /*     DATA LARGE91), LARGE(2) / 77777B, 177776B / */
00932 /*     DATA RIGHT(1), RIGHT(2) / 40000B,    325B / */
00933 /*     DATA DIVER(1), DIVER(2) / 40000B,    327B / */
00934 /*     DATA LOG10(1), LOG10(2) / 46420B,  46777B / */
00935 
00936 /*     MACHINE CONSTANTS FOR THE HP 9000 */
00937 
00938 /*     DATA SMALL(1) / 00004000000B / */
00939 /*     DATA LARGE(1) / 17677777777B / */
00940 /*     DATA RIGHT(1) / 06340000000B / */
00941 /*     DATA DIVER(1) / 06400000000B / */
00942 /*     DATA LOG10(1) / 07646420233B / */
00943 
00944 /*     MACHINE CONSTANTS FOR THE ELXSI 6400 */
00945 /*       ASSUMING REAL*4 IS THE DEFAULT REAL */
00946 
00947 /*     DATA SMALL(1) / '00800000'X / */
00948 /*     DATA LARGE(1) / '7F7FFFFF'X / */
00949 /*     DATA RIGHT(1) / '33800000'X / */
00950 /*     DATA DIVER(1) / '34000000'X / */
00951 /*     DATA LOG10(1) / '3E9A209B'X / */
00952 
00953 /*     MACHINE CONSTANTS FOR THE IBM 360/370 SERIES, */
00954 /*     THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86  AND */
00955 /*     THE PERKIN ELMER (INTERDATA) 7/32. */
00956 
00957 /*     DATA RMACH(1) / Z00100000 / */
00958 /*     DATA RMACH(2) / Z7FFFFFFF / */
00959 /*     DATA RMACH(3) / Z3B100000 / */
00960 /*     DATA RMACH(4) / Z3C100000 / */
00961 /*     DATA RMACH(5) / Z41134413 / */
00962 
00963 /*     MACHINE CONSTANTS FOR THE IBM PC */
00964 
00965 /*     DATA SMALL(1) /     8420761 / */
00966 /*     DATA LARGE(1) /  2139081118 / */
00967 /*     DATA RIGHT(1) /   863997169 / */
00968 /*     DATA DIVER(1) /   872385777 / */
00969 /*     DATA LOG10(1) /  1050288283 / */
00970 
00971 /*     MACHINE CONSTANTS FOR THE IBM RS 6000 */
00972 
00973 /*     DATA SMALL(1) / Z'00800000' / */
00974 /*     DATA LARGE(1) / Z'7F7FFFFF' / */
00975 /*     DATA RIGHT(1) / Z'33800000' / */
00976 /*     DATA DIVER(1) / Z'34000000' / */
00977 /*     DATA LOG10(1) / Z'3E9A209B' / */
00978 
00979 /*     MACHINE CONSTANTS FOR THE PDP-10 (KA OR KI PROCESSOR) */
00980 
00981 /*     DATA RMACH(1) / "000400000000 / */
00982 /*     DATA RMACH(2) / "377777777777 / */
00983 /*     DATA RMACH(3) / "146400000000 / */
00984 /*     DATA RMACH(4) / "147400000000 / */
00985 /*     DATA RMACH(5) / "177464202324 / */
00986 
00987 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
00988 /*     32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL). */
00989 
00990 /*     DATA SMALL(1) /    8388608 / */
00991 /*     DATA LARGE(1) / 2147483647 / */
00992 /*     DATA RIGHT(1) /  880803840 / */
00993 /*     DATA DIVER(1) /  889192448 / */
00994 /*     DATA LOG10(1) / 1067065499 / */
00995 
00996 /*     DATA RMACH(1) / O00040000000 / */
00997 /*     DATA RMACH(2) / O17777777777 / */
00998 /*     DATA RMACH(3) / O06440000000 / */
00999 /*     DATA RMACH(4) / O06500000000 / */
01000 /*     DATA RMACH(5) / O07746420233 / */
01001 
01002 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
01003 /*     16-BIT INTEGERS  (EXPRESSED IN INTEGER AND OCTAL). */
01004 
01005 /*     DATA SMALL(1), SMALL(2) /   128,     0 / */
01006 /*     DATA LARGE(1), LARGE(2) / 32767,    -1 / */
01007 /*     DATA RIGHT(1), RIGHT(2) / 13440,     0 / */
01008 /*     DATA DIVER(1), DIVER(2) / 13568,     0 / */
01009 /*     DATA LOG10(1), LOG10(2) / 16282,  8347 / */
01010 
01011 /*     DATA SMALL(1), SMALL(2) / O000200, O000000 / */
01012 /*     DATA LARGE(1), LARGE(2) / O077777, O177777 / */
01013 /*     DATA RIGHT(1), RIGHT(2) / O032200, O000000 / */
01014 /*     DATA DIVER(1), DIVER(2) / O032400, O000000 / */
01015 /*     DATA LOG10(1), LOG10(2) / O037632, O020233 / */
01016 
01017 /*     MACHINE CONSTANTS FOR THE SILICON GRAPHICS IRIS */
01018 
01019 /*     data rmach(1) / 1.17549 424 e-38 / */
01020 /*     data rmach(2) / 3.40282 356 e+38 / */
01021 /*     data rmach(3) / 1.19209 290 e-07 / */
01022 /*     data rmach(4) / 2.38418 579 e-07 / */
01023 /*     data rmach(5) / 0.30103 001 / */
01024 
01025 /*     DATA SMALL(1) / Z'00800000' / */
01026 /*     DATA LARGE(1) / Z'7F7FFFFF' / */
01027 /*     DATA RIGHT(1) / Z'34000000' / */
01028 /*     DATA DIVER(1) / Z'34800000' / */
01029 /*     DATA LOG10(1) / Z'3E9A209B' / */
01030 
01031 /*     MACHINE CONSTANTS FOR THE SUN */
01032 
01033 
01034 /*     MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES */
01035 
01036 /*     DATA RMACH(1) / O000400000000 / */
01037 /*     DATA RMACH(2) / O377777777777 / */
01038 /*     DATA RMACH(3) / O146400000000 / */
01039 /*     DATA RMACH(4) / O147400000000 / */
01040 /*     DATA RMACH(5) / O177464202324 / */
01041 
01042 /*     MACHINE CONSTANTS FOR THE VAX 11/780 */
01043 /*     (EXPRESSED IN INTEGER AND HEXADECIMAL) */
01044 /*     THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS */
01045 /*     THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS */
01046 
01047 /*     DATA SMALL(1) /       128 / */
01048 /*     DATA LARGE(1) /    -32769 / */
01049 /*     DATA RIGHT(1) /     13440 / */
01050 /*     DATA DIVER(1) /     13568 / */
01051 /*     DATA LOG10(1) / 547045274 / */
01052 
01053 /*     DATA SMALL(1) / Z00000080 / */
01054 /*     DATA LARGE(1) / ZFFFF7FFF / */
01055 /*     DATA RIGHT(1) / Z00003480 / */
01056 /*     DATA DIVER(1) / Z00003500 / */
01057 /*     DATA LOG10(1) / Z209B3F9A / */
01058 
01059 /*     MACHINE CONSTANTS FOR THE Z80 MICROPROCESSOR */
01060 
01061 /*     DATA SMALL(1), SMALL(2) /     0,    256/ */
01062 /*     DATA LARGE(1), LARGE(2) /    -1,   -129/ */
01063 /*     DATA RIGHT(1), RIGHT(2) /     0,  26880/ */
01064 /*     DATA DIVER(1), DIVER(2) /     0,  27136/ */
01065 /*     DATA LOG10(1), LOG10(2) /  8347,  32538/ */
01066 
01067 
01068 /* ***FIRST EXECUTABLE STATEMENT  R1MACH */
01069     if (*i__ < 1 || *i__ > 5) {
01070         xerror_("R1MACH -- I OUT OF BOUNDS", &c__25, &c__1, &c__2, (ftnlen)25)
01071                 ;
01072     }
01073 
01074     ret_val = rmach[*i__ - 1];
01075     return ret_val;
01076 
01077 } /* r1mach_ */
01078 
01079 #undef right
01080 #undef diver
01081 #undef small
01082 #undef rmach
01083 #undef large
01084 #undef log10
01085 
01086 
01087 /* DECK D1MACH */
01088 doublereal old_d1mach_(integer *i__)
01089 {
01090     /* Initialized data */
01091 
01092     static struct {
01093         integer e_1[10];
01094         doublereal fill_2[1];
01095         doublereal e_3;
01096         } equiv_4 = { {1048576, 0, 2146435071, -1, 1017118720, 0, 1018167296, 
01097                 0, 1070810131, 1352628735}, {0}, 0. };
01098 
01099 
01100     /* System generated locals */
01101     doublereal ret_val;
01102 
01103     /* Local variables */
01104 #define log10 ((integer *)&equiv_4 + 8)
01105 #define dmach ((doublereal *)&equiv_4)
01106 #define large ((integer *)&equiv_4 + 2)
01107 #define small ((integer *)&equiv_4)
01108 #define diver ((integer *)&equiv_4 + 6)
01109 #define right ((integer *)&equiv_4 + 4)
01110     extern /* Subroutine */ int xerror_(char *, integer *, integer *, integer 
01111             *, ftnlen);
01112 
01113 /* ***BEGIN PROLOGUE  D1MACH */
01114 /* ***DATE WRITTEN   750101   (YYMMDD) */
01115 /* ***REVISION DATE  890213   (YYMMDD) */
01116 /* ***CATEGORY NO.  R1 */
01117 /* ***KEYWORDS  LIBRARY=SLATEC,TYPE=DOUBLE PRECISION(R1MACH-S D1MACH-D), */
01118 /*             MACHINE CONSTANTS */
01119 /* ***AUTHOR  FOX, P. A., (BELL LABS) */
01120 /*           HALL, A. D., (BELL LABS) */
01121 /*           SCHRYER, N. L., (BELL LABS) */
01122 /* ***PURPOSE  Returns double precision machine dependent constants */
01123 /* ***DESCRIPTION */
01124 
01125 /*   D1MACH can be used to obtain machine-dependent parameters */
01126 /*   for the local machine environment.  It is a function */
01127 /*   subprogram with one (input) argument, and can be called */
01128 /*   as follows, for example */
01129 
01130 /*        D = D1MACH(I) */
01131 
01132 /*   where I=1,...,5.  The (output) value of D above is */
01133 /*   determined by the (input) value of I.  The results for */
01134 /*   various values of I are discussed below. */
01135 
01136 /*   D1MACH( 1) = B**(EMIN-1), the smallest positive magnitude. */
01137 /*   D1MACH( 2) = B**EMAX*(1 - B**(-T)), the largest magnitude. */
01138 /*   D1MACH( 3) = B**(-T), the smallest relative spacing. */
01139 /*   D1MACH( 4) = B**(1-T), the largest relative spacing. */
01140 /*   D1MACH( 5) = LOG10(B) */
01141 
01142 /*   Assume double precision numbers are represented in the T-digit, */
01143 /*   base-B form */
01144 
01145 /*              sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) ) */
01146 
01147 /*   where 0 .LE. X(I) .LT. B for I=1,...,T, 0 .LT. X(1), and */
01148 /*   EMIN .LE. E .LE. EMAX. */
01149 
01150 /*   The values of B, T, EMIN and EMAX are provided in I1MACH as */
01151 /*   follows: */
01152 /*   I1MACH(10) = B, the base. */
01153 /*   I1MACH(14) = T, the number of base-B digits. */
01154 /*   I1MACH(15) = EMIN, the smallest exponent E. */
01155 /*   I1MACH(16) = EMAX, the largest exponent E. */
01156 
01157 /*   To alter this function for a particular environment, */
01158 /*   the desired set of DATA statements should be activated by */
01159 /*   removing the C from column 1.  Also, the values of */
01160 /*   D1MACH(1) - D1MACH(4) should be checked for consistency */
01161 /*   with the local operating system. */
01162 
01163 /* ***REFERENCES  FOX P.A., HALL A.D., SCHRYER N.L.,*FRAMEWORK FOR A */
01164 /*                 PORTABLE LIBRARY*, ACM TRANSACTIONS ON MATHEMATICAL */
01165 /*                 SOFTWARE, VOL. 4, NO. 2, JUNE 1978, PP. 177-188. */
01166 /* ***ROUTINES CALLED  XERROR */
01167 /* ***END PROLOGUE  D1MACH */
01168 
01169 
01170 
01171 
01172 /*     MACHINE CONSTANTS FOR THE AMIGA */
01173 /*     ABSOFT FORTRAN COMPILER USING THE 68020/68881 COMPILER OPTION */
01174 
01175 /*     DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' / */
01176 /*     DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' / */
01177 /*     DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' / */
01178 /*     DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' / */
01179 /*     DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' / */
01180 
01181 /*     MACHINE CONSTANTS FOR THE AMIGA */
01182 /*     ABSOFT FORTRAN COMPILER USING SOFTWARE FLOATING POINT */
01183 
01184 /*     DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' / */
01185 /*     DATA LARGE(1), LARGE(2) / Z'7FDFFFFF', Z'FFFFFFFF' / */
01186 /*     DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' / */
01187 /*     DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' / */
01188 /*     DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' / */
01189 
01190 /*     MACHINE CONSTANTS FOR THE APOLLO */
01191 
01192 /*     DATA SMALL(1), SMALL(2) / 16#00100000, 16#00000000 / */
01193 /*     DATA LARGE(1), LARGE(2) / 16#7FFFFFFF, 16#FFFFFFFF / */
01194 /*     DATA RIGHT(1), RIGHT(2) / 16#3CA00000, 16#00000000 / */
01195 /*     DATA DIVER(1), DIVER(2) / 16#3CB00000, 16#00000000 / */
01196 /*     DATA LOG10(1), LOG10(2) / 16#3FD34413, 16#509F79FF / */
01197 
01198 /*     MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM */
01199 
01200 /*     DATA SMALL(1) / ZC00800000 / */
01201 /*     DATA SMALL(2) / Z000000000 / */
01202 /*     DATA LARGE(1) / ZDFFFFFFFF / */
01203 /*     DATA LARGE(2) / ZFFFFFFFFF / */
01204 /*     DATA RIGHT(1) / ZCC5800000 / */
01205 /*     DATA RIGHT(2) / Z000000000 / */
01206 /*     DATA DIVER(1) / ZCC6800000 / */
01207 /*     DATA DIVER(2) / Z000000000 / */
01208 /*     DATA LOG10(1) / ZD00E730E7 / */
01209 /*     DATA LOG10(2) / ZC77800DC0 / */
01210 
01211 /*     MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM */
01212 
01213 /*     DATA SMALL(1) / O1771000000000000 / */
01214 /*     DATA SMALL(2) / O0000000000000000 / */
01215 /*     DATA LARGE(1) / O0777777777777777 / */
01216 /*     DATA LARGE(2) / O0007777777777777 / */
01217 /*     DATA RIGHT(1) / O1461000000000000 / */
01218 /*     DATA RIGHT(2) / O0000000000000000 / */
01219 /*     DATA DIVER(1) / O1451000000000000 / */
01220 /*     DATA DIVER(2) / O0000000000000000 / */
01221 /*     DATA LOG10(1) / O1157163034761674 / */
01222 /*     DATA LOG10(2) / O0006677466732724 / */
01223 
01224 /*     MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS */
01225 
01226 /*     DATA SMALL(1) / O1771000000000000 / */
01227 /*     DATA SMALL(2) / O7770000000000000 / */
01228 /*     DATA LARGE(1) / O0777777777777777 / */
01229 /*     DATA LARGE(2) / O7777777777777777 / */
01230 /*     DATA RIGHT(1) / O1461000000000000 / */
01231 /*     DATA RIGHT(2) / O0000000000000000 / */
01232 /*     DATA DIVER(1) / O1451000000000000 / */
01233 /*     DATA DIVER(2) / O0000000000000000 / */
01234 /*     DATA LOG10(1) / O1157163034761674 / */
01235 /*     DATA LOG10(2) / O0006677466732724 / */
01236 
01237 /*     MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE */
01238 
01239 /*     DATA SMALL(1) / Z"3001800000000000" / */
01240 /*     DATA SMALL(2) / Z"3001000000000000" / */
01241 /*     DATA LARGE(1) / Z"4FFEFFFFFFFFFFFE" / */
01242 /*     DATA LARGE(2) / Z"4FFE000000000000" / */
01243 /*     DATA RIGHT(1) / Z"3FD2800000000000" / */
01244 /*     DATA RIGHT(2) / Z"3FD2000000000000" / */
01245 /*     DATA DIVER(1) / Z"3FD3800000000000" / */
01246 /*     DATA DIVER(2) / Z"3FD3000000000000" / */
01247 /*     DATA LOG10(1) / Z"3FFF9A209A84FBCF" / */
01248 /*     DATA LOG10(2) / Z"3FFFF7988F8959AC" / */
01249 
01250 /*     MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES */
01251 
01252 /*     DATA SMALL(1) / 00564000000000000000B / */
01253 /*     DATA SMALL(2) / 00000000000000000000B / */
01254 /*     DATA LARGE(1) / 37757777777777777777B / */
01255 /*     DATA LARGE(2) / 37157777777777777777B / */
01256 /*     DATA RIGHT(1) / 15624000000000000000B / */
01257 /*     DATA RIGHT(2) / 00000000000000000000B / */
01258 /*     DATA DIVER(1) / 15634000000000000000B / */
01259 /*     DATA DIVER(2) / 00000000000000000000B / */
01260 /*     DATA LOG10(1) / 17164642023241175717B / */
01261 /*     DATA LOG10(2) / 16367571421742254654B / */
01262 
01263 /*     MACHINE CONSTANTS FOR THE CELERITY C1260 */
01264 
01265 /*     DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' / */
01266 /*     DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' / */
01267 /*     DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' / */
01268 /*     DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' / */
01269 /*     DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' / */
01270 
01271 /*     MACHINE CONSTANTS FOR THE CONVEX C-1 */
01272 
01273 /*     DATA SMALL(1), SMALL(2) / '00100000'X,'00000000'X / */
01274 /*     DATA LARGE(1), LARGE(2) / '7FFFFFFF'X,'FFFFFFFF'X / */
01275 /*     DATA RIGHT(1), RIGHT(2) / '3CC00000'X,'00000000'X / */
01276 /*     DATA DIVER(1), DIVER(2) / '3CD00000'X,'00000000'X / */
01277 /*     DATA LOG10(1), LOG10(2) / '3FF34413'X,'509F79FF'X / */
01278 
01279 /*     MACHINE CONSTANTS FOR THE CRAY-1 */
01280 
01281 /*     DATA SMALL(1) / 201354000000000000000B / */
01282 /*     DATA SMALL(2) / 000000000000000000000B / */
01283 /*     DATA LARGE(1) / 577767777777777777777B / */
01284 /*     DATA LARGE(2) / 000007777777777777774B / */
01285 /*     DATA RIGHT(1) / 376434000000000000000B / */
01286 /*     DATA RIGHT(2) / 000000000000000000000B / */
01287 /*     DATA DIVER(1) / 376444000000000000000B / */
01288 /*     DATA DIVER(2) / 000000000000000000000B / */
01289 /*     DATA LOG10(1) / 377774642023241175717B / */
01290 /*     DATA LOG10(2) / 000007571421742254654B / */
01291 
01292 /*     MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200 */
01293 
01294 /*     NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD - */
01295 /*     STATIC DMACH(5) */
01296 
01297 /*     DATA SMALL /    20K, 3*0 / */
01298 /*     DATA LARGE / 77777K, 3*177777K / */
01299 /*     DATA RIGHT / 31420K, 3*0 / */
01300 /*     DATA DIVER / 32020K, 3*0 / */
01301 /*     DATA LOG10 / 40423K, 42023K, 50237K, 74776K / */
01302 
01303 /*     MACHINE CONSTANTS FOR THE ELXSI 6400 */
01304 /*     (ASSUMING REAL*8 IS THE DEFAULT DOUBLE PRECISION) */
01305 
01306 /*     DATA SMALL(1), SMALL(2) / '00100000'X,'00000000'X / */
01307 /*     DATA LARGE(1), LARGE(2) / '7FEFFFFF'X,'FFFFFFFF'X / */
01308 /*     DATA RIGHT(1), RIGHT(2) / '3CB00000'X,'00000000'X / */
01309 /*     DATA DIVER(1), DIVER(2) / '3CC00000'X,'00000000'X / */
01310 /*     DATA LOG10(1), LOG10(2) / '3FD34413'X,'509F79FF'X / */
01311 
01312 /*     MACHINE CONSTANTS FOR THE HARRIS 220 */
01313 
01314 /*     DATA SMALL(1), SMALL(2) / '20000000, '00000201 / */
01315 /*     DATA LARGE(1), LARGE(2) / '37777777, '37777577 / */
01316 /*     DATA RIGHT(1), RIGHT(2) / '20000000, '00000333 / */
01317 /*     DATA DIVER(1), DIVER(2) / '20000000, '00000334 / */
01318 /*     DATA LOG10(1), LOG10(2) / '23210115, '10237777 / */
01319 
01320 /*     MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES */
01321 
01322 /*     DATA SMALL(1), SMALL(2) / O402400000000, O000000000000 / */
01323 /*     DATA LARGE(1), LARGE(2) / O376777777777, O777777777777 / */
01324 /*     DATA RIGHT(1), RIGHT(2) / O604400000000, O000000000000 / */
01325 /*     DATA DIVER(1), DIVER(2) / O606400000000, O000000000000 / */
01326 /*     DATA LOG10(1), LOG10(2) / O776464202324, O117571775714 / */
01327 
01328 /*     MACHINE CONSTANTS FOR THE HP 2100 */
01329 /*     THREE WORD DOUBLE PRECISION OPTION WITH FTN4 */
01330 
01331 /*     DATA SMALL(1), SMALL(2), SMALL(3) / 40000B,       0,       1 / */
01332 /*     DATA LARGE(1), LARGE(2), LARGE(3) / 77777B, 177777B, 177776B / */
01333 /*     DATA RIGHT(1), RIGHT(2), RIGHT(3) / 40000B,       0,    265B / */
01334 /*     DATA DIVER(1), DIVER(2), DIVER(3) / 40000B,       0,    276B / */
01335 /*     DATA LOG10(1), LOG10(2), LOG10(3) / 46420B,  46502B,  77777B / */
01336 
01337 /*     MACHINE CONSTANTS FOR THE HP 2100 */
01338 /*     FOUR WORD DOUBLE PRECISION OPTION WITH FTN4 */
01339 
01340 /*     DATA SMALL(1), SMALL(2) /  40000B,       0 / */
01341 /*     DATA SMALL(3), SMALL(4) /       0,       1 / */
01342 /*     DATA LARGE(1), LARGE(2) /  77777B, 177777B / */
01343 /*     DATA LARGE(3), LARGE(4) / 177777B, 177776B / */
01344 /*     DATA RIGHT(1), RIGHT(2) /  40000B,       0 / */
01345 /*     DATA RIGHT(3), RIGHT(4) /       0,    225B / */
01346 /*     DATA DIVER(1), DIVER(2) /  40000B,       0 / */
01347 /*     DATA DIVER(3), DIVER(4) /       0,    227B / */
01348 /*     DATA LOG10(1), LOG10(2) /  46420B,  46502B / */
01349 /*     DATA LOG10(3), LOG10(4) /  76747B, 176377B / */
01350 
01351 /*     MACHINE CONSTANTS FOR THE HP 9000 */
01352 
01353 /*     DATA SMALL(1), SMALL(2) / 00040000000B, 00000000000B / */
01354 /*     DATA LARGE(1), LARGE(2) / 17737777777B, 37777777777B / */
01355 /*     DATA RIGHT(1), RIGHT(2) / 07454000000B, 00000000000B / */
01356 /*     DATA DIVER(1), DIVER(2) / 07460000000B, 00000000000B / */
01357 /*     DATA LOG10(1), LOG10(2) / 07764642023B, 12047674777B / */
01358 
01359 /*     MACHINE CONSTANTS FOR THE IBM 360/370 SERIES, */
01360 /*     THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND */
01361 /*     THE PERKIN ELMER (INTERDATA) 7/32. */
01362 
01363 /*     DATA SMALL(1), SMALL(2) / Z00100000, Z00000000 / */
01364 /*     DATA LARGE(1), LARGE(2) / Z7FFFFFFF, ZFFFFFFFF / */
01365 /*     DATA RIGHT(1), RIGHT(2) / Z33100000, Z00000000 / */
01366 /*     DATA DIVER(1), DIVER(2) / Z34100000, Z00000000 / */
01367 /*     DATA LOG10(1), LOG10(2) / Z41134413, Z509F79FF / */
01368 
01369 /*     MACHINE CONSTANTS FOR THE IBM PC */
01370 /*     ASSUMES THAT ALL ARITHMETIC IS DONE IN DOUBLE PRECISION */
01371 /*     ON 8088, I.E., NOT IN 80 BIT FORM FOR THE 8087. */
01372 
01373 /*     DATA SMALL(1),SMALL(2) /  2002288515,    1050897 / */
01374 /*     DATA LARGE(1),LARGE(2) /  1487780761, 2146426097 / */
01375 /*     DATA RIGHT(1),RIGHT(2) / -1209488034, 1017118298 / */
01376 /*     DATA DIVER(1),DIVER(2) / -1209488034, 1018166874 / */
01377 /*     DATA LOG10(1),LOG10(2) /  1352628735, 1070810131 / */
01378 
01379 /*     MACHINE CONSTANTS FOR THE IBM RS 6000 */
01380 
01381 /*     DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' / */
01382 /*     DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' / */
01383 /*     DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' / */
01384 /*     DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' / */
01385 /*     DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' / */
01386 
01387 /*     MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR) */
01388 
01389 /*     DATA SMALL(1), SMALL(2) / "033400000000, "000000000000 / */
01390 /*     DATA LARGE(1), LARGE(2) / "377777777777, "344777777777 / */
01391 /*     DATA RIGHT(1), RIGHT(2) / "113400000000, "000000000000 / */
01392 /*     DATA DIVER(1), DIVER(2) / "114400000000, "000000000000 / */
01393 /*     DATA LOG10(1), LOG10(2) / "177464202324, "144117571776 / */
01394 
01395 /*     MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR) */
01396 
01397 /*     DATA SMALL(1), SMALL(2) / "000400000000, "000000000000 / */
01398 /*     DATA LARGE(1), LARGE(2) / "377777777777, "377777777777 / */
01399 /*     DATA RIGHT(1), RIGHT(2) / "103400000000, "000000000000 / */
01400 /*     DATA DIVER(1), DIVER(2) / "104400000000, "000000000000 / */
01401 /*     DATA LOG10(1), LOG10(2) / "177464202324, "476747767461 / */
01402 
01403 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
01404 /*     32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL). */
01405 
01406 /*     DATA SMALL(1), SMALL(2) /    8388608,           0 / */
01407 /*     DATA LARGE(1), LARGE(2) / 2147483647,          -1 / */
01408 /*     DATA RIGHT(1), RIGHT(2) /  612368384,           0 / */
01409 /*     DATA DIVER(1), DIVER(2) /  620756992,           0 / */
01410 /*     DATA LOG10(1), LOG10(2) / 1067065498, -2063872008 / */
01411 
01412 /*     DATA SMALL(1), SMALL(2) / O00040000000, O00000000000 / */
01413 /*     DATA LARGE(1), LARGE(2) / O17777777777, O37777777777 / */
01414 /*     DATA RIGHT(1), RIGHT(2) / O04440000000, O00000000000 / */
01415 /*     DATA DIVER(1), DIVER(2) / O04500000000, O00000000000 / */
01416 /*     DATA LOG10(1), LOG10(2) / O07746420232, O20476747770 / */
01417 
01418 /*     MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING */
01419 /*     16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL). */
01420 
01421 /*     DATA SMALL(1), SMALL(2) /    128,      0 / */
01422 /*     DATA SMALL(3), SMALL(4) /      0,      0 / */
01423 /*     DATA LARGE(1), LARGE(2) /  32767,     -1 / */
01424 /*     DATA LARGE(3), LARGE(4) /     -1,     -1 / */
01425 /*     DATA RIGHT(1), RIGHT(2) /   9344,      0 / */
01426 /*     DATA RIGHT(3), RIGHT(4) /      0,      0 / */
01427 /*     DATA DIVER(1), DIVER(2) /   9472,      0 / */
01428 /*     DATA DIVER(3), DIVER(4) /      0,      0 / */
01429 /*     DATA LOG10(1), LOG10(2) /  16282,   8346 / */
01430 /*     DATA LOG10(3), LOG10(4) / -31493, -12296 / */
01431 
01432 /*     DATA SMALL(1), SMALL(2) / O000200, O000000 / */
01433 /*     DATA SMALL(3), SMALL(4) / O000000, O000000 / */
01434 /*     DATA LARGE(1), LARGE(2) / O077777, O177777 / */
01435 /*     DATA LARGE(3), LARGE(4) / O177777, O177777 / */
01436 /*     DATA RIGHT(1), RIGHT(2) / O022200, O000000 / */
01437 /*     DATA RIGHT(3), RIGHT(4) / O000000, O000000 / */
01438 /*     DATA DIVER(1), DIVER(2) / O022400, O000000 / */
01439 /*     DATA DIVER(3), DIVER(4) / O000000, O000000 / */
01440 /*     DATA LOG10(1), LOG10(2) / O037632, O020232 / */
01441 /*     DATA LOG10(3), LOG10(4) / O102373, O147770 / */
01442 
01443 /*     MACHINE CONSTANTS FOR THE SILICON GRAPHICS IRIS */
01444 
01445 /*     data dmach(1) / 2.22507 38585 072012 d-308 / */
01446 /*     data dmach(2) / 1.79769 31348 623158 d+308 / */
01447 /*     data dmach(3) / 2.22044 60492 503131 d-16  / */
01448 /*     data dmach(4) / 4.44089 20985 006262 d-16  / */
01449 /*     data dmach(5) / 0.30102 99956 639812       / */
01450 
01451 /*     DATA SMALL(1), SMALL(2) / Z'00100000',Z'00000000' / */
01452 /*     DATA LARGE(1), LARGE(2) / Z'7FEFFFFF',Z'FFFFFFFF' / */
01453 /*     DATA RIGHT(1), RIGHT(2) / Z'3CB00000',Z'00000000' / */
01454 /*     DATA DIVER(1), DIVER(2) / Z'3CC00000',Z'00000000' / */
01455 /*     DATA LOG10(1), LOG10(2) / Z'3FD34413',Z'509F79FF' / */
01456 
01457 /*     MACHINE CONSTANTS FOR THE SUN */
01458 
01459 /*     from SLATEC CML committee - work for Sun3, Sun4, and Sparc */
01460 
01461 
01462 /*     from Sun Microsystems - work for Sun 386i */
01463 
01464 /*     DATA SMALL(1), SMALL(2) / Z'00000000', Z'00100000' / */
01465 /*     DATA LARGE(1), LARGE(2) / Z'FFFFFFFF', Z'7FEFFFFF' / */
01466 /*     DATA RIGHT(1), RIGHT(2) / Z'00000000', Z'3CA00000' / */
01467 /*     DATA DIVER(1), DIVER(2) / Z'00000000', Z'3CB00000' / */
01468 /*     DATA LOG10(1), LOG10(2) / Z'509F79FF', Z'3FD34413' / */
01469 
01470 /*     MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER */
01471 
01472 /*     DATA SMALL(1), SMALL(2) / O000040000000, O000000000000 / */
01473 /*     DATA LARGE(1), LARGE(2) / O377777777777, O777777777777 / */
01474 /*     DATA RIGHT(1), RIGHT(2) / O170540000000, O000000000000 / */
01475 /*     DATA DIVER(1), DIVER(2) / O170640000000, O000000000000 / */
01476 /*     DATA LOG10(1), LOG10(2) / O177746420232, O411757177572 / */
01477 
01478 /*     MACHINE CONSTANTS FOR VAX 11/780 */
01479 /*     (EXPRESSED IN INTEGER AND HEXADECIMAL) */
01480 /*     THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSYEMS */
01481 /*     THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS */
01482 
01483 /*     DATA SMALL(1), SMALL(2) /        128,           0 / */
01484 /*     DATA LARGE(1), LARGE(2) /     -32769,          -1 / */
01485 /*     DATA RIGHT(1), RIGHT(2) /       9344,           0 / */
01486 /*     DATA DIVER(1), DIVER(2) /       9472,           0 / */
01487 /*     DATA LOG10(1), LOG10(2) /  546979738,  -805796613 / */
01488 
01489 /*     DATA SMALL(1), SMALL(2) / Z00000080, Z00000000 / */
01490 /*     DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF / */
01491 /*     DATA RIGHT(1), RIGHT(2) / Z00002480, Z00000000 / */
01492 /*     DATA DIVER(1), DIVER(2) / Z00002500, Z00000000 / */
01493 /*     DATA LOG10(1), LOG10(2) / Z209A3F9A, ZCFF884FB / */
01494 
01495 /*     MACHINE CONSTANTS FOR VAX 11/780 (G-FLOATING) */
01496 /*     (EXPRESSED IN INTEGER AND HEXADECIMAL) */
01497 /*     THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSYEMS */
01498 /*     THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS */
01499 
01500 /*     DATA SMALL(1), SMALL(2) /         16,           0 / */
01501 /*     DATA LARGE(1), LARGE(2) /     -32769,          -1 / */
01502 /*     DATA RIGHT(1), RIGHT(2) /      15552,           0 / */
01503 /*     DATA DIVER(1), DIVER(2) /      15568,           0 / */
01504 /*     DATA LOG10(1), LOG10(2) /  1142112243, 2046775455 / */
01505 
01506 /*     DATA SMALL(1), SMALL(2) / Z00000010, Z00000000 / */
01507 /*     DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF / */
01508 /*     DATA RIGHT(1), RIGHT(2) / Z00003CC0, Z00000000 / */
01509 /*     DATA DIVER(1), DIVER(2) / Z00003CD0, Z00000000 / */
01510 /*     DATA LOG10(1), LOG10(2) / Z44133FF3, Z79FF509F / */
01511 
01512 
01513 /* ***FIRST EXECUTABLE STATEMENT  D1MACH */
01514     if (*i__ < 1 || *i__ > 5) {
01515         xerror_("D1MACH -- I OUT OF BOUNDS", &c__25, &c__1, &c__2, (ftnlen)25)
01516                 ;
01517     }
01518 
01519     ret_val = dmach[*i__ - 1];
01520     return ret_val;
01521 
01522 } /* d1mach_ */
01523 
01524 #undef right
01525 #undef diver
01526 #undef small
01527 #undef large
01528 #undef dmach
01529 #undef log10
01530 
01531 
01532 /* Subroutine */ int fdump_(void)
01533 {
01534 /* ***BEGIN PROLOGUE  FDUMP */
01535 /* ***DATE WRITTEN   790801   (YYMMDD) */
01536 /* ***REVISION DATE  861211   (YYMMDD) */
01537 /* ***CATEGORY NO.  R3 */
01538 /* ***KEYWORDS  LIBRARY=SLATEC(XERROR),TYPE=ALL(FDUMP-A),ERROR */
01539 /* ***AUTHOR  JONES, R. E., (SNLA) */
01540 /* ***PURPOSE  Symbolic dump (should be locally written). */
01541 /* ***DESCRIPTION */
01542 
01543 /*        ***Note*** Machine Dependent Routine */
01544 /*        FDUMP is intended to be replaced by a locally written */
01545 /*        version which produces a symbolic dump.  Failing this, */
01546 /*        it should be replaced by a version which prints the */
01547 /*        subprogram nesting list.  Note that this dump must be */
01548 /*        printed on each of up to five files, as indicated by the */
01549 /*        XGETUA routine.  See XSETUA and XGETUA for details. */
01550 
01551 /*     Written by Ron Jones, with SLATEC Common Math Library Subcommittee */
01552 /* ***REFERENCES  (NONE) */
01553 /* ***ROUTINES CALLED  (NONE) */
01554 /* ***END PROLOGUE  FDUMP */
01555 /* ***FIRST EXECUTABLE STATEMENT  FDUMP */
01556     return 0;
01557 } /* fdump_ */
01558 

Generated on Fri Jan 4 18:04:16 2008 for sedflux by  doxygen 1.5.2