|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.