|
|
1.1 ! root 1: PROGRAM FM257 00010257 ! 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 00020257 ! 6: C 00030257 ! 7: C 00040257 ! 8: C THIS ROUTINE IS A TEST OF THE PAUSE AND STOP STATEMENTS. THESE00050257 ! 9: C STATEMENTS CAN NOW BE FOLLOWED BY A STRING OF NOT MORE THAN FIVE 00060257 ! 10: C DIGITS, OR A CHARACTER CONSTANT. 00070257 ! 11: C 00080257 ! 12: C REFERENCES 00090257 ! 13: C REFERENCES 00100257 ! 14: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00110257 ! 15: C X3.9-1978 00120257 ! 16: C SECTION 11.12, STOP STATEMENT 00130257 ! 17: C SECTION 11.13, PAUSE STATEMENT 00140257 ! 18: C 00150257 ! 19: C FM015 - TESTS THE STOP AND PAUSE STATEMENTS USING AN OCTAL 00160257 ! 20: C DIGIT STRING OF LENGTH FROM ONE TO FIVE. 00170257 ! 21: C 00180257 ! 22: C 00190257 ! 23: C 00200257 ! 24: C ******************************************************************00210257 ! 25: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00220257 ! 26: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00230257 ! 27: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00240257 ! 28: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00250257 ! 29: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00260257 ! 30: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00270257 ! 31: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00280257 ! 32: C THE RESULT OF EXECUTING THESE TESTS. 00290257 ! 33: C 00300257 ! 34: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00310257 ! 35: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00320257 ! 36: C 00330257 ! 37: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00340257 ! 38: C DEPARTMENT OF THE NAVY 00350257 ! 39: C FEDERAL COBOL COMPILER TESTING SERVICE 00360257 ! 40: C WASHINGTON, D.C. 20376 00370257 ! 41: C 00380257 ! 42: C ******************************************************************00390257 ! 43: C 00400257 ! 44: C 00410257 ! 45: IMPLICIT LOGICAL (L) 00420257 ! 46: IMPLICIT CHARACTER*14 (C) 00430257 ! 47: C 00440257 ! 48: C 00450257 ! 49: C 00460257 ! 50: C INITIALIZATION SECTION. 00470257 ! 51: C 00480257 ! 52: C INITIALIZE CONSTANTS 00490257 ! 53: C ******************** 00500257 ! 54: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00510257 ! 55: I01 = 5 00520257 ! 56: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00530257 ! 57: I02 = 6 00540257 ! 58: C SYSTEM ENVIRONMENT SECTION 00550257 ! 59: C 00560257 ! 60: I01 = 5 00570257 ! 61: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00580257 ! 62: C (UNIT NUMBER FOR CARD READER). 00590257 ! 63: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00600257 ! 64: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00610257 ! 65: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00620257 ! 66: C 00630257 ! 67: I02 = 6 00640257 ! 68: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00650257 ! 69: C (UNIT NUMBER FOR PRINTER). 00660257 ! 70: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00670257 ! 71: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00680257 ! 72: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00690257 ! 73: C 00700257 ! 74: IVPASS = 0 00710257 ! 75: IVFAIL = 0 00720257 ! 76: IVDELE = 0 00730257 ! 77: ICZERO = 0 00740257 ! 78: C 00750257 ! 79: C WRITE OUT PAGE HEADERS 00760257 ! 80: C 00770257 ! 81: WRITE (I02,90002) 00780257 ! 82: WRITE (I02,90006) 00790257 ! 83: WRITE (I02,90008) 00800257 ! 84: WRITE (I02,90004) 00810257 ! 85: WRITE (I02,90010) 00820257 ! 86: WRITE (I02,90004) 00830257 ! 87: WRITE (I02,90016) 00840257 ! 88: WRITE (I02,90001) 00850257 ! 89: WRITE (I02,90004) 00860257 ! 90: WRITE (I02,90012) 00870257 ! 91: WRITE (I02,90014) 00880257 ! 92: WRITE (I02,90004) 00890257 ! 93: C 00900257 ! 94: C 00910257 ! 95: C 00920257 ! 96: C THE FOLLOWING SERIES OF TESTS CHECK THE VARIOUS FORMS OF THE 00930257 ! 97: C PAUSE STATEMENT. IN EACH CASE THE WORD PAUSE (FOLLOWED BY A 00940257 ! 98: C STRING OF CHARACTERS AS NOTED IN EACH TEST DESCRIPTION), SHOULD BE00950257 ! 99: C DISPLAYED ON THE OPERATORS CONSOLE. FOR EACH TEST THE OPERATOR 00960257 ! 100: C NEED ONLY DO WHATEVER IS NESSARY TO TELL THE SYSTEM TO CONTINUE 00970257 ! 101: C THE EXECUTION OF THE ROUTINE. THE STRING FORMS ARE AS DESCRIBED 00980257 ! 102: C IN SECTION 11.13. 00990257 ! 103: C 01000257 ! 104: C 01010257 ! 105: C 01020257 ! 106: C **** FCVS PROGRAM 257 - TEST 001 **** 01030257 ! 107: C 01040257 ! 108: C TEST 001 CHECKS THE PAUSE STATEMENT THAT IS NOT FOLLOWED BY 01050257 ! 109: C A STRING OF ANYTHING EXCEPT BLANKS. ONLY THE WORD PAUSE SHOULD 01060257 ! 110: C BE DISPLAYED. 01070257 ! 111: C 01080257 ! 112: C 01090257 ! 113: IVTNUM = 1 01100257 ! 114: IF (ICZERO) 30010, 0010, 30010 01110257 ! 115: 0010 CONTINUE 01120257 ! 116: PAUSE 01130257 ! 117: C 01140257 ! 118: C ***** THESE CARDS INITIALIZE IVCOMP AND IVCORR FOR THE NEXT 01150257 ! 119: C FIVE TESTS EVEN THOUGH THEY ONLY APPEAR IN THE FAIL CODE 01160257 ! 120: C OF THE BOILERPLATE.***** 01170257 ! 121: IVCOMP = 1 01180257 ! 122: IVCORR = 1 01190257 ! 123: C 01200257 ! 124: C 01210257 ! 125: 40010 IF ( ICZERO ) 20010, 10010, 20010 01220257 ! 126: 30010 IVDELE = IVDELE + 1 01230257 ! 127: WRITE (I02,80000) IVTNUM 01240257 ! 128: IF (ICZERO) 10010, 0021, 20010 01250257 ! 129: 10010 IVPASS = IVPASS + 1 01260257 ! 130: WRITE (I02,80002) IVTNUM 01270257 ! 131: GO TO 0021 01280257 ! 132: 20010 IVFAIL = IVFAIL + 1 01290257 ! 133: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300257 ! 134: 0021 CONTINUE 01310257 ! 135: C 01320257 ! 136: C **** FCVS PROGRAM 257 - TEST 002 **** 01330257 ! 137: C 01340257 ! 138: C TEST 002 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY A SINGLE 01350257 ! 139: C CHARACTER ZERO (0). 01360257 ! 140: C 01370257 ! 141: C 01380257 ! 142: IVTNUM = 2 01390257 ! 143: IF (ICZERO) 30020, 0020, 30020 01400257 ! 144: 0020 CONTINUE 01410257 ! 145: PAUSE 0 01420257 ! 146: 40020 IF ( ICZERO ) 20020, 10020, 20020 01430257 ! 147: 30020 IVDELE = IVDELE + 1 01440257 ! 148: WRITE (I02,80000) IVTNUM 01450257 ! 149: IF (ICZERO) 10020, 0031, 20020 01460257 ! 150: 10020 IVPASS = IVPASS + 1 01470257 ! 151: WRITE (I02,80002) IVTNUM 01480257 ! 152: GO TO 0031 01490257 ! 153: 20020 IVFAIL = IVFAIL + 1 01500257 ! 154: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01510257 ! 155: 0031 CONTINUE 01520257 ! 156: C 01530257 ! 157: C **** FCVS PROGRAM 257 - TEST 003 **** 01540257 ! 158: C 01550257 ! 159: C TEST 003 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY A STRING OF 01560257 ! 160: C FIVE ZEROS (00000). 01570257 ! 161: C 01580257 ! 162: C 01590257 ! 163: IVTNUM = 3 01600257 ! 164: IF (ICZERO) 30030, 0030, 30030 01610257 ! 165: 0030 CONTINUE 01620257 ! 166: PAUSE 00000 01630257 ! 167: 40030 IF ( ICZERO ) 20030, 10030, 20030 01640257 ! 168: 30030 IVDELE = IVDELE + 1 01650257 ! 169: WRITE (I02,80000) IVTNUM 01660257 ! 170: IF (ICZERO) 10030, 0041, 20030 01670257 ! 171: 10030 IVPASS = IVPASS + 1 01680257 ! 172: WRITE (I02,80002) IVTNUM 01690257 ! 173: GO TO 0041 01700257 ! 174: 20030 IVFAIL = IVFAIL + 1 01710257 ! 175: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01720257 ! 176: 0041 CONTINUE 01730257 ! 177: C 01740257 ! 178: C **** FCVS PROGRAM 257 - TEST 004 **** 01750257 ! 179: C 01760257 ! 180: C TEST 004 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY THE STRING 01770257 ! 181: C OF FIVE CHARACTERS 19283. 01780257 ! 182: C 01790257 ! 183: C 01800257 ! 184: IVTNUM = 4 01810257 ! 185: IF (ICZERO) 30040, 0040, 30040 01820257 ! 186: 0040 CONTINUE 01830257 ! 187: PAUSE 19283 01840257 ! 188: 40040 IF ( ICZERO ) 20040, 10040, 20040 01850257 ! 189: 30040 IVDELE = IVDELE + 1 01860257 ! 190: WRITE (I02,80000) IVTNUM 01870257 ! 191: IF (ICZERO) 10040, 0051, 20040 01880257 ! 192: 10040 IVPASS = IVPASS + 1 01890257 ! 193: WRITE (I02,80002) IVTNUM 01900257 ! 194: GO TO 0051 01910257 ! 195: 20040 IVFAIL = IVFAIL + 1 01920257 ! 196: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01930257 ! 197: 0051 CONTINUE 01940257 ! 198: C 01950257 ! 199: C **** FCVS PROGRAM 257 - TEST 005 **** 01960257 ! 200: C 01970257 ! 201: C TEST 005 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY THE STRING 01980257 ! 202: C OF FOUR NINES (9999). 01990257 ! 203: C 02000257 ! 204: C 02010257 ! 205: IVTNUM = 5 02020257 ! 206: IF (ICZERO) 30050, 0050, 30050 02030257 ! 207: 0050 CONTINUE 02040257 ! 208: PAUSE 9999 02050257 ! 209: 40050 IF ( ICZERO ) 20050, 10050, 20050 02060257 ! 210: 30050 IVDELE = IVDELE + 1 02070257 ! 211: WRITE (I02,80000) IVTNUM 02080257 ! 212: IF (ICZERO) 10050, 0061, 20050 02090257 ! 213: 10050 IVPASS = IVPASS + 1 02100257 ! 214: WRITE (I02,80002) IVTNUM 02110257 ! 215: GO TO 0061 02120257 ! 216: 20050 IVFAIL = IVFAIL + 1 02130257 ! 217: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02140257 ! 218: 0061 CONTINUE 02150257 ! 219: C 02160257 ! 220: C **** FCVS PROGRAM 257 - TEST 006 **** 02170257 ! 221: C 02180257 ! 222: C TEST 006 IS FOR THE STOP STATEMENT - SECTION 11.12. 02190257 ! 223: C SINCE THE STOP STATEMENT CAN ONLY BE EXECUTED ONCE IN A PROGRAM 02200257 ! 224: C UNIT, VARIOUS FORMATS OF THE STOP STATEMENT WILL BE CHECKED FOR 02210257 ! 225: C SYNTAX ONLY BY THE USE OF A COMPUTED GO TO STATEMENT. 02220257 ! 226: C 02230257 ! 227: C ONCE THE STOP STATEMENT HAS BEEN EXECUTED, THEN THE ROUTINE 02240257 ! 228: C FM257 SHOULD NO LONGER EXECUTE. ANY CONTINUATION IS CONSIDERED AS02250257 ! 229: C A FAILURE OF THIS TEST. 02260257 ! 230: C 02270257 ! 231: C 02280257 ! 232: IVTNUM = 6 02290257 ! 233: IF (ICZERO) 30060, 0060, 30060 02300257 ! 234: 0060 CONTINUE 02310257 ! 235: IVON01 = 6 02320257 ! 236: GO TO ( 0062, 0063, 0064, 0065, 0066, 0067, 40060 ), IVON01 02330257 ! 237: C 02340257 ! 238: 0062 STOP 0 02350257 ! 239: 0063 STOP 00000 02360257 ! 240: 0064 STOP 12345 02370257 ! 241: 0065 STOP 9999 02380257 ! 242: 0066 STOP 'IMA 1' 02390257 ! 243: 0067 STOP 'P ASS' 02400257 ! 244: C 02410257 ! 245: C **** THE TEST FAILS IF IT GOES BEYOND THE STOP STATEMENTS ****02420257 ! 246: C 02430257 ! 247: 40060 IF ( ICZERO ) 10060, 20060, 10060 02440257 ! 248: C ***** NOTE THAT THE NORMAL PASS-10060 AND FAIL-20060 LABELS 02450257 ! 249: C ARE REVERSED BECAUSE IF THE LOGIC EXECUTES THIS STATEMENT 02460257 ! 250: C THEN THE STOP STATEMENT FAILS TO EXECUTE CORRECTLY. ***** 02470257 ! 251: 30060 IVDELE = IVDELE + 1 02480257 ! 252: WRITE (I02,80000) IVTNUM 02490257 ! 253: IF (ICZERO) 10060, 0071, 20060 02500257 ! 254: 10060 IVPASS = IVPASS + 1 02510257 ! 255: WRITE (I02,80002) IVTNUM 02520257 ! 256: GO TO 0071 02530257 ! 257: 20060 IVFAIL = IVFAIL + 1 02540257 ! 258: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02550257 ! 259: 0071 CONTINUE 02560257 ! 260: C 02570257 ! 261: C 02580257 ! 262: C WRITE OUT TEST SUMMARY 02590257 ! 263: C 02600257 ! 264: WRITE (I02,90004) 02610257 ! 265: WRITE (I02,90014) 02620257 ! 266: WRITE (I02,90004) 02630257 ! 267: WRITE (I02,90000) 02640257 ! 268: WRITE (I02,90004) 02650257 ! 269: WRITE (I02,90020) IVFAIL 02660257 ! 270: WRITE (I02,90022) IVPASS 02670257 ! 271: WRITE (I02,90024) IVDELE 02680257 ! 272: STOP 02690257 ! 273: 90001 FORMAT (1H ,24X,5HFM257) 02700257 ! 274: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM257) 02710257 ! 275: C 02720257 ! 276: C FORMATS FOR TEST DETAIL LINES 02730257 ! 277: C 02740257 ! 278: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 02750257 ! 279: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 02760257 ! 280: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 02770257 ! 281: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 02780257 ! 282: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 02790257 ! 283: C 02800257 ! 284: C FORMAT STATEMENTS FOR PAGE HEADERS 02810257 ! 285: C 02820257 ! 286: 90002 FORMAT (1H1) 02830257 ! 287: 90004 FORMAT (1H ) 02840257 ! 288: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 02850257 ! 289: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 02860257 ! 290: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 02870257 ! 291: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 02880257 ! 292: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 02890257 ! 293: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 02900257 ! 294: C 02910257 ! 295: C FORMAT STATEMENTS FOR RUN SUMMARY 02920257 ! 296: C 02930257 ! 297: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 02940257 ! 298: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 02950257 ! 299: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 02960257 ! 300: END 02970257
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.