|
|
1.1 ! root 1: C 00010020 ! 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. 00020020 ! 6: C 00030020 ! 7: C FM020 00040020 ! 8: C 00050020 ! 9: C THIS ROUTINE TESTS THE FORTRAN IN-LINE STATEMENT FUNCTION 00060020 ! 10: C OF TYPE LOGICAL AND INTEGER. INTEGER CONSTANTS, LOGICAL CONSTANTS00070020 ! 11: C INTEGER VARIABLES, LOGICAL VARIABLES, INTEGER ARITHMETIC EXPRESS- 00080020 ! 12: C IONS ARE ALL USED TO TEST THE STATEMENT FUNCTION DEFINITION AND 00090020 ! 13: C THE VALUE RETURNED FOR THE STATEMENT FUNCTION WHEN IT IS USED 00100020 ! 14: C IN THE MAIN BODY OF THE PROGRAM. 00110020 ! 15: C 00120020 ! 16: C REFERENCES 00130020 ! 17: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140020 ! 18: C X3.9-1978 00150020 ! 19: C 00160020 ! 20: C SECTION 8.4.1, INTEGER, REAL, DOUBLE PRECISION, COMPLEX, AND 00170020 ! 21: C LOGICAL TYPE-STATEMENTS 00180020 ! 22: C SECTION 15.3.2, INTRINSIC FUNCTION REFERENCES 00190020 ! 23: C SECTION 15.4, STATEMENT FUNCTIONS 00200020 ! 24: C SECTION 15.4.1, FORMS OF A FUNCTION STATEMENT 00210020 ! 25: C SECTION 15.4.2, REFERENCING A STATEMENT FUNCTION 00220020 ! 26: C SECTION 15.5.2, EXTERNAL FUNCTION REFERENCES 00230020 ! 27: C 00240020 ! 28: LOGICAL LFTN01, LDTN01 00250020 ! 29: LOGICAL LFTN02, LDTN02 00260020 ! 30: LOGICAL LFTN03, LDTN03, LCTN03 00270020 ! 31: LOGICAL LFTN04, LDTN04, LCTN04 00280020 ! 32: DIMENSION IADN11(2) 00290020 ! 33: C 00300020 ! 34: C..... TEST 553 00310020 ! 35: IFON01(IDON01) = 32767 00320020 ! 36: C 00330020 ! 37: C..... TEST 554 00340020 ! 38: LFTN01(LDTN01) = .TRUE. 00350020 ! 39: C 00360020 ! 40: C..... TEST 555 00370020 ! 41: IFON02 ( IDON02 ) = IDON02 00380020 ! 42: C 00390020 ! 43: C..... TEST 556 00400020 ! 44: LFTN02( LDTN02 ) = LDTN02 00410020 ! 45: C 00420020 ! 46: C..... TEST 557 00430020 ! 47: IFON03 (IDON03 )= IDON03 00440020 ! 48: C 00450020 ! 49: C..... TEST 558 00460020 ! 50: LFTN03(LDTN03) = LDTN03 00470020 ! 51: C 00480020 ! 52: C..... TEST 559 00490020 ! 53: LFTN04(LDTN04) = .NOT. LDTN04 00500020 ! 54: C 00510020 ! 55: C..... TEST 560 00520020 ! 56: IFON04(IDON04) = IDON04 ** 2 00530020 ! 57: C 00540020 ! 58: C..... TEST 561 00550020 ! 59: IFON05(IDON05, IDON06) = IDON05 + IDON06 00560020 ! 60: C 00570020 ! 61: C..... TEST 562 00580020 ! 62: IFON06(IDON07, IDON08) = SQRT(FLOAT(IDON07**2)+FLOAT(IDON08**2)) 00590020 ! 63: C 00600020 ! 64: C..... TEST 563 00610020 ! 65: IFON07(IDON09) = IDON09 ** 2 00620020 ! 66: IFON08(I,J)=SQRT(FLOAT(IFON07(I))+FLOAT(IFON07(J))) 00630020 ! 67: C 00640020 ! 68: C..... TEST 564 00650020 ! 69: IFON09(K,L) = K / L + K ** L - K * L 00660020 ! 70: C 00670020 ! 71: C 00680020 ! 72: C 00690020 ! 73: C ********************************************************** 00700020 ! 74: C 00710020 ! 75: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00720020 ! 76: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00730020 ! 77: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00740020 ! 78: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00750020 ! 79: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00760020 ! 80: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00770020 ! 81: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00780020 ! 82: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00790020 ! 83: C OF EXECUTING THESE TESTS. 00800020 ! 84: C 00810020 ! 85: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00820020 ! 86: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00830020 ! 87: C 00840020 ! 88: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00850020 ! 89: C 00860020 ! 90: C DEPARTMENT OF THE NAVY 00870020 ! 91: C FEDERAL COBOL COMPILER TESTING SERVICE 00880020 ! 92: C WASHINGTON, D.C. 20376 00890020 ! 93: C 00900020 ! 94: C ********************************************************** 00910020 ! 95: C 00920020 ! 96: C 00930020 ! 97: C 00940020 ! 98: C INITIALIZATION SECTION 00950020 ! 99: C 00960020 ! 100: C INITIALIZE CONSTANTS 00970020 ! 101: C ************** 00980020 ! 102: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00990020 ! 103: I01 = 5 01000020 ! 104: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 01010020 ! 105: I02 = 6 01020020 ! 106: C SYSTEM ENVIRONMENT SECTION 01030020 ! 107: C 01040020 ! 108: I01 = 5 01050020 ! 109: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01060020 ! 110: C (UNIT NUMBER FOR CARD READER). 01070020 ! 111: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 01080020 ! 112: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01090020 ! 113: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01100020 ! 114: C 01110020 ! 115: I02 = 6 01120020 ! 116: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01130020 ! 117: C (UNIT NUMBER FOR PRINTER). 01140020 ! 118: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 01150020 ! 119: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01160020 ! 120: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01170020 ! 121: C 01180020 ! 122: IVPASS=0 01190020 ! 123: IVFAIL=0 01200020 ! 124: IVDELE=0 01210020 ! 125: ICZERO=0 01220020 ! 126: C 01230020 ! 127: C WRITE PAGE HEADERS 01240020 ! 128: WRITE (I02,90000) 01250020 ! 129: WRITE (I02,90001) 01260020 ! 130: WRITE (I02,90002) 01270020 ! 131: WRITE (I02, 90002) 01280020 ! 132: WRITE (I02,90003) 01290020 ! 133: WRITE (I02,90002) 01300020 ! 134: WRITE (I02,90004) 01310020 ! 135: WRITE (I02,90002) 01320020 ! 136: WRITE (I02,90011) 01330020 ! 137: WRITE (I02,90002) 01340020 ! 138: WRITE (I02,90002) 01350020 ! 139: WRITE (I02,90005) 01360020 ! 140: WRITE (I02,90006) 01370020 ! 141: WRITE (I02,90002) 01380020 ! 142: IVTNUM = 553 01390020 ! 143: C 01400020 ! 144: C **** TEST 553 **** 01410020 ! 145: C TEST 553 - THE VALUE OF THE INTEGER FUNCTION IS SET TO A 01420020 ! 146: C CONSTANT OF 32767 REGARDLESS OF THE VALUE OF THE ARGUEMENT 01430020 ! 147: C SUPPLIED TO THE DUMMY ARGUEMENT. TEST OF POSITIVE INTEGER 01440020 ! 148: C CONSTANTS FOR A STATEMENT FUNCTION. 01450020 ! 149: C 01460020 ! 150: C 01470020 ! 151: IF (ICZERO) 35530, 5530, 35530 01480020 ! 152: 5530 CONTINUE 01490020 ! 153: IVCOMP = IFON01(3) 01500020 ! 154: GO TO 45530 01510020 ! 155: 35530 IVDELE = IVDELE + 1 01520020 ! 156: WRITE (I02,80003) IVTNUM 01530020 ! 157: IF (ICZERO) 45530, 5541, 45530 01540020 ! 158: 45530 IF ( IVCOMP - 32767 ) 25530, 15530, 25530 01550020 ! 159: 15530 IVPASS = IVPASS + 1 01560020 ! 160: WRITE (I02,80001) IVTNUM 01570020 ! 161: GO TO 5541 01580020 ! 162: 25530 IVFAIL = IVFAIL + 1 01590020 ! 163: IVCORR = 32767 01600020 ! 164: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01610020 ! 165: 5541 CONTINUE 01620020 ! 166: IVTNUM = 554 01630020 ! 167: C 01640020 ! 168: C **** TEST 554 **** 01650020 ! 169: C TEST 554 - TEST OF THE STATEMENT FUNCTION OF TYPE LOGICAL 01660020 ! 170: C SET TO THE LOGICAL CONSTANT .TRUE. REGARDLESS OF THE 01670020 ! 171: C ARGUEMENT SUPPLIED TO THE DUMMY ARGUEMENT. 01680020 ! 172: C A LOGICAL IF STATEMENT IS USED IN CONJUNCTION WITH THE LOGICAL 01690020 ! 173: C STATEMENT FUNCTION. THE TRUE PATH IS TESTED. 01700020 ! 174: C 01710020 ! 175: C 01720020 ! 176: IF (ICZERO) 35540, 5540, 35540 01730020 ! 177: 5540 CONTINUE 01740020 ! 178: IVON01 = 0 01750020 ! 179: IF ( LFTN01(.FALSE.) ) IVON01 = 1 01760020 ! 180: GO TO 45540 01770020 ! 181: 35540 IVDELE = IVDELE + 1 01780020 ! 182: WRITE (I02,80003) IVTNUM 01790020 ! 183: IF (ICZERO) 45540, 5551, 45540 01800020 ! 184: 45540 IF ( IVON01 - 1 ) 25540, 15540, 25540 01810020 ! 185: 15540 IVPASS = IVPASS + 1 01820020 ! 186: WRITE (I02,80001) IVTNUM 01830020 ! 187: GO TO 5551 01840020 ! 188: 25540 IVFAIL = IVFAIL + 1 01850020 ! 189: IVCOMP = IVON01 01860020 ! 190: IVCORR = 1 01870020 ! 191: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01880020 ! 192: 5551 CONTINUE 01890020 ! 193: IVTNUM = 555 01900020 ! 194: C 01910020 ! 195: C **** TEST 555 **** 01920020 ! 196: C TEST 555 - THE INTEGER STATEMENT FUNCTION IS SET TO THE VALUE 01930020 ! 197: C OF THE ARGEUMENT SUPPLIED. 01940020 ! 198: C 01950020 ! 199: C 01960020 ! 200: IF (ICZERO) 35550, 5550, 35550 01970020 ! 201: 5550 CONTINUE 01980020 ! 202: IVCOMP = IFON02 ( 32767 ) 01990020 ! 203: GO TO 45550 02000020 ! 204: 35550 IVDELE = IVDELE + 1 02010020 ! 205: WRITE (I02,80003) IVTNUM 02020020 ! 206: IF (ICZERO) 45550, 5561, 45550 02030020 ! 207: 45550 IF ( IVCOMP - 32767 ) 25550, 15550, 25550 02040020 ! 208: 15550 IVPASS = IVPASS + 1 02050020 ! 209: WRITE (I02,80001) IVTNUM 02060020 ! 210: GO TO 5561 02070020 ! 211: 25550 IVFAIL = IVFAIL + 1 02080020 ! 212: IVCORR = 32767 02090020 ! 213: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02100020 ! 214: 5561 CONTINUE 02110020 ! 215: IVTNUM = 556 02120020 ! 216: C 02130020 ! 217: C **** TEST 556 **** 02140020 ! 218: C TEST 556 - TEST OF A LOGICAL STATEMENT FUNCTION SET TO THE 02150020 ! 219: C VALUE OF THE ARGUEMENT SUPPLIED. THE FALSE PATH OF A LOGICAL 02160020 ! 220: C IF STATEMENT IS USED IN CONJUNCTION WITH THE LOGICAL 02170020 ! 221: C STATEMENT FUNCTION. 02180020 ! 222: C 02190020 ! 223: C 02200020 ! 224: IF (ICZERO) 35560, 5560, 35560 02210020 ! 225: 5560 CONTINUE 02220020 ! 226: IVON01 = 1 02230020 ! 227: IF ( LFTN02(.FALSE.) ) IVON01 = 0 02240020 ! 228: GO TO 45560 02250020 ! 229: 35560 IVDELE = IVDELE + 1 02260020 ! 230: WRITE (I02,80003) IVTNUM 02270020 ! 231: IF (ICZERO) 45560, 5571, 45560 02280020 ! 232: 45560 IF ( IVON01 - 1 ) 25560, 15560, 25560 02290020 ! 233: 15560 IVPASS = IVPASS + 1 02300020 ! 234: WRITE (I02,80001) IVTNUM 02310020 ! 235: GO TO 5571 02320020 ! 236: 25560 IVFAIL = IVFAIL + 1 02330020 ! 237: IVCOMP = IVON01 02340020 ! 238: IVCORR = 1 02350020 ! 239: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02360020 ! 240: 5571 CONTINUE 02370020 ! 241: IVTNUM = 557 02380020 ! 242: C 02390020 ! 243: C **** TEST 557 **** 02400020 ! 244: C TEST 557 - THE VALUE OF AN INTEGER FUNCTION IS SET EQUAL TO 02410020 ! 245: C VALUE OF THE ARGUEMENT SUPPLIED. THIS VALUE IS AN INTEGER 02420020 ! 246: C VARIABLE SET TO 32767. 02430020 ! 247: C 02440020 ! 248: C 02450020 ! 249: IF (ICZERO) 35570, 5570, 35570 02460020 ! 250: 5570 CONTINUE 02470020 ! 251: ICON01 = 32767 02480020 ! 252: IVCOMP = IFON03 ( ICON01 ) 02490020 ! 253: GO TO 45570 02500020 ! 254: 35570 IVDELE = IVDELE + 1 02510020 ! 255: WRITE (I02,80003) IVTNUM 02520020 ! 256: IF (ICZERO) 45570, 5581, 45570 02530020 ! 257: 45570 IF ( IVCOMP - 32767 ) 25570, 15570, 25570 02540020 ! 258: 15570 IVPASS = IVPASS + 1 02550020 ! 259: WRITE (I02,80001) IVTNUM 02560020 ! 260: GO TO 5581 02570020 ! 261: 25570 IVFAIL = IVFAIL + 1 02580020 ! 262: IVCORR = 32767 02590020 ! 263: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02600020 ! 264: 5581 CONTINUE 02610020 ! 265: IVTNUM = 558 02620020 ! 266: C 02630020 ! 267: C **** TEST 558 **** 02640020 ! 268: C TEST 558 - A LOGICAL STATEMENT FUNCTION IS SET EQUAL TO THE 02650020 ! 269: C VALUE OF THE ARGUEMENT SUPPLIED. THIS VALUE IS A LOGICAL 02660020 ! 270: C VARIABLE SET TO .TRUE. THE TRUE PATH OF A LOGICAL IF 02670020 ! 271: C STATEMENT IS USED IN CONJUNCTION WITH THE LOGICAL STATEMENT 02680020 ! 272: C FUNCTION. 02690020 ! 273: C 02700020 ! 274: C 02710020 ! 275: IF (ICZERO) 35580, 5580, 35580 02720020 ! 276: 5580 CONTINUE 02730020 ! 277: IVON01 = 0 02740020 ! 278: LCTN03 = .TRUE. 02750020 ! 279: IF ( LFTN03(LCTN03) ) IVON01 = 1 02760020 ! 280: GO TO 45580 02770020 ! 281: 35580 IVDELE = IVDELE + 1 02780020 ! 282: WRITE (I02,80003) IVTNUM 02790020 ! 283: IF (ICZERO) 45580, 5591, 45580 02800020 ! 284: 45580 IF ( IVON01 - 1 ) 25580, 15580, 25580 02810020 ! 285: 15580 IVPASS = IVPASS + 1 02820020 ! 286: WRITE (I02,80001) IVTNUM 02830020 ! 287: GO TO 5591 02840020 ! 288: 25580 IVFAIL = IVFAIL + 1 02850020 ! 289: IVCOMP = IVON01 02860020 ! 290: IVCORR = 1 02870020 ! 291: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02880020 ! 292: 5591 CONTINUE 02890020 ! 293: IVTNUM = 559 02900020 ! 294: C 02910020 ! 295: C **** TEST 559 **** 02920020 ! 296: C TEST 559 - LIKE TEST 558 ONLY THE LOGICAL .NOT. IS USED 02930020 ! 297: C IN THE LOGICAL STATEMENT FUNCTION DEFINITION THE FALSE PATH 02940020 ! 298: C OF A LOGICAL IF STATEMENT IS USED IN CONJUNCTION WITH THE 02950020 ! 299: C LOGICAL STATEMENT FUNCTION. 02960020 ! 300: C 02970020 ! 301: C 02980020 ! 302: IF (ICZERO) 35590, 5590, 35590 02990020 ! 303: 5590 CONTINUE 03000020 ! 304: IVON01 = 1 03010020 ! 305: LCTN04 = .TRUE. 03020020 ! 306: IF ( LFTN04(LCTN04) ) IVON01 = 0 03030020 ! 307: GO TO 45590 03040020 ! 308: 35590 IVDELE = IVDELE + 1 03050020 ! 309: WRITE (I02,80003) IVTNUM 03060020 ! 310: IF (ICZERO) 45590, 5601, 45590 03070020 ! 311: 45590 IF ( IVON01 - 1 ) 25590, 15590, 25590 03080020 ! 312: 15590 IVPASS = IVPASS + 1 03090020 ! 313: WRITE (I02,80001) IVTNUM 03100020 ! 314: GO TO 5601 03110020 ! 315: 25590 IVFAIL = IVFAIL + 1 03120020 ! 316: IVCOMP = IVON01 03130020 ! 317: IVCORR = 1 03140020 ! 318: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03150020 ! 319: 5601 CONTINUE 03160020 ! 320: IVTNUM = 560 03170020 ! 321: C 03180020 ! 322: C **** TEST 560 **** 03190020 ! 323: C TEST 560 - INTEGER EXPONIENTIATION USED IN AN INTEGER 03200020 ! 324: C STATEMENT FUNCTION. 03210020 ! 325: C 03220020 ! 326: C 03230020 ! 327: IF (ICZERO) 35600, 5600, 35600 03240020 ! 328: 5600 CONTINUE 03250020 ! 329: ICON04 = 3 03260020 ! 330: IVCOMP = IFON04(ICON04) 03270020 ! 331: GO TO 45600 03280020 ! 332: 35600 IVDELE = IVDELE + 1 03290020 ! 333: WRITE (I02,80003) IVTNUM 03300020 ! 334: IF (ICZERO) 45600, 5611, 45600 03310020 ! 335: 45600 IF ( IVCOMP - 9 ) 25600, 15600, 25600 03320020 ! 336: 15600 IVPASS = IVPASS + 1 03330020 ! 337: WRITE (I02,80001) IVTNUM 03340020 ! 338: GO TO 5611 03350020 ! 339: 25600 IVFAIL = IVFAIL + 1 03360020 ! 340: IVCORR = 9 03370020 ! 341: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03380020 ! 342: 5611 CONTINUE 03390020 ! 343: IVTNUM = 561 03400020 ! 344: C 03410020 ! 345: C **** TEST 561 **** 03420020 ! 346: C TEST 561 - TEST OF INTEGER ADDITION USING TWO (2) DUMMY 03430020 ! 347: C ARGUEMENTS. 03440020 ! 348: C 03450020 ! 349: C 03460020 ! 350: IF (ICZERO) 35610, 5610, 35610 03470020 ! 351: 5610 CONTINUE 03480020 ! 352: ICON05 = 9 03490020 ! 353: ICON06 = 16 03500020 ! 354: IVCOMP = IFON05(ICON05, ICON06) 03510020 ! 355: GO TO 45610 03520020 ! 356: 35610 IVDELE = IVDELE + 1 03530020 ! 357: WRITE (I02,80003) IVTNUM 03540020 ! 358: IF (ICZERO) 45610, 5621, 45610 03550020 ! 359: 45610 IF ( IVCOMP - 25 ) 25610, 15610, 25610 03560020 ! 360: 15610 IVPASS = IVPASS + 1 03570020 ! 361: WRITE (I02,80001) IVTNUM 03580020 ! 362: GO TO 5621 03590020 ! 363: 25610 IVFAIL = IVFAIL + 1 03600020 ! 364: IVCORR = 25 03610020 ! 365: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03620020 ! 366: 5621 CONTINUE 03630020 ! 367: IVTNUM = 562 03640020 ! 368: C 03650020 ! 369: C **** TEST 562 **** 03660020 ! 370: C TEST 562 - THIS TEST IS THE SOLUTION OF A RIGHT TRIANGLE 03670020 ! 371: C USING INTEGER STATEMENT FUNCTIONS WHICH REFERENCE THE 03680020 ! 372: C INTRINSIC FUNCTIONS SQRT AND FLOAT. THIS IS A 3-4-5 03690020 ! 373: C RIGHT TRIANGLE. 03700020 ! 374: C 03710020 ! 375: C 03720020 ! 376: IF (ICZERO) 35620, 5620, 35620 03730020 ! 377: 5620 CONTINUE 03740020 ! 378: ICON07 = 3 03750020 ! 379: ICON08 = 4 03760020 ! 380: IVCOMP = IFON06(ICON07, ICON08) 03770020 ! 381: GO TO 45620 03780020 ! 382: 35620 IVDELE = IVDELE + 1 03790020 ! 383: WRITE (I02,80003) IVTNUM 03800020 ! 384: IF (ICZERO) 45620, 5631, 45620 03810020 ! 385: 45620 IF ( IVCOMP - 5 ) 5622, 15620, 5622 03820020 ! 386: 5622 IF ( IVCOMP - 4 ) 25620, 15620, 25620 03830020 ! 387: 15620 IVPASS = IVPASS + 1 03840020 ! 388: WRITE (I02,80001) IVTNUM 03850020 ! 389: GO TO 5631 03860020 ! 390: 25620 IVFAIL = IVFAIL + 1 03870020 ! 391: IVCORR = 5 03880020 ! 392: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03890020 ! 393: 5631 CONTINUE 03900020 ! 394: IVTNUM = 563 03910020 ! 395: C 03920020 ! 396: C **** TEST 563 **** 03930020 ! 397: C TEST 563 - SOLUTION OF A 3-4-5 RIGHT TRIANGLE LIKE TEST 562 03940020 ! 398: C EXCEPT THAT BOTH INTRINSIC AND PREVIOUSLY DEFINED STATEMENT 03950020 ! 399: C FUNCTIONS ARE USED. 03960020 ! 400: C 03970020 ! 401: C 03980020 ! 402: IF (ICZERO) 35630, 5630, 35630 03990020 ! 403: 5630 CONTINUE 04000020 ! 404: ICON09 = 3 04010020 ! 405: ICON10 = 4 04020020 ! 406: IVCOMP = IFON08(ICON09, ICON10) 04030020 ! 407: GO TO 45630 04040020 ! 408: 35630 IVDELE = IVDELE + 1 04050020 ! 409: WRITE (I02,80003) IVTNUM 04060020 ! 410: IF (ICZERO) 45630, 5641, 45630 04070020 ! 411: 45630 IF ( IVCOMP - 5 ) 5632, 15630, 5632 04080020 ! 412: 5632 IF ( IVCOMP - 4 ) 25630, 15630, 25630 04090020 ! 413: 15630 IVPASS = IVPASS + 1 04100020 ! 414: WRITE (I02,80001) IVTNUM 04110020 ! 415: GO TO 5641 04120020 ! 416: 25630 IVFAIL = IVFAIL + 1 04130020 ! 417: IVCORR = 5 04140020 ! 418: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04150020 ! 419: 5641 CONTINUE 04160020 ! 420: IVTNUM = 564 04170020 ! 421: C 04180020 ! 422: C **** TEST 564 **** 04190020 ! 423: C TEST 564 - USE OF ARRAY ELEMENTS IN AN INTEGER STATEMENT 04200020 ! 424: C FUNCTION WHICH USES THE OPERATIONS OF + - * / . 04210020 ! 425: C 04220020 ! 426: C 04230020 ! 427: IF (ICZERO) 35640, 5640, 35640 04240020 ! 428: 5640 CONTINUE 04250020 ! 429: IADN11(1) = 2 04260020 ! 430: IADN11(2) = 2 04270020 ! 431: IVCOMP = IFON09( IADN11(1), IADN11(2) ) 04280020 ! 432: GO TO 45640 04290020 ! 433: 35640 IVDELE = IVDELE + 1 04300020 ! 434: WRITE (I02,80003) IVTNUM 04310020 ! 435: IF (ICZERO) 45640, 5651, 45640 04320020 ! 436: 45640 IF ( IVCOMP - 1 ) 25640, 15640, 25640 04330020 ! 437: 15640 IVPASS = IVPASS + 1 04340020 ! 438: WRITE (I02,80001) IVTNUM 04350020 ! 439: GO TO 5651 04360020 ! 440: 25640 IVFAIL = IVFAIL + 1 04370020 ! 441: IVCORR = 1 04380020 ! 442: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04390020 ! 443: 5651 CONTINUE 04400020 ! 444: C 04410020 ! 445: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 04420020 ! 446: 99999 CONTINUE 04430020 ! 447: WRITE (I02,90002) 04440020 ! 448: WRITE (I02,90006) 04450020 ! 449: WRITE (I02,90002) 04460020 ! 450: WRITE (I02,90002) 04470020 ! 451: WRITE (I02,90007) 04480020 ! 452: WRITE (I02,90002) 04490020 ! 453: WRITE (I02,90008) IVFAIL 04500020 ! 454: WRITE (I02,90009) IVPASS 04510020 ! 455: WRITE (I02,90010) IVDELE 04520020 ! 456: C 04530020 ! 457: C 04540020 ! 458: C TERMINATE ROUTINE EXECUTION 04550020 ! 459: STOP 04560020 ! 460: C 04570020 ! 461: C FORMAT STATEMENTS FOR PAGE HEADERS 04580020 ! 462: 90000 FORMAT (1H1) 04590020 ! 463: 90002 FORMAT (1H ) 04600020 ! 464: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 04610020 ! 465: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 04620020 ! 466: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 04630020 ! 467: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 04640020 ! 468: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 04650020 ! 469: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 04660020 ! 470: C 04670020 ! 471: C FORMAT STATEMENTS FOR RUN SUMMARIES 04680020 ! 472: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 04690020 ! 473: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 04700020 ! 474: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 04710020 ! 475: C 04720020 ! 476: C FORMAT STATEMENTS FOR TEST RESULTS 04730020 ! 477: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 04740020 ! 478: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 04750020 ! 479: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 04760020 ! 480: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 04770020 ! 481: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 04780020 ! 482: C 04790020 ! 483: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM020) 04800020 ! 484: END 04810020
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.