1c comment section 2c 3c fm033 4c 5c this routine tests arithmetic assignment statements of the 6c form 7c integer variable = arithmetic expression 8c where the arithmetic expression is formed with the arithmetic 9c operator * and integer constants. some of the tests use parens 10c to group elements in the expression and to allow the use of 11c negative constants following the * operator. 12c 13c there are tests where the arithmetic expression contains 14c (1) integer constant * integer constant 15c (2) integer constant * integer constant * integer constant 16c (3) same as (2) but with parens to group elements 17c 18c references 19c american national standard programming language fortran, 20c x3.9-1978 21c 22c section 4.3, integer type 23c section 4.3.1, integer constant 24c section 6.1, arithmetic expressions 25c section 10.1, arithmetic assignment statement 26c 27c ********************************************************** 28c 29c a compiler validation system for the fortran language 30c based on specifications as defined in american national standard 31c programming language fortran x3.9-1978, has been developed by the 32c federal cobol compiler testing service. the fortran compiler 33c validation system (fcvs) consists of audit routines, their related 34c data, and an executive system. each audit routine is a fortran 35c program, subprogram or function which includes tests of specific 36c language elements and supporting procedures indicating the result 37c of executing these tests. 38c 39c this particular program/subprogram/function contains features 40c found only in the subset as defined in x3.9-1978. 41c 42c suggestions and comments should be forwarded to - 43c 44c department of the navy 45c federal cobol compiler testing service 46c washington, d.c. 20376 47c 48c ********************************************************** 49c 50c 51c 52c initialization section 53c 54c initialize constants 55c ************** 56c i01 contains the logical unit number for the card reader. 57 i01 = 5 58c i02 contains the logical unit number for the printer. 59 i02 = 6 60c system environment section 61c 62cx010 this card is replaced by contents of fexec x-010 control card. 63c the cx010 card is for overriding the program default i01 = 5 64c (unit number for card reader). 65cx011 this card is replaced by contents of fexec x-011 control card. 66c the cx011 card is for systems which require additional 67c fortran statements for files associated with cx010 above. 68c 69cx020 this card is replaced by contents of fexec x-020 control card. 70c the cx020 card is for overriding the program default i02 = 6 71c (unit number for printer). 72cx021 this card is replaced by contents of fexec x-021 control card. 73c the cx021 card is for systems which require additional 74c fortran statements for files associated with cx020 above. 75c 76 ivpass=0 77 ivfail=0 78 ivdele=0 79 iczero=0 80c 81c write page headers 82 write (i02,90000) 83 write (i02,90001) 84 write (i02,90002) 85 write (i02, 90002) 86 write (i02,90003) 87 write (i02,90002) 88 write (i02,90004) 89 write (i02,90002) 90 write (i02,90011) 91 write (i02,90002) 92 write (i02,90002) 93 write (i02,90005) 94 write (i02,90006) 95 write (i02,90002) 96c 97c test section 98c 99c arithmetic assignment statement 100c 101c test 360 through test 376 contain two integer constants and 102c operator * in an arithmetic expression. 103c iv = ic * ic 104c 105c test 360 through test 365 - integer constants are positive 106c 107 3601 continue 108 ivtnum = 360 109c 110c **** test 360 **** 111c 112 if (iczero) 33600, 3600, 33600 113 3600 continue 114 ivcomp = 2 * 3 115 go to 43600 11633600 ivdele = ivdele + 1 117 write (i02,80003) ivtnum 118 if (iczero) 43600, 3611, 43600 11943600 if (ivcomp - 6) 23600,13600,23600 12013600 ivpass = ivpass + 1 121 write (i02,80001) ivtnum 122 go to 3611 12323600 ivfail = ivfail + 1 124 ivcorr=6 125 write (i02,80004) ivtnum, ivcomp ,ivcorr 126 3611 continue 127 ivtnum = 361 128c 129c **** test 361 **** 130c 131 if (iczero) 33610, 3610, 33610 132 3610 continue 133 ivcomp = 3*2 134 go to 43610 13533610 ivdele = ivdele + 1 136 write (i02,80003) ivtnum 137 if (iczero) 43610, 3621, 43610 13843610 if (ivcomp-6) 23610,13610,23610 13913610 ivpass = ivpass + 1 140 write (i02,80001) ivtnum 141 go to 3621 14223610 ivfail = ivfail + 1 143 ivcorr=6 144 write (i02,80004) ivtnum, ivcomp ,ivcorr 145 3621 continue 146 ivtnum = 362 147c 148c **** test 362 **** 149c 150 if (iczero) 33620, 3620, 33620 151 3620 continue 152 ivcomp=13*11 153 go to 43620 15433620 ivdele = ivdele + 1 155 write (i02,80003) ivtnum 156 if (iczero) 43620, 3631, 43620 15743620 if (ivcomp-143) 23620,13620,23620 15813620 ivpass = ivpass + 1 159 write (i02,80001) ivtnum 160 go to 3631 16123620 ivfail = ivfail + 1 162 ivcorr=143 163 write (i02,80004) ivtnum, ivcomp ,ivcorr 164 3631 continue 165 ivtnum = 363 166c 167c **** test 363 **** 168c 169 if (iczero) 33630, 3630, 33630 170 3630 continue 171 ivcomp = 223*99 172 go to 43630 17333630 ivdele = ivdele + 1 174 write (i02,80003) ivtnum 175 if (iczero) 43630, 3641, 43630 17643630 if (ivcomp-22077) 23630,13630,23630 17713630 ivpass = ivpass + 1 178 write (i02,80001) ivtnum 179 go to 3641 18023630 ivfail = ivfail + 1 181 ivcorr=22077 182 write (i02,80004) ivtnum, ivcomp ,ivcorr 183 3641 continue 184 ivtnum = 364 185c 186c **** test 364 **** 187c 188 if (iczero) 33640, 3640, 33640 189 3640 continue 190 ivcomp=11235*2 191 go to 43640 19233640 ivdele = ivdele + 1 193 write (i02,80003) ivtnum 194 if (iczero) 43640, 3651, 43640 19543640 if (ivcomp-22470) 23640,13640,23640 19613640 ivpass = ivpass + 1 197 write (i02,80001) ivtnum 198 go to 3651 19923640 ivfail = ivfail + 1 200 ivcorr=22470 201 write (i02,80004) ivtnum, ivcomp ,ivcorr 202 3651 continue 203 ivtnum = 365 204c 205c **** test 365 **** 206c 207 if (iczero) 33650, 3650, 33650 208 3650 continue 209 ivcomp = 2*16383 210 go to 43650 21133650 ivdele = ivdele + 1 212 write (i02,80003) ivtnum 213 if (iczero) 43650, 3661, 43650 21443650 if (ivcomp-32766) 23650,13650,23650 21513650 ivpass = ivpass + 1 216 write (i02,80001) ivtnum 217 go to 3661 21823650 ivfail = ivfail + 1 219 ivcorr = 32766 220 write (i02,80004) ivtnum, ivcomp ,ivcorr 221c 222c test 366 through test 371 223c one positive and one negative constant 224c 225 3661 continue 226 ivtnum = 366 227c 228c **** test 366 **** 229c 230 if (iczero) 33660, 3660, 33660 231 3660 continue 232 ivcomp =2*(-3) 233 go to 43660 23433660 ivdele = ivdele + 1 235 write (i02,80003) ivtnum 236 if (iczero) 43660, 3671, 43660 23743660 if (ivcomp+6) 23660,13660,23660 23813660 ivpass = ivpass + 1 239 write (i02,80001) ivtnum 240 go to 3671 24123660 ivfail = ivfail + 1 242 ivcorr = -6 243 write (i02,80004) ivtnum, ivcomp ,ivcorr 244 3671 continue 245 ivtnum = 367 246c 247c **** test 367 **** 248c 249 if (iczero) 33670, 3670, 33670 250 3670 continue 251 ivcomp=(-2)*3 252 go to 43670 25333670 ivdele = ivdele + 1 254 write (i02,80003) ivtnum 255 if (iczero) 43670, 3681, 43670 25643670 if (ivcomp+6)23670,13670,23670 25713670 ivpass = ivpass + 1 258 write (i02,80001) ivtnum 259 go to 3681 26023670 ivfail = ivfail + 1 261 ivcorr =-6 262 write (i02,80004) ivtnum, ivcomp ,ivcorr 263 3681 continue 264 ivtnum = 368 265c 266c **** test 368 **** 267c 268 if (iczero) 33680, 3680, 33680 269 3680 continue 270 ivcomp= -2*3 271 go to 43680 27233680 ivdele = ivdele + 1 273 write (i02,80003) ivtnum 274 if (iczero) 43680, 3691, 43680 27543680 if (ivcomp +6) 23680,13680,23680 27613680 ivpass = ivpass + 1 277 write (i02,80001) ivtnum 278 go to 3691 27923680 ivfail = ivfail + 1 280 ivcorr=-6 281 write (i02,80004) ivtnum, ivcomp ,ivcorr 282 3691 continue 283 ivtnum = 369 284c 285c **** test 369 **** 286c 287 if (iczero) 33690, 3690, 33690 288 3690 continue 289 ivcomp = (-13)*11 290 go to 43690 29133690 ivdele = ivdele + 1 292 write (i02,80003) ivtnum 293 if (iczero) 43690, 3701, 43690 29443690 if (ivcomp+143) 23690,13690,23690 29513690 ivpass = ivpass + 1 296 write (i02,80001) ivtnum 297 go to 3701 29823690 ivfail = ivfail + 1 299 ivcorr=-143 300 write (i02,80004) ivtnum, ivcomp ,ivcorr 301 3701 continue 302 ivtnum = 370 303c 304c **** test 370 **** 305c 306 if (iczero) 33700, 3700, 33700 307 3700 continue 308 ivcomp = 223 * (-99) 309 go to 43700 31033700 ivdele = ivdele + 1 311 write (i02,80003) ivtnum 312 if (iczero) 43700, 3711, 43700 31343700 if (ivcomp + 22077) 23700,13700,23700 31413700 ivpass = ivpass + 1 315 write (i02,80001) ivtnum 316 go to 3711 31723700 ivfail = ivfail + 1 318 ivcorr =-22077 319 write (i02,80004) ivtnum, ivcomp ,ivcorr 320 3711 continue 321 ivtnum = 371 322c 323c **** test 371 **** 324c 325 if (iczero) 33710, 3710, 33710 326 3710 continue 327 ivcomp= -2 * 16383 328 go to 43710 32933710 ivdele = ivdele + 1 330 write (i02,80003) ivtnum 331 if (iczero) 43710, 3721, 43710 33243710 if (ivcomp+32766) 23710,13710,23710 33313710 ivpass = ivpass + 1 334 write (i02,80001) ivtnum 335 go to 3721 33623710 ivfail = ivfail + 1 337 ivcorr= -32766 338 write (i02,80004) ivtnum, ivcomp ,ivcorr 339c 340c test 372 through test 376 - two negative constants 341c 342 3721 continue 343 ivtnum = 372 344c 345c **** test 372 **** 346c 347 if (iczero) 33720, 3720, 33720 348 3720 continue 349 ivcomp=(-2)*(-3) 350 go to 43720 35133720 ivdele = ivdele + 1 352 write (i02,80003) ivtnum 353 if (iczero) 43720, 3731, 43720 35443720 if (ivcomp-6) 23720,13720,23720 35513720 ivpass = ivpass + 1 356 write (i02,80001) ivtnum 357 go to 3731 35823720 ivfail = ivfail + 1 359 ivcorr=6 360 write (i02,80004) ivtnum, ivcomp ,ivcorr 361 3731 continue 362 ivtnum = 373 363c 364c **** test 373 **** 365c 366 if (iczero) 33730, 3730, 33730 367 3730 continue 368 ivcomp = -2*(-3) 369 go to 43730 37033730 ivdele = ivdele + 1 371 write (i02,80003) ivtnum 372 if (iczero) 43730, 3741, 43730 37343730 if (ivcomp-6) 23730,13730,23730 37413730 ivpass = ivpass + 1 375 write (i02,80001) ivtnum 376 go to 3741 37723730 ivfail = ivfail + 1 378 ivcorr=6 379 write (i02,80004) ivtnum, ivcomp ,ivcorr 380 3741 continue 381 ivtnum = 374 382c 383c **** test 374 **** 384c 385 if (iczero) 33740, 3740, 33740 386 3740 continue 387 ivcomp=(-13)*(-11) 388 go to 43740 38933740 ivdele = ivdele + 1 390 write (i02,80003) ivtnum 391 if (iczero) 43740, 3751, 43740 39243740 if (ivcomp-143) 23740,13740,23740 39313740 ivpass = ivpass + 1 394 write (i02,80001) ivtnum 395 go to 3751 39623740 ivfail = ivfail + 1 397 ivcorr = 143 398 write (i02,80004) ivtnum, ivcomp ,ivcorr 399 3751 continue 400 ivtnum = 375 401c 402c **** test 375 **** 403c 404 if (iczero) 33750, 3750, 33750 405 3750 continue 406 ivcomp= -223 *(-99) 407 go to 43750 40833750 ivdele = ivdele + 1 409 write (i02,80003) ivtnum 410 if (iczero) 43750, 3761, 43750 41143750 if (ivcomp - 22077) 23750,13750,23750 41213750 ivpass = ivpass + 1 413 write (i02,80001) ivtnum 414 go to 3761 41523750 ivfail = ivfail + 1 416 ivcorr = 22077 417 write (i02,80004) ivtnum, ivcomp ,ivcorr 418 3761 continue 419 ivtnum = 376 420c 421c **** test 376 **** 422c 423 if (iczero) 33760, 3760, 33760 424 3760 continue 425 ivcomp = (-16383)*(-2) 426 go to 43760 42733760 ivdele = ivdele + 1 428 write (i02,80003) ivtnum 429 if (iczero) 43760, 3771, 43760 43043760 if (ivcomp - 32766) 23760,13760,23760 43113760 ivpass = ivpass + 1 432 write (i02,80001) ivtnum 433 go to 3771 43423760 ivfail = ivfail + 1 435 ivcorr =32766 436 write (i02,80004) ivtnum, ivcomp ,ivcorr 437c 438c test 377 through test 394 contain three integer constants and 439c operator * in an arithmetic expression. 440c iv = ic * ic * ic 441c 442c test 377 through test 382 - constants are positive 443c 444 3771 continue 445 ivtnum = 377 446c 447c **** test 377 **** 448c 449 if (iczero) 33770, 3770, 33770 450 3770 continue 451 ivcomp =2*3*4 452 go to 43770 45333770 ivdele = ivdele + 1 454 write (i02,80003) ivtnum 455 if (iczero) 43770, 3781, 43770 45643770 if (ivcomp-24) 23770,13770,23770 45713770 ivpass = ivpass + 1 458 write (i02,80001) ivtnum 459 go to 3781 46023770 ivfail = ivfail + 1 461 ivcorr = 24 462 write (i02,80004) ivtnum, ivcomp ,ivcorr 463 3781 continue 464 ivtnum = 378 465c 466c **** test 378 **** 467c 468 if (iczero) 33780, 3780, 33780 469 3780 continue 470 ivcomp = 2*3*55 471 go to 43780 47233780 ivdele = ivdele + 1 473 write (i02,80003) ivtnum 474 if (iczero) 43780, 3791, 43780 47543780 if (ivcomp-330) 23780,13780,23780 47613780 ivpass = ivpass + 1 477 write (i02,80001) ivtnum 478 go to 3791 47923780 ivfail = ivfail + 1 480 ivcorr = 330 481 write (i02,80004) ivtnum, ivcomp ,ivcorr 482 3791 continue 483 ivtnum = 379 484c 485c **** test 379 **** 486c 487 if (iczero) 33790, 3790, 33790 488 3790 continue 489 ivcomp = 23*51*13 490 go to 43790 49133790 ivdele = ivdele + 1 492 write (i02,80003) ivtnum 493 if (iczero) 43790, 3801, 43790 49443790 if (ivcomp-15249) 23790,13790,23790 49513790 ivpass = ivpass + 1 496 write (i02,80001) ivtnum 497 go to 3801 49823790 ivfail = ivfail + 1 499 ivcorr = 15249 500 write (i02,80004) ivtnum, ivcomp ,ivcorr 501 3801 continue 502 ivtnum = 380 503c 504c **** test 380 **** 505c 506 if (iczero) 33800, 3800, 33800 507 3800 continue 508 ivcomp = 3* 5461* 2 509 go to 43800 51033800 ivdele = ivdele + 1 511 write (i02,80003) ivtnum 512 if (iczero) 43800, 3811, 43800 51343800 if (ivcomp - 32766) 23800,13800,23800 51413800 ivpass = ivpass + 1 515 write (i02,80001) ivtnum 516 go to 3811 51723800 ivfail = ivfail + 1 518 ivcorr = 32766 519 write (i02,80004) ivtnum, ivcomp ,ivcorr 520 3811 continue 521 ivtnum = 381 522c 523c **** test 381 **** 524c 525 if (iczero) 33810, 3810, 33810 526 3810 continue 527 ivcomp = 16383*2*1 528 go to 43810 52933810 ivdele = ivdele + 1 530 write (i02,80003) ivtnum 531 if (iczero) 43810, 3821, 43810 53243810 if (ivcomp-32766) 23810,13810,23810 53313810 ivpass = ivpass + 1 534 write (i02,80001) ivtnum 535 go to 3821 53623810 ivfail = ivfail + 1 537 ivcorr = 32766 538 write (i02,80004) ivtnum, ivcomp ,ivcorr 539 3821 continue 540 ivtnum = 382 541c 542c **** test 382 **** 543c 544 if (iczero) 33820, 3820, 33820 545 3820 continue 546 ivcomp = 3*53*157 547 go to 43820 54833820 ivdele = ivdele + 1 549 write (i02,80003) ivtnum 550 if (iczero) 43820, 3831, 43820 55143820 if (ivcomp-24963) 23820,13820,23820 55213820 ivpass = ivpass + 1 553 write (i02,80001) ivtnum 554 go to 3831 55523820 ivfail = ivfail + 1 556 ivcorr = 24963 557 write (i02,80004) ivtnum, ivcomp ,ivcorr 558c 559c test 383 through test 386 560c three positive integer constants grouped with parens. 561c 562 3831 continue 563 ivtnum = 383 564c 565c **** test 383 **** 566c 567 if (iczero) 33830, 3830, 33830 568 3830 continue 569 ivcomp = (2*3)*4 570 go to 43830 57133830 ivdele = ivdele + 1 572 write (i02,80003) ivtnum 573 if (iczero) 43830, 3841, 43830 57443830 if (ivcomp-24) 23830,13830,23830 57513830 ivpass = ivpass + 1 576 write (i02,80001) ivtnum 577 go to 3841 57823830 ivfail = ivfail + 1 579 ivcorr = 24 580 write (i02,80004) ivtnum, ivcomp ,ivcorr 581 3841 continue 582 ivtnum = 384 583c 584c **** test 384 **** 585c 586 if (iczero) 33840, 3840, 33840 587 3840 continue 588 ivcomp = 2*(3*4) 589 go to 43840 59033840 ivdele = ivdele + 1 591 write (i02,80003) ivtnum 592 if (iczero) 43840, 3851, 43840 59343840 if (ivcomp-24) 23840,13840,23840 59413840 ivpass = ivpass + 1 595 write (i02,80001) ivtnum 596 go to 3851 59723840 ivfail = ivfail + 1 598 ivcorr = 24 599 write (i02,80004) ivtnum, ivcomp ,ivcorr 600 3851 continue 601 ivtnum = 385 602c 603c **** test 385 **** 604c 605 if (iczero) 33850, 3850, 33850 606 3850 continue 607 ivcomp = (3*(+53)) * (+157) 608 go to 43850 60933850 ivdele = ivdele + 1 610 write (i02,80003) ivtnum 611 if (iczero) 43850, 3861, 43850 61243850 if (ivcomp-24963) 23850,13850,23850 61313850 ivpass = ivpass + 1 614 write (i02,80001) ivtnum 615 go to 3861 61623850 ivfail = ivfail + 1 617 ivcorr = 24963 618 write (i02,80004) ivtnum, ivcomp ,ivcorr 619 3861 continue 620 ivtnum = 386 621c 622c **** test 386 **** 623c 624 if (iczero) 33860, 3860, 33860 625 3860 continue 626 ivcomp = 3 *((+53)*157) 627 go to 43860 62833860 ivdele = ivdele + 1 629 write (i02,80003) ivtnum 630 if (iczero) 43860, 3871, 43860 63143860 if (ivcomp-24963) 23860,13860,23860 63213860 ivpass = ivpass + 1 633 write (i02,80001) ivtnum 634 go to 3871 63523860 ivfail = ivfail + 1 636 ivcorr=24963 637 write (i02,80004) ivtnum, ivcomp ,ivcorr 638c 639c test 387 through test 391 640c both positive and negative constants in arithmetic expression. 641c 642 3871 continue 643 ivtnum = 387 644c 645c **** test 387 **** 646c 647 if (iczero) 33870, 3870, 33870 648 3870 continue 649 ivcomp = 2*3*(-4) 650 go to 43870 65133870 ivdele = ivdele + 1 652 write (i02,80003) ivtnum 653 if (iczero) 43870, 3881, 43870 65443870 if (ivcomp + 24) 23870,13870,23870 65513870 ivpass = ivpass + 1 656 write (i02,80001) ivtnum 657 go to 3881 65823870 ivfail = ivfail + 1 659 ivcorr = -24 660 write (i02,80004) ivtnum, ivcomp ,ivcorr 661 3881 continue 662 ivtnum = 388 663c 664c **** test 388 **** 665c 666 if (iczero) 33880, 3880, 33880 667 3880 continue 668 ivcomp = 2*(-3)*(+4) 669 go to 43880 67033880 ivdele = ivdele + 1 671 write (i02,80003) ivtnum 672 if (iczero) 43880, 3891, 43880 67343880 if (ivcomp + 24) 23880,13880,23880 67413880 ivpass = ivpass + 1 675 write (i02,80001) ivtnum 676 go to 3891 67723880 ivfail = ivfail + 1 678 ivcorr = -24 679 write (i02,80004) ivtnum, ivcomp ,ivcorr 680 3891 continue 681 ivtnum = 389 682c 683c **** test 389 **** 684c 685 if (iczero) 33890, 3890, 33890 686 3890 continue 687 ivcomp = (-2)*3*4 688 go to 43890 68933890 ivdele = ivdele + 1 690 write (i02,80003) ivtnum 691 if (iczero) 43890, 3901, 43890 69243890 if (ivcomp+24) 23890,13890,23890 69313890 ivpass = ivpass + 1 694 write (i02,80001) ivtnum 695 go to 3901 69623890 ivfail = ivfail + 1 697 ivcorr = -24 698 write (i02,80004) ivtnum, ivcomp ,ivcorr 699 3901 continue 700 ivtnum = 390 701c 702c **** test 390 **** 703c 704 if (iczero) 33900, 3900, 33900 705 3900 continue 706 ivcomp = -2*3*4 707 go to 43900 70833900 ivdele = ivdele + 1 709 write (i02,80003) ivtnum 710 if (iczero) 43900, 3911, 43900 71143900 if (ivcomp+24) 23900,13900,23900 71213900 ivpass = ivpass + 1 713 write (i02,80001) ivtnum 714 go to 3911 71523900 ivfail = ivfail + 1 716 ivcorr = -24 717 write (i02,80004) ivtnum, ivcomp ,ivcorr 718 3911 continue 719 ivtnum = 391 720c 721c **** test 391 **** 722c 723 if (iczero) 33910, 3910, 33910 724 3910 continue 725 ivcomp = +2 * (-3) * (-4) 726 go to 43910 72733910 ivdele = ivdele + 1 728 write (i02,80003) ivtnum 729 if (iczero) 43910, 3921, 43910 73043910 if (ivcomp - 24) 23910,13910,23910 73113910 ivpass = ivpass + 1 732 write (i02,80001) ivtnum 733 go to 3921 73423910 ivfail = ivfail + 1 735 ivcorr = 24 736 write (i02,80004) ivtnum, ivcomp ,ivcorr 737c 738c test 392 through test 394 739c all constants are negative. 740c 741 3921 continue 742 ivtnum = 392 743c 744c **** test 392 **** 745c 746 if (iczero) 33920, 3920, 33920 747 3920 continue 748 ivcomp = (-2)*(-3)*(-4) 749 go to 43920 75033920 ivdele = ivdele + 1 751 write (i02,80003) ivtnum 752 if (iczero) 43920, 3931, 43920 75343920 if (ivcomp+24) 23920,13920,23920 75413920 ivpass = ivpass + 1 755 write (i02,80001) ivtnum 756 go to 3931 75723920 ivfail = ivfail + 1 758 ivcorr = -24 759 write (i02,80004) ivtnum, ivcomp ,ivcorr 760 3931 continue 761 ivtnum = 393 762c 763c **** test 393 **** 764c 765 if (iczero) 33930, 3930, 33930 766 3930 continue 767 ivcomp = (-23)*(-51)*(-13) 768 go to 43930 76933930 ivdele = ivdele + 1 770 write (i02,80003) ivtnum 771 if (iczero) 43930, 3941, 43930 77243930 if (ivcomp + 15249) 23930,13930,23930 77313930 ivpass = ivpass + 1 774 write (i02,80001) ivtnum 775 go to 3941 77623930 ivfail = ivfail + 1 777 ivcorr = -15249 778 write (i02,80004) ivtnum, ivcomp ,ivcorr 779 3941 continue 780 ivtnum = 394 781c 782c **** test 394 **** 783c 784 if (iczero) 33940, 3940, 33940 785 3940 continue 786 ivcomp = -3 * (-53)*( -157) 787 go to 43940 78833940 ivdele = ivdele + 1 789 write (i02,80003) ivtnum 790 if (iczero) 43940, 3951, 43940 79143940 if (ivcomp +24963) 23940,13940,23940 79213940 ivpass = ivpass + 1 793 write (i02,80001) ivtnum 794 go to 3951 79523940 ivfail = ivfail + 1 796 ivcorr = -24963 797 write (i02,80004) ivtnum, ivcomp ,ivcorr 798c **** end of tests **** 799 3951 continue 800c 801c write page footings and run summaries 80299999 continue 803 write (i02,90002) 804 write (i02,90006) 805 write (i02,90002) 806 write (i02,90002) 807 write (i02,90007) 808 write (i02,90002) 809 write (i02,90008) ivfail 810 write (i02,90009) ivpass 811 write (i02,90010) ivdele 812c 813c 814c terminate routine execution 815 stop 816c 817c format statements for page headers 81890000 format (1h1) 81990002 format (1h ) 82090001 format (1h ,10x,34hfortran compiler validation system) 82190003 format (1h ,21x,11hversion 1.0) 82290004 format (1h ,10x,38hfor official use only - copyright 1978) 82390005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 82490006 format (1h ,5x,46h----------------------------------------------) 82590011 format (1h ,18x,17hsubset level test) 826c 827c format statements for run summaries 82890008 format (1h ,15x,i5,19h errors encountered) 82990009 format (1h ,15x,i5,13h tests passed) 83090010 format (1h ,15x,i5,14h tests deleted) 831c 832c format statements for test results 83380001 format (1h ,4x,i5,7x,4hpass) 83480002 format (1h ,4x,i5,7x,4hfail) 83580003 format (1h ,4x,i5,7x,7hdeleted) 83680004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 83780005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 838c 83990007 format (1h ,20x,20hend of program fm033) 840 end 841