|
|
1.1 ! root 1: C 00010013 ! 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. 00020013 ! 6: C 00030013 ! 7: C FM013 00040013 ! 8: C 00050013 ! 9: C THIS ROUTINE TESTS THE FORTRAN ASSIGNED GO TO STATEMENT 00060013 ! 10: C AS DESCRIBED IN SECTION 11.3 (ASSIGNED GO TO STATEMENT). FIRST A 00070013 ! 11: C STATEMENT LABEL IS ASSIGNED TO AN INTEGER VARIABLE IN THE ASSIGN 00080013 ! 12: C STATEMENT. SECONDLY A BRANCH IS MADE IN AN ASSIGNED GO TO 00090013 ! 13: C STATEMENT USING THE INTEGER VARIABLE AS THE BRANCH CONTROLLER 00100013 ! 14: C IN A LIST OF POSSIBLE STATEMENT NUMBERS TO BE BRANCHED TO. 00110013 ! 15: C 00120013 ! 16: C REFERENCES 00130013 ! 17: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140013 ! 18: C X3.9-1978 00150013 ! 19: C 00160013 ! 20: C SECTION 10.3, STATEMENT LABEL ASSIGNMENT (ASSIGN) STATEMENT 00170013 ! 21: C SECTION 11.3, ASSIGNED GO TO STATEMENT 00180013 ! 22: C 00190013 ! 23: C 00200013 ! 24: C ********************************************************** 00210013 ! 25: C 00220013 ! 26: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00230013 ! 27: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00240013 ! 28: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00250013 ! 29: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00260013 ! 30: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00270013 ! 31: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00280013 ! 32: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00290013 ! 33: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00300013 ! 34: C OF EXECUTING THESE TESTS. 00310013 ! 35: C 00320013 ! 36: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00330013 ! 37: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00340013 ! 38: C 00350013 ! 39: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00360013 ! 40: C 00370013 ! 41: C DEPARTMENT OF THE NAVY 00380013 ! 42: C FEDERAL COBOL COMPILER TESTING SERVICE 00390013 ! 43: C WASHINGTON, D.C. 20376 00400013 ! 44: C 00410013 ! 45: C ********************************************************** 00420013 ! 46: C 00430013 ! 47: C 00440013 ! 48: C 00450013 ! 49: C INITIALIZATION SECTION 00460013 ! 50: C 00470013 ! 51: C INITIALIZE CONSTANTS 00480013 ! 52: C ************** 00490013 ! 53: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00500013 ! 54: I01 = 5 00510013 ! 55: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00520013 ! 56: I02 = 6 00530013 ! 57: C SYSTEM ENVIRONMENT SECTION 00540013 ! 58: C 00550013 ! 59: I01 = 5 00560013 ! 60: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00570013 ! 61: C (UNIT NUMBER FOR CARD READER). 00580013 ! 62: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00590013 ! 63: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00600013 ! 64: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00610013 ! 65: C 00620013 ! 66: I02 = 6 00630013 ! 67: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00640013 ! 68: C (UNIT NUMBER FOR PRINTER). 00650013 ! 69: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00660013 ! 70: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00670013 ! 71: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00680013 ! 72: C 00690013 ! 73: IVPASS=0 00700013 ! 74: IVFAIL=0 00710013 ! 75: IVDELE=0 00720013 ! 76: ICZERO=0 00730013 ! 77: C 00740013 ! 78: C WRITE PAGE HEADERS 00750013 ! 79: WRITE (I02,90000) 00760013 ! 80: WRITE (I02,90001) 00770013 ! 81: WRITE (I02,90002) 00780013 ! 82: WRITE (I02, 90002) 00790013 ! 83: WRITE (I02,90003) 00800013 ! 84: WRITE (I02,90002) 00810013 ! 85: WRITE (I02,90004) 00820013 ! 86: WRITE (I02,90002) 00830013 ! 87: WRITE (I02,90011) 00840013 ! 88: WRITE (I02,90002) 00850013 ! 89: WRITE (I02,90002) 00860013 ! 90: WRITE (I02,90005) 00870013 ! 91: WRITE (I02,90006) 00880013 ! 92: WRITE (I02,90002) 00890013 ! 93: IVTNUM = 126 00900013 ! 94: C 00910013 ! 95: C TEST 126 - THIS TESTS THE SIMPLE ASSIGN STATEMENT IN PREPARATION00920013 ! 96: C FOR THE ASSIGNED GO TO TEST TO FOLLOW. 00930013 ! 97: C THE ASSIGNED GO TO IS THE SIMPLIST FORM OF THE STATEMENT. 00940013 ! 98: C 00950013 ! 99: C 00960013 ! 100: IF (ICZERO) 31260, 1260, 31260 00970013 ! 101: 1260 CONTINUE 00980013 ! 102: ASSIGN 1263 TO I 00990013 ! 103: GO TO I, (1262,1263,1264) 01000013 ! 104: 1262 ICON01 = 1262 01010013 ! 105: GO TO 1265 01020013 ! 106: 1263 ICON01 = 1263 01030013 ! 107: GO TO 1265 01040013 ! 108: 1264 ICON01 = 1264 01050013 ! 109: 1265 CONTINUE 01060013 ! 110: GO TO 41260 01070013 ! 111: 31260 IVDELE = IVDELE + 1 01080013 ! 112: WRITE (I02,80003) IVTNUM 01090013 ! 113: IF (ICZERO) 41260, 1271, 41260 01100013 ! 114: 41260 IF ( ICON01 - 1263 ) 21260, 11260, 21260 01110013 ! 115: 11260 IVPASS = IVPASS + 1 01120013 ! 116: WRITE (I02,80001) IVTNUM 01130013 ! 117: GO TO 1271 01140013 ! 118: 21260 IVFAIL = IVFAIL + 1 01150013 ! 119: IVCOMP=ICON01 01160013 ! 120: IVCORR = 1263 01170013 ! 121: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01180013 ! 122: 1271 CONTINUE 01190013 ! 123: IVTNUM = 127 01200013 ! 124: C 01210013 ! 125: C TEST 127 - THIS IS A TEST OF MORE COMPLEX BRANCHING USING 01220013 ! 126: C THE ASSIGN AND ASSIGNED GO TO STATEMENTS. THIS TEST IS NOT 01230013 ! 127: C INTENDED TO BE AN EXAMPLE OF STRUCTURED PROGRAMMING. 01240013 ! 128: C 01250013 ! 129: C 01260013 ! 130: IF (ICZERO) 31270, 1270, 31270 01270013 ! 131: 1270 CONTINUE 01280013 ! 132: IVON01=0 01290013 ! 133: 1272 ASSIGN 1273 TO J 01300013 ! 134: IVON01=IVON01+1 01310013 ! 135: GO TO 1276 01320013 ! 136: 1273 ASSIGN 1274 TO J 01330013 ! 137: IVON01=IVON01 * 10 + 2 01340013 ! 138: GO TO 1276 01350013 ! 139: 1274 ASSIGN 1275 TO J 01360013 ! 140: IVON01=IVON01 * 100 + 3 01370013 ! 141: GO TO 1276 01380013 ! 142: 1275 GO TO 1277 01390013 ! 143: 1276 GO TO J, ( 1272, 1273, 1274, 1275 ) 01400013 ! 144: 1277 CONTINUE 01410013 ! 145: GO TO 41270 01420013 ! 146: 31270 IVDELE = IVDELE + 1 01430013 ! 147: WRITE (I02,80003) IVTNUM 01440013 ! 148: IF (ICZERO) 41270, 1281, 41270 01450013 ! 149: 41270 IF ( IVON01 - 1203 ) 21270, 11270, 21270 01460013 ! 150: 11270 IVPASS = IVPASS + 1 01470013 ! 151: WRITE (I02,80001) IVTNUM 01480013 ! 152: GO TO 1281 01490013 ! 153: 21270 IVFAIL = IVFAIL + 1 01500013 ! 154: IVCOMP=IVON01 01510013 ! 155: IVCORR=1203 01520013 ! 156: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01530013 ! 157: 1281 CONTINUE 01540013 ! 158: IVTNUM = 128 01550013 ! 159: C 01560013 ! 160: C TEST 128 - TEST OF THE ASSIGNED GO TO WITH ALL OF THE 01570013 ! 161: C STATEMENT NUMBERS IN THE ASSIGNED GO TO LIST THE SAME 01580013 ! 162: C VALUE EXCEPT FOR ONE. 01590013 ! 163: C 01600013 ! 164: C 01610013 ! 165: IF (ICZERO) 31280, 1280, 31280 01620013 ! 166: 1280 CONTINUE 01630013 ! 167: ICON01=0 01640013 ! 168: ASSIGN 1283 TO K 01650013 ! 169: GO TO K, ( 1282, 1282, 1282, 1282, 1282, 1282, 1283 ) 01660013 ! 170: 1282 ICON01 = 0 01670013 ! 171: GO TO 1284 01680013 ! 172: 1283 ICON01 = 1 01690013 ! 173: 1284 CONTINUE 01700013 ! 174: GO TO 41280 01710013 ! 175: 31280 IVDELE = IVDELE + 1 01720013 ! 176: WRITE (I02,80003) IVTNUM 01730013 ! 177: IF (ICZERO) 41280, 1291, 41280 01740013 ! 178: 41280 IF ( ICON01 - 1 ) 21280, 11280, 21280 01750013 ! 179: 11280 IVPASS = IVPASS + 1 01760013 ! 180: WRITE (I02,80001) IVTNUM 01770013 ! 181: GO TO 1291 01780013 ! 182: 21280 IVFAIL = IVFAIL + 1 01790013 ! 183: IVCOMP=ICON01 01800013 ! 184: IVCORR=1 01810013 ! 185: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01820013 ! 186: 1291 CONTINUE 01830013 ! 187: IVTNUM = 129 01840013 ! 188: C 01850013 ! 189: C TEST 129 - THIS TESTS THE ASSIGN STATEMENT IN CONJUNCTION 01860013 ! 190: C WITH THE NORMAL ARITHMETIC ASSIGN STATEMENT. THE VALUE 01870013 ! 191: C OF THE INDEX FOR THE ASSIGNED GO TO STATEMENT IS CHANGED BY 01880013 ! 192: C THE COMBINATION OF STATEMENTS. 01890013 ! 193: C 01900013 ! 194: C 01910013 ! 195: IF (ICZERO) 31290, 1290, 31290 01920013 ! 196: 1290 CONTINUE 01930013 ! 197: ICON01=0 01940013 ! 198: ASSIGN 1292 TO L 01950013 ! 199: L = 1293 01960013 ! 200: ASSIGN 1294 TO L 01970013 ! 201: GO TO L, ( 1294, 1293, 1292 ) 01980013 ! 202: 1292 ICON01 = 0 01990013 ! 203: GO TO 1295 02000013 ! 204: 1293 ICON01 = 0 02010013 ! 205: GO TO 1295 02020013 ! 206: 1294 ICON01 = 1 02030013 ! 207: 1295 CONTINUE 02040013 ! 208: GO TO 41290 02050013 ! 209: 31290 IVDELE = IVDELE + 1 02060013 ! 210: WRITE (I02,80003) IVTNUM 02070013 ! 211: IF (ICZERO) 41290, 1301, 41290 02080013 ! 212: 41290 IF ( ICON01 - 1 ) 21290, 11290, 21290 02090013 ! 213: 11290 IVPASS = IVPASS + 1 02100013 ! 214: WRITE (I02,80001) IVTNUM 02110013 ! 215: GO TO 1301 02120013 ! 216: 21290 IVFAIL = IVFAIL + 1 02130013 ! 217: IVCOMP=ICON01 02140013 ! 218: IVCORR=1 02150013 ! 219: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02160013 ! 220: 1301 CONTINUE 02170013 ! 221: IVTNUM = 130 02180013 ! 222: C 02190013 ! 223: C TEST 130 - THIS IS A TEST OF A LOOP USING A COMBINATION OF THE 02200013 ! 224: C ASSIGNED GO TO STATEMENT AND THE ARITHMETIC IF STATEMENT. 02210013 ! 225: C THE LOOP SHOULD BE EXECUTED ELEVEN (11) TIMES THEN CONTROL 02220013 ! 226: C SHOULD PASS TO THE CHECK OF THE VALUE FOR IVON01. 02230013 ! 227: C 02240013 ! 228: C 02250013 ! 229: IF (ICZERO) 31300, 1300, 31300 02260013 ! 230: 1300 CONTINUE 02270013 ! 231: IVON01=0 02280013 ! 232: 1302 ASSIGN 1302 TO M 02290013 ! 233: IVON01=IVON01+1 02300013 ! 234: IF ( IVON01 - 10 ) 1303, 1303, 1304 02310013 ! 235: 1303 GO TO 1305 02320013 ! 236: 1304 ASSIGN 1306 TO M 02330013 ! 237: 1305 GO TO M, ( 1302, 1306 ) 02340013 ! 238: 1306 CONTINUE 02350013 ! 239: GO TO 41300 02360013 ! 240: 31300 IVDELE = IVDELE + 1 02370013 ! 241: WRITE (I02,80003) IVTNUM 02380013 ! 242: IF (ICZERO) 41300, 1311, 41300 02390013 ! 243: 41300 IF ( IVON01 - 11 ) 21300, 11300, 21300 02400013 ! 244: 11300 IVPASS = IVPASS + 1 02410013 ! 245: WRITE (I02,80001) IVTNUM 02420013 ! 246: GO TO 1311 02430013 ! 247: 21300 IVFAIL = IVFAIL + 1 02440013 ! 248: IVCOMP=IVON01 02450013 ! 249: IVCORR=11 02460013 ! 250: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02470013 ! 251: 1311 CONTINUE 02480013 ! 252: C 02490013 ! 253: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 02500013 ! 254: 99999 CONTINUE 02510013 ! 255: WRITE (I02,90002) 02520013 ! 256: WRITE (I02,90006) 02530013 ! 257: WRITE (I02,90002) 02540013 ! 258: WRITE (I02,90002) 02550013 ! 259: WRITE (I02,90007) 02560013 ! 260: WRITE (I02,90002) 02570013 ! 261: WRITE (I02,90008) IVFAIL 02580013 ! 262: WRITE (I02,90009) IVPASS 02590013 ! 263: WRITE (I02,90010) IVDELE 02600013 ! 264: C 02610013 ! 265: C 02620013 ! 266: C TERMINATE ROUTINE EXECUTION 02630013 ! 267: STOP 02640013 ! 268: C 02650013 ! 269: C FORMAT STATEMENTS FOR PAGE HEADERS 02660013 ! 270: 90000 FORMAT (1H1) 02670013 ! 271: 90002 FORMAT (1H ) 02680013 ! 272: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 02690013 ! 273: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 02700013 ! 274: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 02710013 ! 275: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 02720013 ! 276: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 02730013 ! 277: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 02740013 ! 278: C 02750013 ! 279: C FORMAT STATEMENTS FOR RUN SUMMARIES 02760013 ! 280: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 02770013 ! 281: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 02780013 ! 282: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 02790013 ! 283: C 02800013 ! 284: C FORMAT STATEMENTS FOR TEST RESULTS 02810013 ! 285: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 02820013 ! 286: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 02830013 ! 287: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 02840013 ! 288: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 02850013 ! 289: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 02860013 ! 290: C 02870013 ! 291: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM013) 02880013 ! 292: END 02890013
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.