| PROGRAM FM359 |
| |
| C***********************************************************************00010359 |
| C***** FORTRAN 77 00020359 |
| C***** FM359 XSIGN - (161) 00030359 |
| C***** 00040359 |
| C***********************************************************************00050359 |
| C***** GENERAL PURPOSE SUBSET REF00060359 |
| C***** TEST INTRINSIC FUNCTION - SIGN, ISIGN - (TRANSFER 15.3 00070359 |
| C***** OF SIGN - SIGN OF A2 TIMES ABS(A1) ) (TABLE 5)00080359 |
| C***** 00090359 |
| CBB** ********************** BBCCOMNT **********************************00100359 |
| C**** 00110359 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00120359 |
| C**** VERSION 2.1 00130359 |
| C**** 00140359 |
| C**** 00150359 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00160359 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00170359 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00180359 |
| C**** BUILDING 225 RM A266 00190359 |
| C**** GAITHERSBURG, MD 20899 00200359 |
| C**** 00210359 |
| C**** 00220359 |
| C**** 00230359 |
| CBE** ********************** BBCCOMNT **********************************00240359 |
| CBB** ********************** BBCINITA **********************************00250359 |
| C**** SPECIFICATION STATEMENTS 00260359 |
| C**** 00270359 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00280359 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00290359 |
| CBE** ********************** BBCINITA **********************************00300359 |
| CBB** ********************** BBCINITB **********************************00310359 |
| C**** INITIALIZE SECTION 00320359 |
| DATA ZVERS, ZVERSD, ZDATE 00330359 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00340359 |
| DATA ZCOMPL, ZNAME, ZTAPE 00350359 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00360359 |
| DATA ZPROJ, ZTAPED, ZPROG 00370359 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00380359 |
| DATA REMRKS /' '/ 00390359 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00400359 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00410359 |
| C**** 00420359 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00430359 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00440359 |
| CZ03 ZPROG = 'PROGRAM NAME' 00450359 |
| CZ04 ZDATE = 'DATE OF TEST' 00460359 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00470359 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00480359 |
| CZ07 ZNAME = 'NAME OF USER' 00490359 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00500359 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00510359 |
| C 00520359 |
| IVPASS = 0 00530359 |
| IVFAIL = 0 00540359 |
| IVDELE = 0 00550359 |
| IVINSP = 0 00560359 |
| IVTOTL = 0 00570359 |
| IVTOTN = 0 00580359 |
| ICZERO = 0 00590359 |
| C 00600359 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00610359 |
| I01 = 05 00620359 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00630359 |
| I02 = 06 00640359 |
| C 00650359 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00660359 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00670359 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00680359 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00690359 |
| C 00700359 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00710359 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00720359 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00730359 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00740359 |
| C 00750359 |
| CBE** ********************** BBCINITB **********************************00760359 |
| NUVI = I02 00770359 |
| IVTOTL = 22 00780359 |
| ZPROG = 'FM359' 00790359 |
| CBB** ********************** BBCHED0A **********************************00800359 |
| C**** 00810359 |
| C**** WRITE REPORT TITLE 00820359 |
| C**** 00830359 |
| WRITE (I02, 90002) 00840359 |
| WRITE (I02, 90006) 00850359 |
| WRITE (I02, 90007) 00860359 |
| WRITE (I02, 90008) ZVERS, ZVERSD 00870359 |
| WRITE (I02, 90009) ZPROG, ZPROG 00880359 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 00890359 |
| CBE** ********************** BBCHED0A **********************************00900359 |
| C***** 00910359 |
| C***** HEADER FOR SEGMENT 161 00920359 |
| WRITE (NUVI,16101) 00930359 |
| 16101 FORMAT(" ", // 2X,"XSIGN - (161) INTRINSIC FUNCTIONS-- " //12X,00940359 |
| 1 "SIGN, ISIGN (TRANSFER OF SIGN)" // 00950359 |
| 2 2X,"SUBSET REF. - 15.3 " ) 00960359 |
| CBB** ********************** BBCHED0B **********************************00970359 |
| C**** WRITE DETAIL REPORT HEADERS 00980359 |
| C**** 00990359 |
| WRITE (I02,90004) 01000359 |
| WRITE (I02,90004) 01010359 |
| WRITE (I02,90013) 01020359 |
| WRITE (I02,90014) 01030359 |
| WRITE (I02,90015) IVTOTL 01040359 |
| CBE** ********************** BBCHED0B **********************************01050359 |
| C***** 01060359 |
| C***** TEST OF SIGN 01070359 |
| C***** 01080359 |
| WRITE(NUVI, 16102) 01090359 |
| 16102 FORMAT (/ 8X, "TEST OF SIGN" ) 01100359 |
| CT001* TEST 1 BOTH VALUES ZERO 01110359 |
| IVTNUM = 1 01120359 |
| RFBVS = 0.0 01130359 |
| RFAVS = SIGN(RFBVS, RFBVS) 01140359 |
| IF (RFAVS + 0.00005) 20010, 10010, 40010 01150359 |
| 40010 IF (RFAVS - 0.00005) 10010, 10010, 20010 01160359 |
| 10010 IVPASS = IVPASS + 1 01170359 |
| WRITE (NUVI, 80002) IVTNUM 01180359 |
| GO TO 0011 01190359 |
| 20010 IVFAIL = IVFAIL + 1 01200359 |
| RVCORR = 0.0 01210359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01220359 |
| 0011 CONTINUE 01230359 |
| CT002* TEST 2 FIRST VALUE POSITIVE, SECOND ZERO 01240359 |
| IVTNUM = 2 01250359 |
| RFBVS = 1.5 01260359 |
| RFDVS = 0.0 01270359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01280359 |
| IF (RFAVS - 1.4999) 20020, 10020, 40020 01290359 |
| 40020 IF (RFAVS - 1.5001) 10020, 10020, 20020 01300359 |
| 10020 IVPASS = IVPASS + 1 01310359 |
| WRITE (NUVI, 80002) IVTNUM 01320359 |
| GO TO 0021 01330359 |
| 20020 IVFAIL = IVFAIL + 1 01340359 |
| RVCORR = 1.5 01350359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01360359 |
| 0021 CONTINUE 01370359 |
| CT003* TEST 3 FIRST VALUE NEGATIVE, SECOND ZERO 01380359 |
| IVTNUM = 3 01390359 |
| RFBVS = -1.5 01400359 |
| RFDVS = 0.0 01410359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01420359 |
| IF (RFAVS - 1.4999) 20030, 10030, 40030 01430359 |
| 40030 IF (RFAVS - 1.5001) 10030, 10030, 20030 01440359 |
| 10030 IVPASS = IVPASS + 1 01450359 |
| WRITE (NUVI, 80002) IVTNUM 01460359 |
| GO TO 0031 01470359 |
| 20030 IVFAIL = IVFAIL + 1 01480359 |
| RVCORR = 1.5 01490359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01500359 |
| 0031 CONTINUE 01510359 |
| CT004* TEST 4 FIRST VALUE ZERO, SECOND POSITIVE 01520359 |
| IVTNUM = 4 01530359 |
| RFBVS = 0.0 01540359 |
| RFDVS = 2.5 01550359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01560359 |
| IF (RFAVS + 0.00005) 20040, 10040, 40040 01570359 |
| 40040 IF (RFAVS - 0.00005) 10040, 10040, 20040 01580359 |
| 10040 IVPASS = IVPASS + 1 01590359 |
| WRITE (NUVI, 80002) IVTNUM 01600359 |
| GO TO 0041 01610359 |
| 20040 IVFAIL = IVFAIL + 1 01620359 |
| RVCORR = 0.0 01630359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01640359 |
| 0041 CONTINUE 01650359 |
| CT005* TEST 5 BOTH VALUES POSITIVE 01660359 |
| IVTNUM = 5 01670359 |
| RFBVS = 1.5 01680359 |
| RFDVS = 2.5 01690359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01700359 |
| IF (RFAVS - 1.4999) 20050, 10050, 40050 01710359 |
| 40050 IF (RFAVS - 1.5001) 10050, 10050, 20050 01720359 |
| 10050 IVPASS = IVPASS + 1 01730359 |
| WRITE (NUVI, 80002) IVTNUM 01740359 |
| GO TO 0051 01750359 |
| 20050 IVFAIL = IVFAIL + 1 01760359 |
| RVCORR = 1.5 01770359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01780359 |
| 0051 CONTINUE 01790359 |
| CT006* TEST 6 FIRST VALUE NEGATIVE, SECOND POSITIVE 01800359 |
| IVTNUM = 6 01810359 |
| RFBVS = -1.5 01820359 |
| RFDVS = 2.5 01830359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01840359 |
| IF (RFAVS - 1.4999) 20060, 10060, 40060 01850359 |
| 40060 IF (RFAVS - 1.5001) 10060, 10060, 20060 01860359 |
| 10060 IVPASS = IVPASS + 1 01870359 |
| WRITE (NUVI, 80002) IVTNUM 01880359 |
| GO TO 0061 01890359 |
| 20060 IVFAIL = IVFAIL + 1 01900359 |
| RVCORR = 1.5 01910359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 01920359 |
| 0061 CONTINUE 01930359 |
| CT007* TEST 7 FIRST VALUE ZERO, SECOND NEGATIVE 01940359 |
| IVTNUM = 7 01950359 |
| RFBVS = 0.0 01960359 |
| RFDVS = -2.5 01970359 |
| RFAVS = SIGN(RFBVS, RFDVS) 01980359 |
| IF (RFAVS + 0.00005) 20070, 10070, 40070 01990359 |
| 40070 IF (RFAVS - 0.00005) 10070, 10070, 20070 02000359 |
| 10070 IVPASS = IVPASS + 1 02010359 |
| WRITE (NUVI, 80002) IVTNUM 02020359 |
| GO TO 0071 02030359 |
| 20070 IVFAIL = IVFAIL + 1 02040359 |
| RVCORR = 0.0 02050359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 02060359 |
| 0071 CONTINUE 02070359 |
| CT008* TEST 8 BOTH VALUES NEGATIVE 02080359 |
| IVTNUM = 8 02090359 |
| RFBVS = -1.5 02100359 |
| RFDVS = -2.5 02110359 |
| RFAVS = SIGN(RFBVS, RFDVS) 02120359 |
| IF (RFAVS + 1.5001) 20080, 10080, 40080 02130359 |
| 40080 IF (RFAVS + 1.4999) 10080, 10080, 20080 02140359 |
| 10080 IVPASS = IVPASS + 1 02150359 |
| WRITE (NUVI, 80002) IVTNUM 02160359 |
| GO TO 0081 02170359 |
| 20080 IVFAIL = IVFAIL + 1 02180359 |
| RVCORR = -1.5 02190359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 02200359 |
| 0081 CONTINUE 02210359 |
| CT009* TEST 9 FIRST VALUE POSITIVE, SECOND NEGATIVE 02220359 |
| IVTNUM = 9 02230359 |
| RFBVS = 1.5 02240359 |
| RFDVS = -2.5 02250359 |
| RFAVS = SIGN(RFBVS, RFDVS) 02260359 |
| IF (RFAVS + 1.5001) 20090, 10090, 40090 02270359 |
| 40090 IF (RFAVS + 1.4999) 10090, 10090, 20090 02280359 |
| 10090 IVPASS = IVPASS + 1 02290359 |
| WRITE (NUVI, 80002) IVTNUM 02300359 |
| GO TO 0091 02310359 |
| 20090 IVFAIL = IVFAIL + 1 02320359 |
| RVCORR = -1.5 02330359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 02340359 |
| 0091 CONTINUE 02350359 |
| CT010* TEST 10 BOTH VALUES ZERO, 1ST ZERO PRECEDED BY A MINUS SIGN 02360359 |
| IVTNUM = 10 02370359 |
| RFDVS = 0.0 02380359 |
| RFEVS = 0.0 02390359 |
| RFAVS = SIGN(-RFDVS, RFEVS) 02400359 |
| IF (RFAVS + 0.0005) 20100, 10100, 40100 02410359 |
| 40100 IF (RFAVS - 0.00005) 10100, 10100, 20100 02420359 |
| 10100 IVPASS = IVPASS + 1 02430359 |
| WRITE (NUVI, 80002) IVTNUM 02440359 |
| GO TO 0101 02450359 |
| 20100 IVFAIL = IVFAIL + 1 02460359 |
| RVCORR = 0.0 02470359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 02480359 |
| 0101 CONTINUE 02490359 |
| CT011* TEST 11 ARITHMETIC EXPRESSIONS PRESENTED TO SIGN 02500359 |
| IVTNUM = 11 02510359 |
| RFDVS = 1.5 02520359 |
| RFEVS = 2.0 02530359 |
| RFAVS = SIGN(RFDVS + RFEVS, RFDVS - RFEVS) 02540359 |
| IF (RFAVS + 3.5002) 20110, 10110, 40110 02550359 |
| 40110 IF (RFAVS + 3.4998) 10110, 10110, 20110 02560359 |
| 10110 IVPASS = IVPASS + 1 02570359 |
| WRITE (NUVI, 80002) IVTNUM 02580359 |
| GO TO 0111 02590359 |
| 20110 IVFAIL = IVFAIL + 1 02600359 |
| RVCORR = -3.5 02610359 |
| WRITE (NUVI, 80012) IVTNUM, RFAVS, RVCORR 02620359 |
| 0111 CONTINUE 02630359 |
| C***** 02640359 |
| C***** TEST OF ISIGN 02650359 |
| C***** 02660359 |
| WRITE(NUVI, 16104) 02670359 |
| 16104 FORMAT (/ 8X, "TEST OF ISIGN" ) 02680359 |
| C***** 02690359 |
| CT012* TEST 12 BOTH VALUES ZERO 02700359 |
| IVTNUM = 12 02710359 |
| IFBVI = 0 02720359 |
| IFDVI = 0 02730359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 02740359 |
| IF (IFAVI - 0) 20120, 10120, 20120 02750359 |
| 10120 IVPASS = IVPASS + 1 02760359 |
| WRITE (NUVI, 80002) IVTNUM 02770359 |
| GO TO 0121 02780359 |
| 20120 IVFAIL = IVFAIL + 1 02790359 |
| IVCORR = 0 02800359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 02810359 |
| 0121 CONTINUE 02820359 |
| CT013* TEST 13 FIRST VALUE POSITIVE, SECOND ZERO 02830359 |
| IVTNUM = 13 02840359 |
| IFBVI = 2 02850359 |
| IFDVI = 0 02860359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 02870359 |
| IF (IFAVI - 2) 20130, 10130, 20130 02880359 |
| 10130 IVPASS = IVPASS + 1 02890359 |
| WRITE (NUVI, 80002) IVTNUM 02900359 |
| GO TO 0131 02910359 |
| 20130 IVFAIL = IVFAIL + 1 02920359 |
| IVCORR = 2 02930359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 02940359 |
| 0131 CONTINUE 02950359 |
| CT014* TEST 14 FIRST VALUE NEGATIVE, SECOND ZERO 02960359 |
| IVTNUM = 14 02970359 |
| IFBVI = -2 02980359 |
| IFDVI = 0 02990359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03000359 |
| IF (IFAVI - 2) 20140, 10140, 20140 03010359 |
| 10140 IVPASS = IVPASS + 1 03020359 |
| WRITE (NUVI, 80002) IVTNUM 03030359 |
| GO TO 0141 03040359 |
| 20140 IVFAIL = IVFAIL + 1 03050359 |
| IVCORR = 2 03060359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03070359 |
| 0141 CONTINUE 03080359 |
| CT015* TEST 15 FIRST VALUE ZERO, SECOND POSITIVE 03090359 |
| IVTNUM = 15 03100359 |
| IFBVI = 0 03110359 |
| IFDVI = 5 03120359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03130359 |
| IF (IFAVI - 0) 20150, 10150, 20150 03140359 |
| 10150 IVPASS = IVPASS + 1 03150359 |
| WRITE (NUVI, 80002) IVTNUM 03160359 |
| GO TO 0151 03170359 |
| 20150 IVFAIL = IVFAIL + 1 03180359 |
| IVCORR = 0 03190359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03200359 |
| 0151 CONTINUE 03210359 |
| CT016* TEST 16 BOTH VALUES POSITIVE 03220359 |
| IVTNUM = 16 03230359 |
| IFBVI = 2 03240359 |
| IFDVI = 5 03250359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03260359 |
| IF (IFAVI - 2) 20160, 10160, 20160 03270359 |
| 10160 IVPASS = IVPASS + 1 03280359 |
| WRITE (NUVI, 80002) IVTNUM 03290359 |
| GO TO 0161 03300359 |
| 20160 IVFAIL = IVFAIL + 1 03310359 |
| IVCORR = 2 03320359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03330359 |
| 0161 CONTINUE 03340359 |
| CT017* TEST 17 FIRST VALUE NEGATIVE, SECOND POSITIVE 03350359 |
| IVTNUM = 17 03360359 |
| IFBVI = -2 03370359 |
| IFDVI = 5 03380359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03390359 |
| IF (IFAVI - 2) 20170, 10170, 20170 03400359 |
| 10170 IVPASS = IVPASS + 1 03410359 |
| WRITE (NUVI, 80002) IVTNUM 03420359 |
| GO TO 0171 03430359 |
| 20170 IVFAIL = IVFAIL + 1 03440359 |
| IVCORR = 2 03450359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03460359 |
| 0171 CONTINUE 03470359 |
| CT018* TEST 18 FIRST VALUE ZERO, SECOND NEGATIVE 03480359 |
| IVTNUM = 18 03490359 |
| IFBVI = 0 03500359 |
| IFDVI = -5 03510359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03520359 |
| IF (IFAVI - 0) 20180, 10180, 20180 03530359 |
| 10180 IVPASS = IVPASS + 1 03540359 |
| WRITE (NUVI, 80002) IVTNUM 03550359 |
| GO TO 0181 03560359 |
| 20180 IVFAIL = IVFAIL + 1 03570359 |
| IVCORR = 0 03580359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03590359 |
| 0181 CONTINUE 03600359 |
| CT019* TEST 19 BOTH VALUES NEGATIVE 03610359 |
| IVTNUM = 19 03620359 |
| IFBVI = -2 03630359 |
| IFDVI = -5 03640359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03650359 |
| IF (IFAVI + 2) 20190, 10190, 20190 03660359 |
| 10190 IVPASS = IVPASS + 1 03670359 |
| WRITE (NUVI, 80002) IVTNUM 03680359 |
| GO TO 0191 03690359 |
| 20190 IVFAIL = IVFAIL + 1 03700359 |
| IVCORR = -2 03710359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03720359 |
| 0191 CONTINUE 03730359 |
| CT020* TEST 20 FIRST VALUE POSITIVE, SECOND NEGATIVE 03740359 |
| IVTNUM = 20 03750359 |
| IFBVI = 2 03760359 |
| IFDVI = -5 03770359 |
| IFAVI = ISIGN(IFBVI, IFDVI) 03780359 |
| IF (IFAVI + 2) 20200, 10200, 20200 03790359 |
| 10200 IVPASS = IVPASS + 1 03800359 |
| WRITE (NUVI, 80002) IVTNUM 03810359 |
| GO TO 0201 03820359 |
| 20200 IVFAIL = IVFAIL + 1 03830359 |
| IVCORR = -2 03840359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03850359 |
| 0201 CONTINUE 03860359 |
| CT021* TEST 21 BOTH VALUES ZERO, 1ST ZERO PRECEDED BY A MINUS SIGN 03870359 |
| IVTNUM = 21 03880359 |
| IFDVI = 0 03890359 |
| IFEVI = 0 03900359 |
| IFAVI = ISIGN(-IFDVI, IFEVI) 03910359 |
| IF (IFAVI - 0) 20210, 10210, 20210 03920359 |
| 10210 IVPASS = IVPASS + 1 03930359 |
| WRITE (NUVI, 80002) IVTNUM 03940359 |
| GO TO 0211 03950359 |
| 20210 IVFAIL = IVFAIL + 1 03960359 |
| IVCORR = 0 03970359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 03980359 |
| 0211 CONTINUE 03990359 |
| CT022* TEST 22 ARITHMETIC EXPRESSIONS PRESENTED TO ISIGN 04000359 |
| IVTNUM = 22 04010359 |
| IFDVI = 2 04020359 |
| IFEVI = 3 04030359 |
| IFAVI = ISIGN(IFDVI + IFEVI, IFDVI - IFEVI) 04040359 |
| IF (IFAVI + 5) 20220, 10220, 20220 04050359 |
| 10220 IVPASS = IVPASS + 1 04060359 |
| WRITE (NUVI, 80002) IVTNUM 04070359 |
| GO TO 0221 04080359 |
| 20220 IVFAIL = IVFAIL + 1 04090359 |
| IVCORR = -5 04100359 |
| WRITE (NUVI, 80010) IVTNUM, IFAVI, IVCORR 04110359 |
| 0221 CONTINUE 04120359 |
| C***** 04130359 |
| CBB** ********************** BBCSUM0 **********************************04140359 |
| C**** WRITE OUT TEST SUMMARY 04150359 |
| C**** 04160359 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 04170359 |
| WRITE (I02, 90004) 04180359 |
| WRITE (I02, 90014) 04190359 |
| WRITE (I02, 90004) 04200359 |
| WRITE (I02, 90020) IVPASS 04210359 |
| WRITE (I02, 90022) IVFAIL 04220359 |
| WRITE (I02, 90024) IVDELE 04230359 |
| WRITE (I02, 90026) IVINSP 04240359 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 04250359 |
| CBE** ********************** BBCSUM0 **********************************04260359 |
| CBB** ********************** BBCFOOT0 **********************************04270359 |
| C**** WRITE OUT REPORT FOOTINGS 04280359 |
| C**** 04290359 |
| WRITE (I02,90016) ZPROG, ZPROG 04300359 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 04310359 |
| WRITE (I02,90019) 04320359 |
| CBE** ********************** BBCFOOT0 **********************************04330359 |
| CBB** ********************** BBCFMT0A **********************************04340359 |
| C**** FORMATS FOR TEST DETAIL LINES 04350359 |
| C**** 04360359 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 04370359 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 04380359 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 04390359 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 04400359 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 04410359 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 04420359 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04430359 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 04440359 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04450359 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 04460359 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 04470359 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 04480359 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 04490359 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 04500359 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 04510359 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 04520359 |
| 80050 FORMAT (" ",48X,A31) 04530359 |
| CBE** ********************** BBCFMT0A **********************************04540359 |
| CBB** ********************** BBCFMT0B **********************************04550359 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 04560359 |
| C**** 04570359 |
| 90002 FORMAT ("1") 04580359 |
| 90004 FORMAT (" ") 04590359 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )04600359 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 04610359 |
| 90008 FORMAT (" ",21X,A13,A17) 04620359 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 04630359 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 04640359 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 04650359 |
| 1 7X,"REMARKS",24X) 04660359 |
| 90014 FORMAT (" ","----------------------------------------------" , 04670359 |
| 1 "---------------------------------" ) 04680359 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 04690359 |
| C**** 04700359 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 04710359 |
| C**** 04720359 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 04730359 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 04740359 |
| 1 A13) 04750359 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 04760359 |
| C**** 04770359 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 04780359 |
| C**** 04790359 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 04800359 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 04810359 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 04820359 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 04830359 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 04840359 |
| CBE** ********************** BBCFMT0B **********************************04850359 |
| C***** 04860359 |
| C***** END OF TEST SEGMENT 161 04870359 |
| STOP 04880359 |
| END 04890359 |
| 04900359 |