blob: 196b75f67e25f01829a5dc8cc2a3315b4213e569 [file] [log] [blame]
PROGRAM FM353
C***********************************************************************00010353
C***** FORTRAN 77 00020353
C***** FM353 XINT - (150) 00030353
C***** 00040353
C***********************************************************************00050353
C***** GENERAL PURPOSE SUBSET REF00060353
C***** TEST INTRINSIC FUNCTION - IFIX - (CONVERSION FROM 15.3 00070353
C***** REAL TO INTEGER) (TABLE 5)00080353
C***** TEST INTRINSIC FUNCTION - INT - (TRUNCATION -- SIGN 00090353
C***** OF A * LARGEST INTEGER LE ABS(A) ) 00100353
C***** 00110353
C***** 00120353
CBB** ********************** BBCCOMNT **********************************00130353
C**** 00140353
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00150353
C**** VERSION 2.1 00160353
C**** 00170353
C**** 00180353
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00190353
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00200353
C**** SOFTWARE STANDARDS VALIDATION GROUP 00210353
C**** BUILDING 225 RM A266 00220353
C**** GAITHERSBURG, MD 20899 00230353
C**** 00240353
C**** 00250353
C**** 00260353
CBE** ********************** BBCCOMNT **********************************00270353
CBB** ********************** BBCINITA **********************************00280353
C**** SPECIFICATION STATEMENTS 00290353
C**** 00300353
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00310353
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00320353
CBE** ********************** BBCINITA **********************************00330353
CBB** ********************** BBCINITB **********************************00340353
C**** INITIALIZE SECTION 00350353
DATA ZVERS, ZVERSD, ZDATE 00360353
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00370353
DATA ZCOMPL, ZNAME, ZTAPE 00380353
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00390353
DATA ZPROJ, ZTAPED, ZPROG 00400353
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00410353
DATA REMRKS /' '/ 00420353
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00430353
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00440353
C**** 00450353
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00460353
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00470353
CZ03 ZPROG = 'PROGRAM NAME' 00480353
CZ04 ZDATE = 'DATE OF TEST' 00490353
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00500353
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00510353
CZ07 ZNAME = 'NAME OF USER' 00520353
CZ08 ZTAPE = 'TAPE OWNER/ID' 00530353
CZ09 ZTAPED = 'DATE TAPE COPIED' 00540353
C 00550353
IVPASS = 0 00560353
IVFAIL = 0 00570353
IVDELE = 0 00580353
IVINSP = 0 00590353
IVTOTL = 0 00600353
IVTOTN = 0 00610353
ICZERO = 0 00620353
C 00630353
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00640353
I01 = 05 00650353
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00660353
I02 = 06 00670353
C 00680353
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00690353
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700353
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00710353
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00720353
C 00730353
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00740353
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00750353
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00760353
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00770353
C 00780353
CBE** ********************** BBCINITB **********************************00790353
NUVI = I02 00800353
IVTOTL = 14 00810353
ZPROG='FM353' 00820353
CBB** ********************** BBCHED0A **********************************00830353
C**** 00840353
C**** WRITE REPORT TITLE 00850353
C**** 00860353
WRITE (I02, 90002) 00870353
WRITE (I02, 90006) 00880353
WRITE (I02, 90007) 00890353
WRITE (I02, 90008) ZVERS, ZVERSD 00900353
WRITE (I02, 90009) ZPROG, ZPROG 00910353
WRITE (I02, 90010) ZDATE, ZCOMPL 00920353
CBE** ********************** BBCHED0A **********************************00930353
C***** 00940353
C***** HEADER FOR SEGMENT 150 00950353
WRITE (NUVI,15001) 00960353
15001 FORMAT (" ",/ 2X,"XINT - (150) INTRINSIC FUNCTIONS--" /17X, 00970353
1 " IFIX, INT (TYPE CONVERSION)" / 2X, 00980353
2 "SUBSET REF. - 15.3" ) 00990353
C***** 01000353
CBB** ********************** BBCHED0B **********************************01010353
C**** WRITE DETAIL REPORT HEADERS 01020353
C**** 01030353
WRITE (I02,90004) 01040353
WRITE (I02,90004) 01050353
WRITE (I02,90013) 01060353
WRITE (I02,90014) 01070353
WRITE (I02,90015) IVTOTL 01080353
CBE** ********************** BBCHED0B **********************************01090353
15003 FORMAT(1X,2X,I3,4X,"INSPECT",5X, I5, 5X, I5) 01100353
15004 FORMAT( /48X," BELOW ANSWERS SHOULD BE ZERO " /49X, 01110353
1 "FOR TEST SEGMENT TO PASS " ) 01120353
15005 FORMAT (49X,"- EACH TEST HAS TWO PARTS." ) 01130353
WRITE (NUVI, 15005) 01140353
WRITE(NUVI, 15004) 01150353
WRITE(NUVI,15002) 01160353
15002 FORMAT (23X, " IFIX", 5X, " INT ") 01170353
C***** 01180353
CT001* TEST 1 THE VALUE ZERO 01190353
IVTNUM = 1 01200353
RACVS = 0.0 01210353
IAAVI = IFIX(RACVS) 01220353
IABVI = INT(RACVS) 01230353
IADVI = IAAVI - 0 01240353
IAEVI = IABVI - 0 01250353
WRITE(NUVI,15003) IVTNUM,IADVI, IAEVI 01260353
CT002* TEST 2 A VALUE IN (0,1) 01270353
IVTNUM = 2 01280353
RACVS = 0.375 01290353
IAAVI = IFIX(RACVS) 01300353
IABVI = INT(RACVS) 01310353
IADVI = IAAVI - 0 01320353
IAEVI = IABVI - 0 01330353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01340353
CT003* TEST 3 THE VALUE ONE 01350353
IVTNUM = 3 01360353
RACVS = 1.00001 01370353
IAAVI = IFIX(RACVS) 01380353
IABVI = INT(RACVS) 01390353
IADVI = IAAVI - 1 01400353
IAEVI = IABVI - 1 01410353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01420353
CT004* TEST 4 AN INTEGRAL VALUE OTHER THAN 0 OR 1 01430353
IVTNUM = 4 01440353
RACVS = 6.00001 01450353
IAAVI = IFIX(RACVS) 01460353
IABVI = INT(RACVS) 01470353
IADVI = IAAVI - 6 01480353
IAEVI = IABVI - 6 01490353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01500353
CT005* TEST 5 A VALUE IN (X,X+1) 01510353
IVTNUM = 5 01520353
RACVS = 3.75 01530353
IAAVI = IFIX(RACVS) 01540353
IABVI = INT(RACVS) 01550353
IADVI = IAAVI - 3 01560353
IAEVI = IABVI - 3 01570353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01580353
CT006* TEST 6 A NEGATIVE VALUE WITH MAGNITUDE IN (0,1) 01590353
IVTNUM = 6 01600353
RACVS = -0.375 01610353
IAAVI = IFIX(RACVS) 01620353
IABVI = INT(RACVS) 01630353
IADVI = IAAVI - 0 01640353
IAEVI = IABVI - 0 01650353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01660353
CT007* TEST 7 THE VALUE -1 01670353
IVTNUM = 7 01680353
RACVS = -1.00001 01690353
IAAVI = IFIX(RACVS) 01700353
IABVI = INT(RACVS) 01710353
IADVI = IAAVI + 1 01720353
IAEVI = IABVI + 1 01730353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01740353
CT008* TEST 8 A NEGATIVE INTEGRAL VALUE 01750353
IVTNUM = 8 01760353
RACVS = -6.00001 01770353
IAAVI = IFIX(RACVS) 01780353
IABVI = INT(RACVS) 01790353
IADVI = IAAVI + 6 01800353
IAEVI = IABVI + 6 01810353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01820353
CT009* TEST 9 A NEGATIVE VALUE WITH MAGNITUDE IN (X,X+1) 01830353
IVTNUM = 9 01840353
RACVS = -3.75 01850353
IAAVI = IFIX(RACVS) 01860353
IABVI = INT(RACVS) 01870353
IADVI = IAAVI + 3 01880353
IAEVI = IABVI + 3 01890353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01900353
CT010* TEST 10 ZERO PREFIXED WITH A MINUS SIGN 01910353
IVTNUM = 10 01920353
RACVS = 0 01930353
IAAVI = IFIX(-RACVS) 01940353
IABVI = INT(-RACVS) 01950353
IADVI = IAAVI - 0 01960353
IAEVI = IABVI - 0 01970353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 01980353
CT011* TEST 011 IFIX, INT USED IN AN ARITHMETIC EXPRESSION 01990353
IVTNUM = 011 02000353
RAAVS = 3.75 02010353
IAFVI = 3 02020353
IAAVI = 25 + IAFVI * IFIX(RAAVS) 02030353
IABVI = 25 + IAFVI * INT(RAAVS) 02040353
IADVI = IAAVI - 34 02050353
IAEVI = IABVI - 34 02060353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 02070353
CT012* TEST 12 AN ARITHMETIC EXPRESSION PRESENTED TO IFIX, INT 02080353
IVTNUM = 12 02090353
RAAVS = 25.5 02100353
RABVS = 12.25 02110353
IAAVI = IFIX(RAAVS - RABVS) 02120353
IABVI = INT(RAAVS - RABVS) 02130353
IADVI = IAAVI - 13 02140353
IAEVI = IABVI - 13 02150353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 02160353
CT013* TEST 13 COMPARE AUTOMATIC TYPE CONVERSION TO EXPLICIT 02170353
IVTNUM = 13 02180353
RAAVS = 11.75 02190353
RABVS = 12.625 02200353
IAAVI = IFIX(RAAVS + RABVS) 02210353
IABVI = INT(RAAVS + RABVS) 02220353
IACVI = RAAVS + RABVS 02230353
IADVI = IAAVI - IACVI 02240353
IAEVI = IABVI - IACVI 02250353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 02260353
CT014* TEST 14 ARGUMENT OF LOW MAGNITUDE 02270353
IVTNUM = 14 02280353
RACVS = -3.05923E-33 02290353
IAAVI = IFIX(RACVS) 02300353
IABVI = INT(RACVS) 02310353
IADVI = IAAVI - 0 02320353
IAEVI = IABVI - 0 02330353
WRITE(NUVI,15003) IVTNUM, IADVI, IAEVI 02340353
C***** 02350353
C***** 02360353
IVINSP = 14 02370353
CBB** ********************** BBCSUM0 **********************************02380353
C**** WRITE OUT TEST SUMMARY 02390353
C**** 02400353
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02410353
WRITE (I02, 90004) 02420353
WRITE (I02, 90014) 02430353
WRITE (I02, 90004) 02440353
WRITE (I02, 90020) IVPASS 02450353
WRITE (I02, 90022) IVFAIL 02460353
WRITE (I02, 90024) IVDELE 02470353
WRITE (I02, 90026) IVINSP 02480353
WRITE (I02, 90028) IVTOTN, IVTOTL 02490353
CBE** ********************** BBCSUM0 **********************************02500353
CBB** ********************** BBCFOOT0 **********************************02510353
C**** WRITE OUT REPORT FOOTINGS 02520353
C**** 02530353
WRITE (I02,90016) ZPROG, ZPROG 02540353
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02550353
WRITE (I02,90019) 02560353
CBE** ********************** BBCFOOT0 **********************************02570353
CBB** ********************** BBCFMT0A **********************************02580353
C**** FORMATS FOR TEST DETAIL LINES 02590353
C**** 02600353
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02610353
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02620353
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02630353
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02640353
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02650353
1I6,/," ",15X,"CORRECT= " ,I6) 02660353
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02670353
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02680353
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02690353
1A21,/," ",16X,"CORRECT= " ,A21) 02700353
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02710353
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02720353
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02730353
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02740353
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02750353
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02760353
80050 FORMAT (" ",48X,A31) 02770353
CBE** ********************** BBCFMT0A **********************************02780353
CBB** ********************** BBCFMT0B **********************************02790353
C**** FORMAT STATEMENTS FOR PAGE HEADERS 02800353
C**** 02810353
90002 FORMAT ("1") 02820353
90004 FORMAT (" ") 02830353
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02840353
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02850353
90008 FORMAT (" ",21X,A13,A17) 02860353
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02870353
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02880353
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02890353
1 7X,"REMARKS",24X) 02900353
90014 FORMAT (" ","----------------------------------------------" , 02910353
1 "---------------------------------" ) 02920353
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02930353
C**** 02940353
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02950353
C**** 02960353
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02970353
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02980353
1 A13) 02990353
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03000353
C**** 03010353
C**** FORMAT STATEMENTS FOR RUN SUMMARY 03020353
C**** 03030353
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03040353
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03050353
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03060353
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03070353
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03080353
CBE** ********************** BBCFMT0B **********************************03090353
C***** 03100353
C***** END OF TEST SEGMENT 150 03110353
STOP 03120353
END 03130353
03140353