1c comment section 2c 3c fm041 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 constant. 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 615 through test 631 contain arithmetic assignment statements 95c of the form integer variable = integer constant ** integer con. 96c 97c test 632 through test 648 contain arithmetic assignment statements 98c of the form integer variable = integer variable ** integer con. 99c 100c 101 ivtnum = 615 102c 103c **** test 615 **** 104c test 615 - small number base; zero exponent 105c 106 if (iczero) 36150, 6150, 36150 107 6150 continue 108 ivcomp = 1 ** 0 109 go to 46150 11036150 ivdele = ivdele + 1 111 write (i02,80003) ivtnum 112 if (iczero) 46150, 6161, 46150 11346150 if (ivcomp - 1) 26150,16150,26150 11416150 ivpass = ivpass + 1 115 write (i02,80001) ivtnum 116 go to 6161 11726150 ivfail = ivfail + 1 118 ivcorr = 1 119 write (i02,80004) ivtnum, ivcomp ,ivcorr 120 6161 continue 121 ivtnum = 616 122c 123c **** test 616 **** 124c test 616 - zero base to first power 125c 126 if (iczero) 36160, 6160, 36160 127 6160 continue 128 ivcomp = 0 ** 1 129 go to 46160 13036160 ivdele = ivdele + 1 131 write (i02,80003) ivtnum 132 if (iczero) 46160, 6171, 46160 13346160 if (ivcomp) 26160,16160,26160 13416160 ivpass = ivpass + 1 135 write (i02,80001) ivtnum 136 go to 6171 13726160 ivfail = ivfail + 1 138 ivcorr = 0 139 write (i02,80004) ivtnum, ivcomp ,ivcorr 140 6171 continue 141 ivtnum = 617 142c 143c **** test 617 **** 144c test 617 - base =1; exponent = 1 145c 146 if (iczero) 36170, 6170, 36170 147 6170 continue 148 ivcomp = 1 ** 1 149 go to 46170 15036170 ivdele = ivdele + 1 151 write (i02,80003) ivtnum 152 if (iczero) 46170, 6181, 46170 15346170 if (ivcomp - 1) 26170,16170,26170 15416170 ivpass = ivpass + 1 155 write (i02,80001) ivtnum 156 go to 6181 15726170 ivfail = ivfail + 1 158 ivcorr = 1 159 write (i02,80004) ivtnum, ivcomp ,ivcorr 160 6181 continue 161 ivtnum = 618 162c 163c **** test 618 **** 164c test 618 - large number base; exponent = 1 165c 166 if (iczero) 36180, 6180, 36180 167 6180 continue 168 ivcomp = 32767 ** 1 169 go to 46180 17036180 ivdele = ivdele + 1 171 write (i02,80003) ivtnum 172 if (iczero) 46180, 6191, 46180 17346180 if (ivcomp - 32767) 26180,16180,26180 17416180 ivpass = ivpass + 1 175 write (i02,80001) ivtnum 176 go to 6191 17726180 ivfail = ivfail + 1 178 ivcorr = 32767 179 write (i02,80004) ivtnum, ivcomp ,ivcorr 180 6191 continue 181 ivtnum = 619 182c 183c **** test 619 **** 184c test 619 - large exponent 185c 186 if (iczero) 36190, 6190, 36190 187 6190 continue 188 ivcomp = 1 ** 32767 189 go to 46190 19036190 ivdele = ivdele + 1 191 write (i02,80003) ivtnum 192 if (iczero) 46190, 6201, 46190 19346190 if (ivcomp - 1) 26190,16190,26190 19416190 ivpass = ivpass + 1 195 write (i02,80001) ivtnum 196 go to 6201 19726190 ivfail = ivfail + 1 198 ivcorr = 1 199 write (i02,80004) ivtnum, ivcomp ,ivcorr 200 6201 continue 201 ivtnum = 620 202c 203c **** test 620 **** 204c test 620 - zero base; large number exponent 205c 206 if (iczero) 36200, 6200, 36200 207 6200 continue 208 ivcomp = 0 ** 32767 209 go to 46200 21036200 ivdele = ivdele + 1 211 write (i02,80003) ivtnum 212 if (iczero) 46200, 6211, 46200 21346200 if (ivcomp) 26200,16200,26200 21416200 ivpass = ivpass + 1 215 write (i02,80001) ivtnum 216 go to 6211 21726200 ivfail = ivfail + 1 218 ivcorr = 0 219 write (i02,80004) ivtnum, ivcomp ,ivcorr 220 6211 continue 221 ivtnum = 621 222c 223c **** test 621 **** 224c test 621 -large number base; zero exponent 225c 226 if (iczero) 36210, 6210, 36210 227 6210 continue 228 ivcomp = 32767 ** 0 229 go to 46210 23036210 ivdele = ivdele + 1 231 write (i02,80003) ivtnum 232 if (iczero) 46210, 6221, 46210 23346210 if (ivcomp - 1) 26210,16210,26210 23416210 ivpass = ivpass + 1 235 write (i02,80001) ivtnum 236 go to 6221 23726210 ivfail = ivfail + 1 238 ivcorr = 1 239 write (i02,80004) ivtnum, ivcomp ,ivcorr 240 6221 continue 241 ivtnum = 622 242c 243c **** test 622 **** 244c test 622 -exponent is power of two 245c 246 if (iczero) 36220, 6220, 36220 247 6220 continue 248 ivcomp = 181 ** 2 249 go to 46220 25036220 ivdele = ivdele + 1 251 write (i02,80003) ivtnum 252 if (iczero) 46220, 6231, 46220 25346220 if (ivcomp - 32761) 26220,16220,26220 25416220 ivpass = ivpass + 1 255 write (i02,80001) ivtnum 256 go to 6231 25726220 ivfail = ivfail + 1 258 ivcorr = 32761 259 write (i02,80004) ivtnum, ivcomp ,ivcorr 260 6231 continue 261 ivtnum = 623 262c 263c **** test 623 **** 264c test 623 - base and exponent are both powers of two 265c 266 if (iczero) 36230, 6230, 36230 267 6230 continue 268 ivcomp = 2 ** 8 269 go to 46230 27036230 ivdele = ivdele + 1 271 write (i02,80003) ivtnum 272 if (iczero) 46230, 6241, 46230 27346230 if (ivcomp - 256) 26230,16230,26230 27416230 ivpass = ivpass + 1 275 write (i02,80001) ivtnum 276 go to 6241 27726230 ivfail = ivfail + 1 278 ivcorr = 256 279 write (i02,80004) ivtnum, ivcomp ,ivcorr 280 6241 continue 281c 282c tests 624 and 625 test to ensure exponentiation operator is 283c not commutative 284c 285 ivtnum = 624 286c 287c **** test 624 **** 288c 289 if (iczero) 36240, 6240, 36240 290 6240 continue 291 ivcomp = 3 ** 9 292 go to 46240 29336240 ivdele = ivdele + 1 294 write (i02,80003) ivtnum 295 if (iczero) 46240, 6251, 46240 29646240 if (ivcomp - 19683) 26240,16240,26240 29716240 ivpass = ivpass + 1 298 write (i02,80001) ivtnum 299 go to 6251 30026240 ivfail = ivfail + 1 301 ivcorr = 19683 302 write (i02,80004) ivtnum, ivcomp ,ivcorr 303 6251 continue 304 ivtnum = 625 305c 306c **** test 625 **** 307c 308 if (iczero) 36250, 6250, 36250 309 6250 continue 310 ivcomp = 9 ** 3 311 go to 46250 31236250 ivdele = ivdele + 1 313 write (i02,80003) ivtnum 314 if (iczero) 46250, 6261, 46250 31546250 if (ivcomp - 729) 26250,16250,26250 31616250 ivpass = ivpass + 1 317 write (i02,80001) ivtnum 318 go to 6261 31926250 ivfail = ivfail + 1 320 ivcorr = 729 321 write (i02,80004) ivtnum, ivcomp ,ivcorr 322 6261 continue 323c 324c tests 626 through 631 test positive and negative bases to positive 325c odd and even number powers checking the sign 326c of the results 327c 328 ivtnum = 626 329c 330c **** test 626 **** 331c 332 if (iczero) 36260, 6260, 36260 333 6260 continue 334 ivcomp = 1 ** 2 335 go to 46260 33636260 ivdele = ivdele + 1 337 write (i02,80003) ivtnum 338 if (iczero) 46260, 6271, 46260 33946260 if (ivcomp - 1) 26260,16260,26260 34016260 ivpass = ivpass + 1 341 write (i02,80001) ivtnum 342 go to 6271 34326260 ivfail = ivfail + 1 344 ivcorr = 1 345 write (i02,80004) ivtnum, ivcomp ,ivcorr 346 6271 continue 347 ivtnum = 627 348c 349c **** test 627 **** 350c 351 if (iczero) 36270, 6270, 36270 352 6270 continue 353 ivcomp= (-1) ** 2 354 go to 46270 35536270 ivdele = ivdele + 1 356 write (i02,80003) ivtnum 357 if (iczero) 46270, 6281, 46270 35846270 if (ivcomp - 1) 26270,16270,26270 35916270 ivpass = ivpass + 1 360 write (i02,80001) ivtnum 361 go to 6281 36226270 ivfail = ivfail + 1 363 ivcorr = 1 364 write (i02,80004) ivtnum, ivcomp ,ivcorr 365 6281 continue 366 ivtnum = 628 367c 368c **** test 628 **** 369c 370 if (iczero) 36280, 6280, 36280 371 6280 continue 372 ivcomp = 7 ** 3 373 go to 46280 37436280 ivdele = ivdele + 1 375 write (i02,80003) ivtnum 376 if (iczero) 46280, 6291, 46280 37746280 if (ivcomp - 343) 26280,16280,26280 37816280 ivpass = ivpass + 1 379 write (i02,80001) ivtnum 380 go to 6291 38126280 ivfail = ivfail + 1 382 ivcorr = 343 383 write (i02,80004) ivtnum, ivcomp ,ivcorr 384 6291 continue 385 ivtnum = 629 386c 387c **** test 629 **** 388c 389 if (iczero) 36290, 6290, 36290 390 6290 continue 391 ivcomp = (-7) ** 3 392 go to 46290 39336290 ivdele = ivdele + 1 394 write (i02,80003) ivtnum 395 if (iczero) 46290, 6301, 46290 39646290 if (ivcomp + 343) 26290,16290,26290 39716290 ivpass = ivpass + 1 398 write (i02,80001) ivtnum 399 go to 6301 40026290 ivfail = ivfail + 1 401 ivcorr = -343 402 write (i02,80004) ivtnum, ivcomp ,ivcorr 403 6301 continue 404 ivtnum = 630 405c 406c **** test 630 **** 407c 408 if (iczero) 36300, 6300, 36300 409 6300 continue 410 ivcomp = 7 ** 4 411 go to 46300 41236300 ivdele = ivdele + 1 413 write (i02,80003) ivtnum 414 if (iczero) 46300, 6311, 46300 41546300 if (ivcomp - 2401) 26300,16300,26300 41616300 ivpass = ivpass + 1 417 write (i02,80001) ivtnum 418 go to 6311 41926300 ivfail = ivfail + 1 420 ivcorr = 2401 421 write (i02,80004) ivtnum, ivcomp ,ivcorr 422 6311 continue 423 ivtnum = 631 424c 425c **** test 631 **** 426c 427 if (iczero) 36310, 6310, 36310 428 6310 continue 429 ivcomp = (-7) ** 4 430 go to 46310 43136310 ivdele = ivdele + 1 432 write (i02,80003) ivtnum 433 if (iczero) 46310, 6321, 46310 43446310 if (ivcomp - 2401) 26310,16310,26310 43516310 ivpass = ivpass + 1 436 write (i02,80001) ivtnum 437 go to 6321 43826310 ivfail = ivfail + 1 439 ivcorr = 2401 440 write (i02,80004) ivtnum, ivcomp ,ivcorr 441 6321 continue 442 ivtnum = 632 443c 444c **** test 632 **** 445c test 632 - small number base; zero exponent 446c 447 if (iczero) 36320, 6320, 36320 448 6320 continue 449 ivon01 = 1 450 ivcomp = ivon01 ** 1 451 go to 46320 45236320 ivdele = ivdele + 1 453 write (i02,80003) ivtnum 454 if (iczero) 46320, 6331, 46320 45546320 if (ivcomp - 1) 26320,16320,26320 45616320 ivpass = ivpass + 1 457 write (i02,80001) ivtnum 458 go to 6331 45926320 ivfail = ivfail + 1 460 ivcorr = 1 461 write (i02,80004) ivtnum, ivcomp ,ivcorr 462 6331 continue 463 ivtnum = 633 464c 465c **** test 633 **** 466c test 633 - zero base to first power 467c 468 if (iczero) 36330, 6330, 36330 469 6330 continue 470 ivon01 = 0 471 ivcomp = ivon01 ** 1 472 go to 46330 47336330 ivdele = ivdele + 1 474 write (i02,80003) ivtnum 475 if (iczero) 46330, 6341, 46330 47646330 if (ivcomp) 26330,16330,26330 47716330 ivpass = ivpass + 1 478 write (i02,80001) ivtnum 479 go to 6341 48026330 ivfail = ivfail + 1 481 ivcorr = 0 482 write (i02,80004) ivtnum, ivcomp ,ivcorr 483 6341 continue 484 ivtnum = 634 485c 486c **** test 634 **** 487c test 634 - base =1; exponent = 1 488c 489 if (iczero) 36340, 6340, 36340 490 6340 continue 491 ivon01 = 1 492 ivcomp = ivon01 ** 1 493 go to 46340 49436340 ivdele = ivdele + 1 495 write (i02,80003) ivtnum 496 if (iczero) 46340, 6351, 46340 49746340 if (ivcomp - 1) 26340,16340,26340 49816340 ivpass = ivpass + 1 499 write (i02,80001) ivtnum 500 go to 6351 50126340 ivfail = ivfail + 1 502 ivcorr = 1 503 write (i02,80004) ivtnum, ivcomp ,ivcorr 504 6351 continue 505 ivtnum = 635 506c 507c **** test 635 **** 508c test 635 - large exponent 509c 510 if (iczero) 36350, 6350, 36350 511 6350 continue 512 ivon01 = 1 513 ivcomp = ivon01 ** 32767 514 go to 46350 51536350 ivdele = ivdele + 1 516 write (i02,80003) ivtnum 517 if (iczero) 46350, 6361, 46350 51846350 if (ivcomp - 1) 26350,16350,26350 51916350 ivpass = ivpass + 1 520 write (i02,80001) ivtnum 521 go to 6361 52226350 ivfail = ivfail + 1 523 ivcorr = 1 524 write (i02,80004) ivtnum, ivcomp ,ivcorr 525 6361 continue 526 ivtnum = 636 527c 528c **** test 636 **** 529c test 636 - large number base; exponent = 1 530c 531 if (iczero) 36360, 6360, 36360 532 6360 continue 533 ivon01 = 32767 534 ivcomp = ivon01 ** 1 535 go to 46360 53636360 ivdele = ivdele + 1 537 write (i02,80003) ivtnum 538 if (iczero) 46360, 6371, 46360 53946360 if (ivcomp - 32767) 26360,16360,26360 54016360 ivpass = ivpass + 1 541 write (i02,80001) ivtnum 542 go to 6371 54326360 ivfail = ivfail + 1 544 ivcorr = 32767 545 write (i02,80004) ivtnum, ivcomp ,ivcorr 546 6371 continue 547 ivtnum = 637 548c 549c **** test 637 **** 550c test 637 - zero base; large number exponent 551c 552 if (iczero) 36370, 6370, 36370 553 6370 continue 554 ivon01 = 0 555 ivcomp = ivon01 ** 32767 556 go to 46370 55736370 ivdele = ivdele + 1 558 write (i02,80003) ivtnum 559 if (iczero) 46370, 6381, 46370 56046370 if (ivcomp) 26370,16370,26370 56116370 ivpass = ivpass + 1 562 write (i02,80001) ivtnum 563 go to 6381 56426370 ivfail = ivfail +1 565 ivcorr = 0 566 write (i02,80004) ivtnum, ivcomp ,ivcorr 567 6381 continue 568 ivtnum = 638 569c 570c **** test 638 **** 571c test 638 -large number base; zero exponent 572c 573 if (iczero) 36380, 6380, 36380 574 6380 continue 575 ivon01 = 32767 576 ivcomp = ivon01 ** 0 577 go to 46380 57836380 ivdele = ivdele + 1 579 write (i02,80003) ivtnum 580 if (iczero) 46380, 6391, 46380 58146380 if (ivcomp - 1) 26380,16380,26380 58216380 ivpass = ivpass + 1 583 write (i02,80001) ivtnum 584 go to 6391 58526380 ivfail = ivfail + 1 586 ivcorr = 1 587 write (i02,80004) ivtnum, ivcomp ,ivcorr 588 6391 continue 589 ivtnum = 639 590c 591c **** test 639 **** 592c test 639 -exponent is power of two 593c 594 if (iczero) 36390, 6390, 36390 595 6390 continue 596 ivon01 = 181 597 ivcomp = ivon01 ** 2 598 go to 46390 59936390 ivdele = ivdele + 1 600 write (i02,80003) ivtnum 601 if (iczero) 46390, 6401, 46390 60246390 if (ivcomp - 32761) 26390,16390,26390 60316390 ivpass = ivpass + 1 604 write (i02,80001) ivtnum 605 go to 6401 60626390 ivfail = ivfail + 1 607 ivcorr = 32761 608 write (i02,80004) ivtnum, ivcomp ,ivcorr 609 6401 continue 610 ivtnum = 640 611c 612c **** test 640 **** 613c test 640 - base and exponent are both powers of two 614c 615 if (iczero) 36400, 6400, 36400 616 6400 continue 617 ivon01 = 2 618 ivcomp = ivon01 ** 8 619 go to 46400 62036400 ivdele = ivdele + 1 621 write (i02,80003) ivtnum 622 if (iczero) 46400, 6411, 46400 62346400 if (ivcomp - 256) 26400,16400,26400 62416400 ivpass = ivpass + 1 625 write (i02,80001) ivtnum 626 go to 6411 62726400 ivfail = ivfail + 1 628 ivcorr = 256 629 write (i02,80004) ivtnum, ivcomp ,ivcorr 630 6411 continue 631c 632c tests 641 and 642 test to ensure exponentiation operator is 633c not commutative 634c 635 ivtnum = 641 636c 637c **** test 641 **** 638c 639 if (iczero) 36410, 6410, 36410 640 6410 continue 641 ivon01 = 3 642 ivcomp = ivon01 ** 9 643 go to 46410 64436410 ivdele = ivdele + 1 645 write (i02,80003) ivtnum 646 if (iczero) 46410, 6421, 46410 64746410 if (ivcomp - 19683) 26410,16410,26410 64816410 ivpass = ivpass + 1 649 write (i02,80001) ivtnum 650 go to 6421 65126410 ivfail = ivfail + 1 652 ivcorr = 19683 653 write (i02,80004) ivtnum, ivcomp ,ivcorr 654 6421 continue 655 ivtnum = 642 656c 657c **** test 642 **** 658c 659 if (iczero) 36420, 6420, 36420 660 6420 continue 661 ivon01 = 9 662 ivcomp = ivon01 ** 3 663 go to 46420 66436420 ivdele = ivdele + 1 665 write (i02,80003) ivtnum 666 if (iczero) 46420, 6431, 46420 66746420 if (ivcomp - 729) 26420,16420,26420 66816420 ivpass = ivpass + 1 669 write (i02,80001) ivtnum 670 go to 6431 67126420 ivfail = ivfail + 1 672 ivcorr = 729 673 write (i02,80004) ivtnum, ivcomp ,ivcorr 674 6431 continue 675c 676c tests 643 through 648 test positive and negative bases to positive 677c odd and even number powers checking the sign 678c of the results 679c 680 ivtnum = 643 681c 682c **** test 643 **** 683c 684 if (iczero) 36430, 6430, 36430 685 6430 continue 686 ivon01 = 1 687 ivcomp = ivon01 ** 2 688 go to 46430 68936430 ivdele = ivdele + 1 690 write (i02,80003) ivtnum 691 if (iczero) 46430, 6441, 46430 69246430 if (ivcomp - 1) 26430,16430,26430 69316430 ivpass = ivpass + 1 694 write (i02,80001) ivtnum 695 go to 6441 69626430 ivfail = ivfail + 1 697 ivcorr = 1 698 write (i02,80004) ivtnum, ivcomp ,ivcorr 699 6441 continue 700 ivtnum = 644 701c 702c **** test 644 **** 703c 704 if (iczero) 36440, 6440, 36440 705 6440 continue 706 ivon01 = -1 707 ivcomp = ivon01 ** 2 708 go to 46440 70936440 ivdele = ivdele + 1 710 write (i02,80003) ivtnum 711 if (iczero) 46440, 6451, 46440 71246440 if (ivcomp - 1) 26440,16440,26440 71316440 ivpass = ivpass + 1 714 write (i02,80001) ivtnum 715 go to 6451 71626440 ivfail = ivfail + 1 717 ivcorr = 1 718 write (i02,80004) ivtnum, ivcomp ,ivcorr 719 6451 continue 720 ivtnum = 645 721c 722c **** test 645 **** 723c 724 if (iczero) 36450, 6450, 36450 725 6450 continue 726 ivon01 = 7 727 ivcomp = ivon01 ** 3 728 go to 46450 72936450 ivdele = ivdele + 1 730 write (i02,80003) ivtnum 731 if (iczero) 46450, 6461, 46450 73246450 if (ivcomp - 343) 26450,16450,26450 73316450 ivpass = ivpass + 1 734 write (i02,80001) ivtnum 735 go to 6461 73626450 ivfail = ivfail + 1 737 ivcorr = 343 738 write (i02,80004) ivtnum, ivcomp ,ivcorr 739 6461 continue 740 ivtnum = 646 741c 742c **** test 646 **** 743c 744 if (iczero) 36460, 6460, 36460 745 6460 continue 746 ivon01 = -7 747 ivcomp = ivon01 ** 3 748 go to 46460 74936460 ivdele = ivdele + 1 750 write (i02,80003) ivtnum 751 if (iczero) 46460, 6471, 46460 75246460 if (ivcomp + 343) 26460,16460,26460 75316460 ivpass = ivpass + 1 754 write (i02,80001) ivtnum 755 go to 6471 75626460 ivfail = ivfail + 1 757 ivcorr = -343 758 write (i02,80004) ivtnum, ivcomp ,ivcorr 759 6471 continue 760 ivtnum = 647 761c 762c **** test 647 **** 763c 764 if (iczero) 36470, 6470, 36470 765 6470 continue 766 ivon01 = 7 767 ivcomp = ivon01 ** 4 768 go to 46470 76936470 ivdele = ivdele + 1 770 write (i02,80003) ivtnum 771 if (iczero) 46470, 6481, 46470 77246470 if (ivcomp - 2401) 26470,16470,26470 77316470 ivpass = ivpass + 1 774 write (i02,80001) ivtnum 775 go to 6481 77626470 ivfail = ivfail + 1 777 ivcorr = 2401 778 write (i02,80004) ivtnum, ivcomp ,ivcorr 779 6481 continue 780 ivtnum = 648 781c 782c **** test 648 **** 783c 784 if (iczero) 36480, 6480, 36480 785 6480 continue 786 ivon01 = -7 787 ivcomp = ivon01 ** 4 788 go to 46480 78936480 ivdele = ivdele + 1 790 write (i02,80003) ivtnum 791 if (iczero) 46480, 6491, 46480 79246480 if (ivcomp - 2401) 26480,16480,26480 79316480 ivpass = ivpass + 1 794 write (i02,80001) ivtnum 795 go to 6491 79626480 ivfail = ivfail + 1 797 ivcorr = 2401 798 write (i02,80004) ivtnum, ivcomp ,ivcorr 799 6491 continue 800c *** end of tests *** 801c 802c write page footings and run summaries 80399999 continue 804 write (i02,90002) 805 write (i02,90006) 806 write (i02,90002) 807 write (i02,90002) 808 write (i02,90007) 809 write (i02,90002) 810 write (i02,90008) ivfail 811 write (i02,90009) ivpass 812 write (i02,90010) ivdele 813c 814c 815c terminate routine execution 816 stop 817c 818c format statements for page headers 81990000 format (1h1) 82090002 format (1h ) 82190001 format (1h ,10x,34hfortran compiler validation system) 82290003 format (1h ,21x,11hversion 1.0) 82390004 format (1h ,10x,38hfor official use only - copyright 1978) 82490005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 82590006 format (1h ,5x,46h----------------------------------------------) 82690011 format (1h ,18x,17hsubset level test) 827c 828c format statements for run summaries 82990008 format (1h ,15x,i5,19h errors encountered) 83090009 format (1h ,15x,i5,13h tests passed) 83190010 format (1h ,15x,i5,14h tests deleted) 832c 833c format statements for test results 83480001 format (1h ,4x,i5,7x,4hpass) 83580002 format (1h ,4x,i5,7x,4hfail) 83680003 format (1h ,4x,i5,7x,7hdeleted) 83780004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 83880005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 839c 84090007 format (1h ,20x,20hend of program fm041) 841 end 842