| PROGRAM FM809 |
| |
| C***********************************************************************00010809 |
| C***** FORTRAN 77 00020809 |
| C***** FM809 YCONJG - (170) 00030809 |
| C***** 00040809 |
| C***********************************************************************00050809 |
| C***** GENERAL PURPOSE ANS REF 00060809 |
| C***** TEST INTRINSIC FUNCTION CMPLX (CONVERT TO COMPLEX), 15.3 00070809 |
| C***** AIMAG (IMAGINARY PART), AND CONJG (CONJUGATE) (TABLE 5)00080809 |
| C***** 00090809 |
| C***** S P E C I F I C A T I O N S SEGMENT 170 00100809 |
| CBB** ********************** BBCCOMNT **********************************00110809 |
| C**** 00120809 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00130809 |
| C**** VERSION 2.1 00140809 |
| C**** 00150809 |
| C**** 00160809 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00170809 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00180809 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00190809 |
| C**** BUILDING 225 RM A266 00200809 |
| C**** GAITHERSBURG, MD 20899 00210809 |
| C**** 00220809 |
| C**** 00230809 |
| C**** 00240809 |
| CBE** ********************** BBCCOMNT **********************************00250809 |
| C***** 00260809 |
| COMPLEX CWAVC, CWBVC, CWDVC, CWEVC, ZVCORR 00270809 |
| REAL R2E(2) 00280809 |
| EQUIVALENCE (CWAVC,R2E) 00290809 |
| C***** 00300809 |
| CBB** ********************** BBCINITA **********************************00310809 |
| C**** SPECIFICATION STATEMENTS 00320809 |
| C**** 00330809 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00340809 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00350809 |
| CBE** ********************** BBCINITA **********************************00360809 |
| CBB** ********************** BBCINITB **********************************00370809 |
| C**** INITIALIZE SECTION 00380809 |
| DATA ZVERS, ZVERSD, ZDATE 00390809 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00400809 |
| DATA ZCOMPL, ZNAME, ZTAPE 00410809 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00420809 |
| DATA ZPROJ, ZTAPED, ZPROG 00430809 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00440809 |
| DATA REMRKS /' '/ 00450809 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00460809 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00470809 |
| C**** 00480809 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00490809 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00500809 |
| CZ03 ZPROG = 'PROGRAM NAME' 00510809 |
| CZ04 ZDATE = 'DATE OF TEST' 00520809 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00530809 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00540809 |
| CZ07 ZNAME = 'NAME OF USER' 00550809 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00560809 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00570809 |
| C 00580809 |
| IVPASS = 0 00590809 |
| IVFAIL = 0 00600809 |
| IVDELE = 0 00610809 |
| IVINSP = 0 00620809 |
| IVTOTL = 0 00630809 |
| IVTOTN = 0 00640809 |
| ICZERO = 0 00650809 |
| C 00660809 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00670809 |
| I01 = 05 00680809 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00690809 |
| I02 = 06 00700809 |
| C 00710809 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00720809 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730809 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00740809 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00750809 |
| C 00760809 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00770809 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00780809 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00790809 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00800809 |
| C 00810809 |
| CBE** ********************** BBCINITB **********************************00820809 |
| NUVI = I02 00830809 |
| IVTOTL = 25 00840809 |
| ZPROG = 'FM809' 00850809 |
| CBB** ********************** BBCHED0A **********************************00860809 |
| C**** 00870809 |
| C**** WRITE REPORT TITLE 00880809 |
| C**** 00890809 |
| WRITE (I02, 90002) 00900809 |
| WRITE (I02, 90006) 00910809 |
| WRITE (I02, 90007) 00920809 |
| WRITE (I02, 90008) ZVERS, ZVERSD 00930809 |
| WRITE (I02, 90009) ZPROG, ZPROG 00940809 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 00950809 |
| CBE** ********************** BBCHED0A **********************************00960809 |
| C***** 00970809 |
| C***** HEADER FOR SEGMENT 170 WRITTEN 00980809 |
| WRITE (NUVI,17001) 00990809 |
| 17001 FORMAT(" ", //1X,"YCONJG - (170) INTRINSIC FUNCTION--" //17X, 01000809 |
| 1 "CMPLX (CONVERT TO COMPLEX)," /17X, 01010809 |
| 2 "AIMAG (IMAG. PART)," /17X, 01020809 |
| 3 "CONJG (CONJUGATE)" //,2X, 01030809 |
| 4 "ANS REF. - 15.3" ) 01040809 |
| CBB** ********************** BBCHED0B **********************************01050809 |
| C**** WRITE DETAIL REPORT HEADERS 01060809 |
| C**** 01070809 |
| WRITE (I02,90004) 01080809 |
| WRITE (I02,90004) 01090809 |
| WRITE (I02,90013) 01100809 |
| WRITE (I02,90014) 01110809 |
| WRITE (I02,90015) IVTOTL 01120809 |
| CBE** ********************** BBCHED0B **********************************01130809 |
| C***** 01140809 |
| C***** TEST OF CMPLX 01150809 |
| C***** 01160809 |
| WRITE(NUVI, 17002) 01170809 |
| 17002 FORMAT(/ 8X, "TEST OF CMPLX" ) 01180809 |
| CT001* TEST 1 PAIR OF ZEROES 01190809 |
| IVTNUM = 1 01200809 |
| RWBVS = 0.0 01210809 |
| RWDVS = 0.0 01220809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 01230809 |
| IF (R2E(1) + 0.00005) 20010, 40012, 40011 01240809 |
| 40011 IF (R2E(1) - 0.00005) 40012, 40012, 20010 01250809 |
| 40012 IF (R2E(2) + 0.00005) 20010, 10010, 40010 01260809 |
| 40010 IF (R2E(2) - 0.00005) 10010, 10010, 20010 01270809 |
| 10010 IVPASS = IVPASS + 1 01280809 |
| WRITE (NUVI, 80002) IVTNUM 01290809 |
| GO TO 0011 01300809 |
| 20010 IVFAIL = IVFAIL + 1 01310809 |
| ZVCORR = (0.0 , 0.0) 01320809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 01330809 |
| 0011 CONTINUE 01340809 |
| CT002* TEST 2 FIRST VALUE NON-ZERO, SECOND ZERO 01350809 |
| IVTNUM = 2 01360809 |
| RWBVS = 3.0 01370809 |
| RWDVS = 0.0 01380809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 01390809 |
| IF (R2E(1) - 2.9998) 20020, 40022, 40021 01400809 |
| 40021 IF (R2E(1) - 3.0002) 40022, 40022, 20020 01410809 |
| 40022 IF (R2E(2) + 0.00005) 20020, 10020, 40020 01420809 |
| 40020 IF (R2E(2) - 0.00005) 10020, 10020, 20020 01430809 |
| 10020 IVPASS = IVPASS + 1 01440809 |
| WRITE (NUVI, 80002) IVTNUM 01450809 |
| GO TO 0021 01460809 |
| 20020 IVFAIL = IVFAIL + 1 01470809 |
| ZVCORR = (3.0 , 0.0) 01480809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 01490809 |
| 0021 CONTINUE 01500809 |
| CT003* TEST 3 FIRST VALUE ZERO, SECOND NON-ZERO 01510809 |
| IVTNUM = 3 01520809 |
| RWBVS = 0.0 01530809 |
| RWDVS = 4.0 01540809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 01550809 |
| IF (R2E(1) + 0.00005) 20030, 40032, 40031 01560809 |
| 40031 IF (R2E(1) - 0.00005) 40032, 40032, 20030 01570809 |
| 40032 IF (R2E(2) - 3.9998) 20030, 10030, 40030 01580809 |
| 40030 IF (R2E(2) - 4.0002) 10030, 10030, 20030 01590809 |
| 10030 IVPASS = IVPASS + 1 01600809 |
| WRITE (NUVI, 80002) IVTNUM 01610809 |
| GO TO 0031 01620809 |
| 20030 IVFAIL = IVFAIL + 1 01630809 |
| ZVCORR = (0.0 , 4.0) 01640809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 01650809 |
| 0031 CONTINUE 01660809 |
| CT004* TEST 4 PAIR OF NON-ZERO VALUES 01670809 |
| IVTNUM = 4 01680809 |
| RWBVS = 3.0 01690809 |
| RWDVS = 4.0 01700809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 01710809 |
| IF (R2E(1) - 2.9998) 20040, 40042, 40041 01720809 |
| 40041 IF (R2E(1) - 3.0002) 40042, 40042, 20040 01730809 |
| 40042 IF (R2E(2) - 3.9998) 20040, 10040, 40040 01740809 |
| 40040 IF (R2E(2) - 4.0002) 10040, 10040, 20040 01750809 |
| 10040 IVPASS = IVPASS + 1 01760809 |
| WRITE (NUVI, 80002) IVTNUM 01770809 |
| GO TO 0041 01780809 |
| 20040 IVFAIL = IVFAIL + 1 01790809 |
| ZVCORR = (3.0 , 4.0) 01800809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 01810809 |
| 0041 CONTINUE 01820809 |
| CT005* TEST 5 FIRST VALUE NEGATIVE, SECOND ZERO 01830809 |
| IVTNUM = 5 01840809 |
| RWBVS = -3.0 01850809 |
| RWDVS = 0.0 01860809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 01870809 |
| IF (R2E(1) + 3.0002) 20050, 40052, 40051 01880809 |
| 40051 IF (R2E(1) + 2.9998) 40052, 40052, 20050 01890809 |
| 40052 IF (R2E(2) + 0.00005) 20050, 10050, 40050 01900809 |
| 40050 IF (R2E(2) - 0.00005) 10050, 10050, 20050 01910809 |
| 10050 IVPASS = IVPASS + 1 01920809 |
| WRITE (NUVI, 80002) IVTNUM 01930809 |
| GO TO 0051 01940809 |
| 20050 IVFAIL = IVFAIL + 1 01950809 |
| ZVCORR = (-3.0, 0.0) 01960809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 01970809 |
| 0051 CONTINUE 01980809 |
| CT006* TEST 6 FIRST VALUE ZERO, SECOND NEGATIVE 01990809 |
| IVTNUM = 6 02000809 |
| RWBVS = 0.0 02010809 |
| RWDVS = -4.0 02020809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 02030809 |
| IF (R2E(1) + 0.00005) 20060, 40062, 40061 02040809 |
| 40061 IF (R2E(1) - 0.00005) 40062, 40062, 20060 02050809 |
| 40062 IF (R2E(2) + 4.0002) 20060, 10060, 40060 02060809 |
| 40060 IF (R2E(2) + 3.9998) 10060, 10060, 20060 02070809 |
| 10060 IVPASS = IVPASS + 1 02080809 |
| WRITE (NUVI, 80002) IVTNUM 02090809 |
| GO TO 0061 02100809 |
| 20060 IVFAIL = IVFAIL + 1 02110809 |
| ZVCORR = (0.0, -4.0) 02120809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 02130809 |
| 0061 CONTINUE 02140809 |
| CT007* TEST 7 PAIR OF NEGATIVE VALUES 02150809 |
| IVTNUM = 7 02160809 |
| RWBVS = -3.0 02170809 |
| RWDVS = -4.0 02180809 |
| CWAVC = CMPLX(RWBVS, RWDVS) 02190809 |
| IF (R2E(1) + 3.0002) 20070, 40072, 40071 02200809 |
| 40071 IF (R2E(1) + 2.9998) 40072, 40072, 20070 02210809 |
| 40072 IF (R2E(2) + 4.0002) 20070, 10070, 40070 02220809 |
| 40070 IF (R2E(2) + 3.9998) 10070, 10070, 20070 02230809 |
| 10070 IVPASS = IVPASS + 1 02240809 |
| WRITE (NUVI, 80002) IVTNUM 02250809 |
| GO TO 0071 02260809 |
| 20070 IVFAIL = IVFAIL + 1 02270809 |
| ZVCORR = (-3.0, -4.0) 02280809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 02290809 |
| 0071 CONTINUE 02300809 |
| CT008* TEST 8 FIRST VALUE PRECEDED BY A MINUS SIGN 02310809 |
| IVTNUM = 8 02320809 |
| RWAVS = 3.0 02330809 |
| RWBVS = 0.0 02340809 |
| CWAVC = CMPLX(-RWAVS, RWBVS) 02350809 |
| IF (R2E(1) + 3.0002) 20080, 40082, 40081 02360809 |
| 40081 IF (R2E(1) + 2.9998) 40082, 40082, 20080 02370809 |
| 40082 IF (R2E(2) + 0.00005) 20080, 10080, 40080 02380809 |
| 40080 IF (R2E(2) - 0.00005) 10080, 10080, 20080 02390809 |
| 10080 IVPASS = IVPASS + 1 02400809 |
| WRITE (NUVI, 80002) IVTNUM 02410809 |
| GO TO 0081 02420809 |
| 20080 IVFAIL = IVFAIL + 1 02430809 |
| ZVCORR = (-3.0, 0.0) 02440809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 02450809 |
| 0081 CONTINUE 02460809 |
| CT009* TEST 9 ONE ARGUMENT A CONSTANT, OTHER A VARIABLE 02470809 |
| IVTNUM = 9 02480809 |
| RWAVS = 4.0 02490809 |
| CWAVC = CMPLX(0.0, RWAVS) 02500809 |
| IF (R2E(1) + 0.00005) 20090, 40092, 40091 02510809 |
| 40091 IF (R2E(1) - 0.00005) 40092, 40092, 20090 02520809 |
| 40092 IF (R2E(2) - 3.9998) 20090, 10090, 40090 02530809 |
| 40090 IF (R2E(2) - 4.0002) 10090, 10090, 20090 02540809 |
| 10090 IVPASS = IVPASS + 1 02550809 |
| WRITE (NUVI, 80002) IVTNUM 02560809 |
| GO TO 0091 02570809 |
| 20090 IVFAIL = IVFAIL + 1 02580809 |
| ZVCORR = (0.0, 4.0) 02590809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 02600809 |
| 0091 CONTINUE 02610809 |
| CT010* TEST 10 PAIR OF ARITHMETIC EXPRESSIONS USED AS ARGUMENT 02620809 |
| IVTNUM = 10 02630809 |
| RWAVS = 1.5 02640809 |
| RWBVS = 2.0 02650809 |
| RWCVS = 3.5 02660809 |
| CWAVC = CMPLX((RWCVS + RWAVS)/ RWBVS, (RWCVS - RWAVS) / RWBVS) 02670809 |
| IF (R2E(1) - 2.4998) 20100, 40102, 40101 02680809 |
| 40101 IF (R2E(1) - 2.5002) 40102, 40102, 20100 02690809 |
| 40102 IF (R2E(2) - 0.99995) 20100, 10100, 40100 02700809 |
| 40100 IF (R2E(2) - 1.0001) 10100, 10100, 20100 02710809 |
| 10100 IVPASS = IVPASS + 1 02720809 |
| WRITE (NUVI, 80002) IVTNUM 02730809 |
| GO TO 0101 02740809 |
| 20100 IVFAIL = IVFAIL + 1 02750809 |
| ZVCORR = (2.5, 1.0) 02760809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 02770809 |
| 0101 CONTINUE 02780809 |
| C***** 02790809 |
| WRITE(NUVI, 90002) 02800809 |
| WRITE(NUVI, 90013) 02810809 |
| WRITE(NUVI, 90014) 02820809 |
| C***** 02830809 |
| C***** TEST OF AIMAG 02840809 |
| C***** 02850809 |
| WRITE(NUVI, 17004) 02860809 |
| 17004 FORMAT(/ 8X, "TEST OF AIMAG" ) 02870809 |
| CT011* TEST 11 THE COMPLEX VALUE ZERO (0,0) 02880809 |
| IVTNUM = 11 02890809 |
| RWAVS = AIMAG((0.0, 0.0)) 02900809 |
| IF (RWAVS + 0.00005) 20110, 10110, 40110 02910809 |
| 40110 IF (RWAVS - 0.00005) 10110, 10110, 20110 02920809 |
| 10110 IVPASS = IVPASS + 1 02930809 |
| WRITE (NUVI, 80002) IVTNUM 02940809 |
| GO TO 0111 02950809 |
| 20110 IVFAIL = IVFAIL + 1 02960809 |
| RVCORR = 0.0 02970809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 02980809 |
| 0111 CONTINUE 02990809 |
| CT012* TEST 12 COMPLEX VALUE HAVING ONLY A REAL COMPONENT 03000809 |
| IVTNUM = 12 03010809 |
| RWAVS = AIMAG((3.0, 0.0)) 03020809 |
| IF (RWAVS + 0.00005) 20120, 10120, 40120 03030809 |
| 40120 IF (RWAVS - 0.00005) 10120, 10120, 20120 03040809 |
| 10120 IVPASS = IVPASS + 1 03050809 |
| WRITE (NUVI, 80002) IVTNUM 03060809 |
| GO TO 0121 03070809 |
| 20120 IVFAIL = IVFAIL + 1 03080809 |
| RVCORR = 0.0 03090809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03100809 |
| 0121 CONTINUE 03110809 |
| CT013* TEST 13 ARBITRARY COMPLEX VALUE 03120809 |
| IVTNUM = 13 03130809 |
| RWAVS = AIMAG((3.0, 4.0)) 03140809 |
| IF (RWAVS - 3.9998) 20130, 10130, 40130 03150809 |
| 40130 IF (RWAVS - 4.0002) 10130, 10130, 20130 03160809 |
| 10130 IVPASS = IVPASS + 1 03170809 |
| WRITE (NUVI, 80002) IVTNUM 03180809 |
| GO TO 0131 03190809 |
| 20130 IVFAIL = IVFAIL + 1 03200809 |
| RVCORR = 4.0 03210809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03220809 |
| 0131 CONTINUE 03230809 |
| CT014* TEST 14 IMAGINARY COMPONENT A ZERO PRECEDED BY MINUS SIGN 03240809 |
| IVTNUM = 14 03250809 |
| RWAVS = AIMAG((-3.0, -0.0)) 03260809 |
| IF (RWAVS + 0.00005) 20140, 10140, 40140 03270809 |
| 40140 IF (RWAVS - 0.00005) 10140, 10140, 20140 03280809 |
| 10140 IVPASS = IVPASS + 1 03290809 |
| WRITE (NUVI, 80002) IVTNUM 03300809 |
| GO TO 0141 03310809 |
| 20140 IVFAIL = IVFAIL + 1 03320809 |
| RVCORR = 0.0 03330809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03340809 |
| 0141 CONTINUE 03350809 |
| CT015* TEST 15 ARBITRARY COMPLEX VALUE WITH NEGATIVE COMPONENTS 03360809 |
| IVTNUM = 15 03370809 |
| RWAVS = AIMAG((-3.0, -4.0)) 03380809 |
| IF (RWAVS + 4.0002) 20150, 10150, 40150 03390809 |
| 40150 IF (RWAVS + 3.9998) 10150, 10150, 20150 03400809 |
| 10150 IVPASS = IVPASS + 1 03410809 |
| WRITE (NUVI, 80002) IVTNUM 03420809 |
| GO TO 0151 03430809 |
| 20150 IVFAIL = IVFAIL + 1 03440809 |
| RVCORR = -4.0 03450809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03460809 |
| 0151 CONTINUE 03470809 |
| CT016* TEST 16 COMPLEX VALUE ZERO (0,0) PRECEDED BY MINUS SIGN 03480809 |
| IVTNUM = 16 03490809 |
| CWDVC = (0.0, 0.0) 03500809 |
| RWAVS = AIMAG(-CWDVC) 03510809 |
| IF (RWAVS + 0.00005) 20160, 10160, 40160 03520809 |
| 40160 IF (RWAVS - 0.00005) 10160, 10160, 20160 03530809 |
| 10160 IVPASS = IVPASS + 1 03540809 |
| WRITE (NUVI, 80002) IVTNUM 03550809 |
| GO TO 0161 03560809 |
| 20160 IVFAIL = IVFAIL + 1 03570809 |
| RVCORR = 0.0 03580809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03590809 |
| 0161 CONTINUE 03600809 |
| CT017* TEST 17 ARGUMENT IS A COMPLEX EXPRESSION 03610809 |
| IVTNUM = 17 03620809 |
| CWDVC = (3.5, 4.5) 03630809 |
| CWEVC = (4.0, 5.0) 03640809 |
| RWAVS = AIMAG(CWDVC - CWEVC) 03650809 |
| IF (RWAVS + 0.50003) 20170, 10170, 40170 03660809 |
| 40170 IF (RWAVS + 0.49997) 10170, 10170, 20170 03670809 |
| 10170 IVPASS = IVPASS + 1 03680809 |
| WRITE (NUVI, 80002) IVTNUM 03690809 |
| GO TO 0171 03700809 |
| 20170 IVFAIL = IVFAIL + 1 03710809 |
| RVCORR = -0.5 03720809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03730809 |
| 0171 CONTINUE 03740809 |
| CT018* TEST 18 CONJG FORMS ARGUMENT TO AIMAG 03750809 |
| IVTNUM = 18 03760809 |
| CWDVC = (3.0, 4.0) 03770809 |
| RWAVS = AIMAG(CONJG(CWDVC)) 03780809 |
| IF (RWAVS + 4.0002) 20180, 10180, 40180 03790809 |
| 40180 IF (RWAVS + 3.9998) 10180, 10180, 20180 03800809 |
| 10180 IVPASS = IVPASS + 1 03810809 |
| WRITE (NUVI, 80002) IVTNUM 03820809 |
| GO TO 0181 03830809 |
| 20180 IVFAIL = IVFAIL + 1 03840809 |
| RVCORR = -4.0 03850809 |
| WRITE (NUVI, 80012) IVTNUM, RWAVS, RVCORR 03860809 |
| 0181 CONTINUE 03870809 |
| C***** 03880809 |
| WRITE(NUVI, 90002) 03890809 |
| WRITE(NUVI, 90013) 03900809 |
| WRITE(NUVI, 90014) 03910809 |
| C***** 03920809 |
| C***** TEST OF CONJG 03930809 |
| C***** 03940809 |
| WRITE (NUVI,17006) 03950809 |
| 17006 FORMAT (/ 8X, "TEST OF CONJG" ) 03960809 |
| CT019* TEST 19 COMPLEX VALUE ZERO (0,0) 03970809 |
| IVTNUM = 19 03980809 |
| CWAVC = CONJG((0.0, 0.0)) 03990809 |
| IF (R2E(1) + 0.00005) 20190, 40192, 40191 04000809 |
| 40191 IF (R2E(1) - 0.00005) 40192, 40192, 20190 04010809 |
| 40192 IF (R2E(2) + 0.00005) 20190, 10190, 40190 04020809 |
| 40190 IF (R2E(2) - 0.00005) 10190, 10190, 20190 04030809 |
| 10190 IVPASS = IVPASS + 1 04040809 |
| WRITE (NUVI, 80002) IVTNUM 04050809 |
| GO TO 0191 04060809 |
| 20190 IVFAIL = IVFAIL + 1 04070809 |
| ZVCORR = (0.0, 0.0) 04080809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04090809 |
| 0191 CONTINUE 04100809 |
| CT020* TEST 20 COMPLEX VALUE HAVING ONLY REAL COMPONENT 04110809 |
| IVTNUM = 20 04120809 |
| CWAVC = CONJG((3.0, 0.0)) 04130809 |
| IF (R2E(1) - 2.9998) 20200, 40202, 40201 04140809 |
| 40201 IF (R2E(1) - 3.0002) 40202, 40202, 20200 04150809 |
| 40202 IF (R2E(2) + 0.00005) 20200, 10200, 40200 04160809 |
| 40200 IF (R2E(2) - 0.00005) 10200, 10200, 20200 04170809 |
| 10200 IVPASS = IVPASS + 1 04180809 |
| WRITE (NUVI, 80002) IVTNUM 04190809 |
| GO TO 0201 04200809 |
| 20200 IVFAIL = IVFAIL + 1 04210809 |
| ZVCORR = (3.0, 0.0) 04220809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04230809 |
| 0201 CONTINUE 04240809 |
| CT021* TEST 21 ARBITRARY COMPLEX VALUE 04250809 |
| IVTNUM = 21 04260809 |
| CWAVC = CONJG((3.0, 4.0)) 04270809 |
| IF (R2E(1) - 2.9998) 20210, 40212, 40211 04280809 |
| 40211 IF (R2E(1) - 3.0002) 40212, 40212, 20210 04290809 |
| 40212 IF (R2E(2) + 4.0002) 20210, 10210, 40210 04300809 |
| 40210 IF (R2E(2) + 3.9998) 10210, 10210, 20210 04310809 |
| 10210 IVPASS = IVPASS + 1 04320809 |
| WRITE (NUVI, 80002) IVTNUM 04330809 |
| GO TO 0211 04340809 |
| 20210 IVFAIL = IVFAIL + 1 04350809 |
| ZVCORR = (3.0, -4.0) 04360809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04370809 |
| 0211 CONTINUE 04380809 |
| CWBVC = (3.0, -4.0) 04390809 |
| CT022* TEST 22 SECOND ARGUMENT IS A ZERO PRECEDED BY MINUS SIGN 04400809 |
| IVTNUM = 22 04410809 |
| CWAVC = CONJG((-3.0, -0.0)) 04420809 |
| IF (R2E(1) + 3.0002) 20220, 40222, 40221 04430809 |
| 40221 IF (R2E(1) + 2.9998) 40222, 40222, 20220 04440809 |
| 40222 IF (R2E(2) + 0.00005) 20220, 10220, 40220 04450809 |
| 40220 IF (R2E(2) - 0.00005) 10220, 10220, 20220 04460809 |
| 10220 IVPASS = IVPASS + 1 04470809 |
| WRITE (NUVI, 80002) IVTNUM 04480809 |
| GO TO 0221 04490809 |
| 20220 IVFAIL = IVFAIL + 1 04500809 |
| ZVCORR = (-3.0, 0.0) 04510809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04520809 |
| 0221 CONTINUE 04530809 |
| CT023* TEST 23 ABITRARY COMPLEX VALUE WITH NEGATIVE COMPONENTS 04540809 |
| IVTNUM = 23 04550809 |
| CWAVC = CONJG((-3.0, -4.0)) 04560809 |
| IF (R2E(1) + 3.0002) 20230, 40232, 40231 04570809 |
| 40231 IF (R2E(1) + 2.9998) 40232, 40232, 20230 04580809 |
| 40232 IF (R2E(2) - 3.9998) 20230, 10230, 40230 04590809 |
| 40230 IF (R2E(2) - 4.0002) 10230, 10230, 20230 04600809 |
| 10230 IVPASS = IVPASS + 1 04610809 |
| WRITE (NUVI, 80002) IVTNUM 04620809 |
| GO TO 0231 04630809 |
| 20230 IVFAIL = IVFAIL + 1 04640809 |
| ZVCORR = (-3.0, 4.0) 04650809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04660809 |
| 0231 CONTINUE 04670809 |
| CWBVC = (-3.0, 4.0) 04680809 |
| CT024* TEST 24 COMPLEX ZERO PRECEDED BY A MINUS SIGN 04690809 |
| IVTNUM = 24 04700809 |
| CWDVC = (0.0, 0.0) 04710809 |
| CWAVC = CONJG(-CWDVC) 04720809 |
| IF (R2E(1) + 0.00005) 20240, 40242, 40241 04730809 |
| 40241 IF (R2E(1) - 0.00005) 40242, 40242, 20240 04740809 |
| 40242 IF (R2E(2) + 0.00005) 20240, 10240, 40240 04750809 |
| 40240 IF (R2E(2) - 0.00005) 10240, 10240, 20240 04760809 |
| 10240 IVPASS = IVPASS + 1 04770809 |
| WRITE (NUVI, 80002) IVTNUM 04780809 |
| GO TO 0241 04790809 |
| 20240 IVFAIL = IVFAIL + 1 04800809 |
| ZVCORR = (0.0, 0.0) 04810809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04820809 |
| 0241 CONTINUE 04830809 |
| CT025* TEST 25 COMPLEX EXPRESSION PRESENTED AS ARGUMENT 04840809 |
| IVTNUM = 25 04850809 |
| CWDVC = (3.5, 4.5) 04860809 |
| CWEVC = (4.0, 5.0) 04870809 |
| CWAVC = CONJG(CWDVC - CWEVC) 04880809 |
| IF (R2E(1) + 0.50003) 20250, 40252, 40251 04890809 |
| 40251 IF (R2E(1) + 0.49997) 40252, 40252, 20250 04900809 |
| 40252 IF (R2E(2) - 0.49997) 20250, 10250, 40250 04910809 |
| 40250 IF (R2E(2) - 0.50003) 10250, 10250, 20250 04920809 |
| 10250 IVPASS = IVPASS + 1 04930809 |
| WRITE (NUVI, 80002) IVTNUM 04940809 |
| GO TO 0251 04950809 |
| 20250 IVFAIL = IVFAIL + 1 04960809 |
| ZVCORR = (-0.5, 0.5) 04970809 |
| WRITE (NUVI, 80045) IVTNUM, CWAVC, ZVCORR 04980809 |
| 0251 CONTINUE 04990809 |
| C***** 05000809 |
| CBB** ********************** BBCSUM0 **********************************05010809 |
| C**** WRITE OUT TEST SUMMARY 05020809 |
| C**** 05030809 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 05040809 |
| WRITE (I02, 90004) 05050809 |
| WRITE (I02, 90014) 05060809 |
| WRITE (I02, 90004) 05070809 |
| WRITE (I02, 90020) IVPASS 05080809 |
| WRITE (I02, 90022) IVFAIL 05090809 |
| WRITE (I02, 90024) IVDELE 05100809 |
| WRITE (I02, 90026) IVINSP 05110809 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 05120809 |
| CBE** ********************** BBCSUM0 **********************************05130809 |
| CBB** ********************** BBCFOOT0 **********************************05140809 |
| C**** WRITE OUT REPORT FOOTINGS 05150809 |
| C**** 05160809 |
| WRITE (I02,90016) ZPROG, ZPROG 05170809 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 05180809 |
| WRITE (I02,90019) 05190809 |
| CBE** ********************** BBCFOOT0 **********************************05200809 |
| CBB** ********************** BBCFMT0A **********************************05210809 |
| C**** FORMATS FOR TEST DETAIL LINES 05220809 |
| C**** 05230809 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 05240809 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 05250809 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 05260809 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 05270809 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 05280809 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 05290809 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05300809 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 05310809 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05320809 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 05330809 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 05340809 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 05350809 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 05360809 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 05370809 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 05380809 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 05390809 |
| 80050 FORMAT (" ",48X,A31) 05400809 |
| CBE** ********************** BBCFMT0A **********************************05410809 |
| CBB** ********************** BBCFMAT1 **********************************05420809 |
| C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 05430809 |
| C**** 05440809 |
| 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05450809 |
| 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 05460809 |
| 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 05470809 |
| 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 05480809 |
| 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05490809 |
| 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05500809 |
| 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05510809 |
| 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05520809 |
| 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05530809 |
| 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 05540809 |
| 2"(",F12.5,", ",F12.5,")") 05550809 |
| CBE** ********************** BBCFMAT1 **********************************05560809 |
| CBB** ********************** BBCFMT0B **********************************05570809 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 05580809 |
| C**** 05590809 |
| 90002 FORMAT ("1") 05600809 |
| 90004 FORMAT (" ") 05610809 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )05620809 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05630809 |
| 90008 FORMAT (" ",21X,A13,A17) 05640809 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 05650809 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 05660809 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 05670809 |
| 1 7X,"REMARKS",24X) 05680809 |
| 90014 FORMAT (" ","----------------------------------------------" , 05690809 |
| 1 "---------------------------------" ) 05700809 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 05710809 |
| C**** 05720809 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 05730809 |
| C**** 05740809 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 05750809 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 05760809 |
| 1 A13) 05770809 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 05780809 |
| C**** 05790809 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 05800809 |
| C**** 05810809 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 05820809 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 05830809 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 05840809 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 05850809 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 05860809 |
| CBE** ********************** BBCFMT0B **********************************05870809 |
| C***** 05880809 |
| C***** END OF TEST SEGMENT 170 05890809 |
| STOP 05900809 |
| END 05910809 |
| 05920809 |