Annotation of cci/usr/src/usr.bin/f77/testf77/tests/FM254.f, revision 1.1.1.1

1.1       root        1:       PROGRAM FM254                                                     00010254
                      2: C     DATE***82/08/02*18.33.46
                      3: C     OWNER  PRE/850703/TC-85-   -410/    /FSTC/278FCVS*F78UBP20/
                      4: C     AUDIT  FCVS78 V2.0
                      5: C                                                                       00020254
                      6: C                                                                       00030254
                      7: C                                                                       00040254
                      8: C        THIS ROUTINE IS A TEST OF THE ELSE IF-BLOCK.  TESTS WITHIN THIS00050254
                      9: C     ROUTINE ARE FOR THE SYNTAX OF THE BASIC ELSE IF STATEMENT AND     00060254
                     10: C     ELSE IF-BLOCK STRUCTURE.                                          00070254
                     11: C                                                                       00080254
                     12: C     REFERENCES                                                        00090254
                     13: C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00100254
                     14: C            X3.9-1977                                                  00110254
                     15: C        SECTION 11.7,       ELSE IF STATEMENT                          00120254
                     16: C        SECTION 11.7.1,     ELSE IF-BLOCK                              00130254
                     17: C        SECTION 11.7.2,     EXECUTION OF THE ELSE IF STATEMENT         00140254
                     18: C                                                                       00150254
                     19: C                                                                       00160254
                     20: C                                                                       00170254
                     21: C                                                                       00180254
                     22: C     ******************************************************************00190254
                     23: C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00200254
                     24: C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN   00210254
                     25: C     X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY.  THE 00220254
                     26: C     FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT       00230254
                     27: C     ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT00240254
                     28: C     ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS   00250254
                     29: C     OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00260254
                     30: C     THE RESULT OF EXECUTING THESE TESTS.                              00270254
                     31: C                                                                       00280254
                     32: C     THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES      00290254
                     33: C     FOUND IN THE SUBSET LEVEL OF THE STANDARD.                        00300254
                     34: C                                                                       00310254
                     35: C           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO             00320254
                     36: C                    DEPARTMENT OF THE NAVY                             00330254
                     37: C                    FEDERAL COBOL COMPILER TESTING SERVICE             00340254
                     38: C                    WASHINGTON, D.C.   20376                           00350254
                     39: C                                                                       00360254
                     40: C     ******************************************************************00370254
                     41: C                                                                       00380254
                     42: C                                                                       00390254
                     43:       IMPLICIT LOGICAL (L)                                              00400254
                     44:       IMPLICIT CHARACTER*14 (C)                                         00410254
                     45: C                                                                       00420254
                     46:       DIMENSION LADN11(2)                                               00430254
                     47:       LOGICAL LVTN01, LVTN02, LATN11(2), LADN11                         00440254
                     48:       DATA LADN11/.TRUE., .FALSE./                                      00450254
                     49: C                                                                       00460254
                     50: C                                                                       00470254
                     51: C     **** LOGICAL STATEMENT FUNCTION REFERENCED IN TEST 4   ****       00480254
                     52: C                                                                       00490254
                     53:       LFIS01 ( L ) = L .AND. L                                          00500254
                     54: C                                                                       00510254
                     55: C                                                                       00520254
                     56: C                                                                       00530254
                     57: C                                                                       00540254
                     58: C                                                                       00550254
                     59: C     INITIALIZATION SECTION.                                           00560254
                     60: C                                                                       00570254
                     61: C     INITIALIZE CONSTANTS                                              00580254
                     62: C     ********************                                              00590254
                     63: C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER          00600254
                     64:       I01 = 5                                                           00610254
                     65: C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER              00620254
                     66:       I02 = 6                                                           00630254
                     67: C     SYSTEM ENVIRONMENT SECTION                                        00640254
                     68: C                                                                       00650254
                     69:       I01 = 5                                                           00660254
                     70: C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00670254
                     71: C     (UNIT NUMBER FOR CARD READER).                                    00680254
                     72: CX011      THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00690254
                     73: C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00700254
                     74: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00710254
                     75: C                                                                       00720254
                     76:       I02 = 6                                                           00730254
                     77: C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00740254
                     78: C     (UNIT NUMBER FOR PRINTER).                                        00750254
                     79: CX021     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00760254
                     80: C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00770254
                     81: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00780254
                     82: C                                                                       00790254
                     83:       IVPASS = 0                                                        00800254
                     84:       IVFAIL = 0                                                        00810254
                     85:       IVDELE = 0                                                        00820254
                     86:       ICZERO = 0                                                        00830254
                     87: C                                                                       00840254
                     88: C     WRITE OUT PAGE HEADERS                                            00850254
                     89: C                                                                       00860254
                     90:       WRITE (I02,90002)                                                 00870254
                     91:       WRITE (I02,90006)                                                 00880254
                     92:       WRITE (I02,90008)                                                 00890254
                     93:       WRITE (I02,90004)                                                 00900254
                     94:       WRITE (I02,90010)                                                 00910254
                     95:       WRITE (I02,90004)                                                 00920254
                     96:       WRITE (I02,90016)                                                 00930254
                     97:       WRITE (I02,90001)                                                 00940254
                     98:       WRITE (I02,90004)                                                 00950254
                     99:       WRITE (I02,90012)                                                 00960254
                    100:       WRITE (I02,90014)                                                 00970254
                    101:       WRITE (I02,90004)                                                 00980254
                    102: C                                                                       00990254
                    103: C                                                                       01000254
                    104: C                                                                       01010254
                    105: C        THE SYNTAX OF THE ELSE IF STATEMENTS IN THE TESTS TO FOLLOW IS 01020254
                    106: C                                                                       01030254
                    107: C        IF ( E1 )  THEN                                                01040254
                    108: C             IF-BLOCK                                                  01050254
                    109: C        ELSE IF ( E2 )  THEN                                           01060254
                    110: C             ELSE IF-BLOCK                                             01070254
                    111: C        END IF                                                         01080254
                    112: C                                                                       01090254
                    113: C     THE NEXT FOUR TESTS WILL USE THE FOLLOWING COMBINATIONS OF TRUE   01100254
                    114: C     AND FALSE FOR E1 AND E2 AS SHOWN BELOW -                          01110254
                    115: C        TEST NUMBER    1    2    3    4                                01120254
                    116: C             E1        F    F    T    T                                01130254
                    117: C             E2        T    F    T    F                                01140254
                    118: C                                                                       01150254
                    119: C                                                                       01160254
                    120: C                                                                       01170254
                    121: C                                                                       01180254
                    122: C     ****  FCVS PROGRAM 254  -  TEST 001  ****                         01190254
                    123: C                                                                       01200254
                    124: C        TEST 001 USES A VERY SIMPLE ELSE IF STATEMENT.  THE EXPRESSION 01210254
                    125: C     WITHIN THE PARENTHESES IS THE LOGICAL CONSTANT  .TRUE. AND THE    01220254
                    126: C     EXECUTABLE STATEMENT WITHIN THE ELSE IF-BLOCK OF LEVEL ONE IS AN  01230254
                    127: C     INTEGER ARITHMETIC ASSIGNMENT STATEMENT.  IN THIS TEST THE LOGICAL01240254
                    128: C     EXPRESSION E1 IS .FALSE. SO THE IF-BLOCK SHOULD NOT BE EXECUTED.  01250254
                    129: C     THE LOGICAL EXPRESSION E2 IS .TRUE. SO THE ELSE IF-BLOCK SHOULD   01260254
                    130: C     BE EXECUTED.                                                      01270254
                    131: C                                                                       01280254
                    132: C                                                                       01290254
                    133:       IVTNUM =   1                                                      01300254
                    134:       IF (ICZERO) 30010, 0010, 30010                                    01310254
                    135:  0010 CONTINUE                                                          01320254
                    136:       IVCOMP = 1                                                        01330254
                    137:       IF ( .FALSE. )  THEN                                              01340254
                    138:            IVCOMP = IVCOMP * 2                                          01350254
                    139:       ELSE IF ( .TRUE. )  THEN                                          01360254
                    140:            IVCOMP = IVCOMP * 3                                          01370254
                    141:       END IF                                                            01380254
                    142: C                                                                       01390254
                    143: C        **** IVCOMP IS DETERMINED BY IVCOMP = 3 = 1 * 3                01400254
                    144: C                                                                       01410254
                    145:       IVCORR = 3                                                        01420254
                    146: 40010 IF ( IVCOMP - 3 )  20010, 10010, 20010                            01430254
                    147: 30010 IVDELE = IVDELE + 1                                               01440254
                    148:       WRITE (I02,80000) IVTNUM                                          01450254
                    149:       IF (ICZERO) 10010, 0021, 20010                                    01460254
                    150: 10010 IVPASS = IVPASS + 1                                               01470254
                    151:       WRITE (I02,80002) IVTNUM                                          01480254
                    152:       GO TO 0021                                                        01490254
                    153: 20010 IVFAIL = IVFAIL + 1                                               01500254
                    154:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          01510254
                    155:  0021 CONTINUE                                                          01520254
                    156: C                                                                       01530254
                    157: C     ****  FCVS PROGRAM 254  -  TEST 002  ****                         01540254
                    158: C                                                                       01550254
                    159: C        TEST 002 HAS E1 .FALSE. AND E2 .FALSE..  NEITHER THE IF-BLOCK  01560254
                    160: C     NOR THE ELSE IF-BLOCK SHOULD BE EXECUTED.                         01570254
                    161: C                                                                       01580254
                    162: C                                                                       01590254
                    163:       IVTNUM =   2                                                      01600254
                    164:       IF (ICZERO) 30020, 0020, 30020                                    01610254
                    165:  0020 CONTINUE                                                          01620254
                    166:       IVCOMP = 1                                                        01630254
                    167:       LVON01 = .FALSE.                                                  01640254
                    168:       LVON02 = .FALSE.                                                  01650254
                    169:       IF ( LVON01 )  THEN                                               01660254
                    170:            IVCOMP = IVCOMP * 2                                          01670254
                    171:       ELSE IF ( LVON02 )  THEN                                          01680254
                    172:            IVCOMP = IVCOMP * 3                                          01690254
                    173:       END IF                                                            01700254
                    174:       IVCORR = 1                                                        01710254
                    175: 40020 IF ( IVCOMP - 1 )  20020, 10020, 20020                            01720254
                    176: 30020 IVDELE = IVDELE + 1                                               01730254
                    177:       WRITE (I02,80000) IVTNUM                                          01740254
                    178:       IF (ICZERO) 10020, 0031, 20020                                    01750254
                    179: 10020 IVPASS = IVPASS + 1                                               01760254
                    180:       WRITE (I02,80002) IVTNUM                                          01770254
                    181:       GO TO 0031                                                        01780254
                    182: 20020 IVFAIL = IVFAIL + 1                                               01790254
                    183:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          01800254
                    184:  0031 CONTINUE                                                          01810254
                    185: C                                                                       01820254
                    186: C     ****  FCVS PROGRAM 254  -  TEST 003  ****                         01830254
                    187: C                                                                       01840254
                    188: C        TEST 003 HAS E1 AS .TRUE. AND E2 AS .TRUE..  ONLY THE IF-BLOCK 01850254
                    189: C     SHOULD BE EXECUTED. THE ELSE IF-BLOCK SHOULD NOT BE EXECUTED.     01860254
                    190: C                                                                       01870254
                    191: C                                                                       01880254
                    192:       IVTNUM =   3                                                      01890254
                    193:       IF (ICZERO) 30030, 0030, 30030                                    01900254
                    194:  0030 CONTINUE                                                          01910254
                    195:       IVCOMP = 1                                                        01920254
                    196:       LVON01 = .TRUE.                                                   01930254
                    197:       LVON02 = .TRUE.                                                   01940254
                    198:       LVTN01 = LVON01                                                   01950254
                    199:       LVTN02 = LVON02                                                   01960254
                    200:       IF ( LVTN01 )  THEN                                               01970254
                    201:            IVCOMP = IVCOMP * 2                                          01980254
                    202:       ELSE IF ( LVTN02 )  THEN                                          01990254
                    203:            IVCOMP = IVCOMP * 3                                          02000254
                    204:       END IF                                                            02010254
                    205: C                                                                       02020254
                    206: C        **** IVCOMP IS DETERMINED BY IVCOMP = 2 = 1 * 2            ****02030254
                    207: C                                                                       02040254
                    208:       IVCORR = 2                                                        02050254
                    209: 40030 IF ( IVCOMP - 2 )  20030, 10030, 20030                            02060254
                    210: 30030 IVDELE = IVDELE + 1                                               02070254
                    211:       WRITE (I02,80000) IVTNUM                                          02080254
                    212:       IF (ICZERO) 10030, 0041, 20030                                    02090254
                    213: 10030 IVPASS = IVPASS + 1                                               02100254
                    214:       WRITE (I02,80002) IVTNUM                                          02110254
                    215:       GO TO 0041                                                        02120254
                    216: 20030 IVFAIL = IVFAIL + 1                                               02130254
                    217:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          02140254
                    218:  0041 CONTINUE                                                          02150254
                    219: C                                                                       02160254
                    220: C     ****  FCVS PROGRAM 254  -  TEST 004  ****                         02170254
                    221: C                                                                       02180254
                    222: C        TEST 004 HAS E1 AS .TRUE. AND E2 AS .FALSE..  ONLY THE IF-BLOCK02190254
                    223: C     SHOULD BE EXECUTED.  THE ELSE IF-BLOCK SHOULD NOT BE EXECUTED.    02200254
                    224: C                                                                       02210254
                    225: C                                                                       02220254
                    226:       IVTNUM =   4                                                      02230254
                    227:       IF (ICZERO) 30040, 0040, 30040                                    02240254
                    228:  0040 CONTINUE                                                          02250254
                    229:       IVCOMP = 1                                                        02260254
                    230:       LVON01 = .TRUE.                                                   02270254
                    231:       LVTN01 = LFIS01 ( LVON01 )                                        02280254
                    232:       LVON02 = .FALSE.                                                  02290254
                    233:       IF ( LVTN01 )  THEN                                               02300254
                    234:            IVCOMP = IVCOMP * 2                                          02310254
                    235:       ELSE IF ( LFIS01 ( LVON02 ) )  THEN                               02320254
                    236:            IVCOMP = IVCOMP * 3                                          02330254
                    237:       END IF                                                            02340254
                    238: C                                                                       02350254
                    239: C        **** IVCOMP IS DETERMINED BY IVCOMP = 2 = 1 * 2            ****02360254
                    240: C                                                                       02370254
                    241:       IVCORR = 2                                                        02380254
                    242: 40040 IF ( IVCOMP - 2 )  20040, 10040, 20040                            02390254
                    243: 30040 IVDELE = IVDELE + 1                                               02400254
                    244:       WRITE (I02,80000) IVTNUM                                          02410254
                    245:       IF (ICZERO) 10040, 0051, 20040                                    02420254
                    246: 10040 IVPASS = IVPASS + 1                                               02430254
                    247:       WRITE (I02,80002) IVTNUM                                          02440254
                    248:       GO TO 0051                                                        02450254
                    249: 20040 IVFAIL = IVFAIL + 1                                               02460254
                    250:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          02470254
                    251:  0051 CONTINUE                                                          02480254
                    252: C                                                                       02490254
                    253: C                                                                       02500254
                    254: C        THE SYNTAX OF THE ELSE IF STATEMENTS IN THE TESTS TO FOLLOW IS 02510254
                    255: C                                                                       02520254
                    256: C        IF ( E1 )  THEN                                                02530254
                    257: C             IF-BLOCK 1                                                02540254
                    258: C        ELSE IF ( E2 )  THEN                                           02550254
                    259: C             ELSE IF-BLOCK 1                                           02560254
                    260: C        ELSE IF ( E3 )  THEN                                           02570254
                    261: C             ELSE IF-BLOCK 2                                           02580254
                    262: C        END IF                                                         02590254
                    263: C                                                                       02600254
                    264: C                                                                       02610254
                    265: C                                                                       02620254
                    266: C     ****  FCVS PROGRAM 254  -  TEST 005  ****                         02630254
                    267: C                                                                       02640254
                    268: C        TEST 005 HAS E1 AS TRUE.  E2 AND E3 ARE FALSE.  ONLY IF-BLOCK 102650254
                    269: C     SHOULD BE EXECUTED.  ELSE IF-BLOCKS 1 AND 2 SHOULD NOT EXECUTE.   02660254
                    270: C                                                                       02670254
                    271: C                                                                       02680254
                    272:       IVTNUM =   5                                                      02690254
                    273:       IF (ICZERO) 30050, 0050, 30050                                    02700254
                    274:  0050 CONTINUE                                                          02710254
                    275:       IVCOMP = 1                                                        02720254
                    276: C     LADN11(1) IS SET TO .TRUE. IN A DATA STATEMENT.                   02730254
                    277:       LVON02 = .FALSE.                                                  02740254
                    278:       LVON03 = .FALSE.                                                  02750254
                    279:       IF ( LADN11(1) )  THEN                                            02760254
                    280:            IVCOMP = IVCOMP * 2                                          02770254
                    281:       ELSE IF ( LVON02 )  THEN                                          02780254
                    282:            IVCOMP = IVCOMP * 3                                          02790254
                    283:       ELSE IF ( LVON03 )  THEN                                          02800254
                    284:            IVCOMP = IVCOMP * 5                                          02810254
                    285:       END IF                                                            02820254
                    286: C                                                                       02830254
                    287: C        **** IVCOMP IS DETERMINED BY IVCOMP = 2 = 1 * 2            ****02840254
                    288: C                                                                       02850254
                    289:       IVCORR = 2                                                        02860254
                    290: 40050 IF ( IVCOMP - 2 )  20050, 10050, 20050                            02870254
                    291: 30050 IVDELE = IVDELE + 1                                               02880254
                    292:       WRITE (I02,80000) IVTNUM                                          02890254
                    293:       IF (ICZERO) 10050, 0061, 20050                                    02900254
                    294: 10050 IVPASS = IVPASS + 1                                               02910254
                    295:       WRITE (I02,80002) IVTNUM                                          02920254
                    296:       GO TO 0061                                                        02930254
                    297: 20050 IVFAIL = IVFAIL + 1                                               02940254
                    298:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          02950254
                    299:  0061 CONTINUE                                                          02960254
                    300: C                                                                       02970254
                    301: C     ****  FCVS PROGRAM 254  -  TEST 006  ****                         02980254
                    302: C                                                                       02990254
                    303: C        TEST 006 HAS E1 AS FALSE, E2 AS TRUE, AND E3 AS FALSE.  ONLY   03000254
                    304: C     ELSE IF-BLOCK 1 SHOULD EXECUTE.  IF-BLOCK 1 AND ELSE IF-BLOCK 2   03010254
                    305: C     SHOULD NOT EXECUTE.                                               03020254
                    306: C                                                                       03030254
                    307: C                                                                       03040254
                    308:       IVTNUM =   6                                                      03050254
                    309:       IF (ICZERO) 30060, 0060, 30060                                    03060254
                    310:  0060 CONTINUE                                                          03070254
                    311:       IVCOMP = 1                                                        03080254
                    312:       LVON01 = .FALSE.                                                  03090254
                    313:       LATN11(2) = .TRUE.                                                03100254
                    314:       LVON03 = .FALSE.                                                  03110254
                    315:       IF ( LVON01 )  THEN                                               03120254
                    316:            IVCOMP = IVCOMP * 2                                          03130254
                    317:       ELSE IF ( LATN11(2) )  THEN                                       03140254
                    318:            IVCOMP = IVCOMP * 3                                          03150254
                    319:       ELSE IF ( LVON03 )  THEN                                          03160254
                    320:            IVCOMP = IVCOMP * 5                                          03170254
                    321:       END IF                                                            03180254
                    322: C                                                                       03190254
                    323: C        **** IVCOMP IS DETERMINED BY IVCOMP = 3 = 1 * 3            ****03200254
                    324: C                                                                       03210254
                    325:       IVCORR = 3                                                        03220254
                    326: 40060 IF ( IVCOMP - 3 )  20060, 10060, 20060                            03230254
                    327: 30060 IVDELE = IVDELE + 1                                               03240254
                    328:       WRITE (I02,80000) IVTNUM                                          03250254
                    329:       IF (ICZERO) 10060, 0071, 20060                                    03260254
                    330: 10060 IVPASS = IVPASS + 1                                               03270254
                    331:       WRITE (I02,80002) IVTNUM                                          03280254
                    332:       GO TO 0071                                                        03290254
                    333: 20060 IVFAIL = IVFAIL + 1                                               03300254
                    334:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          03310254
                    335:  0071 CONTINUE                                                          03320254
                    336: C                                                                       03330254
                    337: C     ****  FCVS PROGRAM 254  -  TEST 007  ****                         03340254
                    338: C                                                                       03350254
                    339: C        TEST 007 HAS E1 AS FALSE, E2 AS FALSE, AND E3 AS TRUE.  ONLY   03360254
                    340: C     ELSE IF-BLOCK 2 SHOULD BE EXECUTED.  IF-BLOCK 1 AND ELSE IF-BLOCK 03370254
                    341: C     1 SHOULD NOT EXECUTE.                                             03380254
                    342: C                                                                       03390254
                    343: C                                                                       03400254
                    344:       IVTNUM =   7                                                      03410254
                    345:       IF (ICZERO) 30070, 0070, 30070                                    03420254
                    346:  0070 CONTINUE                                                          03430254
                    347:       IVCOMP = 1                                                        03440254
                    348:       LVON01 = .FALSE.                                                  03450254
                    349:       LVON02 = .FALSE.                                                  03460254
                    350:       LVON03 = .TRUE.                                                   03470254
                    351:       IF ( LVON01 )  THEN                                               03480254
                    352:            IVCOMP = IVCOMP * 2                                          03490254
                    353:       ELSE IF ( LVON02 )  THEN                                          03500254
                    354:            IVCOMP = IVCOMP * 3                                          03510254
                    355:       ELSE IF ( LVON03 )  THEN                                          03520254
                    356:            IVCOMP = IVCOMP * 5                                          03530254
                    357:       END IF                                                            03540254
                    358: C                                                                       03550254
                    359: C        **** IVCOMP IS DETERMINED BY IVCOMP = 5 = 1 * 5            ****03560254
                    360: C                                                                       03570254
                    361:       IVCORR = 5                                                        03580254
                    362: 40070 IF ( IVCOMP - 5 )  20070, 10070, 20070                            03590254
                    363: 30070 IVDELE = IVDELE + 1                                               03600254
                    364:       WRITE (I02,80000) IVTNUM                                          03610254
                    365:       IF (ICZERO) 10070, 0081, 20070                                    03620254
                    366: 10070 IVPASS = IVPASS + 1                                               03630254
                    367:       WRITE (I02,80002) IVTNUM                                          03640254
                    368:       GO TO 0081                                                        03650254
                    369: 20070 IVFAIL = IVFAIL + 1                                               03660254
                    370:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          03670254
                    371:  0081 CONTINUE                                                          03680254
                    372: C                                                                       03690254
                    373: C     ****  FCVS PROGRAM 254  -  TEST 008  ****                         03700254
                    374: C                                                                       03710254
                    375: C        TEST 008 HAS E1 AS FALSE.  BOTH E2 AND E3 ARE TRUE.  ONLY ELSE 03720254
                    376: C     IF-BLOCK 1 SHOULD EXECUTE.  IF-BLOCK 1 AND ELSE IF-BLOCK 2 SHOULD 03730254
                    377: C     NOT EXECUTE.  THIS IS A TEST OF THE LOGIC FLOW WHEN ONE OF THE    03740254
                    378: C     EXPRESSIONS IN A STRING OF ELSE IF BLOCK STRUCTURES IS TRUE.  ONLY03750254
                    379: C     THAT PARTICULAR ELSE IF-BLOCK SHOULD BE EXECUTED.  THE REST OF THE03760254
                    380: C     STRING SHOULD BE SKIPPED.                                         03770254
                    381: C                                                                       03780254
                    382: C                                                                       03790254
                    383:       IVTNUM =   8                                                      03800254
                    384:       IF (ICZERO) 30080, 0080, 30080                                    03810254
                    385:  0080 CONTINUE                                                          03820254
                    386:       IVCOMP = 1                                                        03830254
                    387:       LVON01 = .FALSE.                                                  03840254
                    388:       LVON02 = .TRUE.                                                   03850254
                    389:       LVON03 = .TRUE.                                                   03860254
                    390:       IF ( LVON01 )  THEN                                               03870254
                    391:            IVCOMP = IVCOMP * 2                                          03880254
                    392:       ELSE IF ( LVON02 )  THEN                                          03890254
                    393:            IVCOMP = IVCOMP * 3                                          03900254
                    394:       ELSE IF ( LVON03 )  THEN                                          03910254
                    395:            IVCOMP = IVCOMP * 5                                          03920254
                    396:       END IF                                                            03930254
                    397: C                                                                       03940254
                    398: C        **** IVCOMP IS DETERMINED BY IVCOMP = 3 = 1 * 3            ****03950254
                    399: C                                                                       03960254
                    400:       IVCORR = 3                                                        03970254
                    401: 40080 IF ( IVCOMP - 3 )  20080, 10080, 20080                            03980254
                    402: 30080 IVDELE = IVDELE + 1                                               03990254
                    403:       WRITE (I02,80000) IVTNUM                                          04000254
                    404:       IF (ICZERO) 10080, 0091, 20080                                    04010254
                    405: 10080 IVPASS = IVPASS + 1                                               04020254
                    406:       WRITE (I02,80002) IVTNUM                                          04030254
                    407:       GO TO 0091                                                        04040254
                    408: 20080 IVFAIL = IVFAIL + 1                                               04050254
                    409:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04060254
                    410:  0091 CONTINUE                                                          04070254
                    411: C                                                                       04080254
                    412: C                                                                       04090254
                    413: C        THE FOLLOWING TWO TESTS ARE TO CHECK THE EXECUTION OF AN ELSE  04100254
                    414: C     IF STATEMENT WITH AN EMPTY ELSE IF-BLOCK.  THE SYNTAX FOR THE TWO 04110254
                    415: C     TESTS IS AS FOLLOWS -                                             04120254
                    416: C                                                                       04130254
                    417: C        IF ( E1 )  THEN                                                04140254
                    418: C             IF-BLOCK 1                                                04150254
                    419: C        ELSE IF ( E2 )  THEN                                           04160254
                    420: C        ELSE IF ( E3 )  THEN                                           04170254
                    421: C             ELSE IF-BLOCK 1                                           04180254
                    422: C        END IF                                                         04190254
                    423: C                                                                       04200254
                    424: C                                                                       04210254
                    425: C                                                                       04220254
                    426: C     ****  FCVS PROGRAM 254  -  TEST 009  ****                         04230254
                    427: C                                                                       04240254
                    428: C        TEST 009 HAS E1 FALSE, E2 TRUE, AND E3 AS TRUE.  THE STRUCTURE 04250254
                    429: C        ELSE IF ( E2 )  THEN                                           04260254
                    430: C     IS FOLLOWED BY AN EMPTY ELSE IF-BLOCK ALLOWED IN SECTION 11.7.1.  04270254
                    431: C     IN SECTION 11.7.2,  IF THE VALUE OF THE EXPRESSION IS TRUE AND THE04280254
                    432: C     ELSE IF-BLOCK IS EMPTY, CONTROL IS TRANSFERRED TO THE NEXT END IF 04290254
                    433: C     STATEMENT THAT HAS THE SAME IF-LEVEL AS THE ELSE IF STATEMENT.    04300254
                    434: C     NEITHER IF-BLOCK 1 NOR ELSE IF-BLOCK 1 SHOULD BE EXECUTED.        04310254
                    435: C                                                                       04320254
                    436: C                                                                       04330254
                    437:       IVTNUM =   9                                                      04340254
                    438:       IF (ICZERO) 30090, 0090, 30090                                    04350254
                    439:  0090 CONTINUE                                                          04360254
                    440:       IVCOMP = 1                                                        04370254
                    441:       LVON01 = .FALSE.                                                  04380254
                    442:       LVON02 = .TRUE.                                                   04390254
                    443:       LVON03 = .TRUE.                                                   04400254
                    444:       IF ( LVON01 )  THEN                                               04410254
                    445:            IVCOMP = IVCOMP * 2                                          04420254
                    446:       ELSE IF ( LVON02 )  THEN                                          04430254
                    447:       ELSE IF ( LVON03 )  THEN                                          04440254
                    448:            IVCOMP = IVCOMP * 3                                          04450254
                    449:       END IF                                                            04460254
                    450:       IVCORR = 1                                                        04470254
                    451: 40090 IF ( IVCOMP - 1 )  20090, 10090, 20090                            04480254
                    452: 30090 IVDELE = IVDELE + 1                                               04490254
                    453:       WRITE (I02,80000) IVTNUM                                          04500254
                    454:       IF (ICZERO) 10090, 0101, 20090                                    04510254
                    455: 10090 IVPASS = IVPASS + 1                                               04520254
                    456:       WRITE (I02,80002) IVTNUM                                          04530254
                    457:       GO TO 0101                                                        04540254
                    458: 20090 IVFAIL = IVFAIL + 1                                               04550254
                    459:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04560254
                    460:  0101 CONTINUE                                                          04570254
                    461: C                                                                       04580254
                    462: C     ****  FCVS PROGRAM 254  -  TEST 010  ****                         04590254
                    463: C                                                                       04600254
                    464: C        TEST 010 ALSO HAS AN EMPTY ELSE IF-BLOCK.  E1 AND E2 ARE FALSE.04610254
                    465: C     E3 IS TRUE.  ONLY ELSE IF-BLOCK 1 SHOULD BE EXECUTED.  IF-BLOCK 1 04620254
                    466: C     SHOULD NOT BE EXECUTED.  IN SECTION 11.7.2,  IF THE VALUE OF THE  04630254
                    467: C     EXPRESSION IS FALSE, CONTROL IS TRANSFERRED TO THE NEXT ELSE IF,  04640254
                    468: C     ELSE, OR END IF STATEMENT THAT HAS THE SAME IF-LEVEL AS THE ELSE  04650254
                    469: C     IF STATEMENT.                                                     04660254
                    470: C                                                                       04670254
                    471: C                                                                       04680254
                    472:       IVTNUM =  10                                                      04690254
                    473:       IF (ICZERO) 30100, 0100, 30100                                    04700254
                    474:  0100 CONTINUE                                                          04710254
                    475:       IVCOMP = 1                                                        04720254
                    476:       LVON01 = .FALSE.                                                  04730254
                    477:       LVON02 = .FALSE.                                                  04740254
                    478:       LVON03 = .TRUE.                                                   04750254
                    479:       IF ( LVON01 )  THEN                                               04760254
                    480:            IVCOMP = IVCOMP * 2                                          04770254
                    481:       ELSE IF ( LVON02 )  THEN                                          04780254
                    482:       ELSE IF ( LVON03 )  THEN                                          04790254
                    483:            IVCOMP = IVCOMP * 3                                          04800254
                    484:       END IF                                                            04810254
                    485: C                                                                       04820254
                    486: C        **** IVCOMP IS DETERMINED BY IVCOMP = 3 = 1 * 3            ****04830254
                    487: C                                                                       04840254
                    488:       IVCORR = 3                                                        04850254
                    489: 40100 IF ( IVCOMP - 3 )  20100, 10100, 20100                            04860254
                    490: 30100 IVDELE = IVDELE + 1                                               04870254
                    491:       WRITE (I02,80000) IVTNUM                                          04880254
                    492:       IF (ICZERO) 10100, 0111, 20100                                    04890254
                    493: 10100 IVPASS = IVPASS + 1                                               04900254
                    494:       WRITE (I02,80002) IVTNUM                                          04910254
                    495:       GO TO 0111                                                        04920254
                    496: 20100 IVFAIL = IVFAIL + 1                                               04930254
                    497:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04940254
                    498:  0111 CONTINUE                                                          04950254
                    499: C                                                                       04960254
                    500: C                                                                       04970254
                    501: C        THE NEXT TWO TESTS USE THE ELSE IF STRUCTURE INSIDE A BLOCKED  04980254
                    502: C     IF STRUCTURE OF LEVEL 2 AS FOLLOWS -                              04990254
                    503: C                                                                       05000254
                    504: C        IF ( E1 )  THEN                                                05010254
                    505: C             IF-BLOCK 1                                                05020254
                    506: C             IF ( E2 )  THEN                                           05030254
                    507: C                  IF-BLOCK 2                                           05040254
                    508: C             ELSE IF ( E3 )  THEN                                      05050254
                    509: C                  ELSE IF-BLOCK 1                                      05060254
                    510: C             ELSE IF ( E4 )  THEN                                      05070254
                    511: C                  ELSE IF-BLOCK 2                                      05080254
                    512: C             END IF                                                    05090254
                    513: C        ELSE IF ( E5 )  THEN                                           05100254
                    514: C             ELSE IF-BLOCK 3                                           05110254
                    515: C        ELSE IF ( E6 )  THEN                                           05120254
                    516: C             ELSE IF-BLOCK 4                                           05130254
                    517: C        END IF                                                         05140254
                    518: C                                                                       05150254
                    519: C                                                                       05160254
                    520: C                                                                       05170254
                    521: C     ****  FCVS PROGRAM 254  -  TEST 011  ****                         05180254
                    522: C                                                                       05190254
                    523: C        TEST 011 HAS E1 TRUE, E2 AND E3 AS FALSE, E4, E5, AND ALSO     05200254
                    524: C     E6 AS TRUE.  IF-BLOCK 1, AND ELSE IF-BLOCK 2 SHOULD BE EXECUTED.  05210254
                    525: C     IF-BLOCK 2, ELSE IF-BLOCK 1, 3, AND 4 SHOULD NOT BE EXECUTED.     05220254
                    526: C                                                                       05230254
                    527: C                                                                       05240254
                    528:       IVTNUM =  11                                                      05250254
                    529:       IF (ICZERO) 30110, 0110, 30110                                    05260254
                    530:  0110 CONTINUE                                                          05270254
                    531:       IVCOMP = 1                                                        05280254
                    532:       LVON01 = .TRUE.                                                   05290254
                    533:       LVON02 = .FALSE.                                                  05300254
                    534:       LVON03 = .FALSE.                                                  05310254
                    535:       LVON04 = .TRUE.                                                   05320254
                    536:       LVON05 = .TRUE.                                                   05330254
                    537:       LVON06 = .TRUE.                                                   05340254
                    538:       IF ( LVON01 )  THEN                                               05350254
                    539:            IVCOMP = IVCOMP * 2                                          05360254
                    540:            IF ( LVON02 )  THEN                                          05370254
                    541:                 IVCOMP = IVCOMP * 3                                     05380254
                    542:            ELSE IF ( LVON03 )  THEN                                     05390254
                    543:                 IVCOMP = IVCOMP * 5                                     05400254
                    544:            ELSE IF ( LVON04 )  THEN                                     05410254
                    545:                 IVCOMP = IVCOMP * 7                                     05420254
                    546:            END IF                                                       05430254
                    547:       ELSE IF ( LVON05 )  THEN                                          05440254
                    548:            IVCOMP = IVCOMP * 11                                         05450254
                    549:       ELSE IF ( LVON06 )  THEN                                          05460254
                    550:            IVCOMP = IVCOMP * 13                                         05470254
                    551:       END IF                                                            05480254
                    552: C                                                                       05490254
                    553: C        **** IVCOMP IS DETERMINED BY IVCOMP = 14 = 1 * 2 * 7       ****05500254
                    554: C                                                                       05510254
                    555:       IVCORR = 14                                                       05520254
                    556: 40110 IF ( IVCOMP - 14 )  20110, 10110, 20110                           05530254
                    557: 30110 IVDELE = IVDELE + 1                                               05540254
                    558:       WRITE (I02,80000) IVTNUM                                          05550254
                    559:       IF (ICZERO) 10110, 0121, 20110                                    05560254
                    560: 10110 IVPASS = IVPASS + 1                                               05570254
                    561:       WRITE (I02,80002) IVTNUM                                          05580254
                    562:       GO TO 0121                                                        05590254
                    563: 20110 IVFAIL = IVFAIL + 1                                               05600254
                    564:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05610254
                    565:  0121 CONTINUE                                                          05620254
                    566: C                                                                       05630254
                    567: C     ****  FCVS PROGRAM 254  -  TEST 012  ****                         05640254
                    568: C                                                                       05650254
                    569: C        TEST 012 HAS E1 AS FALSE, E2, E3, AND E4 ARE TRUE, E5 AS FALSE,05660254
                    570: C     AND E6 IS TRUE.  ONLY ELSE IF-BLOCK 4 SHOULD BE EXECUTED.  NO     05670254
                    571: C     OTHER IF-BLOCK OR ELSE IF-BLOCK SHOULD BE EXECUTED.               05680254
                    572: C                                                                       05690254
                    573: C                                                                       05700254
                    574:       IVTNUM =  12                                                      05710254
                    575:       IF (ICZERO) 30120, 0120, 30120                                    05720254
                    576:  0120 CONTINUE                                                          05730254
                    577:       IVCOMP = 1                                                        05740254
                    578:       LVON01 = .FALSE.                                                  05750254
                    579:       LVON02 = .TRUE.                                                   05760254
                    580:       LVON03 = .TRUE.                                                   05770254
                    581:       LVON04 = .TRUE.                                                   05780254
                    582:       LVON05 = .FALSE.                                                  05790254
                    583:       LVON06 = .TRUE.                                                   05800254
                    584:       IF ( LVON01 )  THEN                                               05810254
                    585:            IVCOMP = IVCOMP * 2                                          05820254
                    586:            IF ( LVON02 )  THEN                                          05830254
                    587:                 IVCOMP = IVCOMP * 3                                     05840254
                    588:            ELSE IF ( LVON03 )  THEN                                     05850254
                    589:                 IVCOMP = IVCOMP * 5                                     05860254
                    590:            ELSE IF ( LVON04 )  THEN                                     05870254
                    591:                 IVCOMP = IVCOMP * 7                                     05880254
                    592:            END IF                                                       05890254
                    593:       ELSE IF ( LVON05 )  THEN                                          05900254
                    594:            IVCOMP = IVCOMP * 11                                         05910254
                    595:       ELSE IF ( LVON06 )  THEN                                          05920254
                    596:            IVCOMP = IVCOMP * 13                                         05930254
                    597:       END IF                                                            05940254
                    598: C                                                                       05950254
                    599: C        **** IVCOMP IS DETERMINED BY IVCOMP = 13 = 1 * 13          ****05960254
                    600: C                                                                       05970254
                    601:       IVCORR = 13                                                       05980254
                    602: 40120 IF ( IVCOMP - 13 )  20120, 10120, 20120                           05990254
                    603: 30120 IVDELE = IVDELE + 1                                               06000254
                    604:       WRITE (I02,80000) IVTNUM                                          06010254
                    605:       IF (ICZERO) 10120, 0131, 20120                                    06020254
                    606: 10120 IVPASS = IVPASS + 1                                               06030254
                    607:       WRITE (I02,80002) IVTNUM                                          06040254
                    608:       GO TO 0131                                                        06050254
                    609: 20120 IVFAIL = IVFAIL + 1                                               06060254
                    610:       WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06070254
                    611:  0131 CONTINUE                                                          06080254
                    612: C                                                                       06090254
                    613: C                                                                       06100254
                    614: C     WRITE OUT TEST SUMMARY                                            06110254
                    615: C                                                                       06120254
                    616:       WRITE (I02,90004)                                                 06130254
                    617:       WRITE (I02,90014)                                                 06140254
                    618:       WRITE (I02,90004)                                                 06150254
                    619:       WRITE (I02,90000)                                                 06160254
                    620:       WRITE (I02,90004)                                                 06170254
                    621:       WRITE (I02,90020) IVFAIL                                          06180254
                    622:       WRITE (I02,90022) IVPASS                                          06190254
                    623:       WRITE (I02,90024) IVDELE                                          06200254
                    624:       STOP                                                              06210254
                    625: 90001 FORMAT (1H ,24X,5HFM254)                                          06220254
                    626: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM254)                          06230254
                    627: C                                                                       06240254
                    628: C     FORMATS FOR TEST DETAIL LINES                                     06250254
                    629: C                                                                       06260254
                    630: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED)                                   06270254
                    631: 80002 FORMAT (1H ,4X,I5,7X,4HPASS)                                      06280254
                    632: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)                         06290254
                    633: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)                    06300254
                    634: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14)                        06310254
                    635: C                                                                       06320254
                    636: C     FORMAT STATEMENTS FOR PAGE HEADERS                                06330254
                    637: C                                                                       06340254
                    638: 90002 FORMAT (1H1)                                                      06350254
                    639: 90004 FORMAT (1H )                                                      06360254
                    640: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)            06370254
                    641: 90008 FORMAT (1H ,21X,11HVERSION 1.0)                                   06380254
                    642: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)         06390254
                    643: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT)  06400254
                    644: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 06410254
                    645: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)                             06420254
                    646: C                                                                       06430254
                    647: C     FORMAT STATEMENTS FOR RUN SUMMARY                                 06440254
                    648: C                                                                       06450254
                    649: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED)                              06460254
                    650: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED)                              06470254
                    651: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED)                             06480254
                    652:       END                                                               06490254

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.