|
|
1.1 ! root 1: C 00010056 ! 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 00020056 ! 6: C 00030056 ! 7: C FM056 00040056 ! 8: C 00050056 ! 9: C FM056 IS A MAIN WHICH TESTS THE ARGUMENT PASSING LINKAGE OF 00060056 ! 10: C A 2 LEVEL NESTED SUBROUTINE AND AN EXTERNAL FUNCTION REFERENCE. 00070056 ! 11: C THE MAIN PROGRAM FM056 CALLS SUBROUTINE FS057 PASSING ONE 00080056 ! 12: C ARGUMENT. SUBROUTINE FS057 CALLS SUBROUTINE FS058 PASSING TWO 00090056 ! 13: C ARGUMENTS. SUBROUTINE FS058 REFERENCES EXTERNAL FUNCTION FF059 00100056 ! 14: C PASSING 3 ARGUMENTS. FUNCTION FF059 ADDS THE VALUES OF THE 3 00110056 ! 15: C ARGUMENTS TOGETHER. SUBROUTINE FS057 AND FS058 THEN MERELY 00120056 ! 16: C RETURN THE RESULT TO FM056 IN THE FIRST ARGUMENT. 00130056 ! 17: C 00140056 ! 18: C THE VALUES OF THE ARGUMENTS THAT ARE PASSED TO EACH 00150056 ! 19: C SUBPROGRAM AND FUNCTION, AND RETURNED TO THE CALLING OR 00160056 ! 20: C REFERENCING PROGRAM ARE SAVED IN AN INTEGER ARRAY. FM056 THEN 00170056 ! 21: C USES THESE VALUES TO TEST THE COMPILER'S ARGUMENT PASSING 00180056 ! 22: C CAPABILITIES. 00190056 ! 23: C 00200056 ! 24: C REFERENCES 00210056 ! 25: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00220056 ! 26: C X3.9-1978 00230056 ! 27: C 00240056 ! 28: C SECTION 15.6.2, SUBROUTINE REFERENCE 00250056 ! 29: COMMON IACN11 (12) 00260056 ! 30: C 00270056 ! 31: C ********************************************************** 00280056 ! 32: C 00290056 ! 33: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00300056 ! 34: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00310056 ! 35: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00320056 ! 36: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00330056 ! 37: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00340056 ! 38: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00350056 ! 39: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00360056 ! 40: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00370056 ! 41: C OF EXECUTING THESE TESTS. 00380056 ! 42: C 00390056 ! 43: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00400056 ! 44: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00410056 ! 45: C 00420056 ! 46: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00430056 ! 47: C 00440056 ! 48: C DEPARTMENT OF THE NAVY 00450056 ! 49: C FEDERAL COBOL COMPILER TESTING SERVICE 00460056 ! 50: C WASHINGTON, D.C. 20376 00470056 ! 51: C 00480056 ! 52: C ********************************************************** 00490056 ! 53: C 00500056 ! 54: C 00510056 ! 55: C 00520056 ! 56: C INITIALIZATION SECTION 00530056 ! 57: C 00540056 ! 58: C INITIALIZE CONSTANTS 00550056 ! 59: C ************** 00560056 ! 60: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00570056 ! 61: I01 = 5 00580056 ! 62: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00590056 ! 63: I02 = 6 00600056 ! 64: C SYSTEM ENVIRONMENT SECTION 00610056 ! 65: C 00620056 ! 66: I01 = 5 00630056 ! 67: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00640056 ! 68: C (UNIT NUMBER FOR CARD READER). 00650056 ! 69: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00660056 ! 70: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00670056 ! 71: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00680056 ! 72: C 00690056 ! 73: I02 = 6 00700056 ! 74: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00710056 ! 75: C (UNIT NUMBER FOR PRINTER). 00720056 ! 76: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00730056 ! 77: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00740056 ! 78: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00750056 ! 79: C 00760056 ! 80: IVPASS=0 00770056 ! 81: IVFAIL=0 00780056 ! 82: IVDELE=0 00790056 ! 83: ICZERO=0 00800056 ! 84: C 00810056 ! 85: C WRITE PAGE HEADERS 00820056 ! 86: WRITE (I02,90000) 00830056 ! 87: WRITE (I02,90001) 00840056 ! 88: WRITE (I02,90002) 00850056 ! 89: WRITE (I02, 90002) 00860056 ! 90: WRITE (I02,90003) 00870056 ! 91: WRITE (I02,90002) 00880056 ! 92: WRITE (I02,90004) 00890056 ! 93: WRITE (I02,90002) 00900056 ! 94: WRITE (I02,90011) 00910056 ! 95: WRITE (I02,90002) 00920056 ! 96: WRITE (I02,90002) 00930056 ! 97: WRITE (I02,90005) 00940056 ! 98: WRITE (I02,90006) 00950056 ! 99: WRITE (I02,90002) 00960056 ! 100: C 00970056 ! 101: C TEST SECTION 00980056 ! 102: C 00990056 ! 103: C SUBROUTINE SUBPROGRAM 01000056 ! 104: C 01010056 ! 105: IVON01 = 5 01020056 ! 106: CALL FS057 (IVON01) 01030056 ! 107: IACN11 (12) = IVON01 01040056 ! 108: IVTNUM = 430 01050056 ! 109: C 01060056 ! 110: C **** TEST 430 **** 01070056 ! 111: C 01080056 ! 112: C TEST 430 TESTS THE VALUE OF THE ARGUMENT RECEIVED BY FS057 FROM 01090056 ! 113: C A FM056 CALL TO FS057 01100056 ! 114: C 01110056 ! 115: IF (ICZERO) 34300, 4300, 34300 01120056 ! 116: 4300 CONTINUE 01130056 ! 117: IVCOMP = IACN11 (1) 01140056 ! 118: GO TO 44300 01150056 ! 119: 34300 IVDELE = IVDELE + 1 01160056 ! 120: WRITE (I02,80003) IVTNUM 01170056 ! 121: IF (ICZERO) 44300, 4311, 44300 01180056 ! 122: 44300 IF (IVCOMP - 5) 24300,14300,24300 01190056 ! 123: 14300 IVPASS = IVPASS + 1 01200056 ! 124: WRITE (I02,80001) IVTNUM 01210056 ! 125: GO TO 4311 01220056 ! 126: 24300 IVFAIL = IVFAIL + 1 01230056 ! 127: IVCORR = 5 01240056 ! 128: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01250056 ! 129: 4311 CONTINUE 01260056 ! 130: IVTNUM = 431 01270056 ! 131: C 01280056 ! 132: C **** TEST 431 **** 01290056 ! 133: C 01300056 ! 134: C TEST 431 TESTS THE VALUE OF THE SECOND ARGUMENT THAT WAS PASSED 01310056 ! 135: C FROM A FS057 CALL TO FS058 01320056 ! 136: C 01330056 ! 137: C 01340056 ! 138: IF (ICZERO) 34310, 4310, 34310 01350056 ! 139: 4310 CONTINUE 01360056 ! 140: IVCOMP = IACN11 (2) 01370056 ! 141: GO TO 44310 01380056 ! 142: 34310 IVDELE = IVDELE + 1 01390056 ! 143: WRITE (I02,80003) IVTNUM 01400056 ! 144: IF (ICZERO) 44310, 4321, 44310 01410056 ! 145: 44310 IF (IVCOMP - 4) 24310,14310,24310 01420056 ! 146: 14310 IVPASS = IVPASS + 1 01430056 ! 147: WRITE (I02,80001) IVTNUM 01440056 ! 148: GO TO 4321 01450056 ! 149: 24310 IVFAIL = IVFAIL + 1 01460056 ! 150: IVCORR = 4 01470056 ! 151: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01480056 ! 152: 4321 CONTINUE 01490056 ! 153: IVTNUM = 432 01500056 ! 154: C 01510056 ! 155: C **** TEST 432 **** 01520056 ! 156: C 01530056 ! 157: C TEST 432 TESTS THE VALUE OF THE FIRST ARGUMENT RECEIVED BY FS058 01540056 ! 158: C FROM A FS057 CALL TO FS058 01550056 ! 159: C 01560056 ! 160: C 01570056 ! 161: IF (ICZERO) 34320, 4320, 34320 01580056 ! 162: 4320 CONTINUE 01590056 ! 163: IVCOMP = IACN11 (3) 01600056 ! 164: GO TO 44320 01610056 ! 165: 34320 IVDELE = IVDELE + 1 01620056 ! 166: WRITE (I02,80003) IVTNUM 01630056 ! 167: IF (ICZERO) 44320, 4331, 44320 01640056 ! 168: 44320 IF (IVCOMP - 5) 24320,14320,24320 01650056 ! 169: 14320 IVPASS = IVPASS + 1 01660056 ! 170: WRITE (I02,80001) IVTNUM 01670056 ! 171: GO TO 4331 01680056 ! 172: 24320 IVFAIL = IVFAIL + 1 01690056 ! 173: IVCORR = 5 01700056 ! 174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710056 ! 175: 4331 CONTINUE 01720056 ! 176: IVTNUM = 433 01730056 ! 177: C 01740056 ! 178: C **** TEST 433 **** 01750056 ! 179: C 01760056 ! 180: C TEST 433 TESTS THE VALUE OF THE SECOND ARGUMENT RECEIVED BY FS058 01770056 ! 181: C FROM A FS057 CALL TO FS058 01780056 ! 182: C 01790056 ! 183: C 01800056 ! 184: IF (ICZERO) 34330, 4330, 34330 01810056 ! 185: 4330 CONTINUE 01820056 ! 186: IVCOMP = IACN11 (4) 01830056 ! 187: GO TO 44330 01840056 ! 188: 34330 IVDELE = IVDELE + 1 01850056 ! 189: WRITE (I02,80003) IVTNUM 01860056 ! 190: IF (ICZERO) 44330, 4341, 44330 01870056 ! 191: 44330 IF (IVCOMP - 4) 24330,14330,24330 01880056 ! 192: 14330 IVPASS = IVPASS + 1 01890056 ! 193: WRITE (I02,80001) IVTNUM 01900056 ! 194: GO TO 4341 01910056 ! 195: 24330 IVFAIL = IVFAIL + 1 01920056 ! 196: IVCORR = 4 01930056 ! 197: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01940056 ! 198: 4341 CONTINUE 01950056 ! 199: IVTNUM = 434 01960056 ! 200: C 01970056 ! 201: C **** TEST 434 **** 01980056 ! 202: C 01990056 ! 203: C TEST 434 TESTS THE VALUE OF THE THIRD ARGUMENT THAT WAS PASSED 02000056 ! 204: C FROM A FS058 REFERENCE OF FUNCTION FF059 02010056 ! 205: C 02020056 ! 206: C 02030056 ! 207: IF (ICZERO) 34340, 4340, 34340 02040056 ! 208: 4340 CONTINUE 02050056 ! 209: IVCOMP = IACN11 (5) 02060056 ! 210: GO TO 44340 02070056 ! 211: 34340 IVDELE = IVDELE + 1 02080056 ! 212: WRITE (I02,80003) IVTNUM 02090056 ! 213: IF (ICZERO) 44340, 4351, 44340 02100056 ! 214: 44340 IF (IVCOMP - 3) 24340,14340,24340 02110056 ! 215: 14340 IVPASS = IVPASS + 1 02120056 ! 216: WRITE (I02,80001) IVTNUM 02130056 ! 217: GO TO 4351 02140056 ! 218: 24340 IVFAIL = IVFAIL + 1 02150056 ! 219: IVCORR = 3 02160056 ! 220: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02170056 ! 221: 4351 CONTINUE 02180056 ! 222: IVTNUM = 435 02190056 ! 223: C 02200056 ! 224: C **** TEST 435 **** 02210056 ! 225: C 02220056 ! 226: C TEST 435 TESTS THE VALUE OF THE FIRST ARGUMENT RECEIVED BY FF059 02230056 ! 227: C FROM A FS058 REFERENCE OF FUNCTION FF059 02240056 ! 228: C 02250056 ! 229: C 02260056 ! 230: IF (ICZERO) 34350, 4350, 34350 02270056 ! 231: 4350 CONTINUE 02280056 ! 232: IVCOMP = IACN11 (6) 02290056 ! 233: GO TO 44350 02300056 ! 234: 34350 IVDELE = IVDELE + 1 02310056 ! 235: WRITE (I02,80003) IVTNUM 02320056 ! 236: IF (ICZERO) 44350, 4361, 44350 02330056 ! 237: 44350 IF (IVCOMP - 5) 24350,14350,24350 02340056 ! 238: 14350 IVPASS = IVPASS + 1 02350056 ! 239: WRITE (I02,80001) IVTNUM 02360056 ! 240: GO TO 4361 02370056 ! 241: 24350 IVFAIL = IVFAIL + 1 02380056 ! 242: IVCORR = 5 02390056 ! 243: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02400056 ! 244: 4361 CONTINUE 02410056 ! 245: IVTNUM = 436 02420056 ! 246: C 02430056 ! 247: C **** TEST 436 **** 02440056 ! 248: C 02450056 ! 249: C TEST 436 TESTS THE VALUE OF THE SECOND ARGUMENT RECEIVED BY FF059 02460056 ! 250: C FROM A FS058 REFERENCE OF FUNCTION FF059 02470056 ! 251: C 02480056 ! 252: C 02490056 ! 253: IF (ICZERO) 34360, 4360, 34360 02500056 ! 254: 4360 CONTINUE 02510056 ! 255: IVCOMP = IACN11 (7) 02520056 ! 256: GO TO 44360 02530056 ! 257: 34360 IVDELE = IVDELE + 1 02540056 ! 258: WRITE (I02,80003) IVTNUM 02550056 ! 259: IF (ICZERO) 44360, 4371, 44360 02560056 ! 260: 44360 IF (IVCOMP - 4) 24360,14360,24360 02570056 ! 261: 14360 IVPASS = IVPASS + 1 02580056 ! 262: WRITE (I02,80001) IVTNUM 02590056 ! 263: GO TO 4371 02600056 ! 264: 24360 IVFAIL = IVFAIL + 1 02610056 ! 265: IVCORR = 4 02620056 ! 266: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02630056 ! 267: 4371 CONTINUE 02640056 ! 268: IVTNUM = 437 02650056 ! 269: C 02660056 ! 270: C **** TEST 437 **** 02670056 ! 271: C 02680056 ! 272: C TEST 437 TESTS THE VALUE OF THE THIRD ARGUMENT RECEIVED BY FF059 02690056 ! 273: C FROM A FS058 REFERENCE OF FUNCTION FF059 02700056 ! 274: C 02710056 ! 275: C 02720056 ! 276: IF (ICZERO) 34370, 4370, 34370 02730056 ! 277: 4370 CONTINUE 02740056 ! 278: IVCOMP = IACN11 (8) 02750056 ! 279: GO TO 44370 02760056 ! 280: 34370 IVDELE = IVDELE + 1 02770056 ! 281: WRITE (I02,80003) IVTNUM 02780056 ! 282: IF (ICZERO) 44370, 4381, 44370 02790056 ! 283: 44370 IF (IVCOMP - 3) 24370,14370,24370 02800056 ! 284: 14370 IVPASS = IVPASS + 1 02810056 ! 285: WRITE (I02,80001) IVTNUM 02820056 ! 286: GO TO 4381 02830056 ! 287: 24370 IVFAIL = IVFAIL + 1 02840056 ! 288: IVCORR = 3 02850056 ! 289: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02860056 ! 290: 4381 CONTINUE 02870056 ! 291: IVTNUM = 438 02880056 ! 292: C 02890056 ! 293: C **** TEST 438 **** 02900056 ! 294: C 02910056 ! 295: C TEST 438 TESTS THE VALUE OF THE FUNCTION DETERMINED BY FF059 02920056 ! 296: C 02930056 ! 297: C 02940056 ! 298: IF (ICZERO) 34380, 4380, 34380 02950056 ! 299: 4380 CONTINUE 02960056 ! 300: IVCOMP = IACN11 (9) 02970056 ! 301: GO TO 44380 02980056 ! 302: 34380 IVDELE = IVDELE + 1 02990056 ! 303: WRITE (I02,80003) IVTNUM 03000056 ! 304: IF (ICZERO) 44380, 4391, 44380 03010056 ! 305: 44380 IF (IVCOMP - 12) 24380,14380,24380 03020056 ! 306: 14380 IVPASS = IVPASS + 1 03030056 ! 307: WRITE (I02,80001) IVTNUM 03040056 ! 308: GO TO 4391 03050056 ! 309: 24380 IVFAIL = IVFAIL + 1 03060056 ! 310: IVCORR = 12 03070056 ! 311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080056 ! 312: 4391 CONTINUE 03090056 ! 313: IVTNUM = 439 03100056 ! 314: C 03110056 ! 315: C **** TEST 439 **** 03120056 ! 316: C 03130056 ! 317: C TEST 439 TESTS THE VALUE OF THE FUNCTION RETURNED TO FS058 BY 03140056 ! 318: C FF059 03150056 ! 319: C 03160056 ! 320: C 03170056 ! 321: IF (ICZERO) 34390, 4390, 34390 03180056 ! 322: 4390 CONTINUE 03190056 ! 323: IVCOMP = IACN11 (10) 03200056 ! 324: GO TO 44390 03210056 ! 325: 34390 IVDELE = IVDELE + 1 03220056 ! 326: WRITE (I02,80003) IVTNUM 03230056 ! 327: IF (ICZERO) 44390, 4401, 44390 03240056 ! 328: 44390 IF (IVCOMP - 12) 24390,14390,24390 03250056 ! 329: 14390 IVPASS = IVPASS + 1 03260056 ! 330: WRITE (I02,80001) IVTNUM 03270056 ! 331: GO TO 4401 03280056 ! 332: 24390 IVFAIL = IVFAIL + 1 03290056 ! 333: IVCORR = 12 03300056 ! 334: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03310056 ! 335: 4401 CONTINUE 03320056 ! 336: IVTNUM = 440 03330056 ! 337: C 03340056 ! 338: C **** TEST 440 **** 03350056 ! 339: C 03360056 ! 340: C TEST 440 TESTS THE VALUE OF THE FIRST ARGUMENT RETURNED TO FS057 03370056 ! 341: C BY FS058 03380056 ! 342: C 03390056 ! 343: IF (ICZERO) 34400, 4400, 34400 03400056 ! 344: 4400 CONTINUE 03410056 ! 345: IVCOMP = IACN11 (11) 03420056 ! 346: GO TO 44400 03430056 ! 347: 34400 IVDELE = IVDELE + 1 03440056 ! 348: WRITE (I02,80003) IVTNUM 03450056 ! 349: IF (ICZERO) 44400, 4411, 44400 03460056 ! 350: 44400 IF (IVCOMP - 12) 24400,14400,24400 03470056 ! 351: 14400 IVPASS = IVPASS + 1 03480056 ! 352: WRITE (I02,80001) IVTNUM 03490056 ! 353: GO TO 4411 03500056 ! 354: 24400 IVFAIL = IVFAIL + 1 03510056 ! 355: IVCORR = 12 03520056 ! 356: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03530056 ! 357: 4411 CONTINUE 03540056 ! 358: IVTNUM = 441 03550056 ! 359: C 03560056 ! 360: C **** TEST 441 **** 03570056 ! 361: C 03580056 ! 362: C TEST 441 TESTS THE VALUE OF THE FIRST ARGUMENT RETURNED TO FM056 03590056 ! 363: C BY FS057 03600056 ! 364: C 03610056 ! 365: C 03620056 ! 366: IF (ICZERO) 34410, 4410, 34410 03630056 ! 367: 4410 CONTINUE 03640056 ! 368: IVCOMP = IACN11 (12) 03650056 ! 369: GO TO 44410 03660056 ! 370: 34410 IVDELE = IVDELE + 1 03670056 ! 371: WRITE (I02,80003) IVTNUM 03680056 ! 372: IF (ICZERO) 44410, 4421, 44410 03690056 ! 373: 44410 IF (IVCOMP - 12) 24410,14410,24410 03700056 ! 374: 14410 IVPASS = IVPASS + 1 03710056 ! 375: WRITE (I02,80001) IVTNUM 03720056 ! 376: GO TO 4421 03730056 ! 377: 24410 IVFAIL = IVFAIL + 1 03740056 ! 378: IVCORR = 12 03750056 ! 379: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03760056 ! 380: 4421 CONTINUE 03770056 ! 381: C 03780056 ! 382: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 03790056 ! 383: 99999 CONTINUE 03800056 ! 384: WRITE (I02,90002) 03810056 ! 385: WRITE (I02,90006) 03820056 ! 386: WRITE (I02,90002) 03830056 ! 387: WRITE (I02,90002) 03840056 ! 388: WRITE (I02,90007) 03850056 ! 389: WRITE (I02,90002) 03860056 ! 390: WRITE (I02,90008) IVFAIL 03870056 ! 391: WRITE (I02,90009) IVPASS 03880056 ! 392: WRITE (I02,90010) IVDELE 03890056 ! 393: C 03900056 ! 394: C 03910056 ! 395: C TERMINATE ROUTINE EXECUTION 03920056 ! 396: STOP 03930056 ! 397: C 03940056 ! 398: C FORMAT STATEMENTS FOR PAGE HEADERS 03950056 ! 399: 90000 FORMAT (1H1) 03960056 ! 400: 90002 FORMAT (1H ) 03970056 ! 401: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03980056 ! 402: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 03990056 ! 403: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 04000056 ! 404: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 04010056 ! 405: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 04020056 ! 406: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 04030056 ! 407: C 04040056 ! 408: C FORMAT STATEMENTS FOR RUN SUMMARIES 04050056 ! 409: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 04060056 ! 410: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 04070056 ! 411: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 04080056 ! 412: C 04090056 ! 413: C FORMAT STATEMENTS FOR TEST RESULTS 04100056 ! 414: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 04110056 ! 415: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 04120056 ! 416: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 04130056 ! 417: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 04140056 ! 418: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 04150056 ! 419: C 04160056 ! 420: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM056) 04170056 ! 421: END 04180056 ! 422: C 00010057 ! 423: C DATE***82/08/02*18.33.46 ! 424: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/ ! 425: C AUDIT FCVS78 V2.0 ! 426: C COMMENT SECTION 00020057 ! 427: C 00030057 ! 428: C FS057 00040057 ! 429: C 00050057 ! 430: C THIS SUBROUTINE IS CALLED BY THE MAIN PROGRAM FM056. THE 00060057 ! 431: C SINGLE ARGUMENT PASSED FROM FM056 ALONG WITH A SECOND PARAMETER 00070057 ! 432: C CREATED IN FS057 ARE THEN PASSED VIA A CALL TO SUBROUTINE FS058. 00080057 ! 433: C A RESULT FROM AN ARITHMETIC OPERATION IS RETURNED FROM FS058 IN 00090057 ! 434: C THE FIRST ARGUMENT. FS057 ACCEPTS THIS RESULT AND RETURNS CONTROL00100057 ! 435: C TO FM056 WITHOUT ANY ADDITIONAL PROCESSING. 00110057 ! 436: C 00120057 ! 437: C THE VALUES OF THE ARGUMENTS THAT ARE PASSED FROM FM056 TO 00130057 ! 438: C FS057 AND RETURNED ARE SAVED IN AN INTEGER ARRAY FOR LATER 00140057 ! 439: C VERIFICATION BY THE MAIN PROGRAM. 00150057 ! 440: C 00160057 ! 441: C REFERENCES 00170057 ! 442: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00180057 ! 443: C X3.9-1978 00190057 ! 444: C 00200057 ! 445: C SECTION 15.6, SUBROUTINES 00210057 ! 446: C SECTION 15.6.2, SUBROUTINE REFERENCE 00220057 ! 447: C SECTION 15.8, RETURN STATEMENT 00230057 ! 448: C 00240057 ! 449: C TEST SECTION 00250057 ! 450: C 00260057 ! 451: C SUBROUTINE SUBPROGRAM 00270057 ! 452: C 00280057 ! 453: SUBROUTINE FS057 (IVON01) 00290057 ! 454: COMMON IACN11 (12) 00300057 ! 455: IACN11 (1) = IVON01 00310057 ! 456: IVON02 = 4 00320057 ! 457: IACN11 (2) = IVON02 00330057 ! 458: CALL FS058 (IVON01,IVON02) 00340057 ! 459: IACN11 (11) = IVON01 00350057 ! 460: RETURN 00360057 ! 461: END 00370057 ! 462: C 00010058 ! 463: C DATE***82/08/02*18.33.46 ! 464: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/ ! 465: C AUDIT FCVS78 V2.0 ! 466: C COMMENT SECTION 00020058 ! 467: C 00030058 ! 468: C FS058 00040058 ! 469: C 00050058 ! 470: C THIS SUBROUTINE IS CALLED BY SUBROUTINE FS057. THE TWO 00060058 ! 471: C ARGUMENTS PASSED FROM FS057 ALONG WITH A THIRD PARAMETER CREATED 00070058 ! 472: C IN FS058 ARE THEN PASSED TO FUNCTION FF059 WHERE THEY ARE USED IN 00080058 ! 473: C AN ARITHMETIC OPERATION. FS058 THEN SAVES THE RESULT OF THIS 00090058 ! 474: C OPERATION IN THE FIRST ARGUMENT AND RETURNS CONTROL TO FS057 00100058 ! 475: C WITHOUT ANY ADDITIONAL PROCESSING. 00110058 ! 476: C 00120058 ! 477: C THE VALUES OF THE ARGUMENTS THAT ARE PASSED FROM FS057 TO 00130058 ! 478: C FS058 AND RETURNED ARE SAVED IN AN INTEGER ARRAY FOR LATER 00140058 ! 479: C VERIFICATION BY THE MAIN PROGRAM. 00150058 ! 480: C 00160058 ! 481: C REFERENCES 00170058 ! 482: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00180058 ! 483: C X3.9-1978 00190058 ! 484: C 00200058 ! 485: C SECTION 15.5.2, REFERENCING EXTERNAL FUNCTIONS 00210058 ! 486: C SECTION 15.6, SUBROUTINES 00220058 ! 487: C SECTION 15.8, RETURN STATEMENT 00230058 ! 488: C 00240058 ! 489: C TEST SECTION 00250058 ! 490: C 00260058 ! 491: C SUBROUTINE SUBPROGRAM 00270058 ! 492: C 00280058 ! 493: SUBROUTINE FS058 (IVON01,IVON02) 00290058 ! 494: COMMON IACN11 (12) 00300058 ! 495: INTEGER FF059 00310058 ! 496: IVON03 = 3 00320058 ! 497: IACN11 (3) = IVON01 00330058 ! 498: IACN11 (4) = IVON02 00340058 ! 499: IACN11 (5) = IVON03 00350058 ! 500: IVON01 = FF059 (IVON01,IVON02,IVON03) 00360058 ! 501: IACN11 (10) = IVON01 00370058 ! 502: RETURN 00380058 ! 503: END 00390058 ! 504: C 00010059 ! 505: C DATE***82/08/02*18.33.46 ! 506: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/ ! 507: C AUDIT FCVS78 V2.0 ! 508: C COMMENT SECTION 00020059 ! 509: C 00030059 ! 510: C FF059 00040059 ! 511: C 00050059 ! 512: C THIS EXTERNAL FUNCTION IS REFERENCED WITHIN SUBROUTINE FS058.00060059 ! 513: C THE THREE ARGUMENTS THAT ARE PASSED ARE SIMPLY ADDED TOGETHER AND 00070059 ! 514: C THE RESULT SUBSTITUTED FOR THE ORIGINAL REFERENCE. CONTROL IS 00080059 ! 515: C THEN RETURNED TO FS058. 00090059 ! 516: C 00100059 ! 517: C THE VALUES OF THE ARGUMENTS THAT ARE PASSED FROM FS058 TO 00110059 ! 518: C FF059 AND THE RESULT THAT IS RETURNED ARE SAVED IN AN INTEGER 00120059 ! 519: C ARRAY FOR LATER VERIFICATION BY THE MAIN PROGRAM. 00130059 ! 520: C 00140059 ! 521: C REFERENCES 00150059 ! 522: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00160059 ! 523: C X3.9-1978 00170059 ! 524: C 00180059 ! 525: C SECTION 15.5.1, FUNCTION SUBPROGRAM AND FUNCTION STATEMENT 00190059 ! 526: C SECTION 15.8, RETURN STATEMENT 00200059 ! 527: C TEST SECTION 00210059 ! 528: C 00220059 ! 529: C FUNCTION SUBPROGRAM 00230059 ! 530: C 00240059 ! 531: INTEGER FUNCTION FF059 (IVON01,IVON02,IVON03) 00250059 ! 532: COMMON IACN11 (12) 00260059 ! 533: IACN11 (6) = IVON01 00270059 ! 534: IACN11 (7) = IVON02 00280059 ! 535: IACN11 (8) = IVON03 00290059 ! 536: FF059 = IVON01 + IVON02 + IVON03 00300059 ! 537: IACN11 (9) = IVON01 + IVON02 + IVON03 00310059 ! 538: RETURN 00320059 ! 539: END 00330059
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.