1c comment section 2c 3c fm043 4c 5c this routine tests arithmetic assignments of the form 6c 7c integer var. = integer var. <op1> integer var. <op2> integer var. 8c 9c where <op1> and <op2> are arithmetic operators, but <op1> is 10c not the same as <op2>. 11c 12c references 13c american national standard programming language fortran, 14c x3.9-1978 15c 16c section 4.3, integer type 17c section 4.3.1, integer constant 18c section 6.1, arithmetic expressions 19c section 6.6, evaluation of expressions 20c section 10.1, arithmetic assignment statement 21c 22c 23c ********************************************************** 24c 25c a compiler validation system for the fortran language 26c based on specifications as defined in american national standard 27c programming language fortran x3.9-1978, has been developed by the 28c federal cobol compiler testing service. the fortran compiler 29c validation system (fcvs) consists of audit routines, their related 30c data, and an executive system. each audit routine is a fortran 31c program, subprogram or function which includes tests of specific 32c language elements and supporting procedures indicating the result 33c of executing these tests. 34c 35c this particular program/subprogram/function contains features 36c found only in the subset as defined in x3.9-1978. 37c 38c suggestions and comments should be forwarded to - 39c 40c department of the navy 41c federal cobol compiler testing service 42c washington, d.c. 20376 43c 44c ********************************************************** 45c 46c 47c 48c initialization section 49c 50c initialize constants 51c ************** 52c i01 contains the logical unit number for the card reader. 53 i01 = 5 54c i02 contains the logical unit number for the printer. 55 i02 = 6 56c system environment section 57c 58cx010 this card is replaced by contents of fexec x-010 control card. 59c the cx010 card is for overriding the program default i01 = 5 60c (unit number for card reader). 61cx011 this card is replaced by contents of fexec x-011 control card. 62c the cx011 card is for systems which require additional 63c fortran statements for files associated with cx010 above. 64c 65cx020 this card is replaced by contents of fexec x-020 control card. 66c the cx020 card is for overriding the program default i02 = 6 67c (unit number for printer). 68cx021 this card is replaced by contents of fexec x-021 control card. 69c the cx021 card is for systems which require additional 70c fortran statements for files associated with cx020 above. 71c 72 ivpass=0 73 ivfail=0 74 ivdele=0 75 iczero=0 76c 77c write page headers 78 write (i02,90000) 79 write (i02,90001) 80 write (i02,90002) 81 write (i02, 90002) 82 write (i02,90003) 83 write (i02,90002) 84 write (i02,90004) 85 write (i02,90002) 86 write (i02,90011) 87 write (i02,90002) 88 write (i02,90002) 89 write (i02,90005) 90 write (i02,90006) 91 write (i02,90002) 92c 93c test section 94c 95c arithmetic assignment statement 96c 97c tests 683 through 694 test statements where <op1> is '+' and 98c <op2> varies. 99c 100c test 695 through 706 test statements where <op1> is '-' and 101c <op2> varies. 102c 103c tests 707 through 718 test statements where <op1> is '*' and 104c <op2> varies. 105c 106c 107c 108c tests 683 through 685 test '+' followed by '-'. 109c 110 ivtnum = 683 111c 112c **** test 683 **** 113c 114 if (iczero) 36830, 6830, 36830 115 6830 continue 116 ivon01 = 45 117 ivon02 = 9 118 ivon03 = 3 119 ivcomp = ivon01 + ivon02 - ivon03 120 go to 46830 12136830 ivdele = ivdele + 1 122 write (i02,80003) ivtnum 123 if (iczero) 46830, 6841, 46830 12446830 if (ivcomp - 51) 26830,16830,26830 12516830 ivpass = ivpass + 1 126 write (i02,80001) ivtnum 127 go to 6841 12826830 ivfail = ivfail + 1 129 ivcorr = 51 130 write (i02,80004) ivtnum, ivcomp, ivcorr 131 6841 continue 132 ivtnum = 684 133c 134c **** test 684 **** 135c 136 if (iczero) 36840, 6840, 36840 137 6840 continue 138 ivon01 = 45 139 ivon02 = 9 140 ivon03 = 3 141 ivcomp = (ivon01 + ivon02) - ivon03 142 go to 46840 14336840 ivdele = ivdele + 1 144 write (i02,80003) ivtnum 145 if (iczero) 46840, 6851, 46840 14646840 if (ivcomp - 51) 26840,16840,26840 14716840 ivpass = ivpass + 1 148 write (i02,80001) ivtnum 149 go to 6851 15026840 ivfail = ivfail + 1 151 ivcorr = 51 152 write (i02,80004) ivtnum, ivcomp, ivcorr 153 6851 continue 154 ivtnum = 685 155c 156c **** test 685 **** 157c 158 if (iczero) 36850, 6850, 36850 159 6850 continue 160 ivon01 = 45 161 ivon02 = 9 162 ivon03 = 3 163 ivcomp = ivon01 + (ivon02 - ivon03) 164 go to 46850 16536850 ivdele = ivdele + 1 166 write (i02,80003) ivtnum 167 if (iczero) 46850, 6861, 46850 16846850 if (ivcomp - 51) 26850,16850,26850 16916850 ivpass = ivpass + 1 170 write (i02,80001) ivtnum 171 go to 6861 17226850 ivfail = ivfail + 1 173 ivcorr = 51 174 write (i02,80004) ivtnum, ivcomp, ivcorr 175 6861 continue 176c 177c tests 686 through 688 test '+' followed by '*'. 178c 179 ivtnum = 686 180c 181c **** test 686 **** 182c 183 if (iczero) 36860, 6860, 36860 184 6860 continue 185 ivon01 = 45 186 ivon02 = 9 187 ivon03 = 3 188 ivcomp = ivon01 + ivon02 * ivon03 189 go to 46860 19036860 ivdele = ivdele + 1 191 write (i02,80003) ivtnum 192 if (iczero) 46860, 6871, 46860 19346860 if (ivcomp - 72) 26860,16860,26860 19416860 ivpass = ivpass + 1 195 write (i02,80001) ivtnum 196 go to 6871 19726860 ivfail = ivfail + 1 198 ivcorr = 72 199 write (i02,80004) ivtnum, ivcomp, ivcorr 200 6871 continue 201 ivtnum = 687 202c 203c **** test 687 **** 204c 205 if (iczero) 36870, 6870, 36870 206 6870 continue 207 ivon01 = 45 208 ivon02 = 9 209 ivon03 = 3 210 ivcomp = (ivon01 + ivon02) * ivon03 211 go to 46870 21236870 ivdele = ivdele + 1 213 write (i02,80003) ivtnum 214 if (iczero) 46870, 6881, 46870 21546870 if (ivcomp - 162) 26870,16870,26870 21616870 ivpass = ivpass + 1 217 write (i02,80001) ivtnum 218 go to 6881 21926870 ivfail = ivfail + 1 220 ivcorr = 162 221 write (i02,80004) ivtnum, ivcomp, ivcorr 222 6881 continue 223 ivtnum = 688 224c 225c **** test 688 **** 226c 227 if (iczero) 36880, 6880, 36880 228 6880 continue 229 ivon01 = 45 230 ivon02 = 9 231 ivon03 = 3 232 ivcomp = ivon01 + (ivon02 * ivon03) 233 go to 46880 23436880 ivdele = ivdele + 1 235 write (i02,80003) ivtnum 236 if (iczero) 46880, 6891, 46880 23746880 if (ivcomp - 72) 26880,16880,26880 23816880 ivpass = ivpass + 1 239 write (i02,80001) ivtnum 240 go to 6891 24126880 ivfail = ivfail + 1 242 ivcorr = 72 243 write (i02,80004) ivtnum, ivcomp, ivcorr 244 6891 continue 245c 246c tests 689 through 691 test '+' followed by '/'. 247c 248 ivtnum = 689 249c 250c **** test 689 **** 251c 252 if (iczero) 36890, 6890, 36890 253 6890 continue 254 ivon01 = 45 255 ivon02 = 9 256 ivon03 = 3 257 ivcomp = ivon01 + ivon02 / ivon03 258 go to 46890 25936890 ivdele = ivdele + 1 260 write (i02,80003) ivtnum 261 if (iczero) 46890, 6901, 46890 26246890 if (ivcomp - 48) 26890,16890,26890 26316890 ivpass = ivpass + 1 264 write (i02,80001) ivtnum 265 go to 6901 26626890 ivfail = ivfail + 1 267 ivcorr = 48 268 write (i02,80004) ivtnum, ivcomp, ivcorr 269 6901 continue 270 ivtnum = 690 271c 272c **** test 690 **** 273c 274 if (iczero) 36900, 6900, 36900 275 6900 continue 276 ivon01 = 45 277 ivon02 = 9 278 ivon03 = 3 279 ivcomp = (ivon01 + ivon02) / ivon03 280 go to 46900 28136900 ivdele = ivdele + 1 282 write (i02,80003) ivtnum 283 if (iczero) 46900, 6911, 46900 28446900 if (ivcomp - 18) 26900,16900,26900 28516900 ivpass = ivpass + 1 286 write (i02,80001) ivtnum 287 go to 6911 28826900 ivfail = ivfail + 1 289 ivcorr = 18 290 write (i02,80004) ivtnum, ivcomp, ivcorr 291 6911 continue 292 ivtnum = 691 293c 294c **** test 691 **** 295c 296 if (iczero) 36910, 6910, 36910 297 6910 continue 298 ivon01 = 45 299 ivon02 = 9 300 ivon03 = 3 301 ivcomp = ivon01 + (ivon02 / ivon03) 302 go to 46910 30336910 ivdele = ivdele + 1 304 write (i02,80003) ivtnum 305 if (iczero) 46910, 6921, 46910 30646910 if (ivcomp - 48) 26910,16910,26910 30716910 ivpass = ivpass + 1 308 write (i02,80001) ivtnum 309 go to 6921 31026910 ivfail = ivfail + 1 311 ivcorr = 48 312 write (i02,80004) ivtnum, ivcomp, ivcorr 313 6921 continue 314c 315c tests 692 through 694 test '+' followed by '**'. 316c 317 ivtnum = 692 318c 319c **** test 692 **** 320c 321 if (iczero) 36920, 6920, 36920 322 6920 continue 323 ivon01 = 15 324 ivon02 = 9 325 ivon03 = 3 326 ivcomp = ivon01 + ivon02 ** ivon03 327 go to 46920 32836920 ivdele = ivdele + 1 329 write (i02,80003) ivtnum 330 if (iczero) 46920, 6931, 46920 33146920 if (ivcomp - 744) 26920,16920,26920 33216920 ivpass = ivpass + 1 333 write (i02,80001) ivtnum 334 go to 6931 33526920 ivfail = ivfail + 1 336 ivcorr = 744 337 write (i02,80004) ivtnum, ivcomp, ivcorr 338 6931 continue 339 ivtnum = 693 340c 341c **** test 693 **** 342c 343 if (iczero) 36930, 6930, 36930 344 6930 continue 345 ivon01 = 15 346 ivon02 = 9 347 ivon03 = 3 348 ivcomp = (ivon01 + ivon02) ** ivon03 349 go to 46930 35036930 ivdele = ivdele + 1 351 write (i02,80003) ivtnum 352 if (iczero) 46930, 6941, 46930 35346930 if (ivcomp - 13824) 26930,16930,26930 35416930 ivpass = ivpass + 1 355 write (i02,80001) ivtnum 356 go to 6941 35726930 ivfail = ivfail + 1 358 ivcorr = 13824 359 write (i02,80004) ivtnum, ivcomp, ivcorr 360 6941 continue 361 ivtnum = 694 362c 363c **** test 694 **** 364c 365 if (iczero) 36940, 6940, 36940 366 6940 continue 367 ivon01 = 15 368 ivon02 = 9 369 ivon03 = 3 370 ivcomp = ivon01 + (ivon02 ** ivon03) 371 go to 46940 37236940 ivdele = ivdele + 1 373 write (i02,80003) ivtnum 374 if (iczero) 46940, 6951, 46940 37546940 if (ivcomp - 744) 26940,16940,26940 37616940 ivpass = ivpass + 1 377 write (i02,80001) ivtnum 378 go to 6951 37926940 ivfail = ivfail + 1 380 ivcorr = 744 381 write (i02,80004) ivtnum, ivcomp, ivcorr 382 6951 continue 383c 384c tests 695 through 697 test '-' followed by '+'. 385c 386 ivtnum = 695 387c 388c **** test 695 **** 389c 390 if (iczero) 36950, 6950, 36950 391 6950 continue 392 ivon01 = 45 393 ivon02 = 9 394 ivon03 = 3 395 ivcomp = ivon01 - ivon02 + ivon03 396 go to 46950 39736950 ivdele = ivdele + 1 398 write (i02,80003) ivtnum 399 if (iczero) 46950, 6961, 46950 40046950 if (ivcomp - 39) 26950,16950,26950 40116950 ivpass = ivpass + 1 402 write (i02,80001) ivtnum 403 go to 6961 40426950 ivfail = ivfail + 1 405 ivcorr = 39 406 write (i02,80004) ivtnum, ivcomp, ivcorr 407 6961 continue 408 ivtnum = 696 409c 410c **** test 696 **** 411c 412 if (iczero) 36960, 6960, 36960 413 6960 continue 414 ivon01 = 45 415 ivon02 = 9 416 ivon03 = 3 417 ivcomp = (ivon01 - ivon02) + ivon03 418 go to 46960 41936960 ivdele = ivdele + 1 420 write (i02,80003) ivtnum 421 if (iczero) 46960, 6971, 46960 42246960 if (ivcomp - 39) 26960,16960,26960 42316960 ivpass = ivpass + 1 424 write (i02,80001) ivtnum 425 go to 6971 42626960 ivfail = ivfail + 1 427 ivcorr = 39 428 write (i02,80004) ivtnum, ivcomp, ivcorr 429 6971 continue 430 ivtnum = 697 431c 432c **** test 697 **** 433c 434 if (iczero) 36970, 6970, 36970 435 6970 continue 436 ivon01 = 45 437 ivon02 = 9 438 ivon03 = 3 439 ivcomp = ivon01 - (ivon02 + ivon03) 440 go to 46970 44136970 ivdele = ivdele + 1 442 write (i02,80003) ivtnum 443 if (iczero) 46970, 6981, 46970 44446970 if (ivcomp - 33) 26970,16970,26970 44516970 ivpass = ivpass + 1 446 write (i02,80001) ivtnum 447 go to 6981 44826970 ivfail = ivfail + 1 449 ivcorr = 33 450 write (i02,80004) ivtnum, ivcomp, ivcorr 451 6981 continue 452c 453c tests 698 through 700 test '-' followed by '*'. 454c 455 ivtnum = 698 456c 457c **** test 698 **** 458c 459 if (iczero) 36980, 6980, 36980 460 6980 continue 461 ivon01 = 45 462 ivon02 = 9 463 ivon03 = 3 464 ivcomp = ivon01 - ivon02 * ivon03 465 go to 46980 46636980 ivdele = ivdele + 1 467 write (i02,80003) ivtnum 468 if (iczero) 46980, 6991, 46980 46946980 if (ivcomp - 18) 26980,16980,26980 47016980 ivpass = ivpass + 1 471 write (i02,80001) ivtnum 472 go to 6991 47326980 ivfail = ivfail + 1 474 ivcorr = 18 475 write (i02,80004) ivtnum, ivcomp, ivcorr 476 6991 continue 477 ivtnum = 699 478c 479c **** test 699 **** 480c 481 if (iczero) 36990, 6990, 36990 482 6990 continue 483 ivon01 = 45 484 ivon02 = 9 485 ivon03 = 3 486 ivcomp = (ivon01 - ivon02) * ivon03 487 go to 46990 48836990 ivdele = ivdele + 1 489 write (i02,80003) ivtnum 490 if (iczero) 46990, 7001, 46990 49146990 if (ivcomp - 108) 26990,16990,26990 49216990 ivpass = ivpass + 1 493 write (i02,80001) ivtnum 494 go to 7001 49526990 ivfail = ivfail + 1 496 ivcorr = 108 497 write (i02,80004) ivtnum, ivcomp, ivcorr 498 7001 continue 499 ivtnum = 700 500c 501c **** test 700 **** 502c 503 if (iczero) 37000, 7000, 37000 504 7000 continue 505 ivon01 = 45 506 ivon02 = 9 507 ivon03 = 3 508 ivcomp = ivon01 - (ivon02 * ivon03) 509 go to 47000 51037000 ivdele = ivdele + 1 511 write (i02,80003) ivtnum 512 if (iczero) 47000, 7011, 47000 51347000 if (ivcomp - 18) 27000,17000,27000 51417000 ivpass = ivpass + 1 515 write (i02,80001) ivtnum 516 go to 7011 51727000 ivfail = ivfail + 1 518 ivcorr = 18 519 write (i02,80004) ivtnum, ivcomp, ivcorr 520 7011 continue 521c 522c tests 701 through 703 test '-' followed by '/'. 523c 524 ivtnum = 701 525c 526c **** test 701 **** 527c 528 if (iczero) 37010, 7010, 37010 529 7010 continue 530 ivon01 = 45 531 ivon02 = 9 532 ivon03 = 3 533 ivcomp = ivon01 - ivon02 / ivon03 534 go to 47010 53537010 ivdele = ivdele + 1 536 write (i02,80003) ivtnum 537 if (iczero) 47010, 7021, 47010 53847010 if (ivcomp - 42) 27010,17010,27010 53917010 ivpass = ivpass + 1 540 write (i02,80001) ivtnum 541 go to 7021 54227010 ivfail = ivfail + 1 543 ivcorr = 42 544 write (i02,80004) ivtnum, ivcomp, ivcorr 545 7021 continue 546 ivtnum = 702 547c 548c **** test 702 **** 549c 550 if (iczero) 37020, 7020, 37020 551 7020 continue 552 ivon01 = 45 553 ivon02 = 9 554 ivon03 = 3 555 ivcomp = (ivon01 - ivon02) / ivon03 556 go to 47020 55737020 ivdele = ivdele + 1 558 write (i02,80003) ivtnum 559 if (iczero) 47020, 7031, 47020 56047020 if (ivcomp - 12) 27020,17020,27020 56117020 ivpass = ivpass + 1 562 write (i02,80001) ivtnum 563 go to 7031 56427020 ivfail = ivfail + 1 565 ivcorr = 12 566 write (i02,80004) ivtnum, ivcomp, ivcorr 567 7031 continue 568 ivtnum = 703 569c 570c **** test 703 **** 571c 572 if (iczero) 37030, 7030, 37030 573 7030 continue 574 ivon01 = 45 575 ivon02 = 9 576 ivon03 = 3 577 ivcomp = ivon01 - (ivon02 / ivon03) 578 go to 47030 57937030 ivdele = ivdele + 1 580 write (i02,80003) ivtnum 581 if (iczero) 47030, 7041, 47030 58247030 if (ivcomp - 42) 27030,17030,27030 58317030 ivpass = ivpass + 1 584 write (i02,80001) ivtnum 585 go to 7041 58627030 ivfail = ivfail + 1 587 ivcorr = 42 588 write (i02,80004) ivtnum, ivcomp, ivcorr 589 7041 continue 590c 591c tests 704 through 706 test '-' followed by '**'. 592c 593 ivtnum = 704 594c 595c **** test 704 **** 596c 597 if (iczero) 37040, 7040, 37040 598 7040 continue 599 ivon01 = 35 600 ivon02 = 9 601 ivon03 = 3 602 ivcomp = ivon01 - ivon02 ** ivon03 603 go to 47040 60437040 ivdele = ivdele + 1 605 write (i02,80003) ivtnum 606 if (iczero) 47040, 7051, 47040 60747040 if (ivcomp + 694) 27040,17040,27040 60817040 ivpass = ivpass + 1 609 write (i02,80001) ivtnum 610 go to 7051 61127040 ivfail = ivfail + 1 612 ivcorr = -694 613 write (i02,80004) ivtnum, ivcomp, ivcorr 614 7051 continue 615 ivtnum = 705 616c 617c **** test 705 **** 618c 619 if (iczero) 37050, 7050, 37050 620 7050 continue 621 ivon01 = 35 622 ivon02 = 9 623 ivon03 = 3 624 ivcomp = (ivon01 - ivon02) ** ivon03 625 go to 47050 62637050 ivdele = ivdele + 1 627 write (i02,80003) ivtnum 628 if (iczero) 47050, 7061, 47050 62947050 if (ivcomp - 17576) 27050,17050,27050 63017050 ivpass = ivpass + 1 631 write (i02,80001) ivtnum 632 go to 7061 63327050 ivfail = ivfail + 1 634 ivcorr = 17576 635 write (i02,80004) ivtnum, ivcomp, ivcorr 636 7061 continue 637 ivtnum = 706 638c 639c **** test 706 **** 640c 641 if (iczero) 37060, 7060, 37060 642 7060 continue 643 ivon01 = 35 644 ivon02 = 9 645 ivon03 = 3 646 ivcomp = ivon01 - (ivon02 ** ivon03) 647 go to 47060 64837060 ivdele = ivdele + 1 649 write (i02,80003) ivtnum 650 if (iczero) 47060, 7071, 47060 65147060 if (ivcomp + 694) 27060,17060,27060 65217060 ivpass = ivpass + 1 653 write (i02,80001) ivtnum 654 go to 7071 65527060 ivfail = ivfail + 1 656 ivcorr = -694 657 write (i02,80004) ivtnum, ivcomp, ivcorr 658 7071 continue 659c 660c tests 707 through 709 test '*' followed by '+'. 661c 662 ivtnum = 707 663c 664c **** test 707 **** 665c 666 if (iczero) 37070, 7070, 37070 667 7070 continue 668 ivon01 = 45 669 ivon02 = 9 670 ivon03 = 3 671 ivcomp = ivon01 * ivon02 + ivon03 672 go to 47070 67337070 ivdele = ivdele + 1 674 write (i02,80003) ivtnum 675 if (iczero) 47070, 7081, 47070 67647070 if (ivcomp - 408) 27070,17070,27070 67717070 ivpass = ivpass + 1 678 write (i02,80001) ivtnum 679 go to 7081 68027070 ivfail = ivfail + 1 681 ivcorr = 408 682 write (i02,80004) ivtnum, ivcomp, ivcorr 683 7081 continue 684 ivtnum = 708 685c 686c **** test 708 **** 687c 688 if (iczero) 37080, 7080, 37080 689 7080 continue 690 ivon01 = 45 691 ivon02 = 9 692 ivon03 = 3 693 ivcomp = (ivon01 * ivon02) + ivon03 694 go to 47080 69537080 ivdele = ivdele + 1 696 write (i02,80003) ivtnum 697 if (iczero) 47080, 7091, 47080 69847080 if (ivcomp - 408) 27080,17080,27080 69917080 ivpass = ivpass + 1 700 write (i02,80001) ivtnum 701 go to 7091 70227080 ivfail = ivfail + 1 703 ivcorr = 408 704 write (i02,80004) ivtnum, ivcomp, ivcorr 705 7091 continue 706 ivtnum = 709 707c 708c **** test 709 **** 709c 710 if (iczero) 37090, 7090, 37090 711 7090 continue 712 ivon01 = 45 713 ivon02 = 9 714 ivon03 = 3 715 ivcomp = ivon01 * (ivon02 + ivon03) 716 go to 47090 71737090 ivdele = ivdele + 1 718 write (i02,80003) ivtnum 719 if (iczero) 47090, 7101, 47090 72047090 if (ivcomp - 540) 27090,17090,27090 72117090 ivpass = ivpass + 1 722 write (i02,80001) ivtnum 723 go to 7101 72427090 ivfail = ivfail + 1 725 ivcorr = 540 726 write (i02,80004) ivtnum, ivcomp, ivcorr 727 7101 continue 728c 729c tests 710 through 712 test '*' followed by '-'. 730c 731 ivtnum = 710 732c 733c **** test 710 **** 734c 735 if (iczero) 37100, 7100, 37100 736 7100 continue 737 ivon01 = 45 738 ivon02 = 9 739 ivon03 = 3 740 ivcomp = ivon01 * ivon02 - ivon03 741 go to 47100 74237100 ivdele = ivdele + 1 743 write (i02,80003) ivtnum 744 if (iczero) 47100, 7111, 47100 74547100 if (ivcomp - 402) 27100,17100,27100 74617100 ivpass = ivpass + 1 747 write (i02,80001) ivtnum 748 go to 7111 74927100 ivfail = ivfail + 1 750 ivcorr = 402 751 write (i02,80004) ivtnum, ivcomp, ivcorr 752 7111 continue 753 ivtnum = 711 754c 755c **** test 711 **** 756c 757 if (iczero) 37110, 7110, 37110 758 7110 continue 759 ivon01 = 45 760 ivon02 = 9 761 ivon03 = 3 762 ivcomp = (ivon01 * ivon02) - ivon03 763 go to 47110 76437110 ivdele = ivdele + 1 765 write (i02,80003) ivtnum 766 if (iczero) 47110, 7121, 47110 76747110 if (ivcomp - 402) 27110,17110,27110 76817110 ivpass = ivpass + 1 769 write (i02,80001) ivtnum 770 go to 7121 77127110 ivfail = ivfail + 1 772 ivcorr = 402 773 write (i02,80004) ivtnum, ivcomp, ivcorr 774 7121 continue 775 ivtnum = 712 776c 777c **** test 712 **** 778c 779 if (iczero) 37120, 7120, 37120 780 7120 continue 781 ivon01 = 45 782 ivon02 = 9 783 ivon03 = 3 784 ivcomp = ivon01 * (ivon02 - ivon03) 785 go to 47120 78637120 ivdele = ivdele + 1 787 write (i02,80003) ivtnum 788 if (iczero) 47120, 7131, 47120 78947120 if (ivcomp - 270) 27120,17120,27120 79017120 ivpass = ivpass + 1 791 write (i02,80001) ivtnum 792 go to 7131 79327120 ivfail = ivfail + 1 794 ivcorr = 270 795 write (i02,80004) ivtnum, ivcomp, ivcorr 796 7131 continue 797c 798c tests 713 through 715 test '*' followed by '/'. 799c 800 ivtnum = 713 801c 802c **** test 713 **** 803c 804 if (iczero) 37130, 7130, 37130 805 7130 continue 806 ivon01 = 45 807 ivon02 = 9 808 ivon03 = 3 809 ivcomp = ivon01 * ivon02 / ivon03 810 go to 47130 81137130 ivdele = ivdele + 1 812 write (i02,80003) ivtnum 813 if (iczero) 47130, 7141, 47130 81447130 if (ivcomp - 135) 27130,17130,27130 81517130 ivpass = ivpass + 1 816 write (i02,80001) ivtnum 817 go to 7141 81827130 ivfail = ivfail + 1 819 ivcorr = 135 820 write (i02,80004) ivtnum, ivcomp, ivcorr 821 7141 continue 822 ivtnum = 714 823c 824c **** test 714 **** 825c 826 if (iczero) 37140, 7140, 37140 827 7140 continue 828 ivon01 = 45 829 ivon02 = 9 830 ivon03 = 3 831 ivcomp = (ivon01 * ivon02) / ivon03 832 go to 47140 83337140 ivdele = ivdele + 1 834 write (i02,80003) ivtnum 835 if (iczero) 47140, 7151, 47140 83647140 if (ivcomp - 135) 27140,17140,27140 83717140 ivpass = ivpass + 1 838 write (i02,80001) ivtnum 839 go to 7151 84027140 ivfail = ivfail + 1 841 ivcorr = 135 842 write (i02,80004) ivtnum, ivcomp, ivcorr 843 7151 continue 844 ivtnum = 715 845c 846c **** test 715 **** 847c 848 if (iczero) 37150, 7150, 37150 849 7150 continue 850 ivon01 = 45 851 ivon02 = 9 852 ivon03 = 3 853 ivcomp = ivon01 * (ivon02 / ivon03) 854 go to 47150 85537150 ivdele = ivdele + 1 856 write (i02,80003) ivtnum 857 if (iczero) 47150, 7161, 47150 85847150 if (ivcomp - 135) 27150,17150,27150 85917150 ivpass = ivpass + 1 860 write (i02,80001) ivtnum 861 go to 7161 86227150 ivfail = ivfail + 1 863 ivcorr = 135 864 write (i02,80004) ivtnum, ivcomp, ivcorr 865 7161 continue 866c 867c tests 716 through 718 test '*' followed by '**'. 868c 869 ivtnum = 716 870c 871c **** test 716 **** 872c 873 if (iczero) 37160, 7160, 37160 874 7160 continue 875 ivon01 = 7 876 ivon02 = 3 877 ivon03 = 3 878 ivcomp = ivon01 * ivon02 ** ivon03 879 go to 47160 88037160 ivdele = ivdele + 1 881 write (i02,80003) ivtnum 882 if (iczero) 47160, 7171, 47160 88347160 if (ivcomp - 189) 27160,17160,27160 88417160 ivpass = ivpass + 1 885 write (i02,80001) ivtnum 886 go to 7171 88727160 ivfail = ivfail + 1 888 ivcorr = 189 889 write (i02,80004) ivtnum, ivcomp, ivcorr 890 7171 continue 891 ivtnum = 717 892c 893c **** test 717 **** 894c 895 if (iczero) 37170, 7170, 37170 896 7170 continue 897 ivon01 = 7 898 ivon02 = 3 899 ivon03 = 3 900 ivcomp = (ivon01 * ivon02) ** ivon03 901 go to 47170 90237170 ivdele = ivdele + 1 903 write (i02,80003) ivtnum 904 if (iczero) 47170, 7181, 47170 90547170 if (ivcomp - 9261) 27170,17170,27170 90617170 ivpass = ivpass + 1 907 write (i02,80001) ivtnum 908 go to 7181 90927170 ivfail = ivfail + 1 910 ivcorr = 9261 911 write (i02,80004) ivtnum, ivcomp, ivcorr 912 7181 continue 913 ivtnum = 718 914c 915c **** test 718 **** 916c 917 if (iczero) 37180, 7180, 37180 918 7180 continue 919 ivon01 = 7 920 ivon02 = 3 921 ivon03 = 3 922 ivcomp = ivon01 * (ivon02 ** ivon03) 923 go to 47180 92437180 ivdele = ivdele + 1 925 write (i02,80003) ivtnum 926 if (iczero) 47180, 7191, 47180 92747180 if (ivcomp - 189) 27180,17180,27180 92817180 ivpass = ivpass + 1 929 write (i02,80001) ivtnum 930 go to 7191 93127180 ivfail = ivfail + 1 932 ivcorr = 189 933 write (i02,80004) ivtnum, ivcomp, ivcorr 934 7191 continue 935c 936c write page footings and run summaries 93799999 continue 938 write (i02,90002) 939 write (i02,90006) 940 write (i02,90002) 941 write (i02,90002) 942 write (i02,90007) 943 write (i02,90002) 944 write (i02,90008) ivfail 945 write (i02,90009) ivpass 946 write (i02,90010) ivdele 947c 948c 949c terminate routine execution 950 stop 951c 952c format statements for page headers 95390000 format (1h1) 95490002 format (1h ) 95590001 format (1h ,10x,34hfortran compiler validation system) 95690003 format (1h ,21x,11hversion 1.0) 95790004 format (1h ,10x,38hfor official use only - copyright 1978) 95890005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 95990006 format (1h ,5x,46h----------------------------------------------) 96090011 format (1h ,18x,17hsubset level test) 961c 962c format statements for run summaries 96390008 format (1h ,15x,i5,19h errors encountered) 96490009 format (1h ,15x,i5,13h tests passed) 96590010 format (1h ,15x,i5,14h tests deleted) 966c 967c format statements for test results 96880001 format (1h ,4x,i5,7x,4hpass) 96980002 format (1h ,4x,i5,7x,4hfail) 97080003 format (1h ,4x,i5,7x,7hdeleted) 97180004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 97280005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 973c 97490007 format (1h ,20x,20hend of program fm043) 975 end 976