1c comment section 2c 3c fm034 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 *, integer variable and integer constant. some of the 10c tests use parentheses to group elements in the expression and to 11c allow the use of negative constants following the * operator. 12c the integer variables contain positive and negative values. 13c 14c there are tests where the arithmetic expression contains 15c (1) integer variable * integer constant 16c integer constant * integer variable 17c (2) integer constant * integer variable * integer constant 18c (3) same as (2) but with parens to group elements. 19c 20c references 21c american national standard programming language fortran, 22c x3.9-1978 23c 24c section 4.3, integer type 25c section 4.3.1, integer constant 26c section 6.1, arithmetic expressions 27c section 10.1, arithmetic assignment statement 28c 29c ********************************************************** 30c 31c a compiler validation system for the fortran language 32c based on specifications as defined in american national standard 33c programming language fortran x3.9-1978, has been developed by the 34c federal cobol compiler testing service. the fortran compiler 35c validation system (fcvs) consists of audit routines, their related 36c data, and an executive system. each audit routine is a fortran 37c program, subprogram or function which includes tests of specific 38c language elements and supporting procedures indicating the result 39c of executing these tests. 40c 41c this particular program/subprogram/function contains features 42c found only in the subset as defined in x3.9-1978. 43c 44c suggestions and comments should be forwarded to - 45c 46c department of the navy 47c federal cobol compiler testing service 48c washington, d.c. 20376 49c 50c ********************************************************** 51c 52c 53c 54c initialization section 55c 56c initialize constants 57c ************** 58c i01 contains the logical unit number for the card reader. 59 i01 = 5 60c i02 contains the logical unit number for the printer. 61 i02 = 6 62c system environment section 63c 64cx010 this card is replaced by contents of fexec x-010 control card. 65c the cx010 card is for overriding the program default i01 = 5 66c (unit number for card reader). 67cx011 this card is replaced by contents of fexec x-011 control card. 68c the cx011 card is for systems which require additional 69c fortran statements for files associated with cx010 above. 70c 71cx020 this card is replaced by contents of fexec x-020 control card. 72c the cx020 card is for overriding the program default i02 = 6 73c (unit number for printer). 74cx021 this card is replaced by contents of fexec x-021 control card. 75c the cx021 card is for systems which require additional 76c fortran statements for files associated with cx020 above. 77c 78 ivpass=0 79 ivfail=0 80 ivdele=0 81 iczero=0 82c 83c write page headers 84 write (i02,90000) 85 write (i02,90001) 86 write (i02,90002) 87 write (i02, 90002) 88 write (i02,90003) 89 write (i02,90002) 90 write (i02,90004) 91 write (i02,90002) 92 write (i02,90011) 93 write (i02,90002) 94 write (i02,90002) 95 write (i02,90005) 96 write (i02,90006) 97 write (i02,90002) 98c 99c test section 100c 101c arithmetic assignment statement 102c 103c test 395 through test 414 contain an integer variable, an integer 104c constant, and operator * in an arithmetic expression. 105c 106c test 395 through test 406 - iv= iv * ic 107c 108c test 395 through test 398 109c positive integer variable, positive integer constant 110c 111 3951 continue 112 ivtnum = 395 113c 114c **** test 395 **** 115c 116 if (iczero) 33950, 3950, 33950 117 3950 continue 118 ivon01 = 2 119 ivcomp = ivon01 * 3 120 go to 43950 12133950 ivdele = ivdele + 1 122 write (i02,80003) ivtnum 123 if (iczero) 43950, 3961, 43950 12443950 if (ivcomp -6) 23950,13950,23950 12513950 ivpass = ivpass + 1 126 write (i02,80001) ivtnum 127 go to 3961 12823950 ivfail = ivfail + 1 129 ivcorr =6 130 write (i02,80004) ivtnum, ivcomp ,ivcorr 131 3961 continue 132 ivtnum = 396 133c 134c **** test 396 **** 135c 136 if (iczero) 33960, 3960, 33960 137 3960 continue 138 ivon01 = 13 139 ivcomp = ivon01 * 11 140 go to 43960 14133960 ivdele = ivdele + 1 142 write (i02,80003) ivtnum 143 if (iczero) 43960, 3971, 43960 14443960 if (ivcomp - 143) 23960,13960,23960 14513960 ivpass = ivpass + 1 146 write (i02,80001) ivtnum 147 go to 3971 14823960 ivfail = ivfail + 1 149 ivcorr = 143 150 write (i02,80004) ivtnum, ivcomp ,ivcorr 151 3971 continue 152 ivtnum = 397 153c 154c **** test 397 **** 155c 156 if (iczero) 33970, 3970, 33970 157 3970 continue 158 ivon01 = 223 159 ivcomp = ivon01 * 99 160 go to 43970 16133970 ivdele = ivdele + 1 162 write (i02,80003) ivtnum 163 if (iczero) 43970, 3981, 43970 16443970 if (ivcomp - 22077) 23970,13970,23970 16513970 ivpass = ivpass + 1 166 write (i02,80001) ivtnum 167 go to 3981 16823970 ivfail = ivfail + 1 169 ivcorr = 22077 170 write (i02,80004) ivtnum, ivcomp ,ivcorr 171 3981 continue 172 ivtnum = 398 173c 174c **** test 398 **** 175c 176 if (iczero) 33980, 3980, 33980 177 3980 continue 178 ivon01 = 11235 179 ivcomp = ivon01 * 2 180 go to 43980 18133980 ivdele = ivdele + 1 182 write (i02,80003) ivtnum 183 if (iczero) 43980, 3991, 43980 18443980 if (ivcomp - 22470) 23980,13980,23980 18513980 ivpass = ivpass + 1 186 write (i02,80001) ivtnum 187 go to 3991 18823980 ivfail = ivfail + 1 189 ivcorr = 22470 190 write (i02,80004) ivtnum, ivcomp ,ivcorr 191c 192c test 399 through test 402 193c negative integer variable, positive integer constant 194c 195 3991 continue 196 ivtnum = 399 197c 198c **** test 399 **** 199c 200 if (iczero) 33990, 3990, 33990 201 3990 continue 202 ivon01 = -2 203 ivcomp = ivon01 * 3 204 go to 43990 20533990 ivdele = ivdele + 1 206 write (i02,80003) ivtnum 207 if (iczero) 43990, 4001, 43990 20843990 if (ivcomp +6) 23990,13990,23990 20913990 ivpass = ivpass + 1 210 write (i02,80001) ivtnum 211 go to 4001 21223990 ivfail = ivfail + 1 213 ivcorr = -6 214 write (i02,80004) ivtnum, ivcomp ,ivcorr 215 4001 continue 216 ivtnum = 400 217c 218c **** test 400 **** 219c 220 if (iczero) 34000, 4000, 34000 221 4000 continue 222 ivon01 = -13 223 ivcomp =ivon01*11 224 go to 44000 22534000 ivdele = ivdele + 1 226 write (i02,80003) ivtnum 227 if (iczero) 44000, 4011, 44000 22844000 if (ivcomp +143) 24000,14000,24000 22914000 ivpass = ivpass + 1 230 write (i02,80001) ivtnum 231 go to 4011 23224000 ivfail = ivfail + 1 233 ivcorr = -143 234 write (i02,80004) ivtnum, ivcomp ,ivcorr 235 4011 continue 236 ivtnum = 401 237c 238c **** test 401 **** 239c 240 if (iczero) 34010, 4010, 34010 241 4010 continue 242 ivon01 = -223 243 ivcomp = ivon01*99 244 go to 44010 24534010 ivdele = ivdele + 1 246 write (i02,80003) ivtnum 247 if (iczero) 44010, 4021, 44010 24844010 if (ivcomp + 22077) 24010,14010,24010 24914010 ivpass = ivpass + 1 250 write (i02,80001) ivtnum 251 go to 4021 25224010 ivfail = ivfail + 1 253 ivcorr = -22077 254 write (i02,80004) ivtnum, ivcomp ,ivcorr 255 4021 continue 256 ivtnum = 402 257c 258c **** test 402 **** 259c 260 if (iczero) 34020, 4020, 34020 261 4020 continue 262 ivon01 = -11235 263 ivcomp = ivon01*2 264 go to 44020 26534020 ivdele = ivdele + 1 266 write (i02,80003) ivtnum 267 if (iczero) 44020, 4031, 44020 26844020 if (ivcomp+22470) 24020,14020,24020 26914020 ivpass = ivpass + 1 270 write (i02,80001) ivtnum 271 go to 4031 27224020 ivfail = ivfail + 1 273 ivcorr = -22470 274 write (i02,80004) ivtnum, ivcomp ,ivcorr 275c 276c test 403 and test 404 277c negative integer variable, negative integer constant 278c 279 4031 continue 280 ivtnum = 403 281c 282c **** test 403 **** 283c 284 if (iczero) 34030, 4030, 34030 285 4030 continue 286 ivon01=-2 287 ivcomp = ivon01*(-3) 288 go to 44030 28934030 ivdele = ivdele + 1 290 write (i02,80003) ivtnum 291 if (iczero) 44030, 4041, 44030 29244030 if (ivcomp -6) 24030,14030,24030 29314030 ivpass = ivpass + 1 294 write (i02,80001) ivtnum 295 go to 4041 29624030 ivfail = ivfail + 1 297 ivcorr =6 298 write (i02,80004) ivtnum, ivcomp ,ivcorr 299 4041 continue 300 ivtnum = 404 301c 302c **** test 404 **** 303c 304 if (iczero) 34040, 4040, 34040 305 4040 continue 306 ivon01 = -13 307 ivcomp = ivon01 * (-11) 308 go to 44040 30934040 ivdele = ivdele + 1 310 write (i02,80003) ivtnum 311 if (iczero) 44040, 4051, 44040 31244040 if (ivcomp -143) 24040,14040,24040 31314040 ivpass = ivpass + 1 314 write (i02,80001) ivtnum 315 go to 4051 31624040 ivfail = ivfail + 1 317 ivcorr = 143 318 write (i02,80004) ivtnum, ivcomp ,ivcorr 319c 320c test 405 and test 406 321c positive integer variable, negative integer constant 322c 323 4051 continue 324 ivtnum = 405 325c 326c **** test 405 **** 327c 328 if (iczero) 34050, 4050, 34050 329 4050 continue 330 ivon01 = 223 331 ivcomp = ivon01 * (-99) 332 go to 44050 33334050 ivdele = ivdele + 1 334 write (i02,80003) ivtnum 335 if (iczero) 44050, 4061, 44050 33644050 if (ivcomp + 22077) 24050,14050,24050 33714050 ivpass = ivpass + 1 338 write (i02,80001) ivtnum 339 go to 4061 34024050 ivfail = ivfail + 1 341 ivcorr = -22077 342 write (i02,80004) ivtnum, ivcomp ,ivcorr 343 4061 continue 344 ivtnum = 406 345c 346c **** test 406 **** 347c 348 if (iczero) 34060, 4060, 34060 349 4060 continue 350 ivon01 = 11235 351 ivcomp = ivon01 * (-2) 352 go to 44060 35334060 ivdele = ivdele + 1 354 write (i02,80003) ivtnum 355 if (iczero) 44060, 4071, 44060 35644060 if (ivcomp + 22470) 24060,14060,24060 35714060 ivpass = ivpass + 1 358 write (i02,80001) ivtnum 359 go to 4071 36024060 ivfail = ivfail + 1 361 ivcorr = -22470 362 write (i02,80004) ivtnum, ivcomp ,ivcorr 363c 364c test 407 through test 414 - iv = ic * iv 365c 366c test 407 and test 408 367c positive integer constant, positive integer variable 368c 369 4071 continue 370 ivtnum = 407 371c 372c **** test 407 **** 373c 374 if (iczero) 34070, 4070, 34070 375 4070 continue 376 ivon02 = 11 377 ivcomp = 13*ivon02 378 go to 44070 37934070 ivdele = ivdele + 1 380 write (i02,80003) ivtnum 381 if (iczero) 44070, 4081, 44070 38244070 if (ivcomp - 143) 24070,14070,24070 38314070 ivpass = ivpass + 1 384 write (i02,80001) ivtnum 385 go to 4081 38624070 ivfail = ivfail + 1 387 ivcorr = 143 388 write (i02,80004) ivtnum, ivcomp ,ivcorr 389 4081 continue 390 ivtnum = 408 391c 392c **** test 408 **** 393c 394 if (iczero) 34080, 4080, 34080 395 4080 continue 396 ivon02 = +11 397 ivcomp = +13 * ivon02 398 go to 44080 39934080 ivdele = ivdele + 1 400 write (i02,80003) ivtnum 401 if (iczero) 44080, 4091, 44080 40244080 if (ivcomp - 143) 24080,14080,24080 40314080 ivpass = ivpass + 1 404 write (i02,80001) ivtnum 405 go to 4091 40624080 ivfail = ivfail + 1 407 ivcorr = 143 408 write (i02,80004) ivtnum, ivcomp ,ivcorr 409c 410c test 409 and test 410 411c positive integer constant, negative integer variable 412c 413 4091 continue 414 ivtnum = 409 415c 416c **** test 409 **** 417c 418 if (iczero) 34090, 4090, 34090 419 4090 continue 420 ivon02 = -99 421 ivcomp = 223 * ivon02 422 go to 44090 42334090 ivdele = ivdele + 1 424 write (i02,80003) ivtnum 425 if (iczero) 44090, 4101, 44090 42644090 if (ivcomp + 22077) 24090,14090,24090 42714090 ivpass = ivpass + 1 428 write (i02,80001) ivtnum 429 go to 4101 43024090 ivfail = ivfail + 1 431 ivcorr =-22077 432 write (i02,80004) ivtnum, ivcomp ,ivcorr 433 4101 continue 434 ivtnum = 410 435c 436c **** test 410 **** 437c 438 if (iczero) 34100, 4100, 34100 439 4100 continue 440 ivon02 = -99 441 ivcomp = +223*ivon02 442 go to 44100 44334100 ivdele = ivdele + 1 444 write (i02,80003) ivtnum 445 if (iczero) 44100, 4111, 44100 44644100 if (ivcomp + 22077) 24100,14100,24100 44714100 ivpass = ivpass + 1 448 write (i02,80001) ivtnum 449 go to 4111 45024100 ivfail = ivfail + 1 451 ivcorr = -22077 452 write (i02,80004) ivtnum, ivcomp ,ivcorr 453c 454c test 411 and test 412 455c negative integer constant, positive integer variable 456c 457 4111 continue 458 ivtnum = 411 459c 460c **** test 411 **** 461c 462 if (iczero) 34110, 4110, 34110 463 4110 continue 464 ivon02 = 2 465 ivcomp = (-11235) * ivon02 466 go to 44110 46734110 ivdele = ivdele + 1 468 write (i02,80003) ivtnum 469 if (iczero) 44110, 4121, 44110 47044110 if (ivcomp + 22470) 24110,14110,24110 47114110 ivpass = ivpass + 1 472 write (i02,80001) ivtnum 473 go to 4121 47424110 ivfail = ivfail + 1 475 ivcorr = -22470 476 write (i02,80004) ivtnum, ivcomp ,ivcorr 477 4121 continue 478 ivtnum = 412 479c 480c **** test 412 **** 481c 482 if (iczero) 34120, 4120, 34120 483 4120 continue 484 ivon02 = +2 485 ivcomp = -11235 * ivon02 486 go to 44120 48734120 ivdele = ivdele + 1 488 write (i02,80003) ivtnum 489 if (iczero) 44120, 4131, 44120 49044120 if (ivcomp + 22470) 24120,14120,24120 49114120 ivpass=ivpass + 1 492 write (i02,80001) ivtnum 493 go to 4131 49424120 ivfail = ivfail + 1 495 ivcorr = -22470 496 write (i02,80004) ivtnum, ivcomp ,ivcorr 497c 498c test 413 and test 414 499c negative integer constant, negative integer variable 500c 501 4131 continue 502 ivtnum = 413 503c 504c **** test 413 **** 505c 506 if (iczero) 34130, 4130, 34130 507 4130 continue 508 ivon02 = -3 509 ivcomp = (-2) * ivon02 510 go to 44130 51134130 ivdele = ivdele + 1 512 write (i02,80003) ivtnum 513 if (iczero) 44130, 4141, 44130 51444130 if (ivcomp - 6) 24130,14130,24130 51514130 ivpass = ivpass + 1 516 write (i02,80001) ivtnum 517 go to 4141 51824130 ivfail = ivfail + 1 519 ivcorr = 6 520 write (i02,80004) ivtnum, ivcomp ,ivcorr 521 4141 continue 522 ivtnum = 414 523c 524c **** test 414 **** 525c 526 if (iczero) 34140, 4140, 34140 527 4140 continue 528 ivon02 = -3 529 ivcomp = -2 * ivon02 530 go to 44140 53134140 ivdele = ivdele + 1 532 write (i02,80003) ivtnum 533 if (iczero) 44140, 4151, 44140 53444140 if (ivcomp - 6) 24140,14140,24140 53514140 ivpass = ivpass + 1 536 write (i02,80001) ivtnum 537 go to 4151 53824140 ivfail = ivfail + 1 539 ivcorr = 6 540 write (i02,80004) ivtnum, ivcomp ,ivcorr 541c 542c test 415 through test 429 contain two integer constants, 543c one integer variable and operator * in arithmetic expression. 544c 545 4151 continue 546 ivtnum = 415 547c 548c **** test 415 **** 549c 550 if (iczero) 34150, 4150, 34150 551 4150 continue 552 ivon01 = 2 553 ivcomp = ivon01 * 3 * 4 554 go to 44150 55534150 ivdele = ivdele + 1 556 write (i02,80003) ivtnum 557 if (iczero) 44150, 4161, 44150 55844150 if (ivcomp - 24) 24150,14150,24150 55914150 ivpass = ivpass + 1 560 write (i02,80001) ivtnum 561 go to 4161 56224150 ivfail = ivfail + 1 563 ivcorr = 24 564 write (i02,80004) ivtnum, ivcomp ,ivcorr 565 4161 continue 566 ivtnum = 416 567c 568c **** test 416 **** 569c 570 if (iczero) 34160, 4160, 34160 571 4160 continue 572 ivon01 = -2 573 ivcomp = ivon01 *3*4 574 go to 44160 57534160 ivdele = ivdele + 1 576 write (i02,80003) ivtnum 577 if (iczero) 44160, 4171, 44160 57844160 if (ivcomp +24) 24160,14160,24160 57914160 ivpass = ivpass + 1 580 write (i02,80001) ivtnum 581 go to 4171 58224160 ivfail = ivfail + 1 583 ivcorr = -24 584 write (i02,80004) ivtnum, ivcomp ,ivcorr 585 4171 continue 586 ivtnum = 417 587c 588c **** test 417 **** 589c 590 if (iczero) 34170, 4170, 34170 591 4170 continue 592 ivon01 = -2 593 ivcomp = ivon01*3*(-4) 594 go to 44170 59534170 ivdele = ivdele + 1 596 write (i02,80003) ivtnum 597 if (iczero) 44170, 4181, 44170 59844170 if (ivcomp -24) 24170,14170,24170 59914170 ivpass = ivpass + 1 600 write (i02,80001) ivtnum 601 go to 4181 60224170 ivfail = ivfail + 1 603 ivcorr = 24 604 write (i02,80004) ivtnum, ivcomp ,ivcorr 605 4181 continue 606 ivtnum = 418 607c 608c **** test 418 **** 609c 610 if (iczero) 34180, 4180, 34180 611 4180 continue 612 ivon01 = -2 613 ivcomp = ivon01*(-3)*(-4) 614 go to 44180 61534180 ivdele = ivdele + 1 616 write (i02,80003) ivtnum 617 if (iczero) 44180, 4191, 44180 61844180 if (ivcomp +24) 24180,14180,24180 61914180 ivpass = ivpass + 1 620 write (i02,80001) ivtnum 621 go to 4191 62224180 ivfail = ivfail + 1 623 ivcorr = -24 624 write (i02,80004) ivtnum, ivcomp ,ivcorr 625 4191 continue 626 ivtnum = 419 627c 628c **** test 419 **** 629c 630 if (iczero) 34190, 4190, 34190 631 4190 continue 632 ivon02 = 51 633 ivcomp = 23*ivon02*13 634 go to 44190 63534190 ivdele = ivdele + 1 636 write (i02,80003) ivtnum 637 if (iczero) 44190, 4201, 44190 63844190 if (ivcomp-15249) 24190,14190,24190 63914190 ivpass = ivpass + 1 640 write (i02,80001) ivtnum 641 go to 4201 64224190 ivfail = ivfail + 1 643 ivcorr = 15249 644 write (i02,80004) ivtnum, ivcomp ,ivcorr 645 4201 continue 646 ivtnum = 420 647c 648c **** test 420 **** 649c 650 if (iczero) 34200, 4200, 34200 651 4200 continue 652 ivon02 = -51 653 ivcomp = 23*ivon02*(-13) 654 go to 44200 65534200 ivdele = ivdele + 1 656 write (i02,80003) ivtnum 657 if (iczero) 44200, 4211, 44200 65844200 if (ivcomp - 15249) 24200,14200,24200 65914200 ivpass = ivpass + 1 660 write (i02,80001) ivtnum 661 go to 4211 66224200 ivfail = ivfail + 1 663 ivcorr = 15249 664 write (i02,80004) ivtnum, ivcomp ,ivcorr 665 4211 continue 666 ivtnum = 421 667c 668c **** test 421 **** 669c 670 if (iczero) 34210, 4210, 34210 671 4210 continue 672 ivon02 = -51 673 ivcomp = 23*ivon02*13 674 go to 44210 67534210 ivdele = ivdele + 1 676 write (i02,80003) ivtnum 677 if (iczero) 44210, 4221, 44210 67844210 if (ivcomp+15249) 24210,14210,24210 67914210 ivpass = ivpass + 1 680 write (i02,80001) ivtnum 681 go to 4221 68224210 ivfail = ivfail + 1 683 ivcorr = -15249 684 write (i02,80004) ivtnum, ivcomp ,ivcorr 685 4221 continue 686 ivtnum = 422 687c 688c **** test 422 **** 689c 690 if (iczero) 34220, 4220, 34220 691 4220 continue 692 ivon02 = -51 693 ivcomp =(-23)*ivon02*(-13) 694 go to 44220 69534220 ivdele = ivdele + 1 696 write (i02,80003) ivtnum 697 if (iczero) 44220, 4231, 44220 69844220 if (ivcomp+15249) 24220,14220,24220 69914220 ivpass = ivpass + 1 700 write (i02,80001) ivtnum 701 go to 4231 70224220 ivfail = ivfail + 1 703 ivcorr = -15249 704 write (i02,80004) ivtnum, ivcomp ,ivcorr 705 4231 continue 706 ivtnum = 423 707c 708c **** test 423 **** 709c 710 if (iczero) 34230, 4230, 34230 711 4230 continue 712 ivon03 = 5461 713 ivcomp = 2*3*ivon03 714 go to 44230 71534230 ivdele = ivdele + 1 716 write (i02,80003) ivtnum 717 if (iczero) 44230, 4241, 44230 71844230 if (ivcomp - 32766) 24230,14230,24230 71914230 ivpass = ivpass + 1 720 write (i02,80001) ivtnum 721 go to 4241 72224230 ivfail = ivfail + 1 723 ivcorr = 32766 724 write (i02,80004) ivtnum, ivcomp ,ivcorr 725 4241 continue 726 ivtnum = 424 727c 728c **** test 424 **** 729c 730 if (iczero) 34240, 4240, 34240 731 4240 continue 732 ivon03 = -5461 733 ivcomp = 2*3*ivon03 734 go to 44240 73534240 ivdele = ivdele + 1 736 write (i02,80003) ivtnum 737 if (iczero) 44240, 4251, 44240 73844240 if (ivcomp +32766) 24240,14240,24240 73914240 ivpass = ivpass + 1 740 write (i02,80001) ivtnum 741 go to 4251 74224240 ivfail = ivfail + 1 743 ivcorr = -32766 744 write (i02,80004) ivtnum, ivcomp ,ivcorr 745 4251 continue 746 ivtnum = 425 747c 748c **** test 425 **** 749c 750 if (iczero) 34250, 4250, 34250 751 4250 continue 752 ivon03 = -5461 753 ivcomp = -2*3*ivon03 754 go to 44250 75534250 ivdele = ivdele + 1 756 write (i02,80003) ivtnum 757 if (iczero) 44250, 4261, 44250 75844250 if (ivcomp - 32766) 24250,14250,24250 75914250 ivpass = ivpass + 1 760 write (i02,80001) ivtnum 761 go to 4261 76224250 ivfail = ivfail + 1 763 ivcorr = 32766 764 write (i02,80004) ivtnum, ivcomp ,ivcorr 765c 766c test 426 through test 429 use parentheses to group elements 767c in arithmetic expression. 768c 769 4261 continue 770 ivtnum = 426 771c 772c **** test 426 **** 773c 774 if (iczero) 34260, 4260, 34260 775 4260 continue 776 ivon02 = 51 777 ivcomp = (23*ivon02)*13 778 go to 44260 77934260 ivdele = ivdele + 1 780 write (i02,80003) ivtnum 781 if (iczero) 44260, 4271, 44260 78244260 if (ivcomp -15249) 24260,14260,24260 78314260 ivpass = ivpass + 1 784 write (i02,80001) ivtnum 785 go to 4271 78624260 ivfail = ivfail + 1 787 ivcorr = 15249 788 write (i02,80004) ivtnum, ivcomp ,ivcorr 789 4271 continue 790 ivtnum = 427 791c 792c **** test 427 **** 793c 794 if (iczero) 34270, 4270, 34270 795 4270 continue 796 ivon02 = 51 797 ivcomp = 23*(ivon02*13) 798 go to 44270 79934270 ivdele = ivdele + 1 800 write (i02,80003) ivtnum 801 if (iczero) 44270, 4281, 44270 80244270 if (ivcomp-15249) 24270,14270,24270 80314270 ivpass = ivpass + 1 804 write (i02,80001) ivtnum 805 go to 4281 80624270 ivfail = ivfail + 1 807 ivcorr = 15249 808 write (i02,80004) ivtnum, ivcomp ,ivcorr 809 4281 continue 810 ivtnum = 428 811c 812c **** test 428 **** 813c 814 if (iczero) 34280, 4280, 34280 815 4280 continue 816 ivon02 = -51 817 ivcomp = -23 * (ivon02*(+13)) 818 go to 44280 81934280 ivdele = ivdele + 1 820 write (i02,80003) ivtnum 821 if (iczero) 44280, 4291, 44280 82244280 if (ivcomp - 15249)24280,14280,24280 82314280 ivpass = ivpass + 1 824 write (i02,80001) ivtnum 825 go to 4291 82624280 ivfail = ivfail + 1 827 ivcorr = 15249 828 write (i02,80004) ivtnum, ivcomp ,ivcorr 829 4291 continue 830 ivtnum = 429 831c 832c **** test 429 **** 833c 834 if (iczero) 34290, 4290, 34290 835 4290 continue 836 ivon02 = -51 837 ivcomp = (-23)*(ivon02*(-13)) 838 go to 44290 83934290 ivdele = ivdele + 1 840 write (i02,80003) ivtnum 841 if (iczero) 44290, 4301, 44290 84244290 if (ivcomp + 15249) 24290,14290,24290 84314290 ivpass = ivpass + 1 844 write (i02,80001) ivtnum 845 go to 4301 84624290 ivfail = ivfail + 1 847 ivcorr = -15249 848 write (i02,80004) ivtnum, ivcomp ,ivcorr 849c **** end of tests **** 850 4301 continue 851c 852c write page footings and run summaries 85399999 continue 854 write (i02,90002) 855 write (i02,90006) 856 write (i02,90002) 857 write (i02,90002) 858 write (i02,90007) 859 write (i02,90002) 860 write (i02,90008) ivfail 861 write (i02,90009) ivpass 862 write (i02,90010) ivdele 863c 864c 865c terminate routine execution 866 stop 867c 868c format statements for page headers 86990000 format (1h1) 87090002 format (1h ) 87190001 format (1h ,10x,34hfortran compiler validation system) 87290003 format (1h ,21x,11hversion 1.0) 87390004 format (1h ,10x,38hfor official use only - copyright 1978) 87490005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 87590006 format (1h ,5x,46h----------------------------------------------) 87690011 format (1h ,18x,17hsubset level test) 877c 878c format statements for run summaries 87990008 format (1h ,15x,i5,19h errors encountered) 88090009 format (1h ,15x,i5,13h tests passed) 88190010 format (1h ,15x,i5,14h tests deleted) 882c 883c format statements for test results 88480001 format (1h ,4x,i5,7x,4hpass) 88580002 format (1h ,4x,i5,7x,4hfail) 88680003 format (1h ,4x,i5,7x,7hdeleted) 88780004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 88880005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 889c 89090007 format (1h ,20x,20hend of program fm034) 891 end 892