1c comment section 2c 3c fm042 4c 5c this routine tests arithmetic assignments of the 6c form integer variable = primary ** primary 7c where the first of two primaries is an integer variable or an 8c integer constant and the second primary is an integer variable. 9c 10c references 11c american national standard programming language fortran, 12c x3.9-1978 13c 14c section 4.3, integer type 15c section 4.3.1, integer constant 16c section 6.1, arithmetic expressions 17c section 10.1, arithmetic assignment statement 18c 19c 20c ********************************************************** 21c 22c a compiler validation system for the fortran language 23c based on specifications as defined in american national standard 24c programming language fortran x3.9-1978, has been developed by the 25c federal cobol compiler testing service. the fortran compiler 26c validation system (fcvs) consists of audit routines, their related 27c data, and an executive system. each audit routine is a fortran 28c program, subprogram or function which includes tests of specific 29c language elements and supporting procedures indicating the result 30c of executing these tests. 31c 32c this particular program/subprogram/function contains features 33c found only in the subset as defined in x3.9-1978. 34c 35c suggestions and comments should be forwarded to - 36c 37c department of the navy 38c federal cobol compiler testing service 39c washington, d.c. 20376 40c 41c ********************************************************** 42c 43c 44c 45c initialization section 46c 47c initialize constants 48c ************** 49c i01 contains the logical unit number for the card reader. 50 i01 = 5 51c i02 contains the logical unit number for the printer. 52 i02 = 6 53c system environment section 54c 55cx010 this card is replaced by contents of fexec x-010 control card. 56c the cx010 card is for overriding the program default i01 = 5 57c (unit number for card reader). 58cx011 this card is replaced by contents of fexec x-011 control card. 59c the cx011 card is for systems which require additional 60c fortran statements for files associated with cx010 above. 61c 62cx020 this card is replaced by contents of fexec x-020 control card. 63c the cx020 card is for overriding the program default i02 = 6 64c (unit number for printer). 65cx021 this card is replaced by contents of fexec x-021 control card. 66c the cx021 card is for systems which require additional 67c fortran statements for files associated with cx020 above. 68c 69 ivpass=0 70 ivfail=0 71 ivdele=0 72 iczero=0 73c 74c write page headers 75 write (i02,90000) 76 write (i02,90001) 77 write (i02,90002) 78 write (i02, 90002) 79 write (i02,90003) 80 write (i02,90002) 81 write (i02,90004) 82 write (i02,90002) 83 write (i02,90011) 84 write (i02,90002) 85 write (i02,90002) 86 write (i02,90005) 87 write (i02,90006) 88 write (i02,90002) 89c 90c test section 91c 92c arithmetic assignment statement 93c 94c test 649 through test 665 contain arithmetic assignment statements 95c of the form integer variable = integer const. ** integer var. 96c 97c test 666 through test 682 contain arithmetic assignment statements 98c of the form integer variable = integer var. ** integer var. 99c 100c 101 ivtnum = 649 102c 103c **** test 649 **** 104c test 649 - small number base; zero exponent 105c 106 if (iczero) 36490, 6490, 36490 107 6490 continue 108 ivon01 = 0 109 ivcomp = 1 ** ivon01 110 go to 46490 11136490 ivdele = ivdele + 1 112 write (i02,80003) ivtnum 113 if (iczero) 46490, 6501, 46490 11446490 if (ivcomp - 1) 26490,16490,26490 11516490 ivpass = ivpass + 1 116 write (i02,80001) ivtnum 117 go to 6501 11826490 ivfail = ivfail + 1 119 ivcorr = 1 120 write (i02,80004) ivtnum, ivcomp ,ivcorr 121 6501 continue 122 ivtnum = 650 123c 124c **** test 650 **** 125c test 650 - zero base to first power 126c 127 if (iczero) 36500, 6500, 36500 128 6500 continue 129 ivon01 = 1 130 ivcomp = 0 ** ivon01 131 go to 46500 13236500 ivdele = ivdele + 1 133 write (i02,80003) ivtnum 134 if (iczero) 46500, 6511, 46500 13546500 if (ivcomp) 26500,16500,26500 13616500 ivpass = ivpass + 1 137 write (i02,80001) ivtnum 138 go to 6511 13926500 ivfail = ivfail + 1 140 ivcorr = 0 141 write (i02,80004) ivtnum, ivcomp, ivcorr 142 6511 continue 143 ivtnum = 651 144c 145c **** test 651 **** 146c test 651 - base =1; exponent = 1 147c 148 if (iczero) 36510, 6510, 36510 149 6510 continue 150 ivon01 = 1 151 ivcomp = 1 ** ivon01 152 go to 46510 15336510 ivdele = ivdele + 1 154 write (i02,80003) ivtnum 155 if (iczero) 46510, 6521, 46510 15646510 if (ivcomp - 1) 26510,16510,26510 15716510 ivpass = ivpass + 1 158 write (i02,80001) ivtnum 159 go to 6521 16026510 ivfail = ivfail + 1 161 ivcorr = 1 162 write (i02,80004) ivtnum, ivcomp, ivcorr 163 6521 continue 164 ivtnum = 652 165c 166c **** test 652 **** 167c test 652 - large exponent 168c 169 if (iczero) 36520, 6520, 36520 170 6520 continue 171 ivon01 = 32767 172 ivcomp = 1 ** ivon01 173 go to 46520 17436520 ivdele = ivdele + 1 175 write (i02,80003) ivtnum 176 if (iczero) 46520, 6531, 46520 17746520 if (ivcomp - 1) 26520,16520,26520 17816520 ivpass = ivpass + 1 179 write (i02,80001) ivtnum 180 go to 6531 18126520 ivfail = ivfail + 1 182 ivcorr = 1 183 write (i02,80004) ivtnum, ivcomp, ivcorr 184 6531 continue 185 ivtnum = 653 186c 187c **** test 653 **** 188c test 653 - large number base; exponent = 1 189c 190 if (iczero) 36530, 6530, 36530 191 6530 continue 192 ivon01 = 1 193 ivcomp = 32767 ** ivon01 194 go to 46530 19536530 ivdele = ivdele + 1 196 write (i02,80003) ivtnum 197 if (iczero) 46530, 6541, 46530 19846530 if (ivcomp - 32767) 26530,16530,26530 19916530 ivpass = ivpass + 1 200 write (i02,80001) ivtnum 201 go to 6541 20226530 ivfail = ivfail + 1 203 ivcorr = 32767 204 write (i02,80004) ivtnum, ivcomp, ivcorr 205 6541 continue 206 ivtnum = 654 207c 208c **** test 654 **** 209c test 654 - zero base; large number exponent 210c 211 if (iczero) 36540, 6540, 36540 212 6540 continue 213 ivon01 = 32767 214 ivcomp = 0 ** ivon01 215 go to 46540 21636540 ivdele = ivdele + 1 217 write (i02,80003) ivtnum 218 if (iczero) 46540, 6551, 46540 21946540 if (ivcomp) 26540,16540,26540 22016540 ivpass = ivpass + 1 221 write (i02,80001) ivtnum 222 go to 6551 22326540 ivfail = ivfail + 1 224 ivcorr = 0 225 write (i02,80004) ivtnum, ivcomp, ivcorr 226 6551 continue 227 ivtnum = 655 228c 229c **** test 655 **** 230c test 655 -large number base; zero exponent 231c 232 if (iczero) 36550, 6550, 36550 233 6550 continue 234 ivon01 = 0 235 ivcomp = 32767 ** ivon01 236 go to 46550 23736550 ivdele = ivdele + 1 238 write (i02,80003) ivtnum 239 if (iczero) 46550, 6561, 46550 24046550 if (ivcomp -1) 26550,16550,26550 24116550 ivpass = ivpass + 1 242 write (i02,80001) ivtnum 243 go to 6561 24426550 ivfail = ivfail + 1 245 ivcorr = 1 246 write (i02,80004) ivtnum, ivcomp, ivcorr 247 6561 continue 248 ivtnum = 656 249c 250c **** test 656 **** 251c test 656 -exponent is power of two 252c 253 if (iczero) 36560, 6560, 36560 254 6560 continue 255 ivon01 = 2 256 ivcomp = 181 ** ivon01 257 go to 46560 25836560 ivdele = ivdele + 1 259 write (i02,80003) ivtnum 260 if (iczero) 46560, 6571, 46560 26146560 if (ivcomp - 32761) 26560,16560,26560 26216560 ivpass = ivpass + 1 263 write (i02,80001) ivtnum 264 go to 6571 26526560 ivfail = ivfail + 1 266 ivcorr = 32761 267 write (i02,80004) ivtnum, ivcomp, ivcorr 268 6571 continue 269 ivtnum = 657 270c 271c **** test 657 **** 272c test 657 - base and exponent are both powers of two 273c 274 if (iczero) 36570, 6570, 36570 275 6570 continue 276 ivon01 = 8 277 ivcomp = 2 ** ivon01 278 go to 46570 27936570 ivdele = ivdele + 1 280 write (i02,80003) ivtnum 281 if (iczero) 46570, 6581, 46570 28246570 if (ivcomp - 256) 26570,16570,26560 28316570 ivpass = ivpass + 1 284 write (i02,80001) ivtnum 285 go to 6581 28626570 ivfail = ivfail + 1 287 ivcorr = 256 288 write (i02,80004) ivtnum, ivcomp, ivcorr 289 6581 continue 290c 291c tests 658 and 659 test to ensure exponentiation operator is 292c not commutative 293c 294 ivtnum = 658 295c 296c **** test 658 **** 297c 298 if (iczero) 36580, 6580, 36580 299 6580 continue 300 ivon01 = 9 301 ivcomp = 3 ** ivon01 302 go to 46580 30336580 ivdele = ivdele + 1 304 write (i02,80003) ivtnum 305 if (iczero) 46580, 6591, 46580 30646580 if (ivcomp - 19683) 26580,16580,26580 30716580 ivpass = ivpass + 1 308 write (i02,80001) ivtnum 309 go to 6591 31026580 ivfail = ivfail + 1 311 ivcorr = 19683 312 write (i02,80004) ivtnum, ivcomp, ivcorr 313 6591 continue 314 ivtnum = 659 315c 316c **** test 659 **** 317c 318 if (iczero) 36590, 6590, 36590 319 6590 continue 320 ivon01 = 3 321 ivcomp = 9 ** ivon01 322 go to 46590 32336590 ivdele = ivdele + 1 324 write (i02,80003) ivtnum 325 if (iczero) 46590, 6601, 46590 32646590 if (ivcomp - 729) 26590,16590,26590 32716590 ivpass = ivpass + 1 328 write (i02,80001) ivtnum 329 go to 6601 33026590 ivfail = ivfail + 1 331 ivcorr = 729 332 write (i02,80004) ivtnum, ivcomp, ivcorr 333 6601 continue 334c 335c tests 660 through 665 test positive and negative bases to positive 336c odd and even number powers checking the sign 337c of the results 338c 339 ivtnum = 660 340c 341c **** test 660 **** 342c 343 if (iczero) 36600, 6600, 36600 344 6600 continue 345 ivon01 = 2 346 ivcomp = 1 ** ivon01 347 go to 46600 34836600 ivdele = ivdele + 1 349 write (i02,80003) ivtnum 350 if (iczero) 46600, 6611, 46600 35146600 if (ivcomp - 1) 26600,16600,26600 35216600 ivpass = ivpass + 1 353 write (i02,80001) ivtnum 354 go to 6611 35526600 ivfail = ivfail + 1 356 ivcorr = 1 357 write (i02,80004) ivtnum, ivcomp, ivcorr 358 6611 continue 359 ivtnum = 661 360c 361c **** test 661 **** 362c 363 if (iczero) 36610, 6610, 36610 364 6610 continue 365 ivon01 = 2 366 ivcomp = ( -1) ** ivon01 367 go to 46610 36836610 ivdele = ivdele + 1 369 write (i02,80003) ivtnum 370 if (iczero) 46610, 6621, 46610 37146610 if (ivcomp - 1) 26610,16610,26610 37216610 ivpass = ivpass + 1 373 write (i02,80001) ivtnum 374 go to 6621 37526610 ivfail = ivfail + 1 376 ivcorr = 1 377 write (i02,80004) ivtnum, ivcomp, ivcorr 378 6621 continue 379 ivtnum = 662 380c 381c **** test 662 **** 382c 383 if (iczero) 36620, 6620, 36620 384 6620 continue 385 ivon01 = 3 386 ivcomp = 7 ** ivon01 387 go to 46620 38836620 ivdele = ivdele + 1 389 write (i02,80003) ivtnum 390 if (iczero) 46620, 6631, 46620 39146620 if (ivcomp - 343) 26620,16620,26620 39216620 ivpass = ivpass + 1 393 write (i02,80001) ivtnum 394 go to 6631 39526620 ivfail = ivfail + 1 396 ivcorr = 343 397 write (i02,80004) ivtnum, ivcomp, ivcorr 398 6631 continue 399 ivtnum = 663 400c 401c **** test 663 **** 402c 403 if (iczero) 36630, 6630, 36630 404 6630 continue 405 ivon01 = 3 406 ivcomp = (-7) **ivon01 407 go to 46630 40836630 ivdele = ivdele + 1 409 write (i02,80003) ivtnum 410 if (iczero) 46630, 6641, 46630 41146630 if (ivcomp + 343) 26630,16630,26630 41216630 ivpass = ivpass + 1 413 write (i02,80001) ivtnum 414 go to 6641 41526630 ivfail = ivfail + 1 416 ivcorr = -343 417 write (i02,80004) ivtnum, ivcomp, ivcorr 418 6641 continue 419 ivtnum = 664 420c 421c **** test 664 **** 422c 423 if (iczero) 36640, 6640, 36640 424 6640 continue 425 ivon01 = 4 426 ivcomp = 7 ** ivon01 427 go to 46640 42836640 ivdele = ivdele + 1 429 write (i02,80003) ivtnum 430 if (iczero) 46640, 6651, 46640 43146640 if (ivcomp - 2401) 26640,16640,26640 43216640 ivpass = ivpass + 1 433 write (i02,80001) ivtnum 434 go to 6651 43526640 ivfail = ivfail + 1 436 ivcorr = 2401 437 write (i02,80004) ivtnum, ivcomp, ivcorr 438 6651 continue 439 ivtnum = 665 440c 441c **** test 665 **** 442c 443 if (iczero) 36650, 6650, 36650 444 6650 continue 445 ivon01 = 4 446 ivcomp = (-7) ** ivon01 447 go to 46650 44836650 ivdele = ivdele + 1 449 write (i02,80003) ivtnum 450 if (iczero) 46650, 6661, 46650 45146650 if (ivcomp - 2401) 26650,16650,26650 45216650 ivpass = ivpass + 1 453 write (i02,80001) ivtnum 454 go to 6661 45526650 ivfail = ivfail + 1 456 ivcorr = 2401 457 write (i02,80004) ivtnum, ivcomp, ivcorr 458 6661 continue 459 ivtnum = 666 460c 461c **** test 666 **** 462c test 666 - small number base; zero exponent 463c 464 if (iczero) 36660, 6660, 36660 465 6660 continue 466 ivon01 = 1 467 ivon02 = 0 468 ivcomp = ivon01 ** ivon02 469 go to 46660 47036660 ivdele = ivdele + 1 471 write (i02,80003) ivtnum 472 if (iczero) 46660, 6671, 46660 47346660 if (ivcomp - 1) 26660,16660,26660 47416660 ivpass = ivpass + 1 475 write (i02,80001) ivtnum 476 go to 6671 47726660 ivfail = ivfail + 1 478 ivcorr = 1 479 write (i02,80004) ivtnum, ivcomp, ivcorr 480 6671 continue 481 ivtnum = 667 482c 483c **** test 667 **** 484c test 667 - zero base to first power 485c 486 if (iczero) 36670, 6670, 36670 487 6670 continue 488 ivon01 = 0 489 ivon02 = 1 490 ivcomp = ivon01 ** ivon02 491 go to 46670 49236670 ivdele = ivdele + 1 493 write (i02,80003) ivtnum 494 if (iczero) 46670, 6681, 46670 49546670 if (ivcomp) 26670,16670,26670 49616670 ivpass = ivpass + 1 497 write (i02,80001) ivtnum 498 go to 6681 49926670 ivfail = ivfail + 1 500 ivcorr = 0 501 write (i02,80004) ivtnum, ivcomp, ivcorr 502 6681 continue 503 ivtnum = 668 504c 505c **** test 668 **** 506c test 668 - base =1; exponent = 1 507c 508 if (iczero) 36680, 6680, 36680 509 6680 continue 510 ivon01 = 1 511 ivon02 = 1 512 ivcomp = ivon01 ** ivon02 513 go to 46680 51436680 ivdele = ivdele + 1 515 write (i02,80003) ivtnum 516 if (iczero) 46680, 6691, 46680 51746680 if (ivcomp - 1) 26680,16680,26680 51816680 ivpass = ivpass + 1 519 write (i02,80001) ivtnum 520 go to 6691 52126680 ivfail = ivfail + 1 522 ivcorr = 1 523 write (i02,80004) ivtnum, ivcomp, ivcorr 524 6691 continue 525 ivtnum = 669 526c 527c **** test 669 **** 528c test 669 - large exponent 529c 530 if (iczero) 36690, 6690, 36690 531 6690 continue 532 ivon01 = 1 533 ivon02 = 32767 534 ivcomp = ivon01 ** ivon02 535 go to 46690 53636690 ivdele = ivdele + 1 537 write (i02,80003) ivtnum 538 if (iczero) 46690, 6701, 46690 53946690 if (ivcomp - 1) 26690,16690,26690 54016690 ivpass = ivpass + 1 541 write (i02,80001) ivtnum 542 go to 6701 54326690 ivfail = ivfail + 1 544 ivcorr = 1 545 write (i02,80004) ivtnum, ivcomp, ivcorr 546 6701 continue 547 ivtnum = 670 548c 549c **** test 670 **** 550c test 670 - large number base; exponent = 1 551c 552 if (iczero) 36700, 6700, 36700 553 6700 continue 554 ivon01 = 32767 555 ivon02 = 1 556 ivcomp = ivon01 ** ivon02 557 go to 46700 55836700 ivdele = ivdele + 1 559 write (i02,80003) ivtnum 560 if (iczero) 46700, 6711, 46700 56146700 if (ivcomp - 32767) 26700,16700,26700 56216700 ivpass = ivpass + 1 563 write (i02,80001) ivtnum 564 go to 6711 56526700 ivfail = ivfail + 1 566 ivcorr = 32767 567 write (i02,80004) ivtnum, ivcomp, ivcorr 568 6711 continue 569 ivtnum = 671 570c 571c **** test 671 **** 572c test 671 - zero base; large number exponent 573c 574 if (iczero) 36710, 6710, 36710 575 6710 continue 576 ivon01 = 0 577 ivon02 = 32767 578 ivcomp = ivon01 ** ivon02 579 go to 46710 58036710 ivdele = ivdele + 1 581 write (i02,80003) ivtnum 582 if (iczero) 46710, 6721, 46710 58346710 if (ivcomp) 26710,16710,26710 58416710 ivpass = ivpass + 1 585 write (i02,80001) ivtnum 586 go to 6721 58726710 ivfail = ivfail + 1 588 ivcorr = 0 589 write (i02,80004) ivtnum, ivcomp, ivcorr 590 6721 continue 591 ivtnum = 672 592c 593c **** test 672 **** 594c test 672 -large number base; zero exponent 595c 596 if (iczero) 36720, 6720, 36720 597 6720 continue 598 ivon01 = 32767 599 ivon02 = 0 600 ivcomp = ivon01 ** ivon02 601 go to 46720 60236720 ivdele = ivdele + 1 603 write (i02,80003) ivtnum 604 if (iczero) 46720, 6731, 46720 60546720 if (ivcomp -1) 26720,16720,26720 60616720 ivpass = ivpass + 1 607 write (i02,80001) ivtnum 608 go to 6731 60926720 ivfail = ivfail + 1 610 ivcorr = 1 611 write (i02,80004) ivtnum, ivcomp, ivcorr 612 6731 continue 613 ivtnum = 673 614c 615c **** test 673 **** 616c test 673 -exponent is power of two 617c 618 if (iczero) 36730, 6730, 36730 619 6730 continue 620 ivon01 = 181 621 ivon02 = 2 622 ivcomp = ivon01 ** ivon02 623 go to 46730 62436730 ivdele = ivdele + 1 625 write (i02,80003) ivtnum 626 if (iczero) 46730, 6741, 46730 62746730 if (ivcomp - 32761) 26730,16730,26730 62816730 ivpass = ivpass + 1 629 write (i02,80001) ivtnum 630 go to 6741 63126730 ivfail = ivfail + 1 632 ivcorr = 32761 633 write (i02,80004) ivtnum, ivcomp, ivcorr 634 6741 continue 635 ivtnum = 674 636c 637c **** test 674 **** 638c test 674 - base and exponent are both powers of two 639c 640 if (iczero) 36740, 6740, 36740 641 6740 continue 642 ivon01 = 2 643 ivon02 = 8 644 ivcomp = ivon01 ** ivon02 645 go to 46740 64636740 ivdele = ivdele + 1 647 write (i02,80003) ivtnum 648 if (iczero) 46740, 6751, 46740 64946740 if (ivcomp - 256) 26740,16740,26740 65016740 ivpass = ivpass + 1 651 write (i02,80001) ivtnum 652 go to 6751 65326740 ivfail = ivfail + 1 654 ivcorr = 256 655 write (i02,80004) ivtnum, ivcomp, ivcorr 656 6751 continue 657c 658c tests 675 and 676 test to ensure exponentiation operator is 659c not commutative 660c 661 ivtnum = 675 662c 663c **** test 675 **** 664c 665 if (iczero) 36750, 6750, 36750 666 6750 continue 667 ivon01 = 3 668 ivon02 = 9 669 ivcomp = ivon01 ** ivon02 670 go to 46750 67136750 ivdele = ivdele + 1 672 write (i02,80003) ivtnum 673 if (iczero) 46750, 6761, 46750 67446750 if (ivcomp - 19683) 26750,16750,26750 67516750 ivpass = ivpass + 1 676 write (i02,80001) ivtnum 677 go to 6761 67826750 ivfail = ivfail + 1 679 ivcorr = 19683 680 write (i02,80004) ivtnum, ivcomp, ivcorr 681 6761 continue 682 ivtnum = 676 683c 684c **** test 676 **** 685c 686 if (iczero) 36760, 6760, 36760 687 6760 continue 688 ivon01 = 9 689 ivon02 = 3 690 ivcomp = ivon01 ** ivon02 691 go to 46760 69236760 ivdele = ivdele + 1 693 write (i02,80003) ivtnum 694 if (iczero) 46760, 6771, 46760 69546760 if (ivcomp - 729) 26760,16760,26760 69616760 ivpass = ivpass + 1 697 write (i02,80001) ivtnum 698 go to 6771 69926760 ivfail = ivfail + 1 700 ivcorr = 729 701 write (i02,80004) ivtnum, ivcomp, ivcorr 702 6771 continue 703c 704c tests 677 through 682 test positive and negative bases to positive 705c odd and even number powers checking the sign 706c of the results 707c 708 ivtnum = 677 709c 710c **** test 677 **** 711c 712 if (iczero) 36770, 6770, 36770 713 6770 continue 714 ivon01 = 1 715 ivon02 = 2 716 ivcomp = ivon01 ** ivon02 717 go to 46770 71836770 ivdele = ivdele + 1 719 write (i02,80003) ivtnum 720 if (iczero) 46770, 6781, 46770 72146770 if (ivcomp - 1) 26770,16770,26770 72216770 ivpass = ivpass + 1 723 write (i02,80001) ivtnum 724 go to 6781 72526770 ivfail = ivfail + 1 726 ivcorr = 1 727 write (i02,80004) ivtnum, ivcomp, ivcorr 728 6781 continue 729 ivtnum = 678 730c 731c **** test 678 **** 732c 733 if (iczero) 36780, 6780, 36780 734 6780 continue 735 ivon01 = -1 736 ivon02 = 2 737 ivcomp = ivon01 ** ivon02 738 go to 46780 73936780 ivdele = ivdele + 1 740 write (i02,80003) ivtnum 741 if (iczero) 46780, 6791, 46780 74246780 if (ivcomp - 1) 26780,16780,26780 74316780 ivpass = ivpass + 1 744 write (i02,80001) ivtnum 745 go to 6791 74626780 ivfail = ivfail + 1 747 ivcorr = 1 748 write (i02,80004) ivtnum, ivcomp, ivcorr 749 6791 continue 750 ivtnum = 679 751c 752c **** test 679 **** 753c 754 if (iczero) 36790, 6790, 36790 755 6790 continue 756 ivon01 = 7 757 ivon02 = 3 758 ivcomp = ivon01 ** ivon02 759 go to 46790 76036790 ivdele = ivdele + 1 761 write (i02,80003) ivtnum 762 if (iczero) 46790, 6801, 46790 76346790 if (ivcomp - 343) 26790,16790,26790 76416790 ivpass = ivpass + 1 765 write (i02,80001) ivtnum 766 go to 6801 76726790 ivfail = ivfail + 1 768 ivcorr = 343 769 write (i02,80004) ivtnum, ivcomp, ivcorr 770 6801 continue 771 ivtnum = 680 772c 773c **** test 680 **** 774c 775 if (iczero) 36800, 6800, 36800 776 6800 continue 777 ivon01 = -7 778 ivon02 = 3 779 ivcomp = ivon01 ** ivon02 780 go to 46800 78136800 ivdele = ivdele + 1 782 write (i02,80003) ivtnum 783 if (iczero) 46800, 6811, 46800 78446800 if (ivcomp + 343) 26800,16800,26800 78516800 ivpass = ivpass + 1 786 write (i02,80001) ivtnum 787 go to 6811 78826800 ivfail = ivfail + 1 789 ivcorr = -343 790 write (i02,80004) ivtnum, ivcomp, ivcorr 791 6811 continue 792 ivtnum = 681 793c 794c **** test 681 **** 795c 796 if (iczero) 36810, 6810, 36810 797 6810 continue 798 ivon01 = 7 799 ivon02 = 4 800 ivcomp = ivon01 ** ivon02 801 go to 46810 80236810 ivdele = ivdele + 1 803 write (i02,80003) ivtnum 804 if (iczero) 46810, 6821, 46810 80546810 if (ivcomp - 2401) 26810,16810,26810 80616810 ivpass = ivpass + 1 807 write (i02,80001) ivtnum 808 go to 6821 80926810 ivfail = ivfail + 1 810 ivcorr = 2401 811 write (i02,80004) ivtnum, ivcomp, ivcorr 812 6821 continue 813 ivtnum = 682 814c 815c **** test 682 **** 816c 817 if (iczero) 36820, 6820, 36820 818 6820 continue 819 ivon01 = -7 820 ivon02 = 4 821 ivcomp = ivon01 ** ivon02 822 go to 46820 82336820 ivdele = ivdele + 1 824 write (i02,80003) ivtnum 825 if (iczero) 46820, 6831, 46820 82646820 if (ivcomp - 2401) 26820,16820,26820 82716820 ivpass = ivpass + 1 828 write (i02,80001) ivtnum 829 go to 6831 83026820 ivfail = ivfail + 1 831 ivcorr = 2401 832 write (i02,80004) ivtnum, ivcomp, ivcorr 833 6831 continue 834c 835c write page footings and run summaries 83699999 continue 837 write (i02,90002) 838 write (i02,90006) 839 write (i02,90002) 840 write (i02,90002) 841 write (i02,90007) 842 write (i02,90002) 843 write (i02,90008) ivfail 844 write (i02,90009) ivpass 845 write (i02,90010) ivdele 846c 847c 848c terminate routine execution 849 stop 850c 851c format statements for page headers 85290000 format (1h1) 85390002 format (1h ) 85490001 format (1h ,10x,34hfortran compiler validation system) 85590003 format (1h ,21x,11hversion 1.0) 85690004 format (1h ,10x,38hfor official use only - copyright 1978) 85790005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 85890006 format (1h ,5x,46h----------------------------------------------) 85990011 format (1h ,18x,17hsubset level test) 860c 861c format statements for run summaries 86290008 format (1h ,15x,i5,19h errors encountered) 86390009 format (1h ,15x,i5,13h tests passed) 86490010 format (1h ,15x,i5,14h tests deleted) 865c 866c format statements for test results 86780001 format (1h ,4x,i5,7x,4hpass) 86880002 format (1h ,4x,i5,7x,4hfail) 86980003 format (1h ,4x,i5,7x,7hdeleted) 87080004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 87180005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 872c 87390007 format (1h ,20x,20hend of program fm042) 874 end 875