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

1.1       root        1: C                                                                       00010012
                      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     COMMENT SECTION.                                                  00020012
                      6: C                                                                       00030012
                      7: C     FM012                                                             00040012
                      8: C                                                                       00050012
                      9: C             THIS ROUTINE TESTS THE FORTRAN DO - STATEMENT FROM ITS    00060012
                     10: C     SIMPLIST FORMAT TO THE MORE ABBREVIATED FORMS.  VARIOUS INCREMENTS00070012
                     11: C     ARE USED AND BRANCHING BY VARIOUS METHODS IS TESTED FOR PASSING   00080012
                     12: C     CONTROL OUT OF THE DO RANGE AND RETURNING (EXTENDED RANGE).       00090012
                     13: C     NESTED DO STATEMENTS USING VARIOUS TERMINATING STATEMENTS ARE ALSO00100012
                     14: C     TESTED BY THIS ROUTINE.                                           00110012
                     15: C                                                                       00120012
                     16: C      REFERENCES                                                       00130012
                     17: C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00140012
                     18: C              X3.9-1978                                                00150012
                     19: C                                                                       00160012
                     20: C        SECTION 11.10, DO STATEMENT                                    00170012
                     21: C        SECTION 11.10.3, EXECUTES A DO LOOP                            00180012
                     22: C        SECTION 11.11, CONTINUE STATEMENT                              00190012
                     23: C                                                                       00200012
                     24: C                                                                       00210012
                     25: C      **********************************************************       00220012
                     26: C                                                                       00230012
                     27: C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00240012
                     28: C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00250012
                     29: C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00260012
                     30: C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00270012
                     31: C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00280012
                     32: C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00290012
                     33: C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00300012
                     34: C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00310012
                     35: C     OF EXECUTING THESE TESTS.                                         00320012
                     36: C                                                                       00330012
                     37: C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00340012
                     38: C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00350012
                     39: C                                                                       00360012
                     40: C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00370012
                     41: C                                                                       00380012
                     42: C                  DEPARTMENT OF THE NAVY                               00390012
                     43: C                  FEDERAL COBOL COMPILER TESTING SERVICE               00400012
                     44: C                  WASHINGTON, D.C.  20376                              00410012
                     45: C                                                                       00420012
                     46: C      **********************************************************       00430012
                     47: C                                                                       00440012
                     48: C                                                                       00450012
                     49: C                                                                       00460012
                     50: C     INITIALIZATION SECTION                                            00470012
                     51: C                                                                       00480012
                     52: C     INITIALIZE CONSTANTS                                              00490012
                     53: C      **************                                                   00500012
                     54: C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00510012
                     55:       I01 = 5                                                           00520012
                     56: C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00530012
                     57:       I02 = 6                                                           00540012
                     58: C     SYSTEM ENVIRONMENT SECTION                                        00550012
                     59: C                                                                       00560012
                     60:       I01 = 5                                                           00570012
                     61: C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00580012
                     62: C     (UNIT NUMBER FOR CARD READER).                                    00590012
                     63: CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00600012
                     64: C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00610012
                     65: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00620012
                     66: C                                                                       00630012
                     67:       I02 = 6                                                           00640012
                     68: C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00650012
                     69: C     (UNIT NUMBER FOR PRINTER).                                        00660012
                     70: CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00670012
                     71: C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00680012
                     72: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00690012
                     73: C                                                                       00700012
                     74:       IVPASS=0                                                          00710012
                     75:       IVFAIL=0                                                          00720012
                     76:       IVDELE=0                                                          00730012
                     77:       ICZERO=0                                                          00740012
                     78: C                                                                       00750012
                     79: C     WRITE PAGE HEADERS                                                00760012
                     80:       WRITE (I02,90000)                                                 00770012
                     81:       WRITE (I02,90001)                                                 00780012
                     82:       WRITE (I02,90002)                                                 00790012
                     83:       WRITE (I02, 90002)                                                00800012
                     84:       WRITE (I02,90003)                                                 00810012
                     85:       WRITE (I02,90002)                                                 00820012
                     86:       WRITE (I02,90004)                                                 00830012
                     87:       WRITE (I02,90002)                                                 00840012
                     88:       WRITE (I02,90011)                                                 00850012
                     89:       WRITE (I02,90002)                                                 00860012
                     90:       WRITE (I02,90002)                                                 00870012
                     91:       WRITE (I02,90005)                                                 00880012
                     92:       WRITE (I02,90006)                                                 00890012
                     93:       WRITE (I02,90002)                                                 00900012
                     94:       IVTNUM = 110                                                      00910012
                     95: C                                                                       00920012
                     96: C     TEST 110  -  DO STATEMENT WITH THE COMPLETE FORMAT, INCREMENT OF 100930012
                     97: C           THE LOOP SHOULD BE EXECUTED TEN (10) TIMES THUS THE LOOP    00940012
                     98: C           COUNTER SHOULD HAVE A VALUE OF TEN AT THE COMPLETION OF THE 00950012
                     99: C           DO-LOOP.                                                    00960012
                    100: C                                                                       00970012
                    101: C                                                                       00980012
                    102:       IF (ICZERO) 31100, 1100, 31100                                    00990012
                    103:  1100 CONTINUE                                                          01000012
                    104:       IVON01=0                                                          01010012
                    105:       DO 1102 I=1,10,1                                                  01020012
                    106:       IVON01=IVON01+1                                                   01030012
                    107:  1102 CONTINUE                                                          01040012
                    108:       GO TO 41100                                                       01050012
                    109: 31100 IVDELE = IVDELE + 1                                               01060012
                    110:       WRITE (I02,80003) IVTNUM                                          01070012
                    111:       IF (ICZERO) 41100, 1111, 41100                                    01080012
                    112: 41100 IF(IVON01-10) 21100,11100,21100                                   01090012
                    113: 11100 IVPASS = IVPASS + 1                                               01100012
                    114:       WRITE (I02,80001) IVTNUM                                          01110012
                    115:       GO TO 1111                                                        01120012
                    116: 21100 IVFAIL = IVFAIL + 1                                               01130012
                    117:       IVCOMP=IVON01                                                     01140012
                    118:       IVCORR=10                                                         01150012
                    119:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01160012
                    120:  1111 CONTINUE                                                          01170012
                    121:       IVTNUM = 111                                                      01180012
                    122: C                                                                       01190012
                    123: C     TEST 111  -  SAME DO TEST AS IN TEST 110 EXCEPT THAT NO INCREMENT 01200012
                    124: C           IS GIVEN.  THE INCREMENT SHOULD BE 1 AND THE LOOP PERFORMED 01210012
                    125: C           TEN (10) TIMES AS BEFORE.                                   01220012
                    126: C                                                                       01230012
                    127: C                                                                       01240012
                    128:       IF (ICZERO) 31110, 1110, 31110                                    01250012
                    129:  1110 CONTINUE                                                          01260012
                    130:       IVON01=0                                                          01270012
                    131:       DO 1112 J=1,10                                                    01280012
                    132:       IVON01=IVON01+1                                                   01290012
                    133:  1112 CONTINUE                                                          01300012
                    134:       GO TO 41110                                                       01310012
                    135: 31110 IVDELE = IVDELE + 1                                               01320012
                    136:       WRITE (I02,80003) IVTNUM                                          01330012
                    137:       IF (ICZERO) 41110, 1121, 41110                                    01340012
                    138: 41110 IF(IVON01-10)  21110, 11110, 21110                                01350012
                    139: 11110 IVPASS = IVPASS + 1                                               01360012
                    140:       WRITE (I02,80001) IVTNUM                                          01370012
                    141:       GO TO 1121                                                        01380012
                    142: 21110 IVFAIL = IVFAIL + 1                                               01390012
                    143:       IVCOMP=IVON01                                                     01400012
                    144:       IVCORR=10                                                         01410012
                    145:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01420012
                    146:  1121 CONTINUE                                                          01430012
                    147:       IVTNUM = 112                                                      01440012
                    148: C                                                                       01450012
                    149: C     TEST 112  -  DO STATEMENT WITH AN INCREMENT OTHER THAN ONE (1).   01460012
                    150: C           THE DO - LOOP SHOULD BE EXECUTED FIVE (5) TIMES THUS        01470012
                    151: C           THE VALUE OF THE LOOP COUNTER SHOULD BE FIVE (5) AT THE     01480012
                    152: C           END OF THE DO - LOOP.                                       01490012
                    153: C                                                                       01500012
                    154: C                                                                       01510012
                    155:       IF (ICZERO) 31120, 1120, 31120                                    01520012
                    156:  1120 CONTINUE                                                          01530012
                    157:       IVON01=0                                                          01540012
                    158:       DO 1122 K = 1, 10, 2                                              01550012
                    159:       IVON01=IVON01+1                                                   01560012
                    160:  1122 CONTINUE                                                          01570012
                    161:       GO TO 41120                                                       01580012
                    162: 31120 IVDELE = IVDELE + 1                                               01590012
                    163:       WRITE (I02,80003) IVTNUM                                          01600012
                    164:       IF (ICZERO) 41120, 1131, 41120                                    01610012
                    165: 41120 IF (IVON01 - 5 )  21120, 11120, 21120                             01620012
                    166: 11120 IVPASS = IVPASS + 1                                               01630012
                    167:       WRITE (I02,80001) IVTNUM                                          01640012
                    168:       GO TO 1131                                                        01650012
                    169: 21120 IVFAIL = IVFAIL + 1                                               01660012
                    170:       IVCOMP=IVON01                                                     01670012
                    171:       IVCORR=5                                                          01680012
                    172:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01690012
                    173:  1131 CONTINUE                                                          01700012
                    174:       IVTNUM = 113                                                      01710012
                    175: C                                                                       01720012
                    176: C     TEST 113  -  DO STATEMENT WITH THE INITIAL VALUE EQUAL TO THE     01730012
                    177: C           TERMINAL VALUE.  THE DO - LOOP SHOULD BE EXECUTED ONE (1)   01740012
                    178: C           TIME THUS THE VALUE OF THE LOOP COUNTER SHOULD BE ONE (1).  01750012
                    179: C                                                                       01760012
                    180: C                                                                       01770012
                    181:       IF (ICZERO) 31130, 1130, 31130                                    01780012
                    182:  1130 CONTINUE                                                          01790012
                    183:       IVON01=0                                                          01800012
                    184:       DO 1132 L = 2, 2                                                  01810012
                    185:       IVON01=IVON01+1                                                   01820012
                    186:  1132 CONTINUE                                                          01830012
                    187:       GO TO 41130                                                       01840012
                    188: 31130 IVDELE = IVDELE + 1                                               01850012
                    189:       WRITE (I02,80003) IVTNUM                                          01860012
                    190:       IF (ICZERO) 41130, 1141, 41130                                    01870012
                    191: 41130 IF ( IVON01 - 1 )  21130, 11130, 21130                            01880012
                    192: 11130 IVPASS = IVPASS + 1                                               01890012
                    193:       WRITE (I02,80001) IVTNUM                                          01900012
                    194:       GO TO 1141                                                        01910012
                    195: 21130 IVFAIL = IVFAIL + 1                                               01920012
                    196:       IVCOMP=IVON01                                                     01930012
                    197:       IVCORR=1                                                          01940012
                    198:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01950012
                    199:  1141 CONTINUE                                                          01960012
                    200:       IVTNUM = 114                                                      01970012
                    201: C                                                                       01980012
                    202: C     TEST 114  -  THIS TESTS THE UNCONDITIONAL BRANCH OUT OF THE       01990012
                    203: C           RANGE OF THE DO USING THE GO TO STATEMENT.  THE DO INDEX    02000012
                    204: C           SHOULD RETAIN THE VALUE IT HAD WHEN THE UNCONDITIONAL BRANCH02010012
                    205: C           WAS MADE.  SINCE THE DO LOOP ONLY CONTAINS AN UNCONDITIONAL 02020012
                    206: C           BRANCH, THE VALUE OF THE DO INDEX SHOULD BE ITS INITIAL     02030012
                    207: C           VALUE.  IN THIS CASE THE VALUE SHOULD BE ONE (1).           02040012
                    208: C           SEE SECTION 11.10.                                          02050012
                    209: C                                                                       02060012
                    210: C                                                                       02070012
                    211:       IF (ICZERO) 31140, 1140, 31140                                    02080012
                    212:  1140 CONTINUE                                                          02090012
                    213:       DO 1142 M=1,10                                                    02100012
                    214:       GO TO 1143                                                        02110012
                    215:  1142 CONTINUE                                                          02120012
                    216:  1143 CONTINUE                                                          02130012
                    217:       GO TO 41140                                                       02140012
                    218: 31140 IVDELE = IVDELE + 1                                               02150012
                    219:       WRITE (I02,80003) IVTNUM                                          02160012
                    220:       IF (ICZERO) 41140, 1151, 41140                                    02170012
                    221: 41140 IF ( M - 1 )  21140, 11140, 21140                                 02180012
                    222: 11140 IVPASS = IVPASS + 1                                               02190012
                    223:       WRITE (I02,80001) IVTNUM                                          02200012
                    224:       GO TO 1151                                                        02210012
                    225: 21140 IVFAIL = IVFAIL + 1                                               02220012
                    226:       IVCOMP=M                                                          02230012
                    227:       IVCORR=1                                                          02240012
                    228:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02250012
                    229:  1151 CONTINUE                                                          02260012
                    230:       IVTNUM = 115                                                      02270012
                    231: C                                                                       02280012
                    232: C     TEST 115  -  THIS TEST IS SIMILAR TO TEST 114 IN THAT THE DO      02290012
                    233: C           RANGE HAS ONLY AN UNCONDITIONAL BRANCH OUTSIDE OF THE RANGE.02300012
                    234: C           THE DO INDEX SHOULD AGAIN RETAIN ITS VALUE, IN THIS CASE    02310012
                    235: C           ITS INITIAL VALUE OF ONE (1).                               02320012
                    236: C           SEE SECTION 11.10.                                          02330012
                    237: C                                                                       02340012
                    238: C                                                                       02350012
                    239:       IF (ICZERO) 31150, 1150, 31150                                    02360012
                    240:  1150 CONTINUE                                                          02370012
                    241:       DO 1152 N = 1, 10                                                 02380012
                    242:       IF ( N - 1 )  1152, 1153, 1152                                    02390012
                    243:  1152 CONTINUE                                                          02400012
                    244:  1153 CONTINUE                                                          02410012
                    245:       GO TO 41150                                                       02420012
                    246: 31150 IVDELE = IVDELE + 1                                               02430012
                    247:       WRITE (I02,80003) IVTNUM                                          02440012
                    248:       IF (ICZERO) 41150, 1161, 41150                                    02450012
                    249: 41150 IF (N - 1 )  21150, 11150, 21150                                  02460012
                    250: 11150 IVPASS = IVPASS + 1                                               02470012
                    251:       WRITE (I02,80001) IVTNUM                                          02480012
                    252:       GO TO 1161                                                        02490012
                    253: 21150 IVFAIL = IVFAIL + 1                                               02500012
                    254:       IVCOMP=N                                                          02510012
                    255:       IVCORR=1                                                          02520012
                    256:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02530012
                    257:  1161 CONTINUE                                                          02540012
                    258:       IVTNUM = 116                                                      02550012
                    259: C                                                                       02560012
                    260: C     TEST 116  -  THIS IS A TEST OF A NEST OF TWO DO RANGES.  TWO      02570012
                    261: C           SEPARATE CONTINUE STATEMENTS ARE USED AS TERMINAL STATEMENTS02580012
                    262: C           FOR THE TWO RESPECTIVE DO RANGES.  THE OUTER LOOP SHOULD BE 02590012
                    263: C           PERFORMED TEN (10) TIMES AND THE INNER LOOP SHOULD BE       02600012
                    264: C           PERFORMED TWICE FOR EACH EXECUTION OF THE OUTER LOOP.  THE  02610012
                    265: C           LOOP COUNTER SHOULD HAVE A VALUE OF TWENTY (20) SINCE IT    02620012
                    266: C           IS INCREMENTED IN THE INNER DO - LOOP.                      02630012
                    267: C           SEE SECTION 11.10.3.                                        02640012
                    268: C                                                                       02650012
                    269: C                                                                       02660012
                    270:       IF (ICZERO) 31160, 1160, 31160                                    02670012
                    271:  1160 CONTINUE                                                          02680012
                    272:       IVON01=0                                                          02690012
                    273:       DO 1163 I=1,10,1                                                  02700012
                    274:       DO 1162 J=1,2,1                                                   02710012
                    275:       IVON01=IVON01+1                                                   02720012
                    276:  1162 CONTINUE                                                          02730012
                    277:  1163 CONTINUE                                                          02740012
                    278:       GO TO 41160                                                       02750012
                    279: 31160 IVDELE = IVDELE + 1                                               02760012
                    280:       WRITE (I02,80003) IVTNUM                                          02770012
                    281:       IF (ICZERO) 41160, 1171, 41160                                    02780012
                    282: 41160 IF ( IVON01 - 20 )  21160, 11160, 21160                           02790012
                    283: 11160 IVPASS = IVPASS + 1                                               02800012
                    284:       WRITE (I02,80001) IVTNUM                                          02810012
                    285:       GO TO 1171                                                        02820012
                    286: 21160 IVFAIL = IVFAIL + 1                                               02830012
                    287:       IVCOMP=IVON01                                                     02840012
                    288:       IVCORR=20                                                         02850012
                    289:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02860012
                    290:  1171 CONTINUE                                                          02870012
                    291:       IVTNUM = 117                                                      02880012
                    292: C                                                                       02890012
                    293: C     TEST 117  -  THIS IS BASICALLY THE SAME AS TEST 116 EXCEPT THAT   02900012
                    294: C           ONLY ONE CONTINUE STATEMENT IS USED AS THE TERMINATING      02910012
                    295: C           STATEMENT FOR BOTH OF THE DO RANGES.  THE VALUE OF THE      02920012
                    296: C           LOOP COUNTER SHOULD AGAIN BE TWENTY (20).                   02930012
                    297: C                                                                       02940012
                    298: C                                                                       02950012
                    299:       IF (ICZERO) 31170, 1170, 31170                                    02960012
                    300:  1170 CONTINUE                                                          02970012
                    301:       IVON01=0                                                          02980012
                    302:       DO 1172 K=1,10,1                                                  02990012
                    303:       DO 1172 L=1,2,1                                                   03000012
                    304:       IVON01=IVON01+1                                                   03010012
                    305:  1172 CONTINUE                                                          03020012
                    306:       GO TO 41170                                                       03030012
                    307: 31170 IVDELE = IVDELE + 1                                               03040012
                    308:       WRITE (I02,80003) IVTNUM                                          03050012
                    309:       IF (ICZERO) 41170, 1181, 41170                                    03060012
                    310: 41170 IF (IVON01 - 20 )  21170, 11170, 21170                            03070012
                    311: 11170 IVPASS = IVPASS + 1                                               03080012
                    312:       WRITE (I02,80001) IVTNUM                                          03090012
                    313:       GO TO 1181                                                        03100012
                    314: 21170 IVFAIL = IVFAIL + 1                                               03110012
                    315:       IVCOMP=IVON01                                                     03120012
                    316:       IVCORR=20                                                         03130012
                    317:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03140012
                    318:  1181 CONTINUE                                                          03150012
                    319:       IVTNUM = 118                                                      03160012
                    320: C                                                                       03170012
                    321: C     TEST 118  -  THIS IS BASICALLY THE SAME TEST AS 116 EXCEPT        03180012
                    322: C           THAT THE LOOP COUNTER INCREMENT IS THE TERMINATING STATEMENT03190012
                    323: C           OF BOTH OF THE DO RANGES.  THE VALUE OF THE LOOP COUNTER    03200012
                    324: C           SHOULD BE TWENTY (20), BUT THE NUMBER OF EXECUTIONS OF      03210012
                    325: C           THE OUTER LOOP IS NOW TWO (2) AND THE INNER LOOP EXECUTES   03220012
                    326: C           TEN (10) TIMES FOR EVERY EXECUTION OF THE OUTER LOOP.       03230012
                    327: C                                                                       03240012
                    328: C                                                                       03250012
                    329:       IF (ICZERO) 31180, 1180, 31180                                    03260012
                    330:  1180 CONTINUE                                                          03270012
                    331:       IVON01=0                                                          03280012
                    332:       DO 1182 M=1,2,1                                                   03290012
                    333:       DO 1182 N=1,10,1                                                  03300012
                    334:  1182 IVON01 = IVON01 + 1                                               03310012
                    335:       GO TO 41180                                                       03320012
                    336: 31180 IVDELE = IVDELE + 1                                               03330012
                    337:       WRITE (I02,80003) IVTNUM                                          03340012
                    338:       IF (ICZERO) 41180, 1191, 41180                                    03350012
                    339: 41180 IF (IVON01 - 20 )  21180, 11180, 21180                            03360012
                    340: 11180 IVPASS = IVPASS + 1                                               03370012
                    341:       WRITE (I02,80001) IVTNUM                                          03380012
                    342:       GO TO 1191                                                        03390012
                    343: 21180 IVFAIL = IVFAIL + 1                                               03400012
                    344:       IVCOMP=IVON01                                                     03410012
                    345:       IVCORR=20                                                         03420012
                    346:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03430012
                    347:  1191 CONTINUE                                                          03440012
                    348:       IVTNUM = 119                                                      03450012
                    349: C                                                                       03460012
                    350: C     TEST 119  -  THIS IS A TEST OF AN UNCONDITIONAL BRANCH OUT OF A   03470012
                    351: C           NESTED DO RANGE QUITE LIKE TEST 114.  THE LOOP COUNTER      03480012
                    352: C           SHOULD ONLY BE INCREMENTED ON THE OUTER LOOP RANGE SO       03490012
                    353: C            THE FINAL VALUE OF THE LOOP COUNTER SHOULD BE TEN (10).    03500012
                    354: C                                                                       03510012
                    355: C                                                                       03520012
                    356:       IF (ICZERO) 31190, 1190, 31190                                    03530012
                    357:  1190 CONTINUE                                                          03540012
                    358:       IVON01=0                                                          03550012
                    359:       DO 1194 I=1,10,1                                                  03560012
                    360:       DO 1193 J=1,2,1                                                   03570012
                    361: C                                                                       03580012
                    362: C     THE FOLLOWING STATEMENT IS TO ELIMINATE THE DEAD CODE PRODUCED    03590012
                    363: C         BY THE STATEMENT   GO TO 1194.                                03600012
                    364: C                                                                       03610012
                    365:       IF ( ICZERO )  1193, 1192, 1193                                   03620012
                    366: C                                                                       03630012
                    367:  1192  GO TO 1194                                                       03640012
                    368:  1193 IVON01 = IVON01 + 1                                               03650012
                    369:  1194 IVON01 = IVON01 + 1                                               03660012
                    370:       GO TO 41190                                                       03670012
                    371: 31190 IVDELE = IVDELE + 1                                               03680012
                    372:       WRITE (I02,80003) IVTNUM                                          03690012
                    373:       IF (ICZERO) 41190, 1201, 41190                                    03700012
                    374: 41190 IF ( IVON01 - 10 )  21190, 11190, 21190                           03710012
                    375: 11190 IVPASS = IVPASS + 1                                               03720012
                    376:       WRITE (I02,80001) IVTNUM                                          03730012
                    377:       GO TO 1201                                                        03740012
                    378: 21190 IVFAIL = IVFAIL + 1                                               03750012
                    379:       IVCOMP=IVON01                                                     03760012
                    380:       IVCORR=10                                                         03770012
                    381:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03780012
                    382:  1201 CONTINUE                                                          03790012
                    383:       IVTNUM = 120                                                      03800012
                    384: C                                                                       03810012
                    385: C     TEST 120  -  THIS IS BASICALLY THE SAME TEST AS TEST 119 EXCEPT   03820012
                    386: C           THAT AN IF STATEMENT IS USED TO BRANCH OUT OF THE INNER LOOP03830012
                    387: C           WITHOUT INCREMENTING THE LOOP COUNTER.  THE VALUE OF THE    03840012
                    388: C           LOOP COUNTER SHOULD AGAIN BE TEN (10).                      03850012
                    389: C                                                                       03860012
                    390: C                                                                       03870012
                    391:       IF (ICZERO) 31200, 1200, 31200                                    03880012
                    392:  1200 CONTINUE                                                          03890012
                    393:       IVON01=0                                                          03900012
                    394:       DO 1203 I=1,10,1                                                  03910012
                    395:       DO 1202 J=1,2,1                                                   03920012
                    396:       IF ( J - 1 )  1203, 1203, 1202                                    03930012
                    397:  1202 IVON01 = IVON01 + 1                                               03940012
                    398:  1203 IVON01 = IVON01 + 1                                               03950012
                    399:       GO TO 41200                                                       03960012
                    400: 31200 IVDELE = IVDELE + 1                                               03970012
                    401:       WRITE (I02,80003) IVTNUM                                          03980012
                    402:       IF (ICZERO) 41200, 1211, 41200                                    03990012
                    403: 41200 IF ( IVON01 - 10 )  21200, 11200, 21200                           04000012
                    404: 11200 IVPASS = IVPASS + 1                                               04010012
                    405:       WRITE (I02,80001) IVTNUM                                          04020012
                    406:       GO TO 1211                                                        04030012
                    407: 21200 IVFAIL = IVFAIL + 1                                               04040012
                    408:       IVCOMP=IVON01                                                     04050012
                    409:       IVCORR=10                                                         04060012
                    410:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04070012
                    411:  1211 CONTINUE                                                          04080012
                    412:       IVTNUM = 121                                                      04090012
                    413: C                                                                       04100012
                    414: C     TEST 121  -  THIS IS A TEST OF DO NESTS WITHIN DO NESTS.  THE     04110012
                    415: C           LOOP COUNTER SHOULD HAVE A FINAL VALUE OF EIGHTY-FOUR (84). 04120012
                    416: C                                                                       04130012
                    417: C                                                                       04140012
                    418:       IF (ICZERO) 31210, 1210, 31210                                    04150012
                    419:  1210 CONTINUE                                                          04160012
                    420:       IVON01=0                                                          04170012
                    421:       DO 1216 I1=1,2,1                                                  04180012
                    422:       DO 1213 I2=1,3,1                                                  04190012
                    423:       DO 1212 I3=1,4,1                                                  04200012
                    424:       IVON01=IVON01+1                                                   04210012
                    425:  1212  CONTINUE                                                         04220012
                    426:  1213  CONTINUE                                                         04230012
                    427:       DO 1215 I4=1,5,1                                                  04240012
                    428:       DO 1214 I5=1,6,1                                                  04250012
                    429:       IVON01=IVON01+1                                                   04260012
                    430:  1214 CONTINUE                                                          04270012
                    431:  1215 CONTINUE                                                          04280012
                    432:  1216 CONTINUE                                                          04290012
                    433:       GO TO 41210                                                       04300012
                    434: 31210 IVDELE = IVDELE + 1                                               04310012
                    435:       WRITE (I02,80003) IVTNUM                                          04320012
                    436:       IF (ICZERO) 41210, 1221, 41210                                    04330012
                    437: 41210 IF ( IVON01 - 84 )  21210, 11210, 21210                           04340012
                    438: 11210 IVPASS = IVPASS + 1                                               04350012
                    439:       WRITE (I02,80001) IVTNUM                                          04360012
                    440:       GO TO 1221                                                        04370012
                    441: 21210 IVFAIL = IVFAIL + 1                                               04380012
                    442:       IVCOMP=IVON01                                                     04390012
                    443:       IVCORR=84                                                         04400012
                    444:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04410012
                    445:  1221 CONTINUE                                                          04420012
                    446:       IVTNUM = 122                                                      04430012
                    447: C                                                                       04440012
                    448: C     TEST 122  -  THIS IS AGAIN A TEST OF DO NESTS BUT COMBINED WITH   04450012
                    449: C           ARITHMETIC IF STATEMENT BRANCHES WITHIN THE DO RANGE.  THE  04460012
                    450: C           FINAL LOOP COUNTER VALUE SHOULD BE EIGHTEEN (18).           04470012
                    451: C                                                                       04480012
                    452: C                                                                       04490012
                    453:       IF (ICZERO) 31220, 1220, 31220                                    04500012
                    454:  1220 CONTINUE                                                          04510012
                    455:       IVON01=0                                                          04520012
                    456:       DO 1228 I1=1,3,1                                                  04530012
                    457:       DO 1223 I2=1,4,1                                                  04540012
                    458:       IF ( I2 - 3 )  1222, 1224, 1224                                   04550012
                    459:  1222 IVON01 = IVON01 + 1                                               04560012
                    460:  1223 CONTINUE                                                          04570012
                    461:  1224 DO 1226 I3=1,5,1                                                  04580012
                    462:       IF ( I3 - 3 )  1225, 1225, 1227                                   04590012
                    463:  1225 IVON01 = IVON01 + 1                                               04600012
                    464:  1226 CONTINUE                                                          04610012
                    465:  1227 CONTINUE                                                          04620012
                    466:  1228 CONTINUE                                                          04630012
                    467:       GO TO 41220                                                       04640012
                    468: 31220 IVDELE = IVDELE + 1                                               04650012
                    469:       WRITE (I02,80003) IVTNUM                                          04660012
                    470:       IF (ICZERO) 41220, 1231, 41220                                    04670012
                    471: 41220 IF ( IVON01 - 15 )  21220, 11220, 21220                           04680012
                    472: 11220 IVPASS = IVPASS + 1                                               04690012
                    473:       WRITE (I02,80001) IVTNUM                                          04700012
                    474:       GO TO 1231                                                        04710012
                    475: 21220 IVFAIL = IVFAIL + 1                                               04720012
                    476:       IVCOMP=IVON01                                                     04730012
                    477:       IVCORR=15                                                         04740012
                    478:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04750012
                    479:  1231 CONTINUE                                                          04760012
                    480:       IVTNUM = 123                                                      04770012
                    481: C                                                                       04780012
                    482: C     NOTE ****  TEST 123 WAS DELETED BY FCCTS.                         04790012
                    483: C                                                                       04800012
                    484:       IF (ICZERO) 31230, 1230, 31230                                    04810012
                    485:  1230 CONTINUE                                                          04820012
                    486: 31230 IVDELE = IVDELE + 1                                               04830012
                    487:       WRITE (I02,80003) IVTNUM                                          04840012
                    488:       IF (ICZERO) 41230, 1241, 41230                                    04850012
                    489: 41230 IF ( IVON01 - 20 )  21230, 11230, 21230                           04860012
                    490: 11230 IVPASS = IVPASS + 1                                               04870012
                    491:       WRITE (I02,80001) IVTNUM                                          04880012
                    492:       GO TO 1241                                                        04890012
                    493: 21230 IVFAIL = IVFAIL + 1                                               04900012
                    494:       IVCOMP=IVON01                                                     04910012
                    495:       IVCORR=20                                                         04920012
                    496:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04930012
                    497:  1241 CONTINUE                                                          04940012
                    498:       IVTNUM = 124                                                      04950012
                    499: C                                                                       04960012
                    500: C     TEST 124  -  THIS IS A TEST OF A TRIPLE NESTED DO RANGE WITH      04970012
                    501: C           AN UNCONDITIONAL GO TO STATEMENT BRANCH IN THE INNERMOST    04980012
                    502: C           NESTED DO TO THE COMMON TERMINAL STATEMENT.  THE FINAL      04990012
                    503: C           LOOP COUNTER VALUE SHOULD BE ONE HUNDRED AND FORTY-TWO (142)05000012
                    504: C           THE INITIAL VALUE OF THE INNERMOST DO RANGE IS TWO (2).     05010012
                    505: C                                                                       05020012
                    506: C                                                                       05030012
                    507:       IF (ICZERO) 31240, 1240, 31240                                    05040012
                    508:  1240 CONTINUE                                                          05050012
                    509:       IVON01=0                                                          05060012
                    510:       DO 1242 I2=1,5,1                                                  05070012
                    511:       DO 1242 I3=2,8,1                                                  05080012
                    512:       DO 1242 I1=1,4,1                                                  05090012
                    513:       IVON01=IVON01+1                                                   05100012
                    514:       GO TO 1242                                                        05110012
                    515:  1242 CONTINUE                                                          05120012
                    516:       GO TO 41240                                                       05130012
                    517: 31240 IVDELE = IVDELE + 1                                               05140012
                    518:       WRITE (I02,80003) IVTNUM                                          05150012
                    519:       IF (ICZERO) 41240, 1251, 41240                                    05160012
                    520: 41240 IF ( IVON01 - 140 )  21240, 11240, 21240                          05170012
                    521: 11240 IVPASS = IVPASS + 1                                               05180012
                    522:       WRITE (I02,80001) IVTNUM                                          05190012
                    523:       GO TO 1251                                                        05200012
                    524: 21240 IVFAIL = IVFAIL + 1                                               05210012
                    525:       IVCOMP=IVON01                                                     05220012
                    526:       IVCORR=140                                                        05230012
                    527:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05240012
                    528:  1251 CONTINUE                                                          05250012
                    529:       IVTNUM = 125                                                      05260012
                    530: C                                                                       05270012
                    531: C     TEST 125  -  THIS IS BASICALLY THE SAME AS TEST 124 EXCEPT THAT   05280012
                    532: C           AN ARITHMETIC IF BRANCH IS USED INSTEAD OF THE GO TO        05290012
                    533: C           STATEMENT FOR THE BRANCH TO THE TERMINAL STATEMENT COMMON   05300012
                    534: C           TO ALL THREE OF THE DO RANGES.                              05310012
                    535: C           THE FINAL VALUE OF THE LOOP COUNTER SHOULD BE ONE           05320012
                    536: C           HUNDRED AND FORTY (140).                                    05330012
                    537: C                                                                       05340012
                    538: C                                                                       05350012
                    539:       IF (ICZERO) 31250, 1250, 31250                                    05360012
                    540:  1250 CONTINUE                                                          05370012
                    541:       IVON01=0                                                          05380012
                    542:       DO 1252 I1=1,4,1                                                  05390012
                    543:       DO 1252 I2=1,5,1                                                  05400012
                    544:       DO 1252 I3=2,8,1                                                  05410012
                    545:       IVON01=IVON01+1                                                   05420012
                    546:       IF ( I3 - 9 ) 1252, 1252, 1253                                    05430012
                    547:  1252 CONTINUE                                                          05440012
                    548:  1253 CONTINUE                                                          05450012
                    549:       GO TO 41250                                                       05460012
                    550: 31250 IVDELE = IVDELE + 1                                               05470012
                    551:       WRITE (I02,80003) IVTNUM                                          05480012
                    552:       IF (ICZERO) 41250, 1261, 41250                                    05490012
                    553: 41250 IF ( IVON01 - 140 )  21250, 11250, 21250                          05500012
                    554: 11250 IVPASS = IVPASS + 1                                               05510012
                    555:       WRITE (I02,80001) IVTNUM                                          05520012
                    556:       GO TO 1261                                                        05530012
                    557: 21250 IVFAIL = IVFAIL + 1                                               05540012
                    558:       IVCOMP=IVON01                                                     05550012
                    559:       IVCORR=140                                                        05560012
                    560:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05570012
                    561:  1261 CONTINUE                                                          05580012
                    562: C                                                                       05590012
                    563: C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             05600012
                    564: 99999 CONTINUE                                                          05610012
                    565:       WRITE (I02,90002)                                                 05620012
                    566:       WRITE (I02,90006)                                                 05630012
                    567:       WRITE (I02,90002)                                                 05640012
                    568:       WRITE (I02,90002)                                                 05650012
                    569:       WRITE (I02,90007)                                                 05660012
                    570:       WRITE (I02,90002)                                                 05670012
                    571:       WRITE (I02,90008)  IVFAIL                                         05680012
                    572:       WRITE (I02,90009) IVPASS                                          05690012
                    573:       WRITE (I02,90010) IVDELE                                          05700012
                    574: C                                                                       05710012
                    575: C                                                                       05720012
                    576: C     TERMINATE ROUTINE EXECUTION                                       05730012
                    577:       STOP                                                              05740012
                    578: C                                                                       05750012
                    579: C     FORMAT STATEMENTS FOR PAGE HEADERS                                05760012
                    580: 90000 FORMAT (1H1)                                                      05770012
                    581: 90002 FORMAT (1H )                                                      05780012
                    582: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)            05790012
                    583: 90003 FORMAT (1H ,21X,11HVERSION 1.0)                                   05800012
                    584: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)        05810012
                    585: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 05820012
                    586: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 05830012
                    587: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)                             05840012
                    588: C                                                                       05850012
                    589: C     FORMAT STATEMENTS FOR RUN SUMMARIES                               05860012
                    590: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED)                        05870012
                    591: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED)                              05880012
                    592: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED)                             05890012
                    593: C                                                                       05900012
                    594: C     FORMAT STATEMENTS FOR TEST RESULTS                                05910012
                    595: 80001 FORMAT (1H ,4X,I5,7X,4HPASS)                                      05920012
                    596: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL)                                      05930012
                    597: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED)                                   05940012
                    598: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)                         05950012
                    599: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)                    05960012
                    600: C                                                                       05970012
                    601: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM012)                          05980012
                    602:       END                                                               05990012

unix.superglobalmegacorp.com

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