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