|
|
1.1 ! root 1: PROGRAM FM300 00010300 ! 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 00020300 ! 6: C 00030300 ! 7: C THIS ROUTINE TESTS THE USE OF THE EQUIVALENCE STATEMENT TO 00040300 ! 8: C EQUATE STORAGE UNITS OF VARIABLES, ARRAYS AND ARRAY ELEMENTS. 00050300 ! 9: C ONLY INTEGER, REAL, LOGICAL AND CHARACTER DATA TYPES ARE TESTED. 00060300 ! 10: C NO ATTEMPT IS MADE TO TEST DATA OF DIFFERENT TYPES THAT ARE 00070300 ! 11: C EQUATED WITH THE EQUIVALENCE STATEMENT. 00080300 ! 12: C 00090300 ! 13: C REFERENCES. 00100300 ! 14: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00110300 ! 15: C X3.9-1978 00120300 ! 16: C 00130300 ! 17: C SECTION 8.1, DIMENSION STATEMENT 00140300 ! 18: C SECTION 8.2, EQUIVALENCE STATEMENT 00150300 ! 19: C SECTION 9, DATA STATEMENT 00160300 ! 20: C 00170300 ! 21: C 00180300 ! 22: C ******************************************************************00190300 ! 23: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00200300 ! 24: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00210300 ! 25: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00220300 ! 26: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00230300 ! 27: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00240300 ! 28: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00250300 ! 29: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00260300 ! 30: C THE RESULT OF EXECUTING THESE TESTS. 00270300 ! 31: C 00280300 ! 32: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00290300 ! 33: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00300300 ! 34: C 00310300 ! 35: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00320300 ! 36: C DEPARTMENT OF THE NAVY 00330300 ! 37: C FEDERAL COBOL COMPILER TESTING SERVICE 00340300 ! 38: C WASHINGTON, D.C. 20376 00350300 ! 39: C 00360300 ! 40: C ******************************************************************00370300 ! 41: C 00380300 ! 42: C 00390300 ! 43: IMPLICIT LOGICAL (L) 00400300 ! 44: IMPLICIT CHARACTER*14 (C) 00410300 ! 45: C 00420300 ! 46: 00430300 ! 47: C *** SPECIFICATION STATEMENTS FOR TEST 001 *** 00440300 ! 48: C 00450300 ! 49: EQUIVALENCE (IVOE01, IVOE02) 00460300 ! 50: C 00470300 ! 51: C *** SPECIFICATION STATEMENTS FOR TEST 002 *** 00480300 ! 52: C 00490300 ! 53: EQUIVALENCE (RVOE01, RVOE02) 00500300 ! 54: C 00510300 ! 55: C *** SPECIFICATION STATEMENTS FOR TEST 003 *** 00520300 ! 56: C 00530300 ! 57: EQUIVALENCE (LVOE01, LVOE02) 00540300 ! 58: C 00550300 ! 59: C *** SPECIFICATION STATEMENTS FOR TEST 004 *** 00560300 ! 60: C 00570300 ! 61: CHARACTER CVTE01*3, CVTE02*3, CVCOMP*3 00580300 ! 62: EQUIVALENCE (CVTE01, CVTE02) 00590300 ! 63: C 00600300 ! 64: C *** SPECIFICATION STATEMENTS FOR TEST 005 *** 00610300 ! 65: C 00620300 ! 66: EQUIVALENCE (IVOE03, IVOE04, IVOE05) 00630300 ! 67: C 00640300 ! 68: C *** SPECIFICATION STATEMENTS FOR TEST 006 *** 00650300 ! 69: C 00660300 ! 70: EQUIVALENCE (IVOE06, IVOE07, RVOE03) 00670300 ! 71: C 00680300 ! 72: C *** SPECIFICATION STATEMENTS FOR TESTS 007 AND 008 *** 00690300 ! 73: C 00700300 ! 74: EQUIVALENCE (IVOE08, IVOE09), (IVOE10, IVOE11) 00710300 ! 75: C 00720300 ! 76: C *** SPECIFICATION STATEMENTS FOR TEST 009 *** 00730300 ! 77: C 00740300 ! 78: EQUIVALENCE (IVOE12, IVOE13), (IVOE13, IVOE14) 00750300 ! 79: C 00760300 ! 80: C *** SPECIFICATION STATEMENTS FOR TEST 010 *** 00770300 ! 81: C 00780300 ! 82: EQUIVALENCE (IVOE15, IVOE16) 00790300 ! 83: EQUIVALENCE (IVOE16, IVOE17) 00800300 ! 84: C 00810300 ! 85: C *** SPECIFICATION STATEMENTS FOR TESTS 011 AND 012 *** 00820300 ! 86: C 00830300 ! 87: DIMENSION IADE11(2), IADE12(3) 00840300 ! 88: EQUIVALENCE (IADE11, IADE12) 00850300 ! 89: C 00860300 ! 90: C *** SPECIFICATION STATEMENTS FOR TESTS 013 AND 014 *** 00870300 ! 91: C 00880300 ! 92: DIMENSION RADE11(5), RADE12(5) 00890300 ! 93: EQUIVALENCE (RADE11(4), RADE12(2)) 00900300 ! 94: C 00910300 ! 95: C *** SPECIFICATION STATEMENTS FOR TEST 015 *** 00920300 ! 96: C 00930300 ! 97: DIMENSION IADE13(4), IADE14(4) 00940300 ! 98: EQUIVALENCE (IADE13, IADE14(3)) 00950300 ! 99: C 00960300 ! 100: C *** SPECIFICATION STATEMENTS FOR TEST 016 *** 00970300 ! 101: C 00980300 ! 102: DIMENSION IADE15(3) 00990300 ! 103: EQUIVALENCE (IADE15(2), IVOE18) 01000300 ! 104: C 01010300 ! 105: C *** SPECIFICATION STATEMENTS FOR TESTS 017 AND 018 *** 01020300 ! 106: C 01030300 ! 107: DIMENSION IADE21(2,2), IADE16(4) 01040300 ! 108: EQUIVALENCE (IADE21, IADE16) 01050300 ! 109: C 01060300 ! 110: C *** SPECIFICATION STATEMENTS FOR TEST 019 *** 01070300 ! 111: C 01080300 ! 112: EQUIVALENCE (IVOE19, IVOE20) 01090300 ! 113: DATA IVOE19/19/ 01100300 ! 114: C 01110300 ! 115: C 01120300 ! 116: C 01130300 ! 117: C INITIALIZATION SECTION. 01140300 ! 118: C 01150300 ! 119: C INITIALIZE CONSTANTS 01160300 ! 120: C ******************** 01170300 ! 121: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 01180300 ! 122: I01 = 5 01190300 ! 123: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 01200300 ! 124: I02 = 6 01210300 ! 125: C SYSTEM ENVIRONMENT SECTION 01220300 ! 126: C 01230300 ! 127: I01 = 5 01240300 ! 128: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01250300 ! 129: C (UNIT NUMBER FOR CARD READER). 01260300 ! 130: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01270300 ! 131: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01280300 ! 132: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01290300 ! 133: C 01300300 ! 134: I02 = 6 01310300 ! 135: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01320300 ! 136: C (UNIT NUMBER FOR PRINTER). 01330300 ! 137: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01340300 ! 138: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01350300 ! 139: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01360300 ! 140: C 01370300 ! 141: IVPASS = 0 01380300 ! 142: IVFAIL = 0 01390300 ! 143: IVDELE = 0 01400300 ! 144: ICZERO = 0 01410300 ! 145: C 01420300 ! 146: C WRITE OUT PAGE HEADERS 01430300 ! 147: C 01440300 ! 148: WRITE (I02,90002) 01450300 ! 149: WRITE (I02,90006) 01460300 ! 150: WRITE (I02,90008) 01470300 ! 151: WRITE (I02,90004) 01480300 ! 152: WRITE (I02,90010) 01490300 ! 153: WRITE (I02,90004) 01500300 ! 154: WRITE (I02,90016) 01510300 ! 155: WRITE (I02,90001) 01520300 ! 156: WRITE (I02,90004) 01530300 ! 157: WRITE (I02,90012) 01540300 ! 158: WRITE (I02,90014) 01550300 ! 159: WRITE (I02,90004) 01560300 ! 160: C 01570300 ! 161: C 01580300 ! 162: C **** FCVS PROGRAM 300 - TEST 001 **** 01590300 ! 163: C 01600300 ! 164: C THIS IS A TEST FOR EQUATING TWO INTEGER VARIABLES. 01610300 ! 165: C 01620300 ! 166: C 01630300 ! 167: IVTNUM = 1 01640300 ! 168: IF (ICZERO) 30010, 0010, 30010 01650300 ! 169: 0010 CONTINUE 01660300 ! 170: IVCOMP = 0 01670300 ! 171: IVOE01 = 5 01680300 ! 172: IVOE02 = 7 01690300 ! 173: IVCORR = 7 01700300 ! 174: IVCOMP = IVOE01 01710300 ! 175: 40010 IF (IVCOMP - 7) 20010,10010,20010 01720300 ! 176: 30010 IVDELE = IVDELE + 1 01730300 ! 177: WRITE (I02,80000) IVTNUM 01740300 ! 178: IF (ICZERO) 10010, 0021, 20010 01750300 ! 179: 10010 IVPASS = IVPASS + 1 01760300 ! 180: WRITE (I02,80002) IVTNUM 01770300 ! 181: GO TO 0021 01780300 ! 182: 20010 IVFAIL = IVFAIL + 1 01790300 ! 183: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01800300 ! 184: 0021 CONTINUE 01810300 ! 185: C 01820300 ! 186: C **** FCVS PROGRAM 300 - TEST 002 **** 01830300 ! 187: C 01840300 ! 188: C THIS IS A TEST FOR EQUATING TWO REAL VARIABLES. 01850300 ! 189: C 01860300 ! 190: C 01870300 ! 191: IVTNUM = 2 01880300 ! 192: IF (ICZERO) 30020, 0020, 30020 01890300 ! 193: 0020 CONTINUE 01900300 ! 194: RVCOMP = 0.0 01910300 ! 195: RVOE01 = 4.5 01920300 ! 196: RVOE02 = 1.2 01930300 ! 197: RVCORR = 1.2 01940300 ! 198: RVCOMP = RVOE01 01950300 ! 199: 40020 IF (RVCOMP - 1.1995) 20020,10020,40021 01960300 ! 200: 40021 IF (RVCOMP - 1.2005) 10020,10020,20020 01970300 ! 201: 30020 IVDELE = IVDELE + 1 01980300 ! 202: WRITE (I02,80000) IVTNUM 01990300 ! 203: IF (ICZERO) 10020, 0031, 20020 02000300 ! 204: 10020 IVPASS = IVPASS + 1 02010300 ! 205: WRITE (I02,80002) IVTNUM 02020300 ! 206: GO TO 0031 02030300 ! 207: 20020 IVFAIL = IVFAIL + 1 02040300 ! 208: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 02050300 ! 209: 0031 CONTINUE 02060300 ! 210: C 02070300 ! 211: C **** FCVS PROGRAM 300 - TEST 003 **** 02080300 ! 212: C 02090300 ! 213: C THIS IS A TEST FOR EQUATING TWO LOGICAL VARIABLES. 02100300 ! 214: C 02110300 ! 215: C 02120300 ! 216: IVTNUM = 3 02130300 ! 217: IF (ICZERO) 30030, 0030, 30030 02140300 ! 218: 0030 CONTINUE 02150300 ! 219: LVOE01 = .TRUE. 02160300 ! 220: LVOE02 = .FALSE. 02170300 ! 221: IVCORR = 0 02180300 ! 222: IVCOMP = 0 02190300 ! 223: IF (LVOE01) IVCOMP = 1 02200300 ! 224: 40030 IF (IVCOMP) 20030,10030,20030 02210300 ! 225: 30030 IVDELE = IVDELE + 1 02220300 ! 226: WRITE (I02,80000) IVTNUM 02230300 ! 227: IF (ICZERO) 10030, 0041, 20030 02240300 ! 228: 10030 IVPASS = IVPASS + 1 02250300 ! 229: WRITE (I02,80002) IVTNUM 02260300 ! 230: GO TO 0041 02270300 ! 231: 20030 IVFAIL = IVFAIL + 1 02280300 ! 232: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02290300 ! 233: 0041 CONTINUE 02300300 ! 234: C 02310300 ! 235: C **** FCVS PROGRAM 300 - TEST 004 **** 02320300 ! 236: C 02330300 ! 237: C THIS IS A TEST FOR EQUATING TWO CHARACTER VARIABLES. 02340300 ! 238: C 02350300 ! 239: C 02360300 ! 240: IVTNUM = 4 02370300 ! 241: IF (ICZERO) 30040, 0040, 30040 02380300 ! 242: 0040 CONTINUE 02390300 ! 243: CVCOMP = ' ' 02400300 ! 244: CVTE01 = 'ABC' 02410300 ! 245: CVTE02 = 'DEF' 02420300 ! 246: CVCORR = 'DEF' 02430300 ! 247: CVCOMP = CVTE01 02440300 ! 248: 40040 IF (CVCOMP .EQ. 'DEF') GO TO 10040 02450300 ! 249: 40041 GO TO 20040 02460300 ! 250: 30040 IVDELE = IVDELE + 1 02470300 ! 251: WRITE (I02,80000) IVTNUM 02480300 ! 252: IF (ICZERO) 10040, 0051, 20040 02490300 ! 253: 10040 IVPASS = IVPASS + 1 02500300 ! 254: WRITE (I02,80002) IVTNUM 02510300 ! 255: GO TO 0051 02520300 ! 256: 20040 IVFAIL = IVFAIL + 1 02530300 ! 257: WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 02540300 ! 258: 0051 CONTINUE 02550300 ! 259: C 02560300 ! 260: C **** FCVS PROGRAM 300 - TEST 005 **** 02570300 ! 261: C 02580300 ! 262: C THIS IS A TEST FOR EQUATING THREE INTEGER VARIABLES. 02590300 ! 263: C 02600300 ! 264: C 02610300 ! 265: IVTNUM = 5 02620300 ! 266: IF (ICZERO) 30050, 0050, 30050 02630300 ! 267: 0050 CONTINUE 02640300 ! 268: IVCOMP = 0 02650300 ! 269: IVOE03 = 3 02660300 ! 270: IVOE04 = 4 02670300 ! 271: IVOE05 = 5 02680300 ! 272: IVCORR = 5 02690300 ! 273: IVCOMP = IVOE03 02700300 ! 274: 40050 IF (IVCOMP - 5) 20050,40051,20050 02710300 ! 275: 40051 IVCOMP = IVOE04 02720300 ! 276: 40052 IF (IVCOMP - 5) 20050,10050,20050 02730300 ! 277: 30050 IVDELE = IVDELE + 1 02740300 ! 278: WRITE (I02,80000) IVTNUM 02750300 ! 279: IF (ICZERO) 10050, 0061, 20050 02760300 ! 280: 10050 IVPASS = IVPASS + 1 02770300 ! 281: WRITE (I02,80002) IVTNUM 02780300 ! 282: GO TO 0061 02790300 ! 283: 20050 IVFAIL = IVFAIL + 1 02800300 ! 284: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02810300 ! 285: 0061 CONTINUE 02820300 ! 286: C 02830300 ! 287: C **** FCVS PROGRAM 300 - TEST 006 **** 02840300 ! 288: C 02850300 ! 289: C THIS IS A TEST FOR EQUATING TWO INTEGER VARIABLES AND ONE 02860300 ! 290: C REAL VARIABLE WITHIN ONE EQUIVALENCE STATEMENT LIST OF NAMES. THE02870300 ! 291: C VALUE OF THE REAL VARIABLE IS NOT TESTED. 02880300 ! 292: C 02890300 ! 293: C 02900300 ! 294: IVTNUM = 6 02910300 ! 295: IF (ICZERO) 30060, 0060, 30060 02920300 ! 296: 0060 CONTINUE 02930300 ! 297: IVCOMP = 0 02940300 ! 298: RVOE03 = 3.445 02950300 ! 299: IVOE06 = 6 02960300 ! 300: IVOE07 = 7 02970300 ! 301: IVCORR = 7 02980300 ! 302: IVCOMP = IVOE06 02990300 ! 303: 40060 IF (IVCOMP - 7) 20060,10060,20060 03000300 ! 304: 30060 IVDELE = IVDELE + 1 03010300 ! 305: WRITE (I02,80000) IVTNUM 03020300 ! 306: IF (ICZERO) 10060, 0071, 20060 03030300 ! 307: 10060 IVPASS = IVPASS + 1 03040300 ! 308: WRITE (I02,80002) IVTNUM 03050300 ! 309: GO TO 0071 03060300 ! 310: 20060 IVFAIL = IVFAIL + 1 03070300 ! 311: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03080300 ! 312: 0071 CONTINUE 03090300 ! 313: C 03100300 ! 314: C **** FCVS PROGRAM 300 - TEST 007 **** 03110300 ! 315: C 03120300 ! 316: C THIS IS A TEST FOR EQUATING INTEGER VARIABLES USING TWO LISTS 03130300 ! 317: C OF NAMES IN ONE EQUIVALENCE STATEMENT. NAMES SPECIFIED IN THE 03140300 ! 318: C FIRST LIST ARE NOT EQUATED TO NAMES IN THE SECOND LIST. THIS 03150300 ! 319: C TEST CHECKS THE EQUIVALINCE OF THE VARIABLES IN THE FIRST LIST. 03160300 ! 320: C 03170300 ! 321: C 03180300 ! 322: IVTNUM = 7 03190300 ! 323: IF (ICZERO) 30070, 0070, 30070 03200300 ! 324: 0070 CONTINUE 03210300 ! 325: IVCOMP = 0 03220300 ! 326: IVOE08 = 8 03230300 ! 327: IVOE09 = 9 03240300 ! 328: IVOE10 = 10 03250300 ! 329: IVOE11 = 11 03260300 ! 330: IVCORR = 9 03270300 ! 331: IVCOMP = IVOE08 03280300 ! 332: 40070 IF (IVCOMP - 9) 20070,10070,20070 03290300 ! 333: 30070 IVDELE = IVDELE + 1 03300300 ! 334: WRITE (I02,80000) IVTNUM 03310300 ! 335: IF (ICZERO) 10070, 0081, 20070 03320300 ! 336: 10070 IVPASS = IVPASS + 1 03330300 ! 337: WRITE (I02,80002) IVTNUM 03340300 ! 338: GO TO 0081 03350300 ! 339: 20070 IVFAIL = IVFAIL + 1 03360300 ! 340: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03370300 ! 341: 0081 CONTINUE 03380300 ! 342: C 03390300 ! 343: C **** FCVS PROGRAM 300 - TEST 008 **** 03400300 ! 344: C 03410300 ! 345: C THIS TEST CHECKS THE EQUIVALENCE OF THE VARIABLES IN THE 03420300 ! 346: C SECOND LIST. 03430300 ! 347: C 03440300 ! 348: C 03450300 ! 349: IVTNUM = 8 03460300 ! 350: IF (ICZERO) 30080, 0080, 30080 03470300 ! 351: 0080 CONTINUE 03480300 ! 352: IVCOMP = 0 03490300 ! 353: IVCORR = 11 03500300 ! 354: IVCOMP = IVOE10 03510300 ! 355: 40080 IF (IVCOMP - 11) 20080,10080,20080 03520300 ! 356: 30080 IVDELE = IVDELE + 1 03530300 ! 357: WRITE (I02,80000) IVTNUM 03540300 ! 358: IF (ICZERO) 10080, 0091, 20080 03550300 ! 359: 10080 IVPASS = IVPASS + 1 03560300 ! 360: WRITE (I02,80002) IVTNUM 03570300 ! 361: GO TO 0091 03580300 ! 362: 20080 IVFAIL = IVFAIL + 1 03590300 ! 363: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03600300 ! 364: 0091 CONTINUE 03610300 ! 365: C 03620300 ! 366: C **** FCVS PROGRAM 300 - TEST 009 **** 03630300 ! 367: C 03640300 ! 368: C THIS IS A TEST FOR EQUATING INTEGER VARIABLES IN ONE LIST 03650300 ! 369: C WITH INTEGER VARIABLES IN A SECOND LIST OF THE SAME EQUIVALENCE 03660300 ! 370: C STATEMENT. ALL VARIABLES SHOULD BE EQUATED AND SHARE THE SAME 03670300 ! 371: C STORAGE UNIT. 03680300 ! 372: C 03690300 ! 373: C 03700300 ! 374: IVTNUM = 9 03710300 ! 375: IF (ICZERO) 30090, 0090, 30090 03720300 ! 376: 0090 CONTINUE 03730300 ! 377: IVCOMP = 0 03740300 ! 378: IVOE12 = 12 03750300 ! 379: IVOE13 = 13 03760300 ! 380: IVOE14 = 14 03770300 ! 381: IVCORR = 14 03780300 ! 382: IVCOMP = IVOE13 03790300 ! 383: 40090 IF (IVCOMP - 14) 20090,40091,20090 03800300 ! 384: 40091 IVCOMP = IVOE12 03810300 ! 385: 40092 IF (IVCOMP - 14) 20090,10090,20090 03820300 ! 386: 30090 IVDELE = IVDELE + 1 03830300 ! 387: WRITE (I02,80000) IVTNUM 03840300 ! 388: IF (ICZERO) 10090, 0101, 20090 03850300 ! 389: 10090 IVPASS = IVPASS + 1 03860300 ! 390: WRITE (I02,80002) IVTNUM 03870300 ! 391: GO TO 0101 03880300 ! 392: 20090 IVFAIL = IVFAIL + 1 03890300 ! 393: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03900300 ! 394: 0101 CONTINUE 03910300 ! 395: C 03920300 ! 396: C **** FCVS PROGRAM 300 - TEST 010 **** 03930300 ! 397: C 03940300 ! 398: C THIS IS A TEST FOR EQUATING INTEGER VARIABLES SPECIFIED IN ONE 03950300 ! 399: C EQUIVALENCE STATEMENT WITH INTEGER VARIABLES SPECIFIED IN A 03960300 ! 400: C SECOND EQUIVALENCE STATEMENT. ONE VARIABLE IS SPECIFIED IN BOTH 03970300 ! 401: C STATEMENTS, THEREFORE ALL VARIABLES SHOULD BE EQUATED AND SHARE 03980300 ! 402: C THE SAME STORAGE UNIT. 03990300 ! 403: C 04000300 ! 404: C 04010300 ! 405: IVTNUM = 10 04020300 ! 406: IF (ICZERO) 30100, 0100, 30100 04030300 ! 407: 0100 CONTINUE 04040300 ! 408: IVCOMP = 0 04050300 ! 409: IVOE15 = 15 04060300 ! 410: IVOE16 = 16 04070300 ! 411: IVOE17 = 17 04080300 ! 412: IVCORR = 17 04090300 ! 413: IVCOMP = IVOE16 04100300 ! 414: 40100 IF (IVCOMP - 17) 20100,40101,20100 04110300 ! 415: 40101 IVCOMP = IVOE15 04120300 ! 416: 40102 IF (IVCOMP - 17) 20100,10100,20100 04130300 ! 417: 30100 IVDELE = IVDELE + 1 04140300 ! 418: WRITE (I02,80000) IVTNUM 04150300 ! 419: IF (ICZERO) 10100, 0111, 20100 04160300 ! 420: 10100 IVPASS = IVPASS + 1 04170300 ! 421: WRITE (I02,80002) IVTNUM 04180300 ! 422: GO TO 0111 04190300 ! 423: 20100 IVFAIL = IVFAIL + 1 04200300 ! 424: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04210300 ! 425: 0111 CONTINUE 04220300 ! 426: C 04230300 ! 427: C **** FCVS PROGRAM 300 - TEST 011 **** 04240300 ! 428: C 04250300 ! 429: C THIS IS A TEST FOR EQUATING TWO INTEGER ARRAYS UNQUALIFIED 04260300 ! 430: C BY A SUBSCRIPT IN THE EQUIVALENCE STATEMENT. ALL ARRAY ELEMENTS 04270300 ! 431: C SPECIFIED BY THE SAME SUBSCRIPT VALUE, BEGINNING WITH THE FIRST 04280300 ! 432: C ARRAY ELEMENT, SHOULD BE EQUATED AND SHARE THE SAME STORAGE UNIT. 04290300 ! 433: C THIS TEST CHECKS THE EQUIVALENCE OF THE FIRST ARRAY ELEMENTS. 04300300 ! 434: C 04310300 ! 435: C 04320300 ! 436: IVTNUM = 11 04330300 ! 437: IF (ICZERO) 30110, 0110, 30110 04340300 ! 438: 0110 CONTINUE 04350300 ! 439: IVCOMP = 0 04360300 ! 440: IADE11(1) = 111 04370300 ! 441: IADE11(2) = 112 04380300 ! 442: IADE12(1) = 121 04390300 ! 443: IADE12(2) = 122 04400300 ! 444: IADE12(3) = 123 04410300 ! 445: IVCORR = 121 04420300 ! 446: IVCOMP = IADE11(1) 04430300 ! 447: 40110 IF (IVCOMP - 121) 20110,10110,20110 04440300 ! 448: 30110 IVDELE = IVDELE + 1 04450300 ! 449: WRITE (I02,80000) IVTNUM 04460300 ! 450: IF (ICZERO) 10110, 0121, 20110 04470300 ! 451: 10110 IVPASS = IVPASS + 1 04480300 ! 452: WRITE (I02,80002) IVTNUM 04490300 ! 453: GO TO 0121 04500300 ! 454: 20110 IVFAIL = IVFAIL + 1 04510300 ! 455: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04520300 ! 456: 0121 CONTINUE 04530300 ! 457: C 04540300 ! 458: C **** FCVS PROGRAM 300 - TEST 012 **** 04550300 ! 459: C 04560300 ! 460: C THIS TEST CHECKS THE EQUIVALENCE OF THE SECOND ARRAY ELEMENTS. 04570300 ! 461: C 04580300 ! 462: C 04590300 ! 463: IVTNUM = 12 04600300 ! 464: IF (ICZERO) 30120, 0120, 30120 04610300 ! 465: 0120 CONTINUE 04620300 ! 466: IVCOMP = 0 04630300 ! 467: IVCORR = 122 04640300 ! 468: IVCOMP = IADE11(2) 04650300 ! 469: 40120 IF (IVCOMP - 122) 20120,10120,20120 04660300 ! 470: 30120 IVDELE = IVDELE + 1 04670300 ! 471: WRITE (I02,80000) IVTNUM 04680300 ! 472: IF (ICZERO) 10120, 0131, 20120 04690300 ! 473: 10120 IVPASS = IVPASS + 1 04700300 ! 474: WRITE (I02,80002) IVTNUM 04710300 ! 475: GO TO 0131 04720300 ! 476: 20120 IVFAIL = IVFAIL + 1 04730300 ! 477: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04740300 ! 478: 0131 CONTINUE 04750300 ! 479: C 04760300 ! 480: C **** FCVS PROGRAM 300 - TEST 013 **** 04770300 ! 481: C 04780300 ! 482: C THIS IS A TEST FOR EQUATING TWO REAL ARRAY ELEMENTS. THIS 04790300 ! 483: C TEST CHECKS THE EQUIVALENCE OF THE TWO ARRAY ELEMENTS SPECIFIED 04800300 ! 484: C IN THE EQUIVALENCE STATEMENT. 04810300 ! 485: C 04820300 ! 486: C 04830300 ! 487: IVTNUM = 13 04840300 ! 488: IF (ICZERO) 30130, 0130, 30130 04850300 ! 489: 0130 CONTINUE 04860300 ! 490: RVCOMP = 0.0 04870300 ! 491: RADE11(4) = 11.4 04880300 ! 492: RADE12(2) = 1.22 04890300 ! 493: RVCORR = 1.22 04900300 ! 494: RVCOMP = RADE11(4) 04910300 ! 495: 40130 IF (RVCOMP - 1.2195) 20130,10130,40131 04920300 ! 496: 40131 IF (RVCOMP - 1.2205) 10130,10130,20130 04930300 ! 497: 30130 IVDELE = IVDELE + 1 04940300 ! 498: WRITE (I02,80000) IVTNUM 04950300 ! 499: IF (ICZERO) 10130, 0141, 20130 04960300 ! 500: 10130 IVPASS = IVPASS + 1 04970300 ! 501: WRITE (I02,80002) IVTNUM 04980300 ! 502: GO TO 0141 04990300 ! 503: 20130 IVFAIL = IVFAIL + 1 05000300 ! 504: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05010300 ! 505: 0141 CONTINUE 05020300 ! 506: C 05030300 ! 507: C **** FCVS PROGRAM 300 - TEST 014 **** 05040300 ! 508: C 05050300 ! 509: C THIS TEST CHECKS THE EQUIVALENCE OF THE ARRAY ELEMENTS 05060300 ! 510: C WITH A SUBSCRIPT VALUE ONE LESS THAN THOSE TESTED IN THE 05070300 ! 511: C PREVIOUS TEST. THESE ELEMENTS SHOULD BE EQUATED AND SHARE THE 05080300 ! 512: C SAME STORAGE UNIT DUE TO THE WAY ARRAY ELEMENTS OCCUPY 05090300 ! 513: C CONSECUTIVE STORAGE UNITS. 05100300 ! 514: C 05110300 ! 515: C 05120300 ! 516: IVTNUM = 14 05130300 ! 517: IF (ICZERO) 30140, 0140, 30140 05140300 ! 518: 0140 CONTINUE 05150300 ! 519: RVCOMP = 0.0 05160300 ! 520: RADE11(3) = .113 05170300 ! 521: RADE12(1) = 122. 05180300 ! 522: RVCORR = 122. 05190300 ! 523: RVCOMP = RADE11(3) 05200300 ! 524: 40140 IF (RVCOMP - 121.95) 20140,10140,40141 05210300 ! 525: 40141 IF (RVCOMP - 122.05) 10140,10140,20140 05220300 ! 526: 30140 IVDELE = IVDELE + 1 05230300 ! 527: WRITE (I02,80000) IVTNUM 05240300 ! 528: IF (ICZERO) 10140, 0151, 20140 05250300 ! 529: 10140 IVPASS = IVPASS + 1 05260300 ! 530: WRITE (I02,80002) IVTNUM 05270300 ! 531: GO TO 0151 05280300 ! 532: 20140 IVFAIL = IVFAIL + 1 05290300 ! 533: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05300300 ! 534: 0151 CONTINUE 05310300 ! 535: C 05320300 ! 536: C **** FCVS PROGRAM 300 - TEST 015 **** 05330300 ! 537: C 05340300 ! 538: C THIS IS A TEST TO EQUATE AN ARRAY NAME TO AN ARRAY ELEMENT 05350300 ! 539: C NAME. 05360300 ! 540: C 05370300 ! 541: C 05380300 ! 542: IVTNUM = 15 05390300 ! 543: IF (ICZERO) 30150, 0150, 30150 05400300 ! 544: 0150 CONTINUE 05410300 ! 545: IVCOMP = 0 05420300 ! 546: IADE13(1) = 131 05430300 ! 547: IADE14(3) = 143 05440300 ! 548: IVCORR = 143 05450300 ! 549: IVCOMP = IADE13(1) 05460300 ! 550: 40150 IF (IVCOMP - 143) 20150,10150,20150 05470300 ! 551: 30150 IVDELE = IVDELE + 1 05480300 ! 552: WRITE (I02,80000) IVTNUM 05490300 ! 553: IF (ICZERO) 10150, 0161, 20150 05500300 ! 554: 10150 IVPASS = IVPASS + 1 05510300 ! 555: WRITE (I02,80002) IVTNUM 05520300 ! 556: GO TO 0161 05530300 ! 557: 20150 IVFAIL = IVFAIL + 1 05540300 ! 558: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05550300 ! 559: 0161 CONTINUE 05560300 ! 560: C 05570300 ! 561: C **** FCVS PROGRAM 300 - TEST 016 **** 05580300 ! 562: C 05590300 ! 563: C THIS IS A TEST TO EQUATE AN ARRAY ELEMENT TO AN INTEGER 05600300 ! 564: C VARIABLE. 05610300 ! 565: C 05620300 ! 566: C 05630300 ! 567: IVTNUM = 16 05640300 ! 568: IF (ICZERO) 30160, 0160, 30160 05650300 ! 569: 0160 CONTINUE 05660300 ! 570: IVCOMP = 0 05670300 ! 571: IADE15(2) = 152 05680300 ! 572: IVOE18 = 18 05690300 ! 573: IVCORR = 18 05700300 ! 574: IVCOMP = IADE15(2) 05710300 ! 575: 40160 IF (IVCOMP - 18) 20160,10160,20160 05720300 ! 576: 30160 IVDELE = IVDELE + 1 05730300 ! 577: WRITE (I02,80000) IVTNUM 05740300 ! 578: IF (ICZERO) 10160, 0171, 20160 05750300 ! 579: 10160 IVPASS = IVPASS + 1 05760300 ! 580: WRITE (I02,80002) IVTNUM 05770300 ! 581: GO TO 0171 05780300 ! 582: 20160 IVFAIL = IVFAIL + 1 05790300 ! 583: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05800300 ! 584: 0171 CONTINUE 05810300 ! 585: C 05820300 ! 586: C **** FCVS PROGRAM 300 - TEST 017 **** 05830300 ! 587: C 05840300 ! 588: C THIS IS A TEST TO EQUATE A ONE DIMENSIONAL ARRAY TO A TWO 05850300 ! 589: C DIMENSIONAL ARRAY. THIS TEST CHECKS THE SECOND ARRAY ELEMENTS. 05860300 ! 590: C 05870300 ! 591: C 05880300 ! 592: IVTNUM = 17 05890300 ! 593: IF (ICZERO) 30170, 0170, 30170 05900300 ! 594: 0170 CONTINUE 05910300 ! 595: IVCOMP = 0 05920300 ! 596: IADE21(2,1) = 212 05930300 ! 597: IADE16(2) = 162 05940300 ! 598: IVCORR = 162 05950300 ! 599: IVCOMP = IADE21(2,1) 05960300 ! 600: 40170 IF (IVCOMP - 162) 20170,10170,20170 05970300 ! 601: 30170 IVDELE = IVDELE + 1 05980300 ! 602: WRITE (I02,80000) IVTNUM 05990300 ! 603: IF (ICZERO) 10170, 0181, 20170 06000300 ! 604: 10170 IVPASS = IVPASS + 1 06010300 ! 605: WRITE (I02,80002) IVTNUM 06020300 ! 606: GO TO 0181 06030300 ! 607: 20170 IVFAIL = IVFAIL + 1 06040300 ! 608: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06050300 ! 609: 0181 CONTINUE 06060300 ! 610: C 06070300 ! 611: C **** FCVS PROGRAM 300 - TEST 018 **** 06080300 ! 612: C 06090300 ! 613: C THIS TEST CHECKS THE THIRD ARRAY ELEMENTS FROM THE PREVIOUS 06100300 ! 614: C TEST. 06110300 ! 615: C 06120300 ! 616: C 06130300 ! 617: IVTNUM = 18 06140300 ! 618: IF (ICZERO) 30180, 0180, 30180 06150300 ! 619: 0180 CONTINUE 06160300 ! 620: IVCOMP = 0 06170300 ! 621: IADE21(1,2) = 2112 06180300 ! 622: IADE16(3) = 163 06190300 ! 623: IVCORR = 163 06200300 ! 624: IVCOMP = IADE21(1,2) 06210300 ! 625: 40180 IF (IVCOMP - 163) 20180,10180,20180 06220300 ! 626: 30180 IVDELE = IVDELE + 1 06230300 ! 627: WRITE (I02,80000) IVTNUM 06240300 ! 628: IF (ICZERO) 10180, 0191, 20180 06250300 ! 629: 10180 IVPASS = IVPASS + 1 06260300 ! 630: WRITE (I02,80002) IVTNUM 06270300 ! 631: GO TO 0191 06280300 ! 632: 20180 IVFAIL = IVFAIL + 1 06290300 ! 633: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06300300 ! 634: 0191 CONTINUE 06310300 ! 635: C 06320300 ! 636: C **** FCVS PROGRAM 300 - TEST 019 **** 06330300 ! 637: C 06340300 ! 638: C THIS IS A TEST TO EQUATE TWO INTEGER VARIABLES ONE OF WHICH 06350300 ! 639: C IS INITIALIZED IN A DATA STATEMENT. 06360300 ! 640: C 06370300 ! 641: C 06380300 ! 642: IVTNUM = 19 06390300 ! 643: IF (ICZERO) 30190, 0190, 30190 06400300 ! 644: 0190 CONTINUE 06410300 ! 645: IVCOMP = 0 06420300 ! 646: IVCORR = 19 06430300 ! 647: IVCOMP = IVOE20 06440300 ! 648: 40190 IF (IVCOMP - 19) 20190,10190,20190 06450300 ! 649: 30190 IVDELE = IVDELE + 1 06460300 ! 650: WRITE (I02,80000) IVTNUM 06470300 ! 651: IF (ICZERO) 10190, 0201, 20190 06480300 ! 652: 10190 IVPASS = IVPASS + 1 06490300 ! 653: WRITE (I02,80002) IVTNUM 06500300 ! 654: GO TO 0201 06510300 ! 655: 20190 IVFAIL = IVFAIL + 1 06520300 ! 656: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06530300 ! 657: 0201 CONTINUE 06540300 ! 658: C 06550300 ! 659: C 06560300 ! 660: C WRITE OUT TEST SUMMARY 06570300 ! 661: C 06580300 ! 662: WRITE (I02,90004) 06590300 ! 663: WRITE (I02,90014) 06600300 ! 664: WRITE (I02,90004) 06610300 ! 665: WRITE (I02,90000) 06620300 ! 666: WRITE (I02,90004) 06630300 ! 667: WRITE (I02,90020) IVFAIL 06640300 ! 668: WRITE (I02,90022) IVPASS 06650300 ! 669: WRITE (I02,90024) IVDELE 06660300 ! 670: STOP 06670300 ! 671: 90001 FORMAT (1H ,24X,5HFM300) 06680300 ! 672: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM300) 06690300 ! 673: C 06700300 ! 674: C FORMATS FOR TEST DETAIL LINES 06710300 ! 675: C 06720300 ! 676: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 06730300 ! 677: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 06740300 ! 678: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 06750300 ! 679: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 06760300 ! 680: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 06770300 ! 681: C 06780300 ! 682: C FORMAT STATEMENTS FOR PAGE HEADERS 06790300 ! 683: C 06800300 ! 684: 90002 FORMAT (1H1) 06810300 ! 685: 90004 FORMAT (1H ) 06820300 ! 686: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06830300 ! 687: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 06840300 ! 688: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 06850300 ! 689: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 06860300 ! 690: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 06870300 ! 691: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 06880300 ! 692: C 06890300 ! 693: C FORMAT STATEMENTS FOR RUN SUMMARY 06900300 ! 694: C 06910300 ! 695: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 06920300 ! 696: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 06930300 ! 697: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 06940300 ! 698: END 06950300
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.