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

1.1       root        1: C     COMMENT SECTION                                                   00010003
                      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                                                                       00020003
                      6: C     FM003                                                             00030003
                      7: C                                                                       00040003
                      8: C         THIS ROUTINE CONTAINS THE BASIC CONTINUE TESTS.  THESE TESTS  00050003
                      9: C     ENSURE THAT EXECUTION OF A CONTINUE STATEMENT CAUSES CONTINUATION 00060003
                     10: C     OF THE NORMAL PROGRAM EXECUTION SEQUENCE.  ONLY THE STATEMENTS IN 00070003
                     11: C     THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS.  OTHER CONTINUE00080003
                     12: C     TESTS ARE CONTAINED IN OTHER ROUTINES AS PART OF THE TESTS FOR    00090003
                     13: C     OTHER LANGUAGE FEATURES SUCH AS THE DO STATEMENTS TESTS.          00100003
                     14: C                                                                       00110003
                     15: C      REFERENCES                                                       00120003
                     16: C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00130003
                     17: C              X3.9-1978                                                00140003
                     18: C                                                                       00150003
                     19: C        SECTION 3.6, NORMAL EXECUTION SEQUENCE AND TRANSFER OF CONTROL 00160003
                     20: C        SECTION 11.11, CONTINUE STATEMENT                              00170003
                     21: C                                                                       00180003
                     22: C                                                                       00190003
                     23: C      **********************************************************       00200003
                     24: C                                                                       00210003
                     25: C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00220003
                     26: C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00230003
                     27: C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00240003
                     28: C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00250003
                     29: C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00260003
                     30: C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00270003
                     31: C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00280003
                     32: C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00290003
                     33: C     OF EXECUTING THESE TESTS.                                         00300003
                     34: C                                                                       00310003
                     35: C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00320003
                     36: C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00330003
                     37: C                                                                       00340003
                     38: C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00350003
                     39: C                                                                       00360003
                     40: C                  DEPARTMENT OF THE NAVY                               00370003
                     41: C                  FEDERAL COBOL COMPILER TESTING SERVICE               00380003
                     42: C                  WASHINGTON, D.C.  20376                              00390003
                     43: C                                                                       00400003
                     44: C      **********************************************************       00410003
                     45: C                                                                       00420003
                     46: C                                                                       00430003
                     47: C                                                                       00440003
                     48: C     INITIALIZATION SECTION                                            00450003
                     49: C                                                                       00460003
                     50: C     INITIALIZE CONSTANTS                                              00470003
                     51: C      **************                                                   00480003
                     52: C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00490003
                     53:       I01 = 5                                                           00500003
                     54: C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00510003
                     55:       I02 = 6                                                           00520003
                     56: C     SYSTEM ENVIRONMENT SECTION                                        00530003
                     57: C                                                                       00540003
                     58:       I01 = 5                                                           00550003
                     59: C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00560003
                     60: C     (UNIT NUMBER FOR CARD READER).                                    00570003
                     61: CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00580003
                     62: C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00590003
                     63: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00600003
                     64: C                                                                       00610003
                     65:       I02 = 6                                                           00620003
                     66: C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00630003
                     67: C     (UNIT NUMBER FOR PRINTER).                                        00640003
                     68: CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00650003
                     69: C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00660003
                     70: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00670003
                     71: C                                                                       00680003
                     72:       IVPASS=0                                                          00690003
                     73:       IVFAIL=0                                                          00700003
                     74:       IVDELE=0                                                          00710003
                     75:       ICZERO=0                                                          00720003
                     76: C                                                                       00730003
                     77: C     WRITE PAGE HEADERS                                                00740003
                     78:       WRITE (I02,90000)                                                 00750003
                     79:       WRITE (I02,90001)                                                 00760003
                     80:       WRITE (I02,90002)                                                 00770003
                     81:       WRITE (I02, 90002)                                                00780003
                     82:       WRITE (I02,90003)                                                 00790003
                     83:       WRITE (I02,90002)                                                 00800003
                     84:       WRITE (I02,90004)                                                 00810003
                     85:       WRITE (I02,90002)                                                 00820003
                     86:       WRITE (I02,90011)                                                 00830003
                     87:       WRITE (I02,90002)                                                 00840003
                     88:       WRITE (I02,90002)                                                 00850003
                     89:       WRITE (I02,90005)                                                 00860003
                     90:       WRITE (I02,90006)                                                 00870003
                     91:       WRITE (I02,90002)                                                 00880003
                     92:   131 CONTINUE                                                          00890003
                     93:       IVTNUM =  13                                                      00900003
                     94: C                                                                       00910003
                     95: C      ****  TEST 013  ****                                             00920003
                     96: C         TEST 13 - CONTINUE TEST                                       00930003
                     97: C               CONTINUE STATEMENT FOLLOWING INTEGER ASSIGNMENT         00940003
                     98: C               STATEMENTS.                                             00950003
                     99: C                                                                       00960003
                    100:       IF (ICZERO) 30130,  130, 30130                                    00970003
                    101:   130 CONTINUE                                                          00980003
                    102:       IVON01=5                                                          00990003
                    103:       IVON02=6                                                          01000003
                    104:       CONTINUE                                                          01010003
                    105:       GO TO 40130                                                       01020003
                    106: 30130 IVDELE = IVDELE + 1                                               01030003
                    107:       WRITE (I02,80003) IVTNUM                                          01040003
                    108:       IF (ICZERO) 40130,  141, 40130                                    01050003
                    109: 40130 IF (IVON01-5) 20131,40131,20131                                   01060003
                    110: 40131 IF (IVON02-6) 20132,10130,20132                                   01070003
                    111: 10130 IVPASS = IVPASS + 1                                               01080003
                    112:       WRITE (I02,80001) IVTNUM                                          01090003
                    113:       GO TO  141                                                        01100003
                    114: 20131 IVCOMP=IVON01                                                     01110003
                    115:       IVCORR=5                                                          01120003
                    116:       GO TO 20130                                                       01130003
                    117: 20132 IVCOMP=IVON02                                                     01140003
                    118:       IVCORR=6                                                          01150003
                    119: 20130 IVFAIL = IVFAIL + 1                                               01160003
                    120:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01170003
                    121:   141 CONTINUE                                                          01180003
                    122:       IVTNUM =  14                                                      01190003
                    123: C                                                                       01200003
                    124: C      ****  TEST 014  ****                                             01210003
                    125: C         TEST 14 - CONTINUE TEST                                       01220003
                    126: C               CONTINUE STATEMENT BETWEEN INTEGER ASSIGNMENT           01230003
                    127: C               STATEMENTS                                              01240003
                    128: C                                                                       01250003
                    129:       IF (ICZERO) 30140,  140, 30140                                    01260003
                    130:   140 CONTINUE                                                          01270003
                    131:       IVON01=14                                                         01280003
                    132:       CONTINUE                                                          01290003
                    133:       IVON02=15                                                         01300003
                    134:       GO TO 40140                                                       01310003
                    135: 30140 IVDELE = IVDELE + 1                                               01320003
                    136:       WRITE (I02,80003) IVTNUM                                          01330003
                    137:       IF (ICZERO) 40140,  151, 40140                                    01340003
                    138: 40140 IF (IVON01 - 14) 20141,40141,20141                                01350003
                    139: 40141 IF (IVON02 - 15) 20142, 10140, 20142                              01360003
                    140: 10140 IVPASS = IVPASS + 1                                               01370003
                    141:       WRITE (I02,80001) IVTNUM                                          01380003
                    142:       GO TO  151                                                        01390003
                    143: 20141 IVCOMP=IVON01                                                     01400003
                    144:       IVCORR=14                                                         01410003
                    145:       GO TO 20140                                                       01420003
                    146: 20142 IVCOMP=IVON02                                                     01430003
                    147:       IVCORR=15                                                         01440003
                    148: 20140 IVFAIL = IVFAIL + 1                                               01450003
                    149:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01460003
                    150:   151 CONTINUE                                                          01470003
                    151:       IVTNUM =  15                                                      01480003
                    152: C                                                                       01490003
                    153: C      ****  TEST 015  ****                                             01500003
                    154: C         TEST 15 - CONTINUE TEST                                       01510003
                    155: C               TWO CONSECUTIVE CONTINUE STATEMENTS                     01520003
                    156: C                                                                       01530003
                    157:       IF (ICZERO) 30150,  150, 30150                                    01540003
                    158:   150 CONTINUE                                                          01550003
                    159:       CONTINUE                                                          01560003
                    160:       IVON01=19                                                         01570003
                    161:       IVON02=20                                                         01580003
                    162:       GO TO 40150                                                       01590003
                    163: 30150 IVDELE = IVDELE + 1                                               01600003
                    164:       WRITE (I02,80003) IVTNUM                                          01610003
                    165:       IF (ICZERO) 40150,  161, 40150                                    01620003
                    166: 40150 IF (IVON01 - 19) 20151,40151,20151                                01630003
                    167: 40151 IF (IVON02 -20) 20152,10150,20152                                 01640003
                    168: 10150 IVPASS = IVPASS + 1                                               01650003
                    169:       WRITE (I02,80001) IVTNUM                                          01660003
                    170:       GO TO  161                                                        01670003
                    171: 20151 IVCOMP=IVON01                                                     01680003
                    172:       IVCORR=19                                                         01690003
                    173:       GO TO 20150                                                       01700003
                    174: 20152 IVCOMP=IVON02                                                     01710003
                    175:       IVCORR=20                                                         01720003
                    176: 20150 IVFAIL = IVFAIL + 1                                               01730003
                    177:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01740003
                    178:   161 CONTINUE                                                          01750003
                    179:       IVTNUM =  16                                                      01760003
                    180: C                                                                       01770003
                    181: C      ****  TEST 016  ****                                             01780003
                    182: C         TEST 16 - CONTINUE TEST                                       01790003
                    183: C               BRANCH TO CONTINUE STATEMENT FROM IF STATEMENT          01800003
                    184: C                                                                       01810003
                    185:       IF (ICZERO) 30160,  160, 30160                                    01820003
                    186:   160 CONTINUE                                                          01830003
                    187:       IVON01=16                                                         01840003
                    188:       IF (IVON01 - 16) 162,163,162                                      01850003
                    189:   162 IVCORR=16                                                         01860003
                    190:       GO TO 20160                                                       01870003
                    191:   163 CONTINUE                                                          01880003
                    192:       IVON01=160                                                        01890003
                    193:       GO TO 40160                                                       01900003
                    194: 30160 IVDELE = IVDELE + 1                                               01910003
                    195:       WRITE (I02,80003) IVTNUM                                          01920003
                    196:       IF (ICZERO) 40160,  171, 40160                                    01930003
                    197: 40160 IF (IVON01-160) 20161,10160,20161                                 01940003
                    198: 10160 IVPASS = IVPASS + 1                                               01950003
                    199:       WRITE (I02,80001) IVTNUM                                          01960003
                    200:       GO TO  171                                                        01970003
                    201: 20161 IVCORR=160                                                        01980003
                    202: 20160 IVFAIL = IVFAIL + 1                                               01990003
                    203:       IVCOMP=IVON01                                                     02000003
                    204:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02010003
                    205:   171 CONTINUE                                                          02020003
                    206:       IVTNUM =  17                                                      02030003
                    207: C                                                                       02040003
                    208: C      ****  TEST 017  ****                                             02050003
                    209: C         TEST 17 - CONTINUE TEST                                       02060003
                    210: C               TWO OF THE BRANCHES OF AN IF STATEMENT ARE TO THE SAME  02070003
                    211: C               CONTINUE STATEMENT.  THE THIRD BRANCH ALSO IS MADE TO   02080003
                    212: C               A CONTINUE STATEMENT.                                   02090003
                    213: C                                                                       02100003
                    214:       IF (ICZERO) 30170,  170, 30170                                    02110003
                    215:   170 CONTINUE                                                          02120003
                    216:       IVON01=17                                                         02130003
                    217:       IF (IVON01-19) 173,172,172                                        02140003
                    218:   172 CONTINUE                                                          02150003
                    219:       IVCORR=17                                                         02160003
                    220:       GO TO 20170                                                       02170003
                    221:   173 CONTINUE                                                          02180003
                    222:       IVON01=170                                                        02190003
                    223:       GO TO 40170                                                       02200003
                    224: 30170 IVDELE = IVDELE + 1                                               02210003
                    225:       WRITE (I02,80003) IVTNUM                                          02220003
                    226:       IF (ICZERO) 40170,  181, 40170                                    02230003
                    227: 40170 IF (IVON01 - 170) 20171,10170,20171                               02240003
                    228: 10170 IVPASS = IVPASS + 1                                               02250003
                    229:       WRITE (I02,80001) IVTNUM                                          02260003
                    230:       GO TO  181                                                        02270003
                    231: 20171 IVCORR=170                                                        02280003
                    232: 20170 IVFAIL = IVFAIL + 1                                               02290003
                    233:       IVCOMP=IVON01                                                     02300003
                    234:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02310003
                    235:   181 CONTINUE                                                          02320003
                    236:       IVTNUM =  18                                                      02330003
                    237: C                                                                       02340003
                    238: C      ****  TEST 018  ****                                             02350003
                    239: C         TEST 18 - CONTINUE TEST                                       02360003
                    240: C               BRANCH TO CONTINUE STATEMENT FROM GO TO STATEMENT       02370003
                    241: C                                                                       02380003
                    242:       IF (ICZERO) 30180,  180, 30180                                    02390003
                    243:   180 CONTINUE                                                          02400003
                    244:       IF (ICZERO) 184,182,184                                           02410003
                    245:   182 IVON01=18                                                         02420003
                    246:       GO TO 183                                                         02430003
                    247:   184 IVON01=20                                                         02440003
                    248:   183 CONTINUE                                                          02450003
                    249:       IVON02=180                                                        02460003
                    250:       GO TO 40180                                                       02470003
                    251: 30180 IVDELE = IVDELE + 1                                               02480003
                    252:       WRITE (I02,80003) IVTNUM                                          02490003
                    253:       IF (ICZERO) 40180,  191, 40180                                    02500003
                    254: 40180 IF (IVON01 - 18) 20181,40181,20181                                02510003
                    255: 40181 IF (IVON02 -180) 20182,10180,20182                                02520003
                    256: 10180 IVPASS = IVPASS + 1                                               02530003
                    257:       WRITE (I02,80001) IVTNUM                                          02540003
                    258:       GO TO  191                                                        02550003
                    259: 20181 IVCORR=18                                                         02560003
                    260:       IVCOMP=IVON01                                                     02570003
                    261:       GO TO 20180                                                       02580003
                    262: 20182 IVCOMP=IVON02                                                     02590003
                    263:       IVCORR=180                                                        02600003
                    264: 20180 IVFAIL = IVFAIL + 1                                               02610003
                    265:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02620003
                    266:   191 CONTINUE                                                          02630003
                    267:       IVTNUM =  19                                                      02640003
                    268: C                                                                       02650003
                    269: C      ****  TEST 019  ****                                             02660003
                    270: C         TEST 19 - CONTINUE TEST                                       02670003
                    271: C             BRANCH TO THREE  CONTINUE STATEMENTS  FROM IF STATEMENT.  02680003
                    272: C               CONTINUE STATEMENTS FOLLOW EACH OTHER.                  02690003
                    273: C                                                                       02700003
                    274:       IF (ICZERO) 30190,  190, 30190                                    02710003
                    275:   190 CONTINUE                                                          02720003
                    276:       ICONE = 1                                                         02730003
                    277:       IF (ICONE) 194,192,193                                            02740003
                    278:   193 CONTINUE                                                          02750003
                    279:   192 CONTINUE                                                          02760003
                    280:   194 CONTINUE                                                          02770003
                    281:       IVON01=19                                                         02780003
                    282:       GO TO 40190                                                       02790003
                    283: 30190 IVDELE = IVDELE + 1                                               02800003
                    284:       WRITE (I02,80003) IVTNUM                                          02810003
                    285:       IF (ICZERO) 40190,  201, 40190                                    02820003
                    286: 40190 IF (IVON01 - 19) 20190,10190,20190                                02830003
                    287: 10190 IVPASS = IVPASS + 1                                               02840003
                    288:       WRITE (I02,80001) IVTNUM                                          02850003
                    289:       GO TO  201                                                        02860003
                    290: 20190 IVFAIL = IVFAIL + 1                                               02870003
                    291:       IVCOMP=IVON01                                                     02880003
                    292:       IVCORR=19                                                         02890003
                    293:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02900003
                    294:   201 CONTINUE                                                          02910003
                    295:       IVTNUM =  20                                                      02920003
                    296: C                                                                       02930003
                    297: C      ****  TEST 020  ****                                             02940003
                    298: C         TEST 20 - CONTINUE TEST                                       02950003
                    299: C               THREE SEPARATE BRANCHES OF AN IF STATEMENT ARE TO       02960003
                    300: C               CONTINUE STATEMENTS.                                    02970003
                    301: C                                                                       02980003
                    302:       IF (ICZERO) 30200,  200, 30200                                    02990003
                    303:   200 CONTINUE                                                          03000003
                    304:       ICON02=-2                                                         03010003
                    305:       IF  (ICON02) 204,202,203                                          03020003
                    306:   203 CONTINUE                                                          03030003
                    307:       IVON01=203                                                        03040003
                    308:       GO TO 40200                                                       03050003
                    309:   204 CONTINUE                                                          03060003
                    310:       IVON01 = 204                                                      03070003
                    311:       GO TO 40200                                                       03080003
                    312:   202 CONTINUE                                                          03090003
                    313:       IVON01=202                                                        03100003
                    314:       GO TO 40200                                                       03110003
                    315: 30200 IVDELE = IVDELE + 1                                               03120003
                    316:       WRITE (I02,80003) IVTNUM                                          03130003
                    317:       IF (ICZERO) 40200,  211, 40200                                    03140003
                    318: 40200 IF (IVON01 - 204) 20200,10200,20200                               03150003
                    319: 10200 IVPASS = IVPASS + 1                                               03160003
                    320:       WRITE (I02,80001) IVTNUM                                          03170003
                    321:       GO TO  211                                                        03180003
                    322: 20200 IVFAIL = IVFAIL + 1                                               03190003
                    323:       IVCOMP=IVON01                                                     03200003
                    324:       IVCORR=204                                                        03210003
                    325:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03220003
                    326:   211 CONTINUE                                                          03230003
                    327: C                                                                       03240003
                    328: C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             03250003
                    329: 99999 CONTINUE                                                          03260003
                    330:       WRITE (I02,90002)                                                 03270003
                    331:       WRITE (I02,90006)                                                 03280003
                    332:       WRITE (I02,90002)                                                 03290003
                    333:       WRITE (I02,90002)                                                 03300003
                    334:       WRITE (I02,90007)                                                 03310003
                    335:       WRITE (I02,90002)                                                 03320003
                    336:       WRITE (I02,90008)  IVFAIL                                         03330003
                    337:       WRITE (I02,90009) IVPASS                                          03340003
                    338:       WRITE (I02,90010) IVDELE                                          03350003
                    339: C                                                                       03360003
                    340: C                                                                       03370003
                    341: C     TERMINATE ROUTINE EXECUTION                                       03380003
                    342:       STOP                                                              03390003
                    343: C                                                                       03400003
                    344: C     FORMAT STATEMENTS FOR PAGE HEADERS                                03410003
                    345: 90000 FORMAT (1H1)                                                      03420003
                    346: 90002 FORMAT (1H )                                                      03430003
                    347: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)            03440003
                    348: 90003 FORMAT (1H ,21X,11HVERSION 1.0)                                   03450003
                    349: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)        03460003
                    350: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 03470003
                    351: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 03480003
                    352: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)                             03490003
                    353: C                                                                       03500003
                    354: C     FORMAT STATEMENTS FOR RUN SUMMARIES                               03510003
                    355: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED)                        03520003
                    356: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED)                              03530003
                    357: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED)                             03540003
                    358: C                                                                       03550003
                    359: C     FORMAT STATEMENTS FOR TEST RESULTS                                03560003
                    360: 80001 FORMAT (1H ,4X,I5,7X,4HPASS)                                      03570003
                    361: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL)                                      03580003
                    362: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED)                                   03590003
                    363: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)                         03600003
                    364: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)                    03610003
                    365: C                                                                       03620003
                    366: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM003)                          03630003
                    367:       END                                                               03640003

unix.superglobalmegacorp.com

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