12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391 |
- *DECK D1MACH
- DOUBLE PRECISION FUNCTION D1MACH (I)
- C***BEGIN PROLOGUE D1MACH
- C***PURPOSE Return floating point machine dependent constants.
- C***LIBRARY SLATEC
- C***CATEGORY R1
- C***TYPE DOUBLE PRECISION (R1MACH-S, D1MACH-D)
- C***KEYWORDS MACHINE CONSTANTS
- C***AUTHOR Fox, P. A., (Bell Labs)
- C Hall, A. D., (Bell Labs)
- C Schryer, N. L., (Bell Labs)
- C***DESCRIPTION
- C
- C D1MACH can be used to obtain machine-dependent parameters for the
- C local machine environment. It is a function subprogram with one
- C (input) argument, and can be referenced as follows:
- C
- C D = D1MACH(I)
- C
- C where I=1,...,5. The (output) value of D above is determined by
- C the (input) value of I. The results for various values of I are
- C discussed below.
- C
- C D1MACH( 1) = B**(EMIN-1), the smallest positive magnitude.
- C D1MACH( 2) = B**EMAX*(1 - B**(-T)), the largest magnitude.
- C D1MACH( 3) = B**(-T), the smallest relative spacing.
- C D1MACH( 4) = B**(1-T), the largest relative spacing.
- C D1MACH( 5) = LOG10(B)
- C
- C Assume double precision numbers are represented in the T-digit,
- C base-B form
- C
- C sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) )
- C
- C where 0 .LE. X(I) .LT. B for I=1,...,T, 0 .LT. X(1), and
- C EMIN .LE. E .LE. EMAX.
- C
- C The values of B, T, EMIN and EMAX are provided in I1MACH as
- C follows:
- C I1MACH(10) = B, the base.
- C I1MACH(14) = T, the number of base-B digits.
- C I1MACH(15) = EMIN, the smallest exponent E.
- C I1MACH(16) = EMAX, the largest exponent E.
- C
- C To alter this function for a particular environment, the desired
- C set of DATA statements should be activated by removing the C from
- C column 1. Also, the values of D1MACH(1) - D1MACH(4) should be
- C checked for consistency with the local operating system.
- C
- C***REFERENCES P. A. Fox, A. D. Hall and N. L. Schryer, Framework for
- C a portable library, ACM Transactions on Mathematical
- C Software 4, 2 (June 1978), pp. 177-188.
- C***ROUTINES CALLED XERMSG
- C***REVISION HISTORY (YYMMDD)
- C 750101 DATE WRITTEN
- C 890213 REVISION DATE from Version 3.2
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
- C 900618 Added DEC RISC constants. (WRB)
- C 900723 Added IBM RS 6000 constants. (WRB)
- C 900911 Added SUN 386i constants. (WRB)
- C 910710 Added HP 730 constants. (SMR)
- C 911114 Added Convex IEEE constants. (WRB)
- C 920121 Added SUN -r8 compiler option constants. (WRB)
- C 920229 Added Touchstone Delta i860 constants. (WRB)
- C 920501 Reformatted the REFERENCES section. (WRB)
- C 920625 Added CONVEX -p8 and -pd8 compiler option constants.
- C (BKS, WRB)
- C 930201 Added DEC Alpha and SGI constants. (RWC and WRB)
- C***END PROLOGUE D1MACH
- C
- INTEGER SMALL(4)
- INTEGER LARGE(4)
- INTEGER RIGHT(4)
- INTEGER DIVER(4)
- INTEGER LOG10(4)
- C
- DOUBLE PRECISION DMACH(5)
- SAVE DMACH
- C
- EQUIVALENCE (DMACH(1),SMALL(1))
- EQUIVALENCE (DMACH(2),LARGE(1))
- EQUIVALENCE (DMACH(3),RIGHT(1))
- EQUIVALENCE (DMACH(4),DIVER(1))
- EQUIVALENCE (DMACH(5),LOG10(1))
- C
- C MACHINE CONSTANTS FOR THE AMIGA
- C ABSOFT FORTRAN COMPILER USING THE 68020/68881 COMPILER OPTION
- C
- C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
- C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
- C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
- C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
- C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE AMIGA
- C ABSOFT FORTRAN COMPILER USING SOFTWARE FLOATING POINT
- C
- C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
- C DATA LARGE(1), LARGE(2) / Z'7FDFFFFF', Z'FFFFFFFF' /
- C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
- C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
- C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE APOLLO
- C
- C DATA SMALL(1), SMALL(2) / 16#00100000, 16#00000000 /
- C DATA LARGE(1), LARGE(2) / 16#7FFFFFFF, 16#FFFFFFFF /
- C DATA RIGHT(1), RIGHT(2) / 16#3CA00000, 16#00000000 /
- C DATA DIVER(1), DIVER(2) / 16#3CB00000, 16#00000000 /
- C DATA LOG10(1), LOG10(2) / 16#3FD34413, 16#509F79FF /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM
- C
- C DATA SMALL(1) / ZC00800000 /
- C DATA SMALL(2) / Z000000000 /
- C DATA LARGE(1) / ZDFFFFFFFF /
- C DATA LARGE(2) / ZFFFFFFFFF /
- C DATA RIGHT(1) / ZCC5800000 /
- C DATA RIGHT(2) / Z000000000 /
- C DATA DIVER(1) / ZCC6800000 /
- C DATA DIVER(2) / Z000000000 /
- C DATA LOG10(1) / ZD00E730E7 /
- C DATA LOG10(2) / ZC77800DC0 /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM
- C
- C DATA SMALL(1) / O1771000000000000 /
- C DATA SMALL(2) / O0000000000000000 /
- C DATA LARGE(1) / O0777777777777777 /
- C DATA LARGE(2) / O0007777777777777 /
- C DATA RIGHT(1) / O1461000000000000 /
- C DATA RIGHT(2) / O0000000000000000 /
- C DATA DIVER(1) / O1451000000000000 /
- C DATA DIVER(2) / O0000000000000000 /
- C DATA LOG10(1) / O1157163034761674 /
- C DATA LOG10(2) / O0006677466732724 /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS
- C
- C DATA SMALL(1) / O1771000000000000 /
- C DATA SMALL(2) / O7770000000000000 /
- C DATA LARGE(1) / O0777777777777777 /
- C DATA LARGE(2) / O7777777777777777 /
- C DATA RIGHT(1) / O1461000000000000 /
- C DATA RIGHT(2) / O0000000000000000 /
- C DATA DIVER(1) / O1451000000000000 /
- C DATA DIVER(2) / O0000000000000000 /
- C DATA LOG10(1) / O1157163034761674 /
- C DATA LOG10(2) / O0006677466732724 /
- C
- C MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE
- C
- C DATA SMALL(1) / Z"3001800000000000" /
- C DATA SMALL(2) / Z"3001000000000000" /
- C DATA LARGE(1) / Z"4FFEFFFFFFFFFFFE" /
- C DATA LARGE(2) / Z"4FFE000000000000" /
- C DATA RIGHT(1) / Z"3FD2800000000000" /
- C DATA RIGHT(2) / Z"3FD2000000000000" /
- C DATA DIVER(1) / Z"3FD3800000000000" /
- C DATA DIVER(2) / Z"3FD3000000000000" /
- C DATA LOG10(1) / Z"3FFF9A209A84FBCF" /
- C DATA LOG10(2) / Z"3FFFF7988F8959AC" /
- C
- C MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES
- C
- C DATA SMALL(1) / 00564000000000000000B /
- C DATA SMALL(2) / 00000000000000000000B /
- C DATA LARGE(1) / 37757777777777777777B /
- C DATA LARGE(2) / 37157777777777777777B /
- C DATA RIGHT(1) / 15624000000000000000B /
- C DATA RIGHT(2) / 00000000000000000000B /
- C DATA DIVER(1) / 15634000000000000000B /
- C DATA DIVER(2) / 00000000000000000000B /
- C DATA LOG10(1) / 17164642023241175717B /
- C DATA LOG10(2) / 16367571421742254654B /
- C
- C MACHINE CONSTANTS FOR THE CELERITY C1260
- C
- C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
- C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
- C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
- C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
- C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -fn OR -pd8 COMPILER OPTION
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FFFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CC0000000000000' /
- C DATA DMACH(4) / Z'3CD0000000000000' /
- C DATA DMACH(5) / Z'3FF34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -fi COMPILER OPTION
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CA0000000000000' /
- C DATA DMACH(4) / Z'3CB0000000000000' /
- C DATA DMACH(5) / Z'3FD34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -p8 COMPILER OPTION
- C
- C DATA DMACH(1) / Z'00010000000000000000000000000000' /
- C DATA DMACH(2) / Z'7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3F900000000000000000000000000000' /
- C DATA DMACH(4) / Z'3F910000000000000000000000000000' /
- C DATA DMACH(5) / Z'3FFF34413509F79FEF311F12B35816F9' /
- C
- C MACHINE CONSTANTS FOR THE CRAY
- C
- C DATA SMALL(1) / 201354000000000000000B /
- C DATA SMALL(2) / 000000000000000000000B /
- C DATA LARGE(1) / 577767777777777777777B /
- C DATA LARGE(2) / 000007777777777777774B /
- C DATA RIGHT(1) / 376434000000000000000B /
- C DATA RIGHT(2) / 000000000000000000000B /
- C DATA DIVER(1) / 376444000000000000000B /
- C DATA DIVER(2) / 000000000000000000000B /
- C DATA LOG10(1) / 377774642023241175717B /
- C DATA LOG10(2) / 000007571421742254654B /
- C
- C MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200
- C NOTE - IT MAY BE APPROPRIATE TO INCLUDE THE FOLLOWING CARD -
- C STATIC DMACH(5)
- C
- C DATA SMALL / 20K, 3*0 /
- C DATA LARGE / 77777K, 3*177777K /
- C DATA RIGHT / 31420K, 3*0 /
- C DATA DIVER / 32020K, 3*0 /
- C DATA LOG10 / 40423K, 42023K, 50237K, 74776K /
- C
- C MACHINE CONSTANTS FOR THE DEC ALPHA
- C USING G_FLOAT
- C
- C DATA DMACH(1) / '0000000000000010'X /
- C DATA DMACH(2) / 'FFFFFFFFFFFF7FFF'X /
- C DATA DMACH(3) / '0000000000003CC0'X /
- C DATA DMACH(4) / '0000000000003CD0'X /
- C DATA DMACH(5) / '79FF509F44133FF3'X /
- C
- C MACHINE CONSTANTS FOR THE DEC ALPHA
- C USING IEEE_FORMAT
- C
- C DATA DMACH(1) / '0010000000000000'X /
- C DATA DMACH(2) / '7FEFFFFFFFFFFFFF'X /
- C DATA DMACH(3) / '3CA0000000000000'X /
- C DATA DMACH(4) / '3CB0000000000000'X /
- C DATA DMACH(5) / '3FD34413509F79FF'X /
- C
- C MACHINE CONSTANTS FOR THE DEC RISC
- C
- C DATA SMALL(1), SMALL(2) / Z'00000000', Z'00100000'/
- C DATA LARGE(1), LARGE(2) / Z'FFFFFFFF', Z'7FEFFFFF'/
- C DATA RIGHT(1), RIGHT(2) / Z'00000000', Z'3CA00000'/
- C DATA DIVER(1), DIVER(2) / Z'00000000', Z'3CB00000'/
- C DATA LOG10(1), LOG10(2) / Z'509F79FF', Z'3FD34413'/
- C
- C MACHINE CONSTANTS FOR THE DEC VAX
- C USING D_FLOATING
- C (EXPRESSED IN INTEGER AND HEXADECIMAL)
- C THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS
- C THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS
- C
- C DATA SMALL(1), SMALL(2) / 128, 0 /
- C DATA LARGE(1), LARGE(2) / -32769, -1 /
- C DATA RIGHT(1), RIGHT(2) / 9344, 0 /
- C DATA DIVER(1), DIVER(2) / 9472, 0 /
- C DATA LOG10(1), LOG10(2) / 546979738, -805796613 /
- C
- C DATA SMALL(1), SMALL(2) / Z00000080, Z00000000 /
- C DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF /
- C DATA RIGHT(1), RIGHT(2) / Z00002480, Z00000000 /
- C DATA DIVER(1), DIVER(2) / Z00002500, Z00000000 /
- C DATA LOG10(1), LOG10(2) / Z209A3F9A, ZCFF884FB /
- C
- C MACHINE CONSTANTS FOR THE DEC VAX
- C USING G_FLOATING
- C (EXPRESSED IN INTEGER AND HEXADECIMAL)
- C THE HEX FORMAT BELOW MAY NOT BE SUITABLE FOR UNIX SYSTEMS
- C THE INTEGER FORMAT SHOULD BE OK FOR UNIX SYSTEMS
- C
- C DATA SMALL(1), SMALL(2) / 16, 0 /
- C DATA LARGE(1), LARGE(2) / -32769, -1 /
- C DATA RIGHT(1), RIGHT(2) / 15552, 0 /
- C DATA DIVER(1), DIVER(2) / 15568, 0 /
- C DATA LOG10(1), LOG10(2) / 1142112243, 2046775455 /
- C
- C DATA SMALL(1), SMALL(2) / Z00000010, Z00000000 /
- C DATA LARGE(1), LARGE(2) / ZFFFF7FFF, ZFFFFFFFF /
- C DATA RIGHT(1), RIGHT(2) / Z00003CC0, Z00000000 /
- C DATA DIVER(1), DIVER(2) / Z00003CD0, Z00000000 /
- C DATA LOG10(1), LOG10(2) / Z44133FF3, Z79FF509F /
- C
- C MACHINE CONSTANTS FOR THE ELXSI 6400
- C (ASSUMING REAL*8 IS THE DEFAULT DOUBLE PRECISION)
- C
- C DATA SMALL(1), SMALL(2) / '00100000'X,'00000000'X /
- C DATA LARGE(1), LARGE(2) / '7FEFFFFF'X,'FFFFFFFF'X /
- C DATA RIGHT(1), RIGHT(2) / '3CB00000'X,'00000000'X /
- C DATA DIVER(1), DIVER(2) / '3CC00000'X,'00000000'X /
- C DATA LOG10(1), LOG10(2) / '3FD34413'X,'509F79FF'X /
- C
- C MACHINE CONSTANTS FOR THE HARRIS 220
- C
- C DATA SMALL(1), SMALL(2) / '20000000, '00000201 /
- C DATA LARGE(1), LARGE(2) / '37777777, '37777577 /
- C DATA RIGHT(1), RIGHT(2) / '20000000, '00000333 /
- C DATA DIVER(1), DIVER(2) / '20000000, '00000334 /
- C DATA LOG10(1), LOG10(2) / '23210115, '10237777 /
- C
- C MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES
- C
- C DATA SMALL(1), SMALL(2) / O402400000000, O000000000000 /
- C DATA LARGE(1), LARGE(2) / O376777777777, O777777777777 /
- C DATA RIGHT(1), RIGHT(2) / O604400000000, O000000000000 /
- C DATA DIVER(1), DIVER(2) / O606400000000, O000000000000 /
- C DATA LOG10(1), LOG10(2) / O776464202324, O117571775714 /
- C
- C MACHINE CONSTANTS FOR THE HP 730
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CA0000000000000' /
- C DATA DMACH(4) / Z'3CB0000000000000' /
- C DATA DMACH(5) / Z'3FD34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE HP 2100
- C THREE WORD DOUBLE PRECISION OPTION WITH FTN4
- C
- C DATA SMALL(1), SMALL(2), SMALL(3) / 40000B, 0, 1 /
- C DATA LARGE(1), LARGE(2), LARGE(3) / 77777B, 177777B, 177776B /
- C DATA RIGHT(1), RIGHT(2), RIGHT(3) / 40000B, 0, 265B /
- C DATA DIVER(1), DIVER(2), DIVER(3) / 40000B, 0, 276B /
- C DATA LOG10(1), LOG10(2), LOG10(3) / 46420B, 46502B, 77777B /
- C
- C MACHINE CONSTANTS FOR THE HP 2100
- C FOUR WORD DOUBLE PRECISION OPTION WITH FTN4
- C
- C DATA SMALL(1), SMALL(2) / 40000B, 0 /
- C DATA SMALL(3), SMALL(4) / 0, 1 /
- C DATA LARGE(1), LARGE(2) / 77777B, 177777B /
- C DATA LARGE(3), LARGE(4) / 177777B, 177776B /
- C DATA RIGHT(1), RIGHT(2) / 40000B, 0 /
- C DATA RIGHT(3), RIGHT(4) / 0, 225B /
- C DATA DIVER(1), DIVER(2) / 40000B, 0 /
- C DATA DIVER(3), DIVER(4) / 0, 227B /
- C DATA LOG10(1), LOG10(2) / 46420B, 46502B /
- C DATA LOG10(3), LOG10(4) / 76747B, 176377B /
- C
- C MACHINE CONSTANTS FOR THE HP 9000
- C
- C DATA SMALL(1), SMALL(2) / 00040000000B, 00000000000B /
- C DATA LARGE(1), LARGE(2) / 17737777777B, 37777777777B /
- C DATA RIGHT(1), RIGHT(2) / 07454000000B, 00000000000B /
- C DATA DIVER(1), DIVER(2) / 07460000000B, 00000000000B /
- C DATA LOG10(1), LOG10(2) / 07764642023B, 12047674777B /
- C
- C MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
- C THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND
- C THE PERKIN ELMER (INTERDATA) 7/32.
- C
- C DATA SMALL(1), SMALL(2) / Z00100000, Z00000000 /
- C DATA LARGE(1), LARGE(2) / Z7FFFFFFF, ZFFFFFFFF /
- C DATA RIGHT(1), RIGHT(2) / Z33100000, Z00000000 /
- C DATA DIVER(1), DIVER(2) / Z34100000, Z00000000 /
- C DATA LOG10(1), LOG10(2) / Z41134413, Z509F79FF /
- C
- C MACHINE CONSTANTS FOR THE IBM PC
- C ASSUMES THAT ALL ARITHMETIC IS DONE IN DOUBLE PRECISION
- C ON 8088, I.E., NOT IN 80 BIT FORM FOR THE 8087.
- C
- C DATA SMALL(1) / 2.23D-308 /
- C DATA LARGE(1) / 1.79D+308 /
- C DATA RIGHT(1) / 1.11D-16 /
- C DATA DIVER(1) / 2.22D-16 /
- C DATA LOG10(1) / 0.301029995663981195D0 /
- C
- C MACHINE CONSTANTS FOR THE IBM RS 6000
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CA0000000000000' /
- C DATA DMACH(4) / Z'3CB0000000000000' /
- C DATA DMACH(5) / Z'3FD34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE INTEL i860
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CA0000000000000' /
- C DATA DMACH(4) / Z'3CB0000000000000' /
- C DATA DMACH(5) / Z'3FD34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR)
- C
- C DATA SMALL(1), SMALL(2) / "033400000000, "000000000000 /
- C DATA LARGE(1), LARGE(2) / "377777777777, "344777777777 /
- C DATA RIGHT(1), RIGHT(2) / "113400000000, "000000000000 /
- C DATA DIVER(1), DIVER(2) / "114400000000, "000000000000 /
- C DATA LOG10(1), LOG10(2) / "177464202324, "144117571776 /
- C
- C MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR)
- C
- C DATA SMALL(1), SMALL(2) / "000400000000, "000000000000 /
- C DATA LARGE(1), LARGE(2) / "377777777777, "377777777777 /
- C DATA RIGHT(1), RIGHT(2) / "103400000000, "000000000000 /
- C DATA DIVER(1), DIVER(2) / "104400000000, "000000000000 /
- C DATA LOG10(1), LOG10(2) / "177464202324, "476747767461 /
- C
- C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
- C 32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
- C
- C DATA SMALL(1), SMALL(2) / 8388608, 0 /
- C DATA LARGE(1), LARGE(2) / 2147483647, -1 /
- C DATA RIGHT(1), RIGHT(2) / 612368384, 0 /
- C DATA DIVER(1), DIVER(2) / 620756992, 0 /
- C DATA LOG10(1), LOG10(2) / 1067065498, -2063872008 /
- C
- C DATA SMALL(1), SMALL(2) / O00040000000, O00000000000 /
- C DATA LARGE(1), LARGE(2) / O17777777777, O37777777777 /
- C DATA RIGHT(1), RIGHT(2) / O04440000000, O00000000000 /
- C DATA DIVER(1), DIVER(2) / O04500000000, O00000000000 /
- C DATA LOG10(1), LOG10(2) / O07746420232, O20476747770 /
- C
- C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
- C 16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL).
- C
- C DATA SMALL(1), SMALL(2) / 128, 0 /
- C DATA SMALL(3), SMALL(4) / 0, 0 /
- C DATA LARGE(1), LARGE(2) / 32767, -1 /
- C DATA LARGE(3), LARGE(4) / -1, -1 /
- C DATA RIGHT(1), RIGHT(2) / 9344, 0 /
- C DATA RIGHT(3), RIGHT(4) / 0, 0 /
- C DATA DIVER(1), DIVER(2) / 9472, 0 /
- C DATA DIVER(3), DIVER(4) / 0, 0 /
- C DATA LOG10(1), LOG10(2) / 16282, 8346 /
- C DATA LOG10(3), LOG10(4) / -31493, -12296 /
- C
- C DATA SMALL(1), SMALL(2) / O000200, O000000 /
- C DATA SMALL(3), SMALL(4) / O000000, O000000 /
- C DATA LARGE(1), LARGE(2) / O077777, O177777 /
- C DATA LARGE(3), LARGE(4) / O177777, O177777 /
- C DATA RIGHT(1), RIGHT(2) / O022200, O000000 /
- C DATA RIGHT(3), RIGHT(4) / O000000, O000000 /
- C DATA DIVER(1), DIVER(2) / O022400, O000000 /
- C DATA DIVER(3), DIVER(4) / O000000, O000000 /
- C DATA LOG10(1), LOG10(2) / O037632, O020232 /
- C DATA LOG10(3), LOG10(4) / O102373, O147770 /
- C
- C MACHINE CONSTANTS FOR THE SILICON GRAPHICS
- C
- C DATA SMALL(1), SMALL(2) / Z'00100000', Z'00000000' /
- C DATA LARGE(1), LARGE(2) / Z'7FEFFFFF', Z'FFFFFFFF' /
- C DATA RIGHT(1), RIGHT(2) / Z'3CA00000', Z'00000000' /
- C DATA DIVER(1), DIVER(2) / Z'3CB00000', Z'00000000' /
- C DATA LOG10(1), LOG10(2) / Z'3FD34413', Z'509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE SUN
- C
- C DATA DMACH(1) / Z'0010000000000000' /
- C DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3CA0000000000000' /
- C DATA DMACH(4) / Z'3CB0000000000000' /
- C DATA DMACH(5) / Z'3FD34413509F79FF' /
- C
- C MACHINE CONSTANTS FOR THE SUN
- C USING THE -r8 COMPILER OPTION
- C
- C DATA DMACH(1) / Z'00010000000000000000000000000000' /
- C DATA DMACH(2) / Z'7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF' /
- C DATA DMACH(3) / Z'3F8E0000000000000000000000000000' /
- C DATA DMACH(4) / Z'3F8F0000000000000000000000000000' /
- C DATA DMACH(5) / Z'3FFD34413509F79FEF311F12B35816F9' /
- C
- C MACHINE CONSTANTS FOR THE SUN 386i
- C
- C DATA SMALL(1), SMALL(2) / Z'FFFFFFFD', Z'000FFFFF' /
- C DATA LARGE(1), LARGE(2) / Z'FFFFFFB0', Z'7FEFFFFF' /
- C DATA RIGHT(1), RIGHT(2) / Z'000000B0', Z'3CA00000' /
- C DATA DIVER(1), DIVER(2) / Z'FFFFFFCB', Z'3CAFFFFF'
- C DATA LOG10(1), LOG10(2) / Z'509F79E9', Z'3FD34413' /
- C
- C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER
- C
- C DATA SMALL(1), SMALL(2) / O000040000000, O000000000000 /
- C DATA LARGE(1), LARGE(2) / O377777777777, O777777777777 /
- C DATA RIGHT(1), RIGHT(2) / O170540000000, O000000000000 /
- C DATA DIVER(1), DIVER(2) / O170640000000, O000000000000 /
- C DATA LOG10(1), LOG10(2) / O177746420232, O411757177572 /
- C
- C***FIRST EXECUTABLE STATEMENT D1MACH
- IF (I .LT. 1 .OR. I .GT. 5) CALL XERMSG ('SLATEC', 'D1MACH',
- + 'I OUT OF BOUNDS', 1, 2)
- C
- D1MACH = DMACH(I)
- RETURN
- C
- END
- *DECK I1MACH
- INTEGER FUNCTION I1MACH (I)
- C***BEGIN PROLOGUE I1MACH
- C***PURPOSE Return integer machine dependent constants.
- C***LIBRARY SLATEC
- C***CATEGORY R1
- C***TYPE INTEGER (I1MACH-I)
- C***KEYWORDS MACHINE CONSTANTS
- C***AUTHOR Fox, P. A., (Bell Labs)
- C Hall, A. D., (Bell Labs)
- C Schryer, N. L., (Bell Labs)
- C***DESCRIPTION
- C
- C I1MACH can be used to obtain machine-dependent parameters for the
- C local machine environment. It is a function subprogram with one
- C (input) argument and can be referenced as follows:
- C
- C K = I1MACH(I)
- C
- C where I=1,...,16. The (output) value of K above is determined by
- C the (input) value of I. The results for various values of I are
- C discussed below.
- C
- C I/O unit numbers:
- C I1MACH( 1) = the standard input unit.
- C I1MACH( 2) = the standard output unit.
- C I1MACH( 3) = the standard punch unit.
- C I1MACH( 4) = the standard error message unit.
- C
- C Words:
- C I1MACH( 5) = the number of bits per integer storage unit.
- C I1MACH( 6) = the number of characters per integer storage unit.
- C
- C Integers:
- C assume integers are represented in the S-digit, base-A form
- C
- C sign ( X(S-1)*A**(S-1) + ... + X(1)*A + X(0) )
- C
- C where 0 .LE. X(I) .LT. A for I=0,...,S-1.
- C I1MACH( 7) = A, the base.
- C I1MACH( 8) = S, the number of base-A digits.
- C I1MACH( 9) = A**S - 1, the largest magnitude.
- C
- C Floating-Point Numbers:
- C Assume floating-point numbers are represented in the T-digit,
- C base-B form
- C sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) )
- C
- C where 0 .LE. X(I) .LT. B for I=1,...,T,
- C 0 .LT. X(1), and EMIN .LE. E .LE. EMAX.
- C I1MACH(10) = B, the base.
- C
- C Single-Precision:
- C I1MACH(11) = T, the number of base-B digits.
- C I1MACH(12) = EMIN, the smallest exponent E.
- C I1MACH(13) = EMAX, the largest exponent E.
- C
- C Double-Precision:
- C I1MACH(14) = T, the number of base-B digits.
- C I1MACH(15) = EMIN, the smallest exponent E.
- C I1MACH(16) = EMAX, the largest exponent E.
- C
- C To alter this function for a particular environment, the desired
- C set of DATA statements should be activated by removing the C from
- C column 1. Also, the values of I1MACH(1) - I1MACH(4) should be
- C checked for consistency with the local operating system.
- C
- C***REFERENCES P. A. Fox, A. D. Hall and N. L. Schryer, Framework for
- C a portable library, ACM Transactions on Mathematical
- C Software 4, 2 (June 1978), pp. 177-188.
- C***ROUTINES CALLED (NONE)
- C***REVISION HISTORY (YYMMDD)
- C 750101 DATE WRITTEN
- C 891012 Added VAX G-floating constants. (WRB)
- C 891012 REVISION DATE from Version 3.2
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900618 Added DEC RISC constants. (WRB)
- C 900723 Added IBM RS 6000 constants. (WRB)
- C 901009 Correct I1MACH(7) for IBM Mainframes. Should be 2 not 16.
- C (RWC)
- C 910710 Added HP 730 constants. (SMR)
- C 911114 Added Convex IEEE constants. (WRB)
- C 920121 Added SUN -r8 compiler option constants. (WRB)
- C 920229 Added Touchstone Delta i860 constants. (WRB)
- C 920501 Reformatted the REFERENCES section. (WRB)
- C 920625 Added Convex -p8 and -pd8 compiler option constants.
- C (BKS, WRB)
- C 930201 Added DEC Alpha and SGI constants. (RWC and WRB)
- C 930618 Corrected I1MACH(5) for Convex -p8 and -pd8 compiler
- C options. (DWL, RWC and WRB).
- C***END PROLOGUE I1MACH
- C
- INTEGER IMACH(16),OUTPUT
- SAVE IMACH
- EQUIVALENCE (IMACH(4),OUTPUT)
- C
- C MACHINE CONSTANTS FOR THE AMIGA
- C ABSOFT COMPILER
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -126 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1022 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE APOLLO
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 129 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1025 /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 1700 SYSTEM
- C
- C DATA IMACH( 1) / 7 /
- C DATA IMACH( 2) / 2 /
- C DATA IMACH( 3) / 2 /
- C DATA IMACH( 4) / 2 /
- C DATA IMACH( 5) / 36 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 33 /
- C DATA IMACH( 9) / Z1FFFFFFFF /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -256 /
- C DATA IMACH(13) / 255 /
- C DATA IMACH(14) / 60 /
- C DATA IMACH(15) / -256 /
- C DATA IMACH(16) / 255 /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 5700 SYSTEM
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 48 /
- C DATA IMACH( 6) / 6 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 39 /
- C DATA IMACH( 9) / O0007777777777777 /
- C DATA IMACH(10) / 8 /
- C DATA IMACH(11) / 13 /
- C DATA IMACH(12) / -50 /
- C DATA IMACH(13) / 76 /
- C DATA IMACH(14) / 26 /
- C DATA IMACH(15) / -50 /
- C DATA IMACH(16) / 76 /
- C
- C MACHINE CONSTANTS FOR THE BURROUGHS 6700/7700 SYSTEMS
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 48 /
- C DATA IMACH( 6) / 6 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 39 /
- C DATA IMACH( 9) / O0007777777777777 /
- C DATA IMACH(10) / 8 /
- C DATA IMACH(11) / 13 /
- C DATA IMACH(12) / -50 /
- C DATA IMACH(13) / 76 /
- C DATA IMACH(14) / 26 /
- C DATA IMACH(15) / -32754 /
- C DATA IMACH(16) / 32780 /
- C
- C MACHINE CONSTANTS FOR THE CDC 170/180 SERIES USING NOS/VE
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 64 /
- C DATA IMACH( 6) / 8 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 63 /
- C DATA IMACH( 9) / 9223372036854775807 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 47 /
- C DATA IMACH(12) / -4095 /
- C DATA IMACH(13) / 4094 /
- C DATA IMACH(14) / 94 /
- C DATA IMACH(15) / -4095 /
- C DATA IMACH(16) / 4094 /
- C
- C MACHINE CONSTANTS FOR THE CDC 6000/7000 SERIES
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6LOUTPUT/
- C DATA IMACH( 5) / 60 /
- C DATA IMACH( 6) / 10 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 48 /
- C DATA IMACH( 9) / 00007777777777777777B /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 47 /
- C DATA IMACH(12) / -929 /
- C DATA IMACH(13) / 1070 /
- C DATA IMACH(14) / 94 /
- C DATA IMACH(15) / -929 /
- C DATA IMACH(16) / 1069 /
- C
- C MACHINE CONSTANTS FOR THE CELERITY C1260
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 0 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / Z'7FFFFFFF' /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -126 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1022 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -fn COMPILER OPTION
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1023 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -fi COMPILER OPTION
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -p8 COMPILER OPTION
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 64 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 63 /
- C DATA IMACH( 9) / 9223372036854775807 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 53 /
- C DATA IMACH(12) / -1023 /
- C DATA IMACH(13) / 1023 /
- C DATA IMACH(14) / 113 /
- C DATA IMACH(15) / -16383 /
- C DATA IMACH(16) / 16383 /
- C
- C MACHINE CONSTANTS FOR THE CONVEX
- C USING THE -pd8 COMPILER OPTION
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 64 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 63 /
- C DATA IMACH( 9) / 9223372036854775807 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 53 /
- C DATA IMACH(12) / -1023 /
- C DATA IMACH(13) / 1023 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1023 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE CRAY
- C USING THE 46 BIT INTEGER COMPILER OPTION
- C
- C DATA IMACH( 1) / 100 /
- C DATA IMACH( 2) / 101 /
- C DATA IMACH( 3) / 102 /
- C DATA IMACH( 4) / 101 /
- C DATA IMACH( 5) / 64 /
- C DATA IMACH( 6) / 8 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 46 /
- C DATA IMACH( 9) / 1777777777777777B /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 47 /
- C DATA IMACH(12) / -8189 /
- C DATA IMACH(13) / 8190 /
- C DATA IMACH(14) / 94 /
- C DATA IMACH(15) / -8099 /
- C DATA IMACH(16) / 8190 /
- C
- C MACHINE CONSTANTS FOR THE CRAY
- C USING THE 64 BIT INTEGER COMPILER OPTION
- C
- C DATA IMACH( 1) / 100 /
- C DATA IMACH( 2) / 101 /
- C DATA IMACH( 3) / 102 /
- C DATA IMACH( 4) / 101 /
- C DATA IMACH( 5) / 64 /
- C DATA IMACH( 6) / 8 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 63 /
- C DATA IMACH( 9) / 777777777777777777777B /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 47 /
- C DATA IMACH(12) / -8189 /
- C DATA IMACH(13) / 8190 /
- C DATA IMACH(14) / 94 /
- C DATA IMACH(15) / -8099 /
- C DATA IMACH(16) / 8190 /
- C
- C MACHINE CONSTANTS FOR THE DATA GENERAL ECLIPSE S/200
- C
- C DATA IMACH( 1) / 11 /
- C DATA IMACH( 2) / 12 /
- C DATA IMACH( 3) / 8 /
- C DATA IMACH( 4) / 10 /
- C DATA IMACH( 5) / 16 /
- C DATA IMACH( 6) / 2 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 15 /
- C DATA IMACH( 9) / 32767 /
- C DATA IMACH(10) / 16 /
- C DATA IMACH(11) / 6 /
- C DATA IMACH(12) / -64 /
- C DATA IMACH(13) / 63 /
- C DATA IMACH(14) / 14 /
- C DATA IMACH(15) / -64 /
- C DATA IMACH(16) / 63 /
- C
- C MACHINE CONSTANTS FOR THE DEC ALPHA
- C USING G_FLOAT
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1023 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE DEC ALPHA
- C USING IEEE_FLOAT
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE DEC RISC
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE DEC VAX
- C USING D_FLOATING
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 56 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE DEC VAX
- C USING G_FLOATING
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1023 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE ELXSI 6400
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 32 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -126 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1022 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE HARRIS 220
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 0 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 24 /
- C DATA IMACH( 6) / 3 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 23 /
- C DATA IMACH( 9) / 8388607 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 23 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 38 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE HONEYWELL 600/6000 SERIES
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 43 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 36 /
- C DATA IMACH( 6) / 6 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 35 /
- C DATA IMACH( 9) / O377777777777 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 27 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 63 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE HP 730
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE HP 2100
- C 3 WORD DOUBLE PRECISION OPTION WITH FTN4
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 4 /
- C DATA IMACH( 4) / 1 /
- C DATA IMACH( 5) / 16 /
- C DATA IMACH( 6) / 2 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 15 /
- C DATA IMACH( 9) / 32767 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 23 /
- C DATA IMACH(12) / -128 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 39 /
- C DATA IMACH(15) / -128 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE HP 2100
- C 4 WORD DOUBLE PRECISION OPTION WITH FTN4
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 4 /
- C DATA IMACH( 4) / 1 /
- C DATA IMACH( 5) / 16 /
- C DATA IMACH( 6) / 2 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 15 /
- C DATA IMACH( 9) / 32767 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 23 /
- C DATA IMACH(12) / -128 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 55 /
- C DATA IMACH(15) / -128 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE HP 9000
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 7 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 32 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -126 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1015 /
- C DATA IMACH(16) / 1017 /
- C
- C MACHINE CONSTANTS FOR THE IBM 360/370 SERIES,
- C THE XEROX SIGMA 5/7/9, THE SEL SYSTEMS 85/86, AND
- C THE PERKIN ELMER (INTERDATA) 7/32.
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 7 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / Z7FFFFFFF /
- C DATA IMACH(10) / 16 /
- C DATA IMACH(11) / 6 /
- C DATA IMACH(12) / -64 /
- C DATA IMACH(13) / 63 /
- C DATA IMACH(14) / 14 /
- C DATA IMACH(15) / -64 /
- C DATA IMACH(16) / 63 /
- C
- C MACHINE CONSTANTS FOR THE IBM PC
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 0 /
- C DATA IMACH( 4) / 0 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE IBM RS 6000
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 0 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE INTEL i860
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR)
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 36 /
- C DATA IMACH( 6) / 5 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 35 /
- C DATA IMACH( 9) / "377777777777 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 27 /
- C DATA IMACH(12) / -128 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 54 /
- C DATA IMACH(15) / -101 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR)
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 36 /
- C DATA IMACH( 6) / 5 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 35 /
- C DATA IMACH( 9) / "377777777777 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 27 /
- C DATA IMACH(12) / -128 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 62 /
- C DATA IMACH(15) / -128 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
- C 32-BIT INTEGER ARITHMETIC.
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 56 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR PDP-11 FORTRAN SUPPORTING
- C 16-BIT INTEGER ARITHMETIC.
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 5 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 16 /
- C DATA IMACH( 6) / 2 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 15 /
- C DATA IMACH( 9) / 32767 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 56 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C MACHINE CONSTANTS FOR THE SILICON GRAPHICS
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE SUN
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -125 /
- C DATA IMACH(13) / 128 /
- C DATA IMACH(14) / 53 /
- C DATA IMACH(15) / -1021 /
- C DATA IMACH(16) / 1024 /
- C
- C MACHINE CONSTANTS FOR THE SUN
- C USING THE -r8 COMPILER OPTION
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 6 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 32 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 31 /
- C DATA IMACH( 9) / 2147483647 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 53 /
- C DATA IMACH(12) / -1021 /
- C DATA IMACH(13) / 1024 /
- C DATA IMACH(14) / 113 /
- C DATA IMACH(15) / -16381 /
- C DATA IMACH(16) / 16384 /
- C
- C MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES FTN COMPILER
- C
- C DATA IMACH( 1) / 5 /
- C DATA IMACH( 2) / 6 /
- C DATA IMACH( 3) / 1 /
- C DATA IMACH( 4) / 6 /
- C DATA IMACH( 5) / 36 /
- C DATA IMACH( 6) / 4 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 35 /
- C DATA IMACH( 9) / O377777777777 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 27 /
- C DATA IMACH(12) / -128 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 60 /
- C DATA IMACH(15) / -1024 /
- C DATA IMACH(16) / 1023 /
- C
- C MACHINE CONSTANTS FOR THE Z80 MICROPROCESSOR
- C
- C DATA IMACH( 1) / 1 /
- C DATA IMACH( 2) / 1 /
- C DATA IMACH( 3) / 0 /
- C DATA IMACH( 4) / 1 /
- C DATA IMACH( 5) / 16 /
- C DATA IMACH( 6) / 2 /
- C DATA IMACH( 7) / 2 /
- C DATA IMACH( 8) / 15 /
- C DATA IMACH( 9) / 32767 /
- C DATA IMACH(10) / 2 /
- C DATA IMACH(11) / 24 /
- C DATA IMACH(12) / -127 /
- C DATA IMACH(13) / 127 /
- C DATA IMACH(14) / 56 /
- C DATA IMACH(15) / -127 /
- C DATA IMACH(16) / 127 /
- C
- C***FIRST EXECUTABLE STATEMENT I1MACH
- IF (I .LT. 1 .OR. I .GT. 16) GO TO 10
- C
- I1MACH = IMACH(I)
- RETURN
- C
- 10 CONTINUE
- WRITE (UNIT = OUTPUT, FMT = 9000)
- 9000 FORMAT ('1ERROR 1 IN I1MACH - I OUT OF BOUNDS')
- C
- C CALL FDUMP
- C
- STOP
- END
|