|
|
1.1 ! root 1: PROGRAM FM201 00010201 ! 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 00020201 ! 6: C 00030201 ! 7: C THIS ROUTINE VERIFIES THAT 00040201 ! 8: C 00050201 ! 9: C (1) THE VALUE OF A SIGNED ZERO IS THE SAME AS THE VALUE OF 00060201 ! 10: C AN UNSIGNED ZERO FOR INTEGER AND REAL VARIABLES. 00070201 ! 11: C 00080201 ! 12: C (2) A BASIC REAL CONSTANT MAY BE WRITTEN WITH MORE DIGITS 00090201 ! 13: C THAN A PROCESSOR WILL USE TO APPROXIMATE THE VALUE OF 00100201 ! 14: C THE CONSTANT. 00110201 ! 15: C 00120201 ! 16: C (3) AN IMPLICIT STATEMENT CAN BE USED TO CHANGE THE DEFAULT 00130201 ! 17: C IMPLICIT INTEGER AND REAL TYPING. 00140201 ! 18: C 00150201 ! 19: C (4) THE IMPLICIT INTEGER AND REAL TYPING OF AN IMPLICIT 00160201 ! 20: C STATEMENT MAY BE OVERRIDDEN BY THE APPEARANCE OF A 00170201 ! 21: C VARIABLE NAME IN A TYPE-STATEMENT. 00180201 ! 22: C 00190201 ! 23: C REFERENCES 00200201 ! 24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210201 ! 25: C X3.9-1978 00220201 ! 26: C 00230201 ! 27: C SECTION 4.1.3, DATA TYPE PROPERTIES 00240201 ! 28: C SECTION 4.4.1, BASIC REAL CONSTANT 00250201 ! 29: C SECTION 6.1.5, INTEGER DIVISION 00260201 ! 30: C SECTION 8.4, TYPE-STATEMENTS 00270201 ! 31: C SECTION 8.5, IMPLICIT STATEMENT 00280201 ! 32: C 00290201 ! 33: C 00300201 ! 34: C ******************************************************************00310201 ! 35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320201 ! 36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00330201 ! 37: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00340201 ! 38: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00350201 ! 39: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00360201 ! 40: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00370201 ! 41: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00380201 ! 42: C THE RESULT OF EXECUTING THESE TESTS. 00390201 ! 43: C 00400201 ! 44: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00410201 ! 45: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00420201 ! 46: C 00430201 ! 47: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00440201 ! 48: C DEPARTMENT OF THE NAVY 00450201 ! 49: C FEDERAL COBOL COMPILER TESTING SERVICE 00460201 ! 50: C WASHINGTON, D.C. 20376 00470201 ! 51: C 00480201 ! 52: C ******************************************************************00490201 ! 53: C 00500201 ! 54: C 00510201 ! 55: IMPLICIT LOGICAL (L) 00520201 ! 56: IMPLICIT CHARACTER*14 (C) 00530201 ! 57: C 00540201 ! 58: IMPLICIT INTEGER (Y, V-X), REAL (M) 00550201 ! 59: REAL RVTN01, RVTN02, RVTN03, YVTN02 00560201 ! 60: INTEGER IVTN01, IVTN02, MVTN02 00570201 ! 61: C THE ABOVE THREE STATEMENTS ARE REFERENCED IN TESTS 29 THRU 35. 00580201 ! 62: C 00590201 ! 63: C 00600201 ! 64: C 00610201 ! 65: C INITIALIZATION SECTION. 00620201 ! 66: C 00630201 ! 67: C INITIALIZE CONSTANTS 00640201 ! 68: C ******************** 00650201 ! 69: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00660201 ! 70: I01 = 5 00670201 ! 71: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00680201 ! 72: I02 = 6 00690201 ! 73: C SYSTEM ENVIRONMENT SECTION 00700201 ! 74: C 00710201 ! 75: I01 = 5 00720201 ! 76: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730201 ! 77: C (UNIT NUMBER FOR CARD READER). 00740201 ! 78: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00750201 ! 79: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760201 ! 80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00770201 ! 81: C 00780201 ! 82: I02 = 6 00790201 ! 83: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00800201 ! 84: C (UNIT NUMBER FOR PRINTER). 00810201 ! 85: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00820201 ! 86: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00830201 ! 87: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00840201 ! 88: C 00850201 ! 89: IVPASS = 0 00860201 ! 90: IVFAIL = 0 00870201 ! 91: IVDELE = 0 00880201 ! 92: ICZERO = 0 00890201 ! 93: C 00900201 ! 94: C WRITE OUT PAGE HEADERS 00910201 ! 95: C 00920201 ! 96: WRITE (I02,90002) 00930201 ! 97: WRITE (I02,90006) 00940201 ! 98: WRITE (I02,90008) 00950201 ! 99: WRITE (I02,90004) 00960201 ! 100: WRITE (I02,90010) 00970201 ! 101: WRITE (I02,90004) 00980201 ! 102: WRITE (I02,90016) 00990201 ! 103: WRITE (I02,90001) 01000201 ! 104: WRITE (I02,90004) 01010201 ! 105: WRITE (I02,90012) 01020201 ! 106: WRITE (I02,90014) 01030201 ! 107: WRITE (I02,90004) 01040201 ! 108: C 01050201 ! 109: C 01060201 ! 110: C TEST 14 THROUGH TEST 17 COMPARE INTEGER VARIABLES WHICH ARE 01070201 ! 111: C SET TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING 01080201 ! 112: C STATEMENTS 01090201 ! 113: C 01100201 ! 114: IVON01 = 0 01110201 ! 115: IVON02 = -0 01120201 ! 116: IVON03 = +0 01130201 ! 117: C 01140201 ! 118: C REFERENCE X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES 01150201 ! 119: C 01160201 ! 120: C **** FCVS PROGRAM 201 - TEST 014 **** 01170201 ! 121: C 01180201 ! 122: C COMPARE 0 TO -0 01190201 ! 123: C 01200201 ! 124: IVTNUM = 14 01210201 ! 125: IF (ICZERO) 30140, 0140, 30140 01220201 ! 126: 0140 CONTINUE 01230201 ! 127: IVCOMP = 1 01240201 ! 128: IVCORR = 0 01250201 ! 129: IF (IVON01 .EQ. IVON02) IVCOMP = 0 01260201 ! 130: 40140 IF (IVCOMP) 20140, 10140, 20140 01270201 ! 131: 30140 IVDELE = IVDELE + 1 01280201 ! 132: WRITE (I02,80000) IVTNUM 01290201 ! 133: IF (ICZERO) 10140, 0151, 20140 01300201 ! 134: 10140 IVPASS = IVPASS + 1 01310201 ! 135: WRITE (I02,80002) IVTNUM 01320201 ! 136: GO TO 0151 01330201 ! 137: 20140 IVFAIL = IVFAIL + 1 01340201 ! 138: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01350201 ! 139: 0151 CONTINUE 01360201 ! 140: C 01370201 ! 141: C **** FCVS PROGRAM 201 - TEST 015 **** 01380201 ! 142: C 01390201 ! 143: C COMPARE 0 TO +0 01400201 ! 144: C 01410201 ! 145: IVTNUM = 15 01420201 ! 146: IF (ICZERO) 30150, 0150, 30150 01430201 ! 147: 0150 CONTINUE 01440201 ! 148: IVCOMP = 1 01450201 ! 149: IVCORR = 0 01460201 ! 150: IF (IVON01 .EQ. IVON03) IVCOMP = 0 01470201 ! 151: 40150 IF (IVCOMP) 20150, 10150, 20150 01480201 ! 152: 30150 IVDELE = IVDELE + 1 01490201 ! 153: WRITE (I02,80000) IVTNUM 01500201 ! 154: IF (ICZERO) 10150, 0161, 20150 01510201 ! 155: 10150 IVPASS = IVPASS + 1 01520201 ! 156: WRITE (I02,80002) IVTNUM 01530201 ! 157: GO TO 0161 01540201 ! 158: 20150 IVFAIL = IVFAIL + 1 01550201 ! 159: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01560201 ! 160: 0161 CONTINUE 01570201 ! 161: C 01580201 ! 162: C **** FCVS PROGRAM 201 - TEST 016 **** 01590201 ! 163: C 01600201 ! 164: C COMPARE -0 TO +0 01610201 ! 165: C 01620201 ! 166: IVTNUM = 16 01630201 ! 167: IF (ICZERO) 30160, 0160, 30160 01640201 ! 168: 0160 CONTINUE 01650201 ! 169: IVCOMP = 1 01660201 ! 170: IVCORR = 0 01670201 ! 171: IF (IVON02 .EQ. IVON03) IVCOMP = 0 01680201 ! 172: 40160 IF (IVCOMP) 20160, 10160, 20160 01690201 ! 173: 30160 IVDELE = IVDELE + 1 01700201 ! 174: WRITE (I02,80000) IVTNUM 01710201 ! 175: IF (ICZERO) 10160, 0171, 20160 01720201 ! 176: 10160 IVPASS = IVPASS + 1 01730201 ! 177: WRITE (I02,80002) IVTNUM 01740201 ! 178: GO TO 0171 01750201 ! 179: 20160 IVFAIL = IVFAIL + 1 01760201 ! 180: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01770201 ! 181: 0171 CONTINUE 01780201 ! 182: C 01790201 ! 183: C **** FCVS PROGRAM 201 - TEST 017 **** 01800201 ! 184: C 01810201 ! 185: C MINUS ZERO (-0) SHOULD NOT BE LESS THAN PLUS ZERO (+0) 01820201 ! 186: C 01830201 ! 187: IVTNUM = 17 01840201 ! 188: IF (ICZERO) 30170, 0170, 30170 01850201 ! 189: 0170 CONTINUE 01860201 ! 190: IVCOMP = 1 01870201 ! 191: IVCORR = 0 01880201 ! 192: IF (IVON02 .LT. IVON03) GO TO 20170 01890201 ! 193: IVCOMP = 0 01900201 ! 194: GO TO 10170 01910201 ! 195: 30170 IVDELE = IVDELE + 1 01920201 ! 196: WRITE (I02,80000) IVTNUM 01930201 ! 197: IF (ICZERO) 10170, 0181, 20170 01940201 ! 198: 10170 IVPASS = IVPASS + 1 01950201 ! 199: WRITE (I02,80002) IVTNUM 01960201 ! 200: GO TO 0181 01970201 ! 201: 20170 IVFAIL = IVFAIL + 1 01980201 ! 202: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01990201 ! 203: 0181 CONTINUE 02000201 ! 204: C 02010201 ! 205: C TEST 18 THROUGH TEST 24 COMPARE REAL VARIABLES WHICH ARE SET 02020201 ! 206: C TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING 02030201 ! 207: C STATEMENTS 02040201 ! 208: C 02050201 ! 209: RVON01 = 0.0 02060201 ! 210: RVON02 = -0.0 02070201 ! 211: RVON03 = +0.0 02080201 ! 212: RVON04 = -0.0E+01 02090201 ! 213: RVON05 = -0E+10 02100201 ! 214: C 02110201 ! 215: C REFERENCE X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES 02120201 ! 216: C 02130201 ! 217: C **** FCVS PROGRAM 201 - TEST 018 **** 02140201 ! 218: C 02150201 ! 219: C COMPARE 0.0 TO -0.0 02160201 ! 220: C 02170201 ! 221: IVTNUM = 18 02180201 ! 222: IF (ICZERO) 30180, 0180, 30180 02190201 ! 223: 0180 CONTINUE 02200201 ! 224: IVCOMP = 1 02210201 ! 225: IVCORR = 0 02220201 ! 226: IF (RVON01 .EQ. RVON02) IVCOMP = 0 02230201 ! 227: 40180 IF (IVCOMP) 20180, 10180, 20180 02240201 ! 228: 30180 IVDELE = IVDELE + 1 02250201 ! 229: WRITE (I02,80000) IVTNUM 02260201 ! 230: IF (ICZERO) 10180, 0191, 20180 02270201 ! 231: 10180 IVPASS = IVPASS + 1 02280201 ! 232: WRITE (I02,80002) IVTNUM 02290201 ! 233: GO TO 0191 02300201 ! 234: 20180 IVFAIL = IVFAIL + 1 02310201 ! 235: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02320201 ! 236: 0191 CONTINUE 02330201 ! 237: C 02340201 ! 238: C **** FCVS PROGRAM 201 - TEST 019 **** 02350201 ! 239: C 02360201 ! 240: C COMPARE 0.0 TO +0.0 02370201 ! 241: C 02380201 ! 242: IVTNUM = 19 02390201 ! 243: IF (ICZERO) 30190, 0190, 30190 02400201 ! 244: 0190 CONTINUE 02410201 ! 245: IVCOMP = 1 02420201 ! 246: IVCORR = 0 02430201 ! 247: IF (RVON01 .EQ. RVON03) IVCOMP = 0 02440201 ! 248: 40190 IF (IVCOMP) 20190, 10190, 20190 02450201 ! 249: 30190 IVDELE = IVDELE + 1 02460201 ! 250: WRITE (I02,80000) IVTNUM 02470201 ! 251: IF (ICZERO) 10190, 0201, 20190 02480201 ! 252: 10190 IVPASS = IVPASS + 1 02490201 ! 253: WRITE (I02,80002) IVTNUM 02500201 ! 254: GO TO 0201 02510201 ! 255: 20190 IVFAIL = IVFAIL + 1 02520201 ! 256: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02530201 ! 257: 0201 CONTINUE 02540201 ! 258: C 02550201 ! 259: C **** FCVS PROGRAM 201 - TEST 020 **** 02560201 ! 260: C 02570201 ! 261: C COMPARE -0.0 TO +0.0 02580201 ! 262: C 02590201 ! 263: IVTNUM = 20 02600201 ! 264: IF (ICZERO) 30200, 0200, 30200 02610201 ! 265: 0200 CONTINUE 02620201 ! 266: IVCOMP = 1 02630201 ! 267: IVCORR = 0 02640201 ! 268: IF (RVON02 .EQ. RVON03) IVCOMP = 0 02650201 ! 269: 40200 IF (IVCOMP) 20200, 10200, 20200 02660201 ! 270: 30200 IVDELE = IVDELE + 1 02670201 ! 271: WRITE (I02,80000) IVTNUM 02680201 ! 272: IF (ICZERO) 10200, 0211, 20200 02690201 ! 273: 10200 IVPASS = IVPASS + 1 02700201 ! 274: WRITE (I02,80002) IVTNUM 02710201 ! 275: GO TO 0211 02720201 ! 276: 20200 IVFAIL = IVFAIL + 1 02730201 ! 277: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02740201 ! 278: 0211 CONTINUE 02750201 ! 279: C 02760201 ! 280: C **** FCVS PROGRAM 201 - TEST 021 **** 02770201 ! 281: C 02780201 ! 282: C MINUS ZERO (-0.0) SHOULD NOT BE LESS THAN PLUS ZERO (+0.0) 02790201 ! 283: C 02800201 ! 284: IVTNUM = 21 02810201 ! 285: IF (ICZERO) 30210, 0210, 30210 02820201 ! 286: 0210 CONTINUE 02830201 ! 287: IVCOMP = 1 02840201 ! 288: IVCORR = 0 02850201 ! 289: IF (RVON02 .LT. RVON03) GO TO 20210 02860201 ! 290: IVCOMP = 0 02870201 ! 291: GO TO 10210 02880201 ! 292: 30210 IVDELE = IVDELE + 1 02890201 ! 293: WRITE (I02,80000) IVTNUM 02900201 ! 294: IF (ICZERO) 10210, 0221, 20210 02910201 ! 295: 10210 IVPASS = IVPASS + 1 02920201 ! 296: WRITE (I02,80002) IVTNUM 02930201 ! 297: GO TO 0221 02940201 ! 298: 20210 IVFAIL = IVFAIL + 1 02950201 ! 299: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02960201 ! 300: 0221 CONTINUE 02970201 ! 301: C 02980201 ! 302: C **** FCVS PROGRAM 201 - TEST 022 **** 02990201 ! 303: C 03000201 ! 304: C COMPARE -0.0E+01 TO 0.0 03010201 ! 305: C 03020201 ! 306: IVTNUM = 22 03030201 ! 307: IF (ICZERO) 30220, 0220, 30220 03040201 ! 308: 0220 CONTINUE 03050201 ! 309: IVCOMP = 1 03060201 ! 310: IVCORR = 0 03070201 ! 311: IF (RVON04 .EQ. RVON01) IVCOMP = 0 03080201 ! 312: 40220 IF (IVCOMP) 20220, 10220, 20220 03090201 ! 313: 30220 IVDELE = IVDELE + 1 03100201 ! 314: WRITE (I02,80000) IVTNUM 03110201 ! 315: IF (ICZERO) 10220, 0231, 20220 03120201 ! 316: 10220 IVPASS = IVPASS + 1 03130201 ! 317: WRITE (I02,80002) IVTNUM 03140201 ! 318: GO TO 0231 03150201 ! 319: 20220 IVFAIL = IVFAIL + 1 03160201 ! 320: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03170201 ! 321: 0231 CONTINUE 03180201 ! 322: C 03190201 ! 323: C **** FCVS PROGRAM 201 - TEST 023 **** 03200201 ! 324: C 03210201 ! 325: C COMPARE -0E+10 TO 0.0 03220201 ! 326: C 03230201 ! 327: IVTNUM = 23 03240201 ! 328: IF (ICZERO) 30230, 0230, 30230 03250201 ! 329: 0230 CONTINUE 03260201 ! 330: IVCOMP = 1 03270201 ! 331: IVCORR = 0 03280201 ! 332: IF (RVON05 .EQ. RVON01) IVCOMP = 0 03290201 ! 333: 40230 IF (IVCOMP) 20230, 10230, 20230 03300201 ! 334: 30230 IVDELE = IVDELE + 1 03310201 ! 335: WRITE (I02,80000) IVTNUM 03320201 ! 336: IF (ICZERO) 10230, 0241, 20230 03330201 ! 337: 10230 IVPASS = IVPASS + 1 03340201 ! 338: WRITE (I02,80002) IVTNUM 03350201 ! 339: GO TO 0241 03360201 ! 340: 20230 IVFAIL = IVFAIL + 1 03370201 ! 341: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03380201 ! 342: 0241 CONTINUE 03390201 ! 343: C 03400201 ! 344: C **** FCVS PROGRAM 201 - TEST 024 **** 03410201 ! 345: C 03420201 ! 346: C COMPARE -0E+10 TO +0.0 03430201 ! 347: C 03440201 ! 348: IVTNUM = 24 03450201 ! 349: IF (ICZERO) 30240, 0240, 30240 03460201 ! 350: 0240 CONTINUE 03470201 ! 351: IVCOMP = 1 03480201 ! 352: IVCORR = 0 03490201 ! 353: IF (RVON05 .NE. RVON03) GO TO 20240 03500201 ! 354: IVCOMP = 0 03510201 ! 355: GO TO 10240 03520201 ! 356: 30240 IVDELE = IVDELE + 1 03530201 ! 357: WRITE (I02,80000) IVTNUM 03540201 ! 358: IF (ICZERO) 10240, 0251, 20240 03550201 ! 359: 10240 IVPASS = IVPASS + 1 03560201 ! 360: WRITE (I02,80002) IVTNUM 03570201 ! 361: GO TO 0251 03580201 ! 362: 20240 IVFAIL = IVFAIL + 1 03590201 ! 363: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03600201 ! 364: 0251 CONTINUE 03610201 ! 365: C 03620201 ! 366: C TEST 25 THROUGH TEST 28 VERIFY THAT A BASIC REAL CONSTANT MAY 03630201 ! 367: C BE WRITTEN WITH MORE DIGITS THAN A PROCESSOR WILL USE TO APPROXI- 03640201 ! 368: C MATE THE VALUE OF THE CONSTANT. 03650201 ! 369: C 03660201 ! 370: C REFERENCE X3.9-1978, SECTION 4.4.1, BASIC REAL CONSTANT 03670201 ! 371: C 03680201 ! 372: C 03690201 ! 373: C **** FCVS PROGRAM 201 - TEST 025 **** 03700201 ! 374: C 03710201 ! 375: C EIGHT DIGITS IN BASIC REAL CONSTANT 03720201 ! 376: C 03730201 ! 377: IVTNUM = 25 03740201 ! 378: IF (ICZERO) 30250, 0250, 30250 03750201 ! 379: 0250 CONTINUE 03760201 ! 380: RVON06 = 0.0 03770201 ! 381: RVCOMP = 0.0 03780201 ! 382: RVON06 = 3.1561234 03790201 ! 383: RVCOMP = RVON06 03800201 ! 384: RVCORR = 3.1561 03810201 ! 385: 40250 IF (RVCOMP - 3.1556) 20250, 10250, 40251 03820201 ! 386: 40251 IF (RVCOMP - 3.1566) 10250, 10250, 20250 03830201 ! 387: 30250 IVDELE = IVDELE + 1 03840201 ! 388: WRITE (I02,80000) IVTNUM 03850201 ! 389: IF (ICZERO) 10250, 0261, 20250 03860201 ! 390: 10250 IVPASS = IVPASS + 1 03870201 ! 391: WRITE (I02,80002) IVTNUM 03880201 ! 392: GO TO 0261 03890201 ! 393: 20250 IVFAIL = IVFAIL + 1 03900201 ! 394: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 03910201 ! 395: 0261 CONTINUE 03920201 ! 396: C 03930201 ! 397: C **** FCVS PROGRAM 201 - TEST 026 **** 03940201 ! 398: C 03950201 ! 399: C EIGHT DIGITS IN BASIC REAL CONSTANT PLUS A REAL EXPONENT. 03960201 ! 400: C 03970201 ! 401: IVTNUM = 26 03980201 ! 402: IF (ICZERO) 30260, 0260, 30260 03990201 ! 403: 0260 CONTINUE 04000201 ! 404: RVON06 = 0.0 04010201 ! 405: RVCOMP = 0.0 04020201 ! 406: RVON06 = .31561234E+01 04030201 ! 407: RVCOMP = RVON06 04040201 ! 408: RVCORR = 3.1561 04050201 ! 409: 40260 IF (RVCOMP - 3.1556) 20260, 10260, 40261 04060201 ! 410: 40261 IF (RVCOMP - 3.1566) 10260, 10260, 20260 04070201 ! 411: 30260 IVDELE = IVDELE + 1 04080201 ! 412: WRITE (I02,80000) IVTNUM 04090201 ! 413: IF (ICZERO) 10260, 0271, 20260 04100201 ! 414: 10260 IVPASS = IVPASS + 1 04110201 ! 415: WRITE (I02,80002) IVTNUM 04120201 ! 416: GO TO 0271 04130201 ! 417: 20260 IVFAIL = IVFAIL + 1 04140201 ! 418: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04150201 ! 419: 0271 CONTINUE 04160201 ! 420: C 04170201 ! 421: C **** FCVS PROGRAM 201 - TEST 027 **** 04180201 ! 422: C 04190201 ! 423: C TWELVE DIGITS IN BASIC REAL CONSTANT. 04200201 ! 424: C 04210201 ! 425: IVTNUM = 27 04220201 ! 426: IF (ICZERO) 30270, 0270, 30270 04230201 ! 427: 0270 CONTINUE 04240201 ! 428: RVON06 = 0.0 04250201 ! 429: RVCOMP = 0.0 04260201 ! 430: RVON06 = 315612347833 E-11 04270201 ! 431: RVCOMP = RVON06 04280201 ! 432: RVCORR = 3.1561 04290201 ! 433: 40270 IF (RVCOMP - 3.1556) 20270, 10270, 40271 04300201 ! 434: 40271 IF (RVCOMP - 3.1566) 10270, 10270, 20270 04310201 ! 435: 30270 IVDELE = IVDELE + 1 04320201 ! 436: WRITE (I02,80000) IVTNUM 04330201 ! 437: IF (ICZERO) 10270, 0281, 20270 04340201 ! 438: 10270 IVPASS = IVPASS + 1 04350201 ! 439: WRITE (I02,80002) IVTNUM 04360201 ! 440: GO TO 0281 04370201 ! 441: 20270 IVFAIL = IVFAIL + 1 04380201 ! 442: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04390201 ! 443: 0281 CONTINUE 04400201 ! 444: C 04410201 ! 445: C **** FCVS PROGRAM 201 - TEST 028 **** 04420201 ! 446: C 04430201 ! 447: C TWENTY-FIVE DIGITS IN BASIC REAL CONSTANT. 04440201 ! 448: C 04450201 ! 449: IVTNUM = 28 04460201 ! 450: IF (ICZERO) 30280, 0280, 30280 04470201 ! 451: 0280 CONTINUE 04480201 ! 452: RVON06 = 0.0 04490201 ! 453: RVCOMP = 0.0 04500201 ! 454: RVON06 = 31.56123478334867532834672E-1 04510201 ! 455: RVCOMP = RVON06 04520201 ! 456: RVCORR = 3.1561 04530201 ! 457: 40280 IF (RVCOMP - 3.1556) 20280, 10280, 40281 04540201 ! 458: 40281 IF (RVCOMP - 3.1566) 10280, 10280, 20280 04550201 ! 459: 30280 IVDELE = IVDELE + 1 04560201 ! 460: WRITE (I02,80000) IVTNUM 04570201 ! 461: IF (ICZERO) 10280, 0291, 20280 04580201 ! 462: 10280 IVPASS = IVPASS + 1 04590201 ! 463: WRITE (I02,80002) IVTNUM 04600201 ! 464: GO TO 0291 04610201 ! 465: 20280 IVFAIL = IVFAIL + 1 04620201 ! 466: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04630201 ! 467: 0291 CONTINUE 04640201 ! 468: C 04650201 ! 469: C TEST 29 THROUGH TEST 33 REFERENCE VARIABLES WHOSE TYPE WAS 04660201 ! 470: C SPECIFIED BY AN IMPLICIT STATEMENT. DIVISION IS USED TO VERIFY 04670201 ! 471: C THAT THE TYPE IS INTEGER OR REAL. 04680201 ! 472: C 04690201 ! 473: C REFERENCE X3.9-1978, SECTION 8.5, IMPLICIT STATEMENT 04700201 ! 474: C 04710201 ! 475: C 04720201 ! 476: C **** FCVS PROGRAM 201 - TEST 029 **** 04730201 ! 477: C 04740201 ! 478: C VERIFY YVIN01 IS AN INTEGER VARIABLE. 04750201 ! 479: C 04760201 ! 480: IVTNUM = 29 04770201 ! 481: IF (ICZERO) 30290, 0290, 30290 04780201 ! 482: 0290 CONTINUE 04790201 ! 483: RVCOMP = 10.0 04800201 ! 484: YVIN01 = 4.0 04810201 ! 485: RVCOMP = YVIN01/5 04820201 ! 486: RVCORR = 0.0 04830201 ! 487: 40290 IF (RVCOMP) 20290, 10290, 20290 04840201 ! 488: 30290 IVDELE = IVDELE + 1 04850201 ! 489: WRITE (I02,80000) IVTNUM 04860201 ! 490: IF (ICZERO) 10290, 0301, 20290 04870201 ! 491: 10290 IVPASS = IVPASS + 1 04880201 ! 492: WRITE (I02,80002) IVTNUM 04890201 ! 493: GO TO 0301 04900201 ! 494: 20290 IVFAIL = IVFAIL + 1 04910201 ! 495: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04920201 ! 496: 0301 CONTINUE 04930201 ! 497: C 04940201 ! 498: C **** FCVS PROGRAM 201 - TEST 030 **** 04950201 ! 499: C 04960201 ! 500: C VERIFY VVIN01 IS AN INTEGER VARIABLE 04970201 ! 501: C 04980201 ! 502: IVTNUM = 30 04990201 ! 503: IF (ICZERO) 30300, 0300, 30300 05000201 ! 504: 0300 CONTINUE 05010201 ! 505: RVCOMP = 10.0 05020201 ! 506: VVIN01 = 4.0 05030201 ! 507: RVCOMP = VVIN01/5 05040201 ! 508: RVCORR = 0.0 05050201 ! 509: 40300 IF (RVCOMP) 20300, 10300, 20300 05060201 ! 510: 30300 IVDELE = IVDELE + 1 05070201 ! 511: WRITE (I02,80000) IVTNUM 05080201 ! 512: IF (ICZERO) 10300, 0311, 20300 05090201 ! 513: 10300 IVPASS = IVPASS + 1 05100201 ! 514: WRITE (I02,80002) IVTNUM 05110201 ! 515: GO TO 0311 05120201 ! 516: 20300 IVFAIL = IVFAIL + 1 05130201 ! 517: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05140201 ! 518: 0311 CONTINUE 05150201 ! 519: C 05160201 ! 520: C **** FCVS PROGRAM 201 - TEST 031 **** 05170201 ! 521: C 05180201 ! 522: C VERIFY WVIN01 IS AN INTEGER VARIABLE. 05190201 ! 523: C 05200201 ! 524: IVTNUM = 31 05210201 ! 525: IF (ICZERO) 30310, 0310, 30310 05220201 ! 526: 0310 CONTINUE 05230201 ! 527: RVCOMP = 10.0 05240201 ! 528: WVIN01 = 4.0 05250201 ! 529: RVCOMP = WVIN01/5 05260201 ! 530: RVCORR = 0.0 05270201 ! 531: 40310 IF (RVCOMP) 20310, 10310, 20310 05280201 ! 532: 30310 IVDELE = IVDELE + 1 05290201 ! 533: WRITE (I02,80000) IVTNUM 05300201 ! 534: IF (ICZERO) 10310, 0321, 20310 05310201 ! 535: 10310 IVPASS = IVPASS + 1 05320201 ! 536: WRITE (I02,80002) IVTNUM 05330201 ! 537: GO TO 0321 05340201 ! 538: 20310 IVFAIL = IVFAIL + 1 05350201 ! 539: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05360201 ! 540: 0321 CONTINUE 05370201 ! 541: C 05380201 ! 542: C **** FCVS PROGRAM 201 - TEST 032 **** 05390201 ! 543: C 05400201 ! 544: C VERIFY XVIN01 IS AN INTEGER VARIABLE. 05410201 ! 545: C 05420201 ! 546: IVTNUM = 32 05430201 ! 547: IF (ICZERO) 30320, 0320, 30320 05440201 ! 548: 0320 CONTINUE 05450201 ! 549: XVIN01 = 4 05460201 ! 550: RVCOMP = 10.0 05470201 ! 551: RVCOMP = XVIN01/5 05480201 ! 552: RVCORR = 0.0 05490201 ! 553: 40320 IF (RVCOMP) 20320, 10320, 20320 05500201 ! 554: 30320 IVDELE = IVDELE + 1 05510201 ! 555: WRITE (I02,80000) IVTNUM 05520201 ! 556: IF (ICZERO) 10320, 0331, 20320 05530201 ! 557: 10320 IVPASS = IVPASS + 1 05540201 ! 558: WRITE (I02,80002) IVTNUM 05550201 ! 559: GO TO 0331 05560201 ! 560: 20320 IVFAIL = IVFAIL + 1 05570201 ! 561: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05580201 ! 562: 0331 CONTINUE 05590201 ! 563: C 05600201 ! 564: C **** FCVS PROGRAM 201 - TEST 033 **** 05610201 ! 565: C 05620201 ! 566: C VERIFY MVIN01 IS A REAL VARIABLE. 05630201 ! 567: C 05640201 ! 568: IVTNUM = 33 05650201 ! 569: IF (ICZERO) 30330, 0330, 30330 05660201 ! 570: 0330 CONTINUE 05670201 ! 571: RVCOMP = 10.0 05680201 ! 572: MVIN01 = 4 05690201 ! 573: RVCOMP = MVIN01/5 05700201 ! 574: RVCORR = 0.8 05710201 ! 575: 40330 IF (RVCOMP - 0.79995) 20330, 10330, 40331 05720201 ! 576: 40331 IF (RVCOMP - 0.80005) 10330, 10330, 20330 05730201 ! 577: 30330 IVDELE = IVDELE + 1 05740201 ! 578: WRITE (I02,80000) IVTNUM 05750201 ! 579: IF (ICZERO) 10330, 0341, 20330 05760201 ! 580: 10330 IVPASS = IVPASS + 1 05770201 ! 581: WRITE (I02,80002) IVTNUM 05780201 ! 582: GO TO 0341 05790201 ! 583: 20330 IVFAIL = IVFAIL + 1 05800201 ! 584: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05810201 ! 585: 0341 CONTINUE 05820201 ! 586: C 05830201 ! 587: C TEST 34 AND TEST 35 VERIFY THAT THE IMPLICIT TYPE SPECIFICA- 05840201 ! 588: C TION FOR A VARIABLE IS OVERRIDDEN BY THE APPEARANCE OF THAT 05850201 ! 589: C VARIABLE NAME IN A TYPE-STATEMENT. 05860201 ! 590: C 05870201 ! 591: C REFERENCE X3.9-1977, SECTION 8.4, TYPE-STATEMENTS 05880201 ! 592: C SECTION 8.5, IMPLICIT STATEMENT 05890201 ! 593: C 05900201 ! 594: C 05910201 ! 595: C **** FCVS PROGRAM 201 - TEST 034 **** 05920201 ! 596: C 05930201 ! 597: C VERIFY YVTN02 IS A REAL VARIABLE. 05940201 ! 598: C 05950201 ! 599: IVTNUM = 34 05960201 ! 600: IF (ICZERO) 30340, 0340, 30340 05970201 ! 601: 0340 CONTINUE 05980201 ! 602: RVCOMP = 10.0 05990201 ! 603: YVTN02 = 4 06000201 ! 604: RVCOMP = YVTN02/5 06010201 ! 605: RVCORR = 0.8 06020201 ! 606: 40340 IF (RVCOMP - 0.79995) 20340, 10340, 40341 06030201 ! 607: 40341 IF (RVCOMP - 0.80005) 10340, 10340, 20340 06040201 ! 608: 30340 IVDELE = IVDELE + 1 06050201 ! 609: WRITE (I02,80000) IVTNUM 06060201 ! 610: IF (ICZERO) 10340, 0351, 20340 06070201 ! 611: 10340 IVPASS = IVPASS + 1 06080201 ! 612: WRITE (I02,80002) IVTNUM 06090201 ! 613: GO TO 0351 06100201 ! 614: 20340 IVFAIL = IVFAIL + 1 06110201 ! 615: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06120201 ! 616: 0351 CONTINUE 06130201 ! 617: C 06140201 ! 618: C **** FCVS PROGRAM 201 - TEST 035 **** 06150201 ! 619: C 06160201 ! 620: C VERIFY MVTN02 IS AN INTEGER VARIABLE. 06170201 ! 621: C 06180201 ! 622: IVTNUM = 35 06190201 ! 623: IF (ICZERO) 30350, 0350, 30350 06200201 ! 624: 0350 CONTINUE 06210201 ! 625: RVCOMP = 10.0 06220201 ! 626: MVTN02 = 4.0 06230201 ! 627: RVCOMP = MVTN02/5 06240201 ! 628: RVCORR = 0.0 06250201 ! 629: 40350 IF (RVCOMP) 20350, 10350, 20350 06260201 ! 630: 30350 IVDELE = IVDELE + 1 06270201 ! 631: WRITE (I02,80000) IVTNUM 06280201 ! 632: IF (ICZERO) 10350, 0361, 20350 06290201 ! 633: 10350 IVPASS = IVPASS + 1 06300201 ! 634: WRITE (I02,80002) IVTNUM 06310201 ! 635: GO TO 0361 06320201 ! 636: 20350 IVFAIL = IVFAIL + 1 06330201 ! 637: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06340201 ! 638: 0361 CONTINUE 06350201 ! 639: C 06360201 ! 640: C 06370201 ! 641: C WRITE OUT TEST SUMMARY 06380201 ! 642: C 06390201 ! 643: WRITE (I02,90004) 06400201 ! 644: WRITE (I02,90014) 06410201 ! 645: WRITE (I02,90004) 06420201 ! 646: WRITE (I02,90000) 06430201 ! 647: WRITE (I02,90004) 06440201 ! 648: WRITE (I02,90020) IVFAIL 06450201 ! 649: WRITE (I02,90022) IVPASS 06460201 ! 650: WRITE (I02,90024) IVDELE 06470201 ! 651: STOP 06480201 ! 652: 90001 FORMAT (1H ,24X,5HFM201) 06490201 ! 653: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM201) 06500201 ! 654: C 06510201 ! 655: C FORMATS FOR TEST DETAIL LINES 06520201 ! 656: C 06530201 ! 657: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 06540201 ! 658: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 06550201 ! 659: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 06560201 ! 660: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 06570201 ! 661: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 06580201 ! 662: C 06590201 ! 663: C FORMAT STATEMENTS FOR PAGE HEADERS 06600201 ! 664: C 06610201 ! 665: 90002 FORMAT (1H1) 06620201 ! 666: 90004 FORMAT (1H ) 06630201 ! 667: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06640201 ! 668: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 06650201 ! 669: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 06660201 ! 670: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 06670201 ! 671: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 06680201 ! 672: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 06690201 ! 673: C 06700201 ! 674: C FORMAT STATEMENTS FOR RUN SUMMARY 06710201 ! 675: C 06720201 ! 676: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 06730201 ! 677: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 06740201 ! 678: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 06750201 ! 679: END 06760201
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.