FM809.f Source File


Contents

Source Code


Source Code

      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